From ca9fd1c2f7c987bbbf11ffe5d68e1dcd6cf20bb9 Mon Sep 17 00:00:00 2001 From: xxy <773861846@qq.com> Date: Wed, 6 May 2020 07:40:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=90=8E=E5=8F=B0=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E7=B3=BB=E7=BB=9F=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + novel-admin/novel-admin.iml | 165 + novel-admin/pom.xml | 265 + .../java/com/java2nb/AdminApplication.java | 25 + .../com/java2nb/common/annotation/Log.java | 12 + .../com/java2nb/common/aspect/LogAspect.java | 104 + .../java2nb/common/aspect/WebLogAspect.java | 61 + .../config/ApplicationContextRegister.java | 50 + .../common/config/BDSessionListener.java | 32 + .../com/java2nb/common/config/Constant.java | 24 + .../common/config/DateConverConfig.java | 40 + .../java2nb/common/config/DruidDBConfig.java | 132 + .../com/java2nb/common/config/JnConfig.java | 39 + .../java2nb/common/config/RedisConfig.java | 82 + .../java2nb/common/config/SecuityConfig.java | 13 + .../java2nb/common/config/ShiroConfig.java | 203 + .../common/config/SpringAsyncConfig.java | 23 + .../java2nb/common/config/Swagger2Config.java | 48 + .../java2nb/common/config/WebConfigurer.java | 17 + .../common/controller/BaseController.java | 21 + .../common/controller/DictController.java | 148 + .../common/controller/FileController.java | 196 + .../controller/GeneratorController.java | 157 + .../common/controller/LogController.java | 57 + .../java/com/java2nb/common/dao/DictDao.java | 35 + .../java/com/java2nb/common/dao/FileDao.java | 32 + .../com/java2nb/common/dao/GenColumnsDao.java | 38 + .../java2nb/common/dao/GeneratorMapper.java | 28 + .../java/com/java2nb/common/dao/LogDao.java | 32 + .../com/java2nb/common/domain/ColumnDO.java | 93 + .../com/java2nb/common/domain/DictDO.java | 221 + .../com/java2nb/common/domain/FileDO.java | 104 + .../java2nb/common/domain/GenColumnsDO.java | 163 + .../java/com/java2nb/common/domain/LogDO.java | 112 + .../com/java2nb/common/domain/PageDO.java | 86 + .../com/java2nb/common/domain/TableDO.java | 88 + .../java/com/java2nb/common/domain/Tree.java | 151 + .../common/exception/BusinessException.java | 25 + .../exception/CommonExceptionHandler.java | 81 + .../exception/MainsiteErrorController.java | 66 + .../interceptor/DataPermInterceptor.java | 155 + .../LongToStringSerializer.java | 20 + .../common/redis/shiro/RedisCache.java | 194 + .../common/redis/shiro/RedisCacheManager.java | 77 + .../common/redis/shiro/RedisManager.java | 228 + .../common/redis/shiro/RedisSessionDAO.java | 139 + .../common/redis/shiro/SerializeUtils.java | 89 + .../java2nb/common/service/DictService.java | 56 + .../java2nb/common/service/FileService.java | 37 + .../common/service/GeneratorService.java | 30 + .../java2nb/common/service/LogService.java | 16 + .../common/service/impl/DictServiceImpl.java | 109 + .../common/service/impl/FileServiceImpl.java | 72 + .../service/impl/GeneratorServiceImpl.java | 141 + .../common/service/impl/LogServiceImpl.java | 45 + .../com/java2nb/common/utils/BDException.java | 52 + .../com/java2nb/common/utils/Base64Utils.java | 5 + .../com/java2nb/common/utils/BuildTree.java | 89 + .../com/java2nb/common/utils/DateUtils.java | 94 + .../java2nb/common/utils/ExceptionUtils.java | 12 + .../com/java2nb/common/utils/FileType.java | 55 + .../com/java2nb/common/utils/FileUtil.java | 37 + .../com/java2nb/common/utils/GenUtils.java | 376 + .../common/utils/HttpContextUtils.java | 12 + .../common/utils/HttpServletUtils.java | 14 + .../com/java2nb/common/utils/IPUtils.java | 32 + .../com/java2nb/common/utils/IdWorker.java | 163 + .../com/java2nb/common/utils/ImageUtils.java | 77 + .../com/java2nb/common/utils/JSONUtils.java | 86 + .../com/java2nb/common/utils/MD5Utils.java | 28 + .../com/java2nb/common/utils/PageBean.java | 35 + .../java/com/java2nb/common/utils/Query.java | 41 + .../main/java/com/java2nb/common/utils/R.java | 50 + .../common/utils/RandomValidateCodeUtil.java | 122 + .../com/java2nb/common/utils/RedisUtil.java | 601 + .../com/java2nb/common/utils/ShiroUtils.java | 41 + .../common/utils/SpringContextHolder.java | 82 + .../com/java2nb/common/utils/StringUtils.java | 7 + .../com/java2nb/common/utils/TimeUtils.java | 323 + .../com/java2nb/common/utils/UploadUtils.java | 5 + .../XssAndSqlHttpServletRequestWrapper.java | 61 + .../com/java2nb/common/xss/XssFilter.java | 45 + .../common/xss/XssStringJsonSerializer.java | 28 + .../system/controller/DataPermController.java | 160 + .../system/controller/DeptController.java | 161 + .../system/controller/LoginController.java | 126 + .../system/controller/MenuController.java | 130 + .../system/controller/RoleController.java | 113 + .../controller/RoleDataPermController.java | 135 + .../system/controller/SessionController.java | 57 + .../system/controller/UserController.java | 244 + .../com/java2nb/system/dao/DataPermDao.java | 37 + .../java/com/java2nb/system/dao/DeptDao.java | 39 + .../java/com/java2nb/system/dao/MenuDao.java | 36 + .../java/com/java2nb/system/dao/RoleDao.java | 32 + .../java2nb/system/dao/RoleDataPermDao.java | 38 + .../com/java2nb/system/dao/RoleMenuDao.java | 40 + .../java/com/java2nb/system/dao/UserDao.java | 39 + .../com/java2nb/system/dao/UserRoleDao.java | 43 + .../com/java2nb/system/domain/DataPermDO.java | 174 + .../com/java2nb/system/domain/DeptDO.java | 99 + .../com/java2nb/system/domain/MenuDO.java | 184 + .../com/java2nb/system/domain/RoleDO.java | 104 + .../java2nb/system/domain/RoleDataPermDO.java | 80 + .../com/java2nb/system/domain/RoleMenuDO.java | 35 + .../com/java2nb/system/domain/UserDO.java | 269 + .../com/java2nb/system/domain/UserOnline.java | 150 + .../com/java2nb/system/domain/UserRoleDO.java | 40 + .../com/java2nb/system/domain/UserToken.java | 56 + .../system/service/DataPermService.java | 38 + .../java2nb/system/service/DeptService.java | 37 + .../java2nb/system/service/MenuService.java | 33 + .../system/service/RoleDataPermService.java | 30 + .../java2nb/system/service/RoleService.java | 25 + .../system/service/SessionService.java | 23 + .../java2nb/system/service/UserService.java | 54 + .../service/impl/DataPermServiceImpl.java | 130 + .../system/service/impl/DeptServiceImpl.java | 104 + .../system/service/impl/MenuServiceImpl.java | 163 + .../service/impl/RoleDataPermServiceImpl.java | 55 + .../system/service/impl/RoleServiceImpl.java | 150 + .../service/impl/SessionServiceImpl.java | 85 + .../system/service/impl/UserServiceImpl.java | 253 + .../com/java2nb/system/shiro/UserRealm.java | 94 + .../java/com/java2nb/system/vo/UserVO.java | 46 + .../test/controller/OrderController.java | 135 + .../java/com/java2nb/test/dao/OrderDao.java | 32 + .../java/com/java2nb/test/domain/OrderDO.java | 475 + .../java2nb/test/service/OrderService.java | 30 + .../test/service/impl/OrderServiceImpl.java | 55 + .../src/main/resources/application-dev.yml | 54 + .../src/main/resources/application-prod.yml | 51 + .../src/main/resources/application.yml | 38 + novel-admin/src/main/resources/banner.txt | 6 + novel-admin/src/main/resources/ehcache.xml | 33 + .../src/main/resources/generator.properties | 35 + .../src/main/resources/logback-spring.xml | 62 + .../resources/mybatis/common/DictMapper.xml | 132 + .../resources/mybatis/common/FileMapper.xml | 77 + .../mybatis/common/GenColumnsMapper.xml | 151 + .../resources/mybatis/common/LogMapper.xml | 102 + .../mybatis/system/DataPermMapper.xml | 151 + .../resources/mybatis/system/DeptMapper.xml | 98 + .../resources/mybatis/system/MenuMapper.xml | 136 + .../mybatis/system/RoleDataPermMapper.xml | 105 + .../resources/mybatis/system/RoleMapper.xml | 98 + .../mybatis/system/RoleMenuMapper.xml | 95 + .../resources/mybatis/system/UserMapper.xml | 236 + .../mybatis/system/UserRoleMapper.xml | 104 + .../resources/mybatis/test/OrderMapper.xml | 283 + .../src/main/resources/static/css/.DS_Store | Bin 0 -> 6148 bytes .../src/main/resources/static/css/animate.css | 2849 ++++ .../resources/static/css/bootstrap-rtl.css | 1468 ++ .../resources/static/css/bootstrap.min.css | 6 + .../resources/static/css/font-awesome.css | 2026 +++ .../resources/static/css/font-awesome.min.css | 4 + .../src/main/resources/static/css/java2nb.css | 212 + .../src/main/resources/static/css/layui.css | 949 ++ .../resources/static/css/layui.mobile.css | 191 + .../src/main/resources/static/css/login.css | 205 + .../css/patterns/header-profile-skin-1.png | Bin 0 -> 26278 bytes .../css/patterns/header-profile-skin-3.png | Bin 0 -> 33032 bytes .../static/css/patterns/header-profile.png | Bin 0 -> 5877 bytes .../static/css/patterns/shattered.png | Bin 0 -> 137733 bytes .../awesome-bootstrap-checkbox.css | 251 + .../blueimp/css/blueimp-gallery-indicator.css | 71 + .../blueimp/css/blueimp-gallery-video.css | 87 + .../plugins/blueimp/css/blueimp-gallery.css | 226 + .../blueimp/css/blueimp-gallery.min.css | 1 + .../static/css/plugins/blueimp/css/demo.css | 51 + .../static/css/plugins/blueimp/img/error.png | Bin 0 -> 2216 bytes .../static/css/plugins/blueimp/img/error.svg | 5 + .../css/plugins/blueimp/img/loading.gif | Bin 0 -> 3897 bytes .../css/plugins/blueimp/img/play-pause.png | Bin 0 -> 606 bytes .../css/plugins/blueimp/img/play-pause.svg | 6 + .../css/plugins/blueimp/img/video-play.png | Bin 0 -> 2811 bytes .../css/plugins/blueimp/img/video-play.svg | 5 + .../bootstrap-table/bootstrap-table.min.css | 1 + .../css/plugins/chosen/chosen-sprite.png | Bin 0 -> 646 bytes .../css/plugins/chosen/chosen-sprite@2x.png | Bin 0 -> 872 bytes .../static/css/plugins/chosen/chosen.css | 423 + .../css/plugins/clockpicker/clockpicker.css | 168 + .../css/plugins/codemirror/ambiance.css | 77 + .../css/plugins/codemirror/codemirror.css | 309 + .../css/bootstrap-colorpicker.min.css | 9 + .../alpha-horizontal.png | Bin 0 -> 3635 bytes .../img/bootstrap-colorpicker/alpha.png | Bin 0 -> 3271 bytes .../bootstrap-colorpicker/hue-horizontal.png | Bin 0 -> 2837 bytes .../img/bootstrap-colorpicker/hue.png | Bin 0 -> 2972 bytes .../img/bootstrap-colorpicker/saturation.png | Bin 0 -> 8817 bytes .../static/css/plugins/cropper/cropper.css | 248 + .../dataTables/dataTables.bootstrap.css | 231 + .../css/plugins/datapicker/datepicker3.css | 789 + .../static/css/plugins/dropzone/basic.css | 155 + .../static/css/plugins/dropzone/dropzone.css | 410 + .../duallistbox/bootstrap-duallistbox.css | 78 + .../css/plugins/footable/fonts/footable.eot | Bin 0 -> 4824 bytes .../css/plugins/footable/fonts/footable.svg | 78 + .../css/plugins/footable/fonts/footable.ttf | Bin 0 -> 4656 bytes .../css/plugins/footable/fonts/footable.woff | Bin 0 -> 4016 bytes .../css/plugins/footable/footable.core.css | 178 + .../css/plugins/fullcalendar/fullcalendar.css | 589 + .../fullcalendar/fullcalendar.print.css | 32 + .../static/css/plugins/iCheck/custom.css | 59 + .../static/css/plugins/iCheck/green.png | Bin 0 -> 20818 bytes .../static/css/plugins/iCheck/green@2x.png | Bin 0 -> 7708 bytes .../static/css/plugins/images/sort_asc.png | Bin 0 -> 1022 bytes .../static/css/plugins/images/sort_desc.png | Bin 0 -> 1017 bytes .../css/plugins/images/sprite-skin-flat.png | Bin 0 -> 3376 bytes .../static/css/plugins/images/spritemap.png | Bin 0 -> 10208 bytes .../css/plugins/images/spritemap@2x.png | Bin 0 -> 35675 bytes .../ionRangeSlider/ion.rangeSlider.css | 126 + .../ion.rangeSlider.skinFlat.css | 89 + .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 212 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 208 bytes .../images/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes .../images/ui-icons_454545_256x240.png | Bin 0 -> 6992 bytes .../images/ui-icons_888888_256x240.png | Bin 0 -> 6999 bytes .../jQueryUI/jquery-ui-1.10.4.custom.min.css | 7 + .../css/plugins/jasny/jasny-bootstrap.min.css | 7 + .../plugins/jqTreeGrid/jquery.treegrid.css | 6 + .../static/css/plugins/jqgrid/ui.jqgrid.css | 851 + .../static/css/plugins/jsTree/32px.png | Bin 0 -> 15906 bytes .../static/css/plugins/jsTree/style.min.css | 1 + .../static/css/plugins/jsTree/throbber.gif | Bin 0 -> 1720 bytes .../markdown/bootstrap-markdown.min.css | 1 + .../css/plugins/morris/morris-0.4.3.min.css | 2 + .../multiselect/bootstrap-multiselect.css | 1 + .../plugins/nouslider/jquery.nouislider.css | 165 + .../static/css/plugins/plyr/plyr.css | 1 + .../static/css/plugins/plyr/sprite.svg | 1 + .../static/css/plugins/simditor/simditor.css | 620 + .../static/css/plugins/steps/jquery.steps.css | 380 + .../plugins/summernote/font/summernote.woff | Bin 0 -> 10196 bytes .../plugins/summernote/summernote-0.8.8.css | 1 + .../css/plugins/summernote/summernote-bs3.css | 5972 +++++++ .../css/plugins/summernote/summernote.css | 446 + .../css/plugins/sweetalert/sweetalert.css | 715 + .../css/plugins/switchery/switchery.css | 32 + .../static/css/plugins/toastr/toastr.min.css | 222 + .../plugins/treeview/bootstrap-treeview.css | 35 + .../css/plugins/webuploader/webuploader.css | 28 + .../static/css/plugins/zTree/awesome.css | 387 + .../css/plugins/zTree/metroStyle/img/32px.png | Bin 0 -> 15906 bytes .../zTree/metroStyle/img/line_conn.png | Bin 0 -> 933 bytes .../plugins/zTree/metroStyle/img/loading.gif | Bin 0 -> 381 bytes .../plugins/zTree/metroStyle/img/metro.gif | Bin 0 -> 4679 bytes .../plugins/zTree/metroStyle/img/metro.png | Bin 0 -> 5283 bytes .../plugins/zTree/metroStyle/metroStyle.css | 96 + .../src/main/resources/static/css/public.css | 9 + .../src/main/resources/static/css/style.css | 7450 ++++++++ .../src/main/resources/static/favicon.ico | Bin 0 -> 9126 bytes .../resources/static/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes .../resources/static/fonts/FontIcoList.html | 938 ++ .../static/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes .../static/fonts/fontawesome-webfont.svg | 2671 +++ .../static/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes .../static/fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes .../static/fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes .../static/fonts/icomoon/icomoon.eot | Bin 0 -> 103032 bytes .../static/fonts/icomoon/icomoon.svg | 525 + .../static/fonts/icomoon/icomoon.ttf | Bin 0 -> 102868 bytes .../static/fonts/icomoon/icomoon.woff | Bin 0 -> 102944 bytes .../src/main/resources/static/img/.DS_Store | Bin 0 -> 8196 bytes .../src/main/resources/static/img/a1.jpg | Bin 0 -> 40994 bytes .../src/main/resources/static/img/a2.jpg | Bin 0 -> 13416 bytes .../src/main/resources/static/img/a3.jpg | Bin 0 -> 50346 bytes .../src/main/resources/static/img/a4.jpg | Bin 0 -> 8039 bytes .../src/main/resources/static/img/a5.jpg | Bin 0 -> 16274 bytes .../src/main/resources/static/img/a6.jpg | Bin 0 -> 18357 bytes .../src/main/resources/static/img/a7.jpg | Bin 0 -> 10399 bytes .../src/main/resources/static/img/a8.jpg | Bin 0 -> 10758 bytes .../src/main/resources/static/img/a9.jpg | Bin 0 -> 15909 bytes .../src/main/resources/static/img/backg01.jpg | Bin 0 -> 21496 bytes .../src/main/resources/static/img/backg02.jpg | Bin 0 -> 128466 bytes .../resources/static/img/background-login.jpg | Bin 0 -> 2073522 bytes .../resources/static/img/background_login.jpg | Bin 0 -> 53221 bytes .../src/main/resources/static/img/bg.png | Bin 0 -> 2851 bytes .../src/main/resources/static/img/browser.png | Bin 0 -> 70303 bytes .../src/main/resources/static/img/browser.psd | Bin 0 -> 256337 bytes .../src/main/resources/static/img/court.jpg | Bin 0 -> 13232 bytes .../resources/static/img/iconfont-logo.png | Bin 0 -> 19288 bytes .../src/main/resources/static/img/icons.png | Bin 0 -> 2678 bytes .../src/main/resources/static/img/index.jpg | Bin 0 -> 60187 bytes .../src/main/resources/static/img/index_4.jpg | Bin 0 -> 44651 bytes .../resources/static/img/loading-upload.gif | Bin 0 -> 1688 bytes .../src/main/resources/static/img/loading.gif | Bin 0 -> 2538 bytes .../src/main/resources/static/img/locked.png | Bin 0 -> 1132 bytes .../resources/static/img/login-background.jpg | Bin 0 -> 142718 bytes .../src/main/resources/static/img/p1.jpg | Bin 0 -> 149114 bytes .../src/main/resources/static/img/p2.jpg | Bin 0 -> 151080 bytes .../src/main/resources/static/img/p3.jpg | Bin 0 -> 125697 bytes .../src/main/resources/static/img/p_big1.jpg | Bin 0 -> 560839 bytes .../src/main/resources/static/img/p_big2.jpg | Bin 0 -> 451228 bytes .../src/main/resources/static/img/p_big3.jpg | Bin 0 -> 521275 bytes .../src/main/resources/static/img/photo_s.jpg | Bin 0 -> 9126 bytes .../src/main/resources/static/img/post-bg.jpg | Bin 0 -> 140909 bytes .../src/main/resources/static/img/profile.jpg | Bin 0 -> 38520 bytes .../main/resources/static/img/profile_big.jpg | Bin 0 -> 252814 bytes .../resources/static/img/profile_small.jpg | Bin 0 -> 16101 bytes .../main/resources/static/img/progress.png | Bin 0 -> 1269 bytes .../src/main/resources/static/img/qr_code.png | Bin 0 -> 16646 bytes .../resources/static/img/sprite-skin-flat.png | Bin 0 -> 3376 bytes .../src/main/resources/static/img/success.png | Bin 0 -> 1621 bytes .../src/main/resources/static/img/user.png | Bin 0 -> 1106 bytes .../main/resources/static/img/webuploader.png | Bin 0 -> 1672 bytes .../main/resources/static/img/wenku_logo.png | Bin 0 -> 20319 bytes .../src/main/resources/static/js/.DS_Store | Bin 0 -> 8196 bytes .../src/main/resources/static/js/app.js | 278 + .../static/js/appjs/common/dict/add.js | 49 + .../static/js/appjs/common/dict/dict.js | 266 + .../static/js/appjs/common/dict/edit.js | 49 + .../static/js/appjs/common/genColumns/add.js | 49 + .../static/js/appjs/common/genColumns/edit.js | 68 + .../js/appjs/common/genColumns/genColumns.js | 329 + .../static/js/appjs/common/generator/edit.js | 62 + .../static/js/appjs/common/generator/list.js | 176 + .../static/js/appjs/common/log/log.js | 176 + .../static/js/appjs/system/dataPerm/add.js | 131 + .../js/appjs/system/dataPerm/dataPerm.js | 260 + .../static/js/appjs/system/dataPerm/edit.js | 139 + .../static/js/appjs/system/dept/add.js | 49 + .../static/js/appjs/system/dept/dept.js | 159 + .../static/js/appjs/system/dept/edit.js | 49 + .../static/js/appjs/system/menu/add.js | 67 + .../static/js/appjs/system/menu/edit.js | 91 + .../static/js/appjs/system/menu/menu.js | 156 + .../static/js/appjs/system/online/online.js | 221 + .../static/js/appjs/system/role/add.js | 122 + .../static/js/appjs/system/role/edit.js | 117 + .../static/js/appjs/system/role/role.js | 150 + .../js/appjs/system/roleDataPerm/add.js | 107 + .../js/appjs/system/roleDataPerm/edit.js | 103 + .../appjs/system/roleDataPerm/roleDataPerm.js | 189 + .../static/js/appjs/system/user/add.js | 122 + .../static/js/appjs/system/user/edit.js | 125 + .../static/js/appjs/system/user/java2nb.js | 325 + .../static/js/appjs/system/user/personal.js | 64 + .../static/js/appjs/system/user/user.js | 221 + .../static/js/appjs/test/order/add.js | 107 + .../static/js/appjs/test/order/edit.js | 103 + .../static/js/appjs/test/order/order.js | 371 + .../static/js/bootstrap-paginator.min.js | 1 + .../main/resources/static/js/bootstrap.min.js | 7 + .../src/main/resources/static/js/common.js | 89 + .../src/main/resources/static/js/contabs.js | 310 + .../src/main/resources/static/js/content.js | 100 + .../src/main/resources/static/js/dict-util.js | 69 + .../static/js/jquery-ui-1.10.4.min.js | 12 + .../static/js/jquery-ui.custom.min.js | 20 + .../main/resources/static/js/jquery.min.js | 5 + .../main/resources/static/js/jquery.min.map | 1 + .../resources/static/js/lay/all-mobile.js | 11 + .../src/main/resources/static/js/lay/all.js | 15 + .../static/js/lay/modules/carousel.js | 314 + .../resources/static/js/lay/modules/code.js | 61 + .../static/js/lay/modules/element.js | 411 + .../resources/static/js/lay/modules/flow.js | 176 + .../resources/static/js/lay/modules/form.js | 471 + .../resources/static/js/lay/modules/jquery.js | 10987 ++++++++++++ .../static/js/lay/modules/laydate.js | 1855 ++ .../static/js/lay/modules/layedit.js | 649 + .../resources/static/js/lay/modules/layer.js | 1294 ++ .../static/js/lay/modules/laypage.js | 304 + .../resources/static/js/lay/modules/laytpl.js | 111 + .../resources/static/js/lay/modules/mobile.js | 30 + .../js/lay/modules/mobile/layer-mobile.js | 189 + .../lay/modules/mobile/layim-mobile-open.js | 11 + .../js/lay/modules/mobile/upload-mobile.js | 166 + .../static/js/lay/modules/mobile/zepto.js | 1646 ++ .../resources/static/js/lay/modules/table.js | 1053 ++ .../resources/static/js/lay/modules/tree.js | 215 + .../resources/static/js/lay/modules/upload.js | 474 + .../resources/static/js/lay/modules/util.js | 123 + .../src/main/resources/static/js/layui.js | 486 + .../src/main/resources/static/js/openTab.js | 12 + .../resources/static/js/plugins/.DS_Store | Bin 0 -> 14340 bytes .../js/plugins/beautifyhtml/beautifyhtml.js | 617 + .../blueimp/jquery.blueimp-gallery.min.js | 1 + .../js/plugins/bootstrap-paginator.min.js | 1 + .../js/plugins/bootstrap-table/.DS_Store | Bin 0 -> 6148 bytes .../bootstrap-table-mobile.min.js | 7 + .../bootstrap-table/bootstrap-table.js | 1306 ++ .../locale/bootstrap-table-zh-CN.js | 40 + .../locale/bootstrap-table-zh-CN.min.js | 7 + .../static/js/plugins/chartJs/Chart.min.js | 11 + .../static/js/plugins/chosen/chosen.jquery.js | 1211 ++ .../js/plugins/clipboard/clipboard.min.js | 7 + .../js/plugins/clockpicker/clockpicker.js | 729 + .../js/plugins/codemirror/codemirror.js | 7830 +++++++++ .../js/plugins/codemirror/mode/apl/apl.js | 175 + .../js/plugins/codemirror/mode/apl/index.html | 72 + .../codemirror/mode/asterisk/asterisk.js | 198 + .../codemirror/mode/asterisk/index.html | 154 + .../js/plugins/codemirror/mode/clike/clike.js | 489 + .../plugins/codemirror/mode/clike/index.html | 251 + .../plugins/codemirror/mode/clike/scala.html | 767 + .../codemirror/mode/clojure/clojure.js | 243 + .../codemirror/mode/clojure/index.html | 88 + .../js/plugins/codemirror/mode/cobol/cobol.js | 255 + .../plugins/codemirror/mode/cobol/index.html | 210 + .../mode/coffeescript/coffeescript.js | 369 + .../codemirror/mode/coffeescript/index.html | 740 + .../codemirror/mode/commonlisp/commonlisp.js | 122 + .../codemirror/mode/commonlisp/index.html | 177 + .../js/plugins/codemirror/mode/css/css.js | 717 + .../js/plugins/codemirror/mode/css/index.html | 75 + .../js/plugins/codemirror/mode/css/less.html | 152 + .../plugins/codemirror/mode/css/less_test.js | 51 + .../js/plugins/codemirror/mode/css/scss.html | 157 + .../plugins/codemirror/mode/css/scss_test.js | 110 + .../js/plugins/codemirror/mode/css/test.js | 135 + .../plugins/codemirror/mode/cypher/cypher.js | 146 + .../plugins/codemirror/mode/cypher/index.html | 63 + .../static/js/plugins/codemirror/mode/d/d.js | 218 + .../js/plugins/codemirror/mode/d/index.html | 273 + .../js/plugins/codemirror/mode/dart/dart.js | 50 + .../plugins/codemirror/mode/dart/index.html | 71 + .../js/plugins/codemirror/mode/diff/diff.js | 47 + .../plugins/codemirror/mode/diff/index.html | 117 + .../plugins/codemirror/mode/django/django.js | 67 + .../plugins/codemirror/mode/django/index.html | 63 + .../codemirror/mode/dockerfile/dockerfile.js | 76 + .../codemirror/mode/dockerfile/index.html | 73 + .../js/plugins/codemirror/mode/dtd/dtd.js | 142 + .../js/plugins/codemirror/mode/dtd/index.html | 89 + .../js/plugins/codemirror/mode/dylan/dylan.js | 299 + .../plugins/codemirror/mode/dylan/index.html | 407 + .../js/plugins/codemirror/mode/ebnf/ebnf.js | 195 + .../plugins/codemirror/mode/ebnf/index.html | 102 + .../js/plugins/codemirror/mode/ecl/ecl.js | 207 + .../js/plugins/codemirror/mode/ecl/index.html | 52 + .../plugins/codemirror/mode/eiffel/eiffel.js | 162 + .../plugins/codemirror/mode/eiffel/index.html | 429 + .../plugins/codemirror/mode/erlang/erlang.js | 622 + .../plugins/codemirror/mode/erlang/index.html | 76 + .../codemirror/mode/fortran/fortran.js | 188 + .../codemirror/mode/fortran/index.html | 81 + .../js/plugins/codemirror/mode/gas/gas.js | 345 + .../js/plugins/codemirror/mode/gas/index.html | 68 + .../js/plugins/codemirror/mode/gfm/gfm.js | 123 + .../js/plugins/codemirror/mode/gfm/index.html | 93 + .../js/plugins/codemirror/mode/gfm/test.js | 213 + .../codemirror/mode/gherkin/gherkin.js | 178 + .../codemirror/mode/gherkin/index.html | 48 + .../js/plugins/codemirror/mode/go/go.js | 184 + .../js/plugins/codemirror/mode/go/index.html | 85 + .../plugins/codemirror/mode/groovy/groovy.js | 226 + .../plugins/codemirror/mode/groovy/index.html | 84 + .../js/plugins/codemirror/mode/haml/haml.js | 159 + .../plugins/codemirror/mode/haml/index.html | 79 + .../js/plugins/codemirror/mode/haml/test.js | 97 + .../codemirror/mode/haskell/haskell.js | 267 + .../codemirror/mode/haskell/index.html | 73 + .../js/plugins/codemirror/mode/haxe/haxe.js | 518 + .../plugins/codemirror/mode/haxe/index.html | 124 + .../mode/htmlembedded/htmlembedded.js | 86 + .../codemirror/mode/htmlembedded/index.html | 58 + .../codemirror/mode/htmlmixed/htmlmixed.js | 121 + .../codemirror/mode/htmlmixed/index.html | 89 + .../js/plugins/codemirror/mode/http/http.js | 113 + .../plugins/codemirror/mode/http/index.html | 45 + .../js/plugins/codemirror/mode/idl/idl.js | 290 + .../js/plugins/codemirror/mode/idl/index.html | 64 + .../js/plugins/codemirror/mode/index.html | 132 + .../plugins/codemirror/mode/jade/index.html | 70 + .../js/plugins/codemirror/mode/jade/jade.js | 590 + .../codemirror/mode/javascript/index.html | 114 + .../codemirror/mode/javascript/javascript.js | 692 + .../codemirror/mode/javascript/json-ld.html | 72 + .../codemirror/mode/javascript/test.js | 200 + .../mode/javascript/typescript.html | 61 + .../plugins/codemirror/mode/jinja2/index.html | 54 + .../plugins/codemirror/mode/jinja2/jinja2.js | 142 + .../plugins/codemirror/mode/julia/index.html | 195 + .../js/plugins/codemirror/mode/julia/julia.js | 301 + .../plugins/codemirror/mode/kotlin/index.html | 89 + .../plugins/codemirror/mode/kotlin/kotlin.js | 280 + .../codemirror/mode/livescript/index.html | 459 + .../codemirror/mode/livescript/livescript.js | 280 + .../js/plugins/codemirror/mode/lua/index.html | 85 + .../js/plugins/codemirror/mode/lua/lua.js | 159 + .../codemirror/mode/markdown/index.html | 359 + .../codemirror/mode/markdown/markdown.js | 765 + .../plugins/codemirror/mode/markdown/test.js | 754 + .../static/js/plugins/codemirror/mode/meta.js | 176 + .../plugins/codemirror/mode/mirc/index.html | 160 + .../js/plugins/codemirror/mode/mirc/mirc.js | 193 + .../plugins/codemirror/mode/mllike/index.html | 179 + .../plugins/codemirror/mode/mllike/mllike.js | 205 + .../codemirror/mode/modelica/index.html | 67 + .../codemirror/mode/modelica/modelica.js | 245 + .../plugins/codemirror/mode/nginx/index.html | 181 + .../js/plugins/codemirror/mode/nginx/nginx.js | 178 + .../codemirror/mode/ntriples/index.html | 45 + .../codemirror/mode/ntriples/ntriples.js | 186 + .../plugins/codemirror/mode/octave/index.html | 83 + .../plugins/codemirror/mode/octave/octave.js | 135 + .../plugins/codemirror/mode/pascal/index.html | 61 + .../plugins/codemirror/mode/pascal/pascal.js | 109 + .../plugins/codemirror/mode/pegjs/index.html | 66 + .../js/plugins/codemirror/mode/pegjs/pegjs.js | 114 + .../plugins/codemirror/mode/perl/index.html | 75 + .../js/plugins/codemirror/mode/perl/perl.js | 837 + .../js/plugins/codemirror/mode/php/index.html | 64 + .../js/plugins/codemirror/mode/php/php.js | 226 + .../js/plugins/codemirror/mode/php/test.js | 154 + .../js/plugins/codemirror/mode/pig/index.html | 55 + .../js/plugins/codemirror/mode/pig/pig.js | 188 + .../codemirror/mode/properties/index.html | 53 + .../codemirror/mode/properties/properties.js | 78 + .../plugins/codemirror/mode/puppet/index.html | 121 + .../plugins/codemirror/mode/puppet/puppet.js | 220 + .../plugins/codemirror/mode/python/index.html | 198 + .../plugins/codemirror/mode/python/python.js | 359 + .../js/plugins/codemirror/mode/q/index.html | 144 + .../static/js/plugins/codemirror/mode/q/q.js | 139 + .../js/plugins/codemirror/mode/r/index.html | 85 + .../static/js/plugins/codemirror/mode/r/r.js | 162 + .../codemirror/mode/rpm/changes/index.html | 66 + .../js/plugins/codemirror/mode/rpm/index.html | 149 + .../js/plugins/codemirror/mode/rpm/rpm.js | 101 + .../js/plugins/codemirror/mode/rst/index.html | 535 + .../js/plugins/codemirror/mode/rst/rst.js | 557 + .../plugins/codemirror/mode/ruby/index.html | 183 + .../js/plugins/codemirror/mode/ruby/ruby.js | 285 + .../js/plugins/codemirror/mode/ruby/test.js | 14 + .../plugins/codemirror/mode/rust/index.html | 60 + .../js/plugins/codemirror/mode/rust/rust.js | 451 + .../plugins/codemirror/mode/sass/index.html | 66 + .../js/plugins/codemirror/mode/sass/sass.js | 414 + .../plugins/codemirror/mode/scheme/index.html | 77 + .../plugins/codemirror/mode/scheme/scheme.js | 248 + .../plugins/codemirror/mode/shell/index.html | 66 + .../js/plugins/codemirror/mode/shell/shell.js | 139 + .../js/plugins/codemirror/mode/shell/test.js | 58 + .../plugins/codemirror/mode/sieve/index.html | 93 + .../js/plugins/codemirror/mode/sieve/sieve.js | 193 + .../plugins/codemirror/mode/slim/index.html | 96 + .../js/plugins/codemirror/mode/slim/slim.js | 575 + .../js/plugins/codemirror/mode/slim/test.js | 96 + .../codemirror/mode/smalltalk/index.html | 68 + .../codemirror/mode/smalltalk/smalltalk.js | 168 + .../plugins/codemirror/mode/smarty/index.html | 136 + .../plugins/codemirror/mode/smarty/smarty.js | 221 + .../codemirror/mode/smartymixed/index.html | 114 + .../mode/smartymixed/smartymixed.js | 197 + .../plugins/codemirror/mode/solr/index.html | 57 + .../js/plugins/codemirror/mode/solr/solr.js | 104 + .../js/plugins/codemirror/mode/soy/index.html | 68 + .../js/plugins/codemirror/mode/soy/soy.js | 198 + .../plugins/codemirror/mode/sparql/index.html | 61 + .../plugins/codemirror/mode/sparql/sparql.js | 174 + .../codemirror/mode/spreadsheet/index.html | 42 + .../mode/spreadsheet/spreadsheet.js | 109 + .../js/plugins/codemirror/mode/sql/index.html | 84 + .../js/plugins/codemirror/mode/sql/sql.js | 391 + .../plugins/codemirror/mode/stex/index.html | 110 + .../js/plugins/codemirror/mode/stex/stex.js | 251 + .../js/plugins/codemirror/mode/stex/test.js | 123 + .../js/plugins/codemirror/mode/tcl/index.html | 142 + .../js/plugins/codemirror/mode/tcl/tcl.js | 147 + .../codemirror/mode/textile/index.html | 191 + .../plugins/codemirror/mode/textile/test.js | 417 + .../codemirror/mode/textile/textile.js | 469 + .../codemirror/mode/tiddlywiki/index.html | 154 + .../codemirror/mode/tiddlywiki/tiddlywiki.css | 14 + .../codemirror/mode/tiddlywiki/tiddlywiki.js | 369 + .../plugins/codemirror/mode/tiki/index.html | 95 + .../js/plugins/codemirror/mode/tiki/tiki.css | 26 + .../js/plugins/codemirror/mode/tiki/tiki.js | 323 + .../plugins/codemirror/mode/toml/index.html | 73 + .../js/plugins/codemirror/mode/toml/toml.js | 88 + .../codemirror/mode/tornado/index.html | 63 + .../codemirror/mode/tornado/tornado.js | 68 + .../plugins/codemirror/mode/turtle/index.html | 50 + .../plugins/codemirror/mode/turtle/turtle.js | 162 + .../js/plugins/codemirror/mode/vb/index.html | 102 + .../js/plugins/codemirror/mode/vb/vb.js | 274 + .../codemirror/mode/vbscript/index.html | 55 + .../codemirror/mode/vbscript/vbscript.js | 350 + .../codemirror/mode/velocity/index.html | 118 + .../codemirror/mode/velocity/velocity.js | 201 + .../codemirror/mode/verilog/index.html | 120 + .../plugins/codemirror/mode/verilog/test.js | 273 + .../codemirror/mode/verilog/verilog.js | 364 + .../js/plugins/codemirror/mode/xml/index.html | 57 + .../js/plugins/codemirror/mode/xml/test.js | 51 + .../js/plugins/codemirror/mode/xml/xml.js | 384 + .../plugins/codemirror/mode/xquery/index.html | 210 + .../js/plugins/codemirror/mode/xquery/test.js | 67 + .../plugins/codemirror/mode/xquery/xquery.js | 447 + .../plugins/codemirror/mode/yaml/index.html | 80 + .../js/plugins/codemirror/mode/yaml/yaml.js | 117 + .../js/plugins/codemirror/mode/z80/index.html | 52 + .../js/plugins/codemirror/mode/z80/z80.js | 100 + .../colorpicker/bootstrap-colorpicker.min.js | 1 + .../static/js/plugins/cropper/cropper.min.js | 10 + .../dataTables/dataTables.bootstrap.js | 245 + .../plugins/dataTables/jquery.dataTables.js | 14013 ++++++++++++++++ .../datapicker/bootstrap-datepicker.js | 1671 ++ .../diff_match_patch/diff_match_patch.js | 49 + .../plugins/distpicker/distpicker.data.min.js | 11 + .../js/plugins/distpicker/distpicker.js | 248 + .../js/plugins/distpicker/distpicker.min.js | 10 + .../static/js/plugins/dropzone/dropzone.js | 1841 ++ .../jquery.bootstrap-duallistbox.js | 709 + .../easypiechart/jquery.easypiechart.js | 359 + .../static/js/plugins/echarts/.DS_Store | Bin 0 -> 6148 bytes .../static/js/plugins/echarts/echarts-all.js | 35 + .../js/plugins/edittable/jquery.edittable.css | 77 + .../js/plugins/edittable/jquery.edittable.js | 309 + .../edittable/jquery.edittable.min.css | 18 + .../plugins/edittable/jquery.edittable.min.js | 2 + .../static/js/plugins/edittable/main.css | 51 + .../static/js/plugins/fancybox/blank.gif | Bin 0 -> 43 bytes .../js/plugins/fancybox/fancybox_loading.gif | Bin 0 -> 6567 bytes .../plugins/fancybox/fancybox_loading@2x.gif | Bin 0 -> 13984 bytes .../js/plugins/fancybox/fancybox_overlay.png | Bin 0 -> 1003 bytes .../js/plugins/fancybox/fancybox_sprite.png | Bin 0 -> 1362 bytes .../plugins/fancybox/fancybox_sprite@2x.png | Bin 0 -> 6553 bytes .../js/plugins/fancybox/jquery.fancybox.css | 274 + .../js/plugins/fancybox/jquery.fancybox.js | 2020 +++ .../static/js/plugins/flot/curvedLines.js | 315 + .../static/js/plugins/flot/jquery.flot.js | 2599 +++ .../static/js/plugins/flot/jquery.flot.pie.js | 750 + .../js/plugins/flot/jquery.flot.resize.js | 60 + .../js/plugins/flot/jquery.flot.spline.js | 212 + .../js/plugins/flot/jquery.flot.symbol.js | 71 + .../plugins/flot/jquery.flot.tooltip.min.js | 12 + .../js/plugins/footable/footable.all.min.js | 14 + .../plugins/fullcalendar/fullcalendar.min.js | 7 + .../js/plugins/fullcalendar/moment.min.js | 7 + .../plugins/gritter/images/gritter-light.png | Bin 0 -> 5545 bytes .../js/plugins/gritter/images/gritter.png | Bin 0 -> 5537 bytes .../js/plugins/gritter/images/ie-spacer.gif | Bin 0 -> 43 bytes .../js/plugins/gritter/jquery.gritter.css | 138 + .../js/plugins/gritter/jquery.gritter.min.js | 1 + .../static/js/plugins/iCheck/icheck.min.js | 11 + .../ionRangeSlider/ion.rangeSlider.min.js | 26 + .../jasny/jasny-bootstrap.min.js | 6 + .../js/plugins/jasny/jasny-bootstrap.min.js | 6 + .../js/plugins/jeditable/jquery.jeditable.js | 543 + .../jqTreeGrid/jquery.treegrid.bootstrap3.js | 4 + .../js/plugins/jqTreeGrid/jquery.treegrid.css | 17 + .../jqTreeGrid/jquery.treegrid.extension.js | 258 + .../js/plugins/jqTreeGrid/jquery.treegrid.js | 619 + .../plugins/jqTreeGrid/jquery.treegrid.min.js | 2 + .../js/plugins/jqTreeGrid/tree.table.js | 154 + .../js/plugins/jqgrid/i18n/grid.locale-cn.js | 207 + .../js/plugins/jqgrid/jquery.jqGrid.min.js | 19 + .../js/plugins/jquery-ui/jquery-ui.min.js | 12 + .../static/js/plugins/jsKnob/jquery.knob.js | 791 + .../static/js/plugins/jsTree/jstree.js | 4833 ++++++ .../static/js/plugins/jsTree/jstree.min.js | 69 + .../jvectormap/jquery-jvectormap-1.2.2.min.js | 8 + .../jquery-jvectormap-world-mill-en.js | 1 + .../static/js/plugins/layer/.DS_Store | Bin 0 -> 6148 bytes .../js/plugins/layer/extend/layer.ext.js | 2 + .../js/plugins/layer/laydate/laydate.js | 11 + .../js/plugins/layer/laydate/need/laydate.css | 75 + .../layer/laydate/skins/default/icon.png | Bin 0 -> 309 bytes .../layer/laydate/skins/default/laydate.css | 59 + .../static/js/plugins/layer/layer.js | 2 + .../static/js/plugins/layer/layer.min.js | 2 + .../js/plugins/layer/layim/data/chatlog.json | 30 + .../js/plugins/layer/layim/data/friend.json | 107 + .../js/plugins/layer/layim/data/group.json | 57 + .../js/plugins/layer/layim/data/groups.json | 56 + .../static/js/plugins/layer/layim/layim.css | 158 + .../static/js/plugins/layer/layim/layim.js | 630 + .../static/js/plugins/layer/layim/loading.gif | Bin 0 -> 166 bytes .../static/js/plugins/layer/mobile/layer.js | 2 + .../js/plugins/layer/mobile/need/layer.css | 1 + .../plugins/layer/skin/default/icon-ext.png | Bin 0 -> 5911 bytes .../js/plugins/layer/skin/default/icon.png | Bin 0 -> 11592 bytes .../plugins/layer/skin/default/icon_ext.png | Bin 0 -> 7677 bytes .../plugins/layer/skin/default/loading-0.gif | Bin 0 -> 5793 bytes .../plugins/layer/skin/default/loading-1.gif | Bin 0 -> 701 bytes .../plugins/layer/skin/default/loading-2.gif | Bin 0 -> 1787 bytes .../js/plugins/layer/skin/default/textbg.png | Bin 0 -> 210 bytes .../plugins/layer/skin/default/xubox_ico0.png | Bin 0 -> 32954 bytes .../layer/skin/default/xubox_loading0.gif | Bin 0 -> 5793 bytes .../layer/skin/default/xubox_loading1.gif | Bin 0 -> 701 bytes .../layer/skin/default/xubox_loading2.gif | Bin 0 -> 1787 bytes .../layer/skin/default/xubox_loading3.gif | Bin 0 -> 2364 bytes .../layer/skin/default/xubox_title0.png | Bin 0 -> 221 bytes .../static/js/plugins/layer/skin/layer.css | 7 + .../js/plugins/layer/skin/layer.ext.css | 8 + .../js/plugins/layer/skin/moon/default.png | Bin 0 -> 7563 bytes .../js/plugins/layer/skin/moon/style.css | 141 + .../plugins/layer/theme/default/icon-ext.png | Bin 0 -> 5911 bytes .../js/plugins/layer/theme/default/icon.png | Bin 0 -> 11493 bytes .../js/plugins/layer/theme/default/layer.css | 1 + .../plugins/layer/theme/default/loading-0.gif | Bin 0 -> 5793 bytes .../plugins/layer/theme/default/loading-1.gif | Bin 0 -> 701 bytes .../plugins/layer/theme/default/loading-2.gif | Bin 0 -> 1787 bytes .../js/plugins/markdown/bootstrap-markdown.js | 1426 ++ .../plugins/markdown/bootstrap-markdown.zh.js | 32 + .../static/js/plugins/markdown/markdown.js | 1616 ++ .../static/js/plugins/markdown/to-markdown.js | 184 + .../js/plugins/metisMenu/jquery.metisMenu.js | 120 + .../static/js/plugins/morris/morris.js | 1888 +++ .../js/plugins/morris/raphael-2.1.0.min.js | 10 + .../multiselect/bootstrap-multiselect.js | 1401 ++ .../js/plugins/nestable/jquery.nestable.js | 484 + .../nouslider/jquery.nouislider.min.js | 34 + .../static/js/plugins/pace/pace.min.js | 2 + .../js/plugins/peity/jquery.peity.min.js | 13 + .../resources/static/js/plugins/plyr/plyr.js | 2089 +++ .../jquery.pretty-text-diff.min.js | 76 + .../prettyfile/bootstrap-prettyfile.js | 76 + .../js/plugins/rickshaw/rickshaw.min.js | 3 + .../js/plugins/rickshaw/vendor/d3.v3.js | 5 + .../static/js/plugins/simditor/hotkeys.js | 246 + .../static/js/plugins/simditor/hotkeys.min.js | 1 + .../static/js/plugins/simditor/jquery.min.js | 5 + .../static/js/plugins/simditor/module.js | 174 + .../static/js/plugins/simditor/module.min.js | 1 + .../static/js/plugins/simditor/simditor.js | 4892 ++++++ .../js/plugins/simditor/simditor.min.js | 3 + .../static/js/plugins/simditor/uploader.js | 268 + .../js/plugins/simditor/uploader.min.js | 1 + .../slimscroll/jquery.slimscroll.min.js | 15 + .../plugins/sparkline/jquery.sparkline.min.js | 5 + .../js/plugins/staps/jquery.steps.min.js | 6 + .../static/js/plugins/suggest/.DS_Store | Bin 0 -> 6148 bytes .../plugins/suggest/bootstrap-suggest.min.js | 8 + .../static/js/plugins/suggest/data.json | 64 + .../js/plugins/summernote/summernote-zh-CN.js | 103 + .../summernote/summernote-zh-CN.min.js | 3 + .../js/plugins/summernote/summernote.js | 7987 +++++++++ .../js/plugins/summernote/summernote.min.js | 2 + .../js/plugins/sweetalert/sweetalert.min.js | 1 + .../static/js/plugins/switchery/switchery.js | 1 + .../static/js/plugins/toastr/toastr.min.js | 2 + .../js/plugins/treeview/bootstrap-treeview.js | 444 + .../validate/additional-methods.min.js | 4 + .../validate/jquery.validate.extend.js | 169 + .../plugins/validate/jquery.validate.min.js | 4 + .../js/plugins/validate/messages_zh.min.js | 27 + .../static/js/plugins/webuploader/.DS_Store | Bin 0 -> 8196 bytes .../static/js/plugins/webuploader/README.md | 25 + .../js/plugins/webuploader/Uploader.swf | Bin 0 -> 143099 bytes .../js/plugins/webuploader/webuploader.css | 28 + .../plugins/webuploader/webuploader.custom.js | 6502 +++++++ .../webuploader/webuploader.custom.min.js | 2 + .../js/plugins/webuploader/webuploader.fis.js | 8083 +++++++++ .../webuploader/webuploader.flashonly.js | 4622 +++++ .../webuploader/webuploader.flashonly.min.js | 2 + .../webuploader/webuploader.html5only.js | 6030 +++++++ .../webuploader/webuploader.html5only.min.js | 2 + .../js/plugins/webuploader/webuploader.js | 8106 +++++++++ .../js/plugins/webuploader/webuploader.min.js | 3 + .../webuploader/webuploader.noimage.js | 5026 ++++++ .../webuploader/webuploader.noimage.min.js | 2 + .../plugins/webuploader/webuploader.nolog.js | 8012 +++++++++ .../webuploader/webuploader.nolog.min.js | 3 + .../webuploader/webuploader.withoutimage.js | 4993 ++++++ .../webuploader.withoutimage.min.js | 2 + .../js/plugins/zTree/jquery.ztree.all.min.js | 165 + .../js/plugins/zTree/jquery.ztree.core.min.js | 74 + .../src/main/resources/static/js/vue.min.js | 8 + .../src/main/resources/static/js/welcome.js | 40 + .../resources/static/layuimini/api/clear.json | 4 + .../resources/static/layuimini/api/init.json | 225 + .../resources/static/layuimini/api/menus.json | 254 + .../resources/static/layuimini/api/table.json | 127 + .../static/layuimini/api/tableSelect.json | 23 + .../static/layuimini/api/upload.json | 10 + .../static/layuimini/css/layuimini.css | 137 + .../resources/static/layuimini/css/public.css | 9 + .../resources/static/layuimini/images/bg.jpg | Bin 0 -> 26174 bytes .../static/layuimini/images/captcha.jpg | Bin 0 -> 2493 bytes .../static/layuimini/images/donate_qrcode.png | Bin 0 -> 51506 bytes .../static/layuimini/images/favicon.ico | Bin 0 -> 4286 bytes .../static/layuimini/images/home.png | Bin 0 -> 71140 bytes .../static/layuimini/images/logo.png | Bin 0 -> 5307 bytes .../static/layuimini/js/lay-config.js | 24 + .../js/lay-module/echarts/echarts.js | 19 + .../js/lay-module/echarts/echartsTheme.js | 492 + .../js/lay-module/iconPicker/iconPickerFa.js | 399 + .../js/lay-module/layuimini/layuimini.js | 918 + .../layuimini/js/lay-module/step-lay/step.css | 79 + .../layuimini/js/lay-module/step-lay/step.js | 101 + .../js/lay-module/tableSelect/tableSelect.js | 255 + .../js/lay-module/treetable-lay/treetable.css | 18 + .../js/lay-module/treetable-lay/treetable.js | 206 + .../lay-module/wangEditor/fonts/w-e-icon.woff | Bin 0 -> 6224 bytes .../js/lay-module/wangEditor/wangEditor.css | 411 + .../js/lay-module/wangEditor/wangEditor.js | 4678 ++++++ .../lay-module/wangEditor/wangEditor.min.css | 1 + .../lay-module/wangEditor/wangEditor.min.js | 4 + .../wangEditor/wangEditor.min.js.map | 1 + .../lib/font-awesome-4.7.0/HELP-US-OUT.txt | 7 + .../font-awesome-4.7.0/css/font-awesome.css | 2337 +++ .../css/font-awesome.min.css | 4 + .../font-awesome-4.7.0/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes .../fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes .../fonts/fontawesome-webfont.svg | 2671 +++ .../fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes .../lib/font-awesome-4.7.0/less/animated.less | 34 + .../less/bordered-pulled.less | 25 + .../lib/font-awesome-4.7.0/less/core.less | 12 + .../font-awesome-4.7.0/less/fixed-width.less | 6 + .../font-awesome-4.7.0/less/font-awesome.less | 18 + .../lib/font-awesome-4.7.0/less/icons.less | 789 + .../lib/font-awesome-4.7.0/less/larger.less | 13 + .../lib/font-awesome-4.7.0/less/list.less | 19 + .../lib/font-awesome-4.7.0/less/mixins.less | 60 + .../lib/font-awesome-4.7.0/less/path.less | 15 + .../less/rotated-flipped.less | 20 + .../less/screen-reader.less | 5 + .../lib/font-awesome-4.7.0/less/stacked.less | 20 + .../font-awesome-4.7.0/less/variables.less | 800 + .../font-awesome-4.7.0/scss/_animated.scss | 34 + .../scss/_bordered-pulled.scss | 25 + .../lib/font-awesome-4.7.0/scss/_core.scss | 12 + .../font-awesome-4.7.0/scss/_fixed-width.scss | 6 + .../lib/font-awesome-4.7.0/scss/_icons.scss | 789 + .../lib/font-awesome-4.7.0/scss/_larger.scss | 13 + .../lib/font-awesome-4.7.0/scss/_list.scss | 19 + .../lib/font-awesome-4.7.0/scss/_mixins.scss | 60 + .../lib/font-awesome-4.7.0/scss/_path.scss | 15 + .../scss/_rotated-flipped.scss | 20 + .../scss/_screen-reader.scss | 5 + .../lib/font-awesome-4.7.0/scss/_stacked.scss | 20 + .../font-awesome-4.7.0/scss/_variables.scss | 800 + .../font-awesome-4.7.0/scss/font-awesome.scss | 18 + .../jq-module/jquery.particleground.min.js | 195 + .../layuimini/lib/jq-module/paigusu.min.js | 1 + .../jq-module/zyupload/zyupload-1.0.0.min.css | 2 + .../jq-module/zyupload/zyupload-1.0.0.min.js | 17 + .../lib/jquery-3.4.1/jquery-3.4.1.min.js | 2 + .../layuimini/lib/layui-v2.5.4/css/layui.css | 2 + .../lib/layui-v2.5.4/css/layui.mobile.css | 2 + .../lib/layui-v2.5.4/css/modules/code.css | 2 + .../css/modules/laydate/default/laydate.css | 2 + .../css/modules/layer/default/icon-ext.png | Bin 0 -> 5911 bytes .../css/modules/layer/default/icon.png | Bin 0 -> 11493 bytes .../css/modules/layer/default/layer.css | 2 + .../css/modules/layer/default/loading-0.gif | Bin 0 -> 5793 bytes .../css/modules/layer/default/loading-1.gif | Bin 0 -> 701 bytes .../css/modules/layer/default/loading-2.gif | Bin 0 -> 1787 bytes .../lib/layui-v2.5.4/font/iconfont.eot | Bin 0 -> 41712 bytes .../lib/layui-v2.5.4/font/iconfont.svg | 485 + .../lib/layui-v2.5.4/font/iconfont.ttf | Bin 0 -> 41536 bytes .../lib/layui-v2.5.4/font/iconfont.woff | Bin 0 -> 27256 bytes .../lib/layui-v2.5.4/font/iconfont.woff2 | Bin 0 -> 23140 bytes .../lib/layui-v2.5.4/images/face/0.gif | Bin 0 -> 2689 bytes .../lib/layui-v2.5.4/images/face/1.gif | Bin 0 -> 5514 bytes .../lib/layui-v2.5.4/images/face/10.gif | Bin 0 -> 2797 bytes .../lib/layui-v2.5.4/images/face/11.gif | Bin 0 -> 4121 bytes .../lib/layui-v2.5.4/images/face/12.gif | Bin 0 -> 3361 bytes .../lib/layui-v2.5.4/images/face/13.gif | Bin 0 -> 7425 bytes .../lib/layui-v2.5.4/images/face/14.gif | Bin 0 -> 2375 bytes .../lib/layui-v2.5.4/images/face/15.gif | Bin 0 -> 1793 bytes .../lib/layui-v2.5.4/images/face/16.gif | Bin 0 -> 6721 bytes .../lib/layui-v2.5.4/images/face/17.gif | Bin 0 -> 4439 bytes .../lib/layui-v2.5.4/images/face/18.gif | Bin 0 -> 3017 bytes .../lib/layui-v2.5.4/images/face/19.gif | Bin 0 -> 3040 bytes .../lib/layui-v2.5.4/images/face/2.gif | Bin 0 -> 3222 bytes .../lib/layui-v2.5.4/images/face/20.gif | Bin 0 -> 5144 bytes .../lib/layui-v2.5.4/images/face/21.gif | Bin 0 -> 5191 bytes .../lib/layui-v2.5.4/images/face/22.gif | Bin 0 -> 9823 bytes .../lib/layui-v2.5.4/images/face/23.gif | Bin 0 -> 3792 bytes .../lib/layui-v2.5.4/images/face/24.gif | Bin 0 -> 8096 bytes .../lib/layui-v2.5.4/images/face/25.gif | Bin 0 -> 3127 bytes .../lib/layui-v2.5.4/images/face/26.gif | Bin 0 -> 3291 bytes .../lib/layui-v2.5.4/images/face/27.gif | Bin 0 -> 4377 bytes .../lib/layui-v2.5.4/images/face/28.gif | Bin 0 -> 2793 bytes .../lib/layui-v2.5.4/images/face/29.gif | Bin 0 -> 4854 bytes .../lib/layui-v2.5.4/images/face/3.gif | Bin 0 -> 4017 bytes .../lib/layui-v2.5.4/images/face/30.gif | Bin 0 -> 2555 bytes .../lib/layui-v2.5.4/images/face/31.gif | Bin 0 -> 2002 bytes .../lib/layui-v2.5.4/images/face/32.gif | Bin 0 -> 3481 bytes .../lib/layui-v2.5.4/images/face/33.gif | Bin 0 -> 2454 bytes .../lib/layui-v2.5.4/images/face/34.gif | Bin 0 -> 3700 bytes .../lib/layui-v2.5.4/images/face/35.gif | Bin 0 -> 1800 bytes .../lib/layui-v2.5.4/images/face/36.gif | Bin 0 -> 2331 bytes .../lib/layui-v2.5.4/images/face/37.gif | Bin 0 -> 1513 bytes .../lib/layui-v2.5.4/images/face/38.gif | Bin 0 -> 3615 bytes .../lib/layui-v2.5.4/images/face/39.gif | Bin 0 -> 6495 bytes .../lib/layui-v2.5.4/images/face/4.gif | Bin 0 -> 5689 bytes .../lib/layui-v2.5.4/images/face/40.gif | Bin 0 -> 3154 bytes .../lib/layui-v2.5.4/images/face/41.gif | Bin 0 -> 3644 bytes .../lib/layui-v2.5.4/images/face/42.gif | Bin 0 -> 5305 bytes .../lib/layui-v2.5.4/images/face/43.gif | Bin 0 -> 2674 bytes .../lib/layui-v2.5.4/images/face/44.gif | Bin 0 -> 4126 bytes .../lib/layui-v2.5.4/images/face/45.gif | Bin 0 -> 3417 bytes .../lib/layui-v2.5.4/images/face/46.gif | Bin 0 -> 3007 bytes .../lib/layui-v2.5.4/images/face/47.gif | Bin 0 -> 2333 bytes .../lib/layui-v2.5.4/images/face/48.gif | Bin 0 -> 2689 bytes .../lib/layui-v2.5.4/images/face/49.gif | Bin 0 -> 2315 bytes .../lib/layui-v2.5.4/images/face/5.gif | Bin 0 -> 4567 bytes .../lib/layui-v2.5.4/images/face/50.gif | Bin 0 -> 5866 bytes .../lib/layui-v2.5.4/images/face/51.gif | Bin 0 -> 2785 bytes .../lib/layui-v2.5.4/images/face/52.gif | Bin 0 -> 777 bytes .../lib/layui-v2.5.4/images/face/53.gif | Bin 0 -> 2127 bytes .../lib/layui-v2.5.4/images/face/54.gif | Bin 0 -> 2196 bytes .../lib/layui-v2.5.4/images/face/55.gif | Bin 0 -> 1971 bytes .../lib/layui-v2.5.4/images/face/56.gif | Bin 0 -> 2034 bytes .../lib/layui-v2.5.4/images/face/57.gif | Bin 0 -> 2705 bytes .../lib/layui-v2.5.4/images/face/58.gif | Bin 0 -> 2258 bytes .../lib/layui-v2.5.4/images/face/59.gif | Bin 0 -> 10311 bytes .../lib/layui-v2.5.4/images/face/6.gif | Bin 0 -> 2213 bytes .../lib/layui-v2.5.4/images/face/60.gif | Bin 0 -> 3245 bytes .../lib/layui-v2.5.4/images/face/61.gif | Bin 0 -> 2495 bytes .../lib/layui-v2.5.4/images/face/62.gif | Bin 0 -> 2017 bytes .../lib/layui-v2.5.4/images/face/63.gif | Bin 0 -> 5871 bytes .../lib/layui-v2.5.4/images/face/64.gif | Bin 0 -> 6448 bytes .../lib/layui-v2.5.4/images/face/65.gif | Bin 0 -> 3576 bytes .../lib/layui-v2.5.4/images/face/66.gif | Bin 0 -> 3029 bytes .../lib/layui-v2.5.4/images/face/67.gif | Bin 0 -> 2701 bytes .../lib/layui-v2.5.4/images/face/68.gif | Bin 0 -> 1424 bytes .../lib/layui-v2.5.4/images/face/69.gif | Bin 0 -> 2431 bytes .../lib/layui-v2.5.4/images/face/7.gif | Bin 0 -> 3398 bytes .../lib/layui-v2.5.4/images/face/70.gif | Bin 0 -> 4590 bytes .../lib/layui-v2.5.4/images/face/71.gif | Bin 0 -> 5304 bytes .../lib/layui-v2.5.4/images/face/8.gif | Bin 0 -> 4050 bytes .../lib/layui-v2.5.4/images/face/9.gif | Bin 0 -> 4221 bytes .../lib/layui-v2.5.4/lay/modules/carousel.js | 2 + .../lib/layui-v2.5.4/lay/modules/code.js | 2 + .../layui-v2.5.4/lay/modules/colorpicker.js | 2 + .../lib/layui-v2.5.4/lay/modules/element.js | 2 + .../lib/layui-v2.5.4/lay/modules/flow.js | 2 + .../lib/layui-v2.5.4/lay/modules/form.js | 2 + .../lib/layui-v2.5.4/lay/modules/jquery.js | 5 + .../lib/layui-v2.5.4/lay/modules/laydate.js | 2 + .../lib/layui-v2.5.4/lay/modules/layedit.js | 2 + .../lib/layui-v2.5.4/lay/modules/layer.js | 2 + .../lib/layui-v2.5.4/lay/modules/laypage.js | 2 + .../lib/layui-v2.5.4/lay/modules/laytpl.js | 2 + .../lib/layui-v2.5.4/lay/modules/mobile.js | 2 + .../lib/layui-v2.5.4/lay/modules/rate.js | 2 + .../lib/layui-v2.5.4/lay/modules/slider.js | 2 + .../lib/layui-v2.5.4/lay/modules/table.js | 2 + .../lib/layui-v2.5.4/lay/modules/transfer.js | 2 + .../lib/layui-v2.5.4/lay/modules/tree.js | 2 + .../lib/layui-v2.5.4/lay/modules/upload.js | 2 + .../lib/layui-v2.5.4/lay/modules/util.js | 2 + .../layuimini/lib/layui-v2.5.4/layui.all.js | 5 + .../layuimini/lib/layui-v2.5.4/layui.js | 2 + .../static/sql/system/dataPerm/menu.js | 18 + .../resources/static/sql/system/order/menu.js | 18 + .../static/sql/system/roleDataPerm/menu.js | 18 + .../resources/static/sql/test/order/menu.js | 18 + .../resources/static/wangEditor/.eslintignore | 2 + .../static/wangEditor/.eslintrc.json | 38 + .../static/wangEditor/.gitattributes | 22 + .../resources/static/wangEditor/.gitignore | 51 + .../resources/static/wangEditor/.npmignore | 5 + .../main/resources/static/wangEditor/ISSUE.md | 157 + .../main/resources/static/wangEditor/LICENSE | 22 + .../resources/static/wangEditor/README.md | 70 + .../resources/static/wangEditor/bower.json | 20 + .../static/wangEditor/docs/dev/README.md | 25 + .../docs/usage/01-getstart/01-demo.md | 41 + .../docs/usage/01-getstart/02-use-module.md | 49 + .../docs/usage/01-getstart/03-sperate.md | 48 + .../docs/usage/01-getstart/04-multi.md | 50 + .../docs/usage/02-content/01-set-content.md | 46 + .../docs/usage/02-content/02-get-content.md | 80 + .../docs/usage/02-content/03-use-textarea.md | 25 + .../docs/usage/02-content/04-get-json.md | 82 + .../docs/usage/03-config/01-menu.md | 52 + .../docs/usage/03-config/02-debug.md | 21 + .../docs/usage/03-config/03-onchange.md | 40 + .../docs/usage/03-config/04-z-index.md | 19 + .../docs/usage/03-config/05-lang.md | 30 + .../docs/usage/03-config/06-paste.md | 33 + .../usage/03-config/07-linkImgCallback.md | 12 + .../docs/usage/03-config/08-linkCheck.md | 16 + .../docs/usage/03-config/09-onfocus.md | 19 + .../docs/usage/03-config/10-onblur.md | 20 + .../docs/usage/03-config/11-linkImgCheck.md | 15 + .../docs/usage/03-config/12-colors.md | 29 + .../docs/usage/03-config/13-emot.md | 48 + .../docs/usage/04-uploadimg/01-show-tab.md | 52 + .../docs/usage/04-uploadimg/02-base64.md | 23 + .../usage/04-uploadimg/03-upload-config.md | 188 + .../docs/usage/04-uploadimg/04-qiniu.md | 115 + .../usage/05-other/01-全屏-预览-查看源码.md | 10 + .../docs/usage/05-other/02-上传附件.md | 24 + .../docs/usage/05-other/03-markdown.md | 12 + .../wangEditor/docs/usage/05-other/04-xss.md | 23 + .../docs/usage/05-other/05-react.md | 7 + .../wangEditor/docs/usage/05-other/06-vue.md | 7 + .../wangEditor/docs/usage/05-other/07-ng.md | 3 + .../wangEditor/docs/usage/05-other/08-api.md | 27 + .../static/wangEditor/docs/usage/README.md | 3 + .../static/wangEditor/example/README.md | 1 + .../example/demo/in-react/package.json | 19 + .../example/demo/in-react/public/favicon.ico | Bin 0 -> 24838 bytes .../example/demo/in-react/public/index.html | 40 + .../demo/in-react/public/manifest.json | 15 + .../example/demo/in-react/src/App.css | 24 + .../example/demo/in-react/src/App.js | 48 + .../example/demo/in-react/src/App.test.js | 8 + .../example/demo/in-react/src/index.css | 5 + .../example/demo/in-react/src/index.js | 8 + .../example/demo/in-react/src/logo.svg | 7 + .../in-react/src/registerServiceWorker.js | 51 + .../wangEditor/example/demo/in-vue/.babelrc | 14 + .../example/demo/in-vue/.editorconfig | 9 + .../example/demo/in-vue/.postcssrc.js | 8 + .../example/demo/in-vue/build/build.js | 35 + .../demo/in-vue/build/check-versions.js | 48 + .../example/demo/in-vue/build/dev-client.js | 9 + .../example/demo/in-vue/build/dev-server.js | 89 + .../example/demo/in-vue/build/utils.js | 71 + .../demo/in-vue/build/vue-loader.conf.js | 12 + .../demo/in-vue/build/webpack.base.conf.js | 58 + .../demo/in-vue/build/webpack.dev.conf.js | 35 + .../demo/in-vue/build/webpack.prod.conf.js | 120 + .../example/demo/in-vue/config/dev.env.js | 6 + .../example/demo/in-vue/config/index.js | 38 + .../example/demo/in-vue/config/prod.env.js | 3 + .../wangEditor/example/demo/in-vue/index.html | 11 + .../example/demo/in-vue/package.json | 60 + .../example/demo/in-vue/src/App.vue | 31 + .../example/demo/in-vue/src/assets/logo.png | Bin 0 -> 6849 bytes .../demo/in-vue/src/components/Editor.vue | 34 + .../demo/in-vue/src/components/Hello.vue | 53 + .../example/demo/in-vue/src/main.js | 13 + .../example/demo/in-vue/static/.gitkeep | 0 .../wangEditor/example/demo/test-amd-main.js | 4 + .../wangEditor/example/demo/test-amd.html | 15 + .../example/demo/test-css-reset.html | 66 + .../wangEditor/example/demo/test-emot.html | 84 + .../example/demo/test-fullscreen.html | 114 + .../example/demo/test-get-content.html | 34 + .../wangEditor/example/demo/test-getJSON.html | 30 + .../wangEditor/example/demo/test-lang.html | 31 + .../wangEditor/example/demo/test-menus.html | 26 + .../wangEditor/example/demo/test-mult.html | 44 + .../wangEditor/example/demo/test-onblur.html | 23 + .../example/demo/test-onchange.html | 24 + .../wangEditor/example/demo/test-onfocus.html | 22 + .../wangEditor/example/demo/test-paste.html | 25 + .../example/demo/test-set-content.html | 35 + .../wangEditor/example/demo/test-sperate.html | 35 + .../example/demo/test-textarea.html | 33 + .../example/demo/test-uploadimg.html | 58 + .../static/wangEditor/example/favicon.ico | Bin 0 -> 4286 bytes .../wangEditor/example/icomoon/Read Me.txt | 7 + .../example/icomoon/demo-files/demo.css | 155 + .../example/icomoon/demo-files/demo.js | 30 + .../wangEditor/example/icomoon/demo.html | 505 + .../example/icomoon/fonts/icomoon.eot | Bin 0 -> 5656 bytes .../example/icomoon/fonts/icomoon.svg | 37 + .../example/icomoon/fonts/icomoon.ttf | Bin 0 -> 5492 bytes .../example/icomoon/fonts/icomoon.woff | Bin 0 -> 5568 bytes .../wangEditor/example/icomoon/selection.json | 775 + .../wangEditor/example/icomoon/style.css | 113 + .../static/wangEditor/example/index.html | 62 + .../static/wangEditor/example/pay.png | Bin 0 -> 95517 bytes .../static/wangEditor/example/server/index.js | 88 + .../static/wangEditor/example/server/util.js | 14 + .../resources/static/wangEditor/gulpfile.js | 122 + .../resources/static/wangEditor/package.json | 60 + .../wangEditor/release/fonts/w-e-icon.woff | Bin 0 -> 5568 bytes .../static/wangEditor/release/wangEditor.css | 405 + .../static/wangEditor/release/wangEditor.js | 4679 ++++++ .../wangEditor/release/wangEditor.min.css | 1 + .../wangEditor/release/wangEditor.min.js | 4 + .../wangEditor/release/wangEditor.min.js.map | 1 + .../static/wangEditor/src/fonts/w-e-icon.woff | Bin 0 -> 5568 bytes .../static/wangEditor/src/js/.babelrc | 10 + .../static/wangEditor/src/js/command/index.js | 106 + .../static/wangEditor/src/js/config.js | 387 + .../static/wangEditor/src/js/editor/index.js | 339 + .../src/js/editor/upload/progress.js | 65 + .../src/js/editor/upload/upload-img.js | 316 + .../static/wangEditor/src/js/index.js | 24 + .../src/js/menus/backColor/index.js | 46 + .../wangEditor/src/js/menus/bold/index.js | 60 + .../wangEditor/src/js/menus/code/index.js | 150 + .../wangEditor/src/js/menus/droplist.js | 130 + .../wangEditor/src/js/menus/emoticon/index.js | 115 + .../src/js/menus/foreColor/index.js | 46 + .../wangEditor/src/js/menus/head/index.js | 70 + .../wangEditor/src/js/menus/img/index.js | 252 + .../static/wangEditor/src/js/menus/index.js | 125 + .../wangEditor/src/js/menus/italic/index.js | 60 + .../wangEditor/src/js/menus/justify/index.js | 44 + .../wangEditor/src/js/menus/link/index.js | 168 + .../wangEditor/src/js/menus/list/index.js | 82 + .../wangEditor/src/js/menus/menu-list.js | 63 + .../static/wangEditor/src/js/menus/panel.js | 195 + .../wangEditor/src/js/menus/quote/index.js | 75 + .../wangEditor/src/js/menus/redo/index.js | 35 + .../src/js/menus/strikethrough/index.js | 60 + .../wangEditor/src/js/menus/table/index.js | 376 + .../src/js/menus/underline/index.js | 60 + .../wangEditor/src/js/menus/undo/index.js | 35 + .../wangEditor/src/js/menus/video/index.js | 86 + .../wangEditor/src/js/selection/index.js | 186 + .../static/wangEditor/src/js/text/index.js | 551 + .../static/wangEditor/src/js/util/dom-core.js | 488 + .../wangEditor/src/js/util/paste-handle.js | 86 + .../wangEditor/src/js/util/poly-fill.js | 48 + .../wangEditor/src/js/util/replace-lang.js | 21 + .../static/wangEditor/src/js/util/util.js | 71 + .../static/wangEditor/src/less/common.less | 19 + .../static/wangEditor/src/less/droplist.less | 48 + .../static/wangEditor/src/less/icon.less | 102 + .../static/wangEditor/src/less/menus.less | 33 + .../static/wangEditor/src/less/panel.less | 159 + .../static/wangEditor/src/less/text.less | 77 + .../resources/templates/common/dict/add.html | 67 + .../resources/templates/common/dict/dict.html | 66 + .../resources/templates/common/dict/edit.html | 81 + .../resources/templates/common/file/file.html | 220 + .../templates/common/genColumns/add.html | 108 + .../templates/common/genColumns/detail.html | 132 + .../templates/common/genColumns/edit.html | 34 + .../common/genColumns/genColumns.html | 49 + .../common/generator/Controller.java.vm | 135 + .../templates/common/generator/Dao.java.vm | 32 + .../templates/common/generator/Mapper.java.vm | 94 + .../templates/common/generator/Mapper.xml.vm | 98 + .../common/generator/Service.java.vm | 30 + .../common/generator/ServiceImpl.java.vm | 55 + .../templates/common/generator/add.html.vm | 83 + .../templates/common/generator/add.js.vm | 121 + .../templates/common/generator/detail.html.vm | 59 + .../templates/common/generator/domain.java.vm | 55 + .../templates/common/generator/edit.html | 71 + .../templates/common/generator/edit.html.vm | 88 + .../templates/common/generator/edit.js.vm | 119 + .../templates/common/generator/list.html | 43 + .../templates/common/generator/list.html.vm | 66 + .../templates/common/generator/list.js.vm | 197 + .../templates/common/generator/menu.sql.vm | 18 + .../resources/templates/common/log/log.html | 40 + .../main/resources/templates/error/403.html | 34 + .../main/resources/templates/error/404.html | 41 + .../main/resources/templates/error/500.html | 43 + .../main/resources/templates/error/error.html | 30 + .../src/main/resources/templates/include.html | 50 + .../src/main/resources/templates/index.html | 302 + .../src/main/resources/templates/login.html | 129 + .../src/main/resources/templates/main.html | 454 + .../templates/system/dataPerm/add.html | 101 + .../templates/system/dataPerm/dataPerm.html | 68 + .../templates/system/dataPerm/detail.html | 112 + .../templates/system/dataPerm/edit.html | 101 + .../resources/templates/system/dept/add.html | 58 + .../resources/templates/system/dept/dept.html | 69 + .../templates/system/dept/deptTree.html | 61 + .../resources/templates/system/dept/edit.html | 58 + .../resources/templates/system/menu/add.html | 83 + .../resources/templates/system/menu/edit.html | 100 + .../resources/templates/system/menu/menu.html | 54 + .../templates/system/online/online.html | 36 + .../resources/templates/system/role/add.html | 61 + .../resources/templates/system/role/edit.html | 59 + .../resources/templates/system/role/role.html | 51 + .../templates/system/roleDataPerm/add.html | 46 + .../templates/system/roleDataPerm/detail.html | 42 + .../templates/system/roleDataPerm/edit.html | 48 + .../system/roleDataPerm/roleDataPerm.html | 66 + .../resources/templates/system/user/add.html | 85 + .../resources/templates/system/user/edit.html | 80 + .../templates/system/user/include.html | 30 + .../templates/system/user/personal.html | 223 + .../templates/system/user/reset_pwd.html | 109 + .../resources/templates/system/user/user.html | 74 + .../templates/system/user/userTree.html | 60 + .../resources/templates/test/order/add.html | 327 + .../templates/test/order/detail.html | 315 + .../resources/templates/test/order/edit.html | 323 + .../resources/templates/test/order/order.html | 66 + .../java/com/java2nb/testDemo/TestDemo.java | 25 + 1182 files changed, 276446 insertions(+) create mode 100644 novel-admin/novel-admin.iml create mode 100644 novel-admin/pom.xml create mode 100644 novel-admin/src/main/java/com/java2nb/AdminApplication.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/annotation/Log.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/aspect/LogAspect.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/aspect/WebLogAspect.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/ApplicationContextRegister.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/BDSessionListener.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/Constant.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/DateConverConfig.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/DruidDBConfig.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/JnConfig.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/RedisConfig.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/SecuityConfig.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/ShiroConfig.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/SpringAsyncConfig.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/Swagger2Config.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/config/WebConfigurer.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/controller/BaseController.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/controller/DictController.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/controller/FileController.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/controller/GeneratorController.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/controller/LogController.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/dao/DictDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/dao/FileDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/dao/GenColumnsDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/dao/GeneratorMapper.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/dao/LogDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/domain/ColumnDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/domain/DictDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/domain/FileDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/domain/GenColumnsDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/domain/LogDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/domain/PageDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/domain/TableDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/domain/Tree.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/exception/BusinessException.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/exception/CommonExceptionHandler.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/exception/MainsiteErrorController.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/interceptor/DataPermInterceptor.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/jsonserializer/LongToStringSerializer.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisCache.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisCacheManager.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisManager.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisSessionDAO.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/redis/shiro/SerializeUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/service/DictService.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/service/FileService.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/service/GeneratorService.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/service/LogService.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/service/impl/DictServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/service/impl/FileServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/service/impl/GeneratorServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/service/impl/LogServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/BDException.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/Base64Utils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/BuildTree.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/DateUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/ExceptionUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/FileType.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/FileUtil.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/GenUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/HttpContextUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/HttpServletUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/IPUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/IdWorker.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/ImageUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/JSONUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/MD5Utils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/PageBean.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/Query.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/R.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/RandomValidateCodeUtil.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/RedisUtil.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/ShiroUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/SpringContextHolder.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/StringUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/TimeUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/utils/UploadUtils.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/xss/XssAndSqlHttpServletRequestWrapper.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/xss/XssFilter.java create mode 100644 novel-admin/src/main/java/com/java2nb/common/xss/XssStringJsonSerializer.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/controller/DataPermController.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/controller/DeptController.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/controller/LoginController.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/controller/MenuController.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/controller/RoleController.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/controller/RoleDataPermController.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/controller/SessionController.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/controller/UserController.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/dao/DataPermDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/dao/DeptDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/dao/MenuDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/dao/RoleDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/dao/RoleDataPermDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/dao/RoleMenuDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/dao/UserDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/dao/UserRoleDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/domain/DataPermDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/domain/DeptDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/domain/MenuDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/domain/RoleDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/domain/RoleDataPermDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/domain/RoleMenuDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/domain/UserDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/domain/UserOnline.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/domain/UserRoleDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/domain/UserToken.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/DataPermService.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/DeptService.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/MenuService.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/RoleDataPermService.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/RoleService.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/SessionService.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/UserService.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/impl/DataPermServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/impl/DeptServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/impl/MenuServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/impl/RoleDataPermServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/impl/RoleServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/impl/SessionServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/service/impl/UserServiceImpl.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/shiro/UserRealm.java create mode 100644 novel-admin/src/main/java/com/java2nb/system/vo/UserVO.java create mode 100644 novel-admin/src/main/java/com/java2nb/test/controller/OrderController.java create mode 100644 novel-admin/src/main/java/com/java2nb/test/dao/OrderDao.java create mode 100644 novel-admin/src/main/java/com/java2nb/test/domain/OrderDO.java create mode 100644 novel-admin/src/main/java/com/java2nb/test/service/OrderService.java create mode 100644 novel-admin/src/main/java/com/java2nb/test/service/impl/OrderServiceImpl.java create mode 100644 novel-admin/src/main/resources/application-dev.yml create mode 100644 novel-admin/src/main/resources/application-prod.yml create mode 100644 novel-admin/src/main/resources/application.yml create mode 100644 novel-admin/src/main/resources/banner.txt create mode 100644 novel-admin/src/main/resources/ehcache.xml create mode 100644 novel-admin/src/main/resources/generator.properties create mode 100644 novel-admin/src/main/resources/logback-spring.xml create mode 100644 novel-admin/src/main/resources/mybatis/common/DictMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/common/FileMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/common/GenColumnsMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/common/LogMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/system/DataPermMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/system/DeptMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/system/MenuMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/system/RoleDataPermMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/system/RoleMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/system/RoleMenuMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/system/UserMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/system/UserRoleMapper.xml create mode 100644 novel-admin/src/main/resources/mybatis/test/OrderMapper.xml create mode 100644 novel-admin/src/main/resources/static/css/.DS_Store create mode 100644 novel-admin/src/main/resources/static/css/animate.css create mode 100644 novel-admin/src/main/resources/static/css/bootstrap-rtl.css create mode 100644 novel-admin/src/main/resources/static/css/bootstrap.min.css create mode 100644 novel-admin/src/main/resources/static/css/font-awesome.css create mode 100644 novel-admin/src/main/resources/static/css/font-awesome.min.css create mode 100644 novel-admin/src/main/resources/static/css/java2nb.css create mode 100644 novel-admin/src/main/resources/static/css/layui.css create mode 100644 novel-admin/src/main/resources/static/css/layui.mobile.css create mode 100644 novel-admin/src/main/resources/static/css/login.css create mode 100644 novel-admin/src/main/resources/static/css/patterns/header-profile-skin-1.png create mode 100644 novel-admin/src/main/resources/static/css/patterns/header-profile-skin-3.png create mode 100644 novel-admin/src/main/resources/static/css/patterns/header-profile.png create mode 100644 novel-admin/src/main/resources/static/css/patterns/shattered.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery-indicator.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery-video.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery.min.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/css/demo.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/img/error.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/img/error.svg create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/img/loading.gif create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/img/play-pause.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/img/play-pause.svg create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/img/video-play.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/blueimp/img/video-play.svg create mode 100644 novel-admin/src/main/resources/static/css/plugins/bootstrap-table/bootstrap-table.min.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/chosen/chosen-sprite.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/chosen/chosen-sprite@2x.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/chosen/chosen.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/clockpicker/clockpicker.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/codemirror/ambiance.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/codemirror/codemirror.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/colorpicker/css/bootstrap-colorpicker.min.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/alpha.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/hue-horizontal.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/hue.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/saturation.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/cropper/cropper.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/dataTables/dataTables.bootstrap.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/datapicker/datepicker3.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/dropzone/basic.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/dropzone/dropzone.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/duallistbox/bootstrap-duallistbox.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.eot create mode 100644 novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.svg create mode 100644 novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.ttf create mode 100644 novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.woff create mode 100644 novel-admin/src/main/resources/static/css/plugins/footable/footable.core.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/fullcalendar/fullcalendar.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/fullcalendar/fullcalendar.print.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/iCheck/custom.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/iCheck/green.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/iCheck/green@2x.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/images/sort_asc.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/images/sort_desc.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/images/sprite-skin-flat.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/images/spritemap.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/images/spritemap@2x.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/ionRangeSlider/ion.rangeSlider.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/ionRangeSlider/ion.rangeSlider.skinFlat.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-icons_222222_256x240.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-icons_454545_256x240.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-icons_888888_256x240.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/jQueryUI/jquery-ui-1.10.4.custom.min.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/jasny/jasny-bootstrap.min.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/jqTreeGrid/jquery.treegrid.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/jqgrid/ui.jqgrid.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/jsTree/32px.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/jsTree/style.min.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/jsTree/throbber.gif create mode 100644 novel-admin/src/main/resources/static/css/plugins/markdown/bootstrap-markdown.min.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/morris/morris-0.4.3.min.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/multiselect/bootstrap-multiselect.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/nouslider/jquery.nouislider.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/plyr/plyr.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/plyr/sprite.svg create mode 100644 novel-admin/src/main/resources/static/css/plugins/simditor/simditor.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/steps/jquery.steps.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/summernote/font/summernote.woff create mode 100644 novel-admin/src/main/resources/static/css/plugins/summernote/summernote-0.8.8.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/summernote/summernote-bs3.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/summernote/summernote.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/sweetalert/sweetalert.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/switchery/switchery.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/toastr/toastr.min.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/treeview/bootstrap-treeview.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/webuploader/webuploader.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/zTree/awesome.css create mode 100644 novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/32px.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/line_conn.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/loading.gif create mode 100644 novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/metro.gif create mode 100644 novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/metro.png create mode 100644 novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/metroStyle.css create mode 100644 novel-admin/src/main/resources/static/css/public.css create mode 100644 novel-admin/src/main/resources/static/css/style.css create mode 100644 novel-admin/src/main/resources/static/favicon.ico create mode 100644 novel-admin/src/main/resources/static/fonts/FontAwesome.otf create mode 100644 novel-admin/src/main/resources/static/fonts/FontIcoList.html create mode 100644 novel-admin/src/main/resources/static/fonts/fontawesome-webfont.eot create mode 100644 novel-admin/src/main/resources/static/fonts/fontawesome-webfont.svg create mode 100644 novel-admin/src/main/resources/static/fonts/fontawesome-webfont.ttf create mode 100644 novel-admin/src/main/resources/static/fonts/fontawesome-webfont.woff create mode 100644 novel-admin/src/main/resources/static/fonts/fontawesome-webfont.woff2 create mode 100644 novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.eot create mode 100644 novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.svg create mode 100644 novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf create mode 100644 novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.woff create mode 100644 novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2 create mode 100644 novel-admin/src/main/resources/static/fonts/icomoon/icomoon.eot create mode 100644 novel-admin/src/main/resources/static/fonts/icomoon/icomoon.svg create mode 100644 novel-admin/src/main/resources/static/fonts/icomoon/icomoon.ttf create mode 100644 novel-admin/src/main/resources/static/fonts/icomoon/icomoon.woff create mode 100644 novel-admin/src/main/resources/static/img/.DS_Store create mode 100644 novel-admin/src/main/resources/static/img/a1.jpg create mode 100644 novel-admin/src/main/resources/static/img/a2.jpg create mode 100644 novel-admin/src/main/resources/static/img/a3.jpg create mode 100644 novel-admin/src/main/resources/static/img/a4.jpg create mode 100644 novel-admin/src/main/resources/static/img/a5.jpg create mode 100644 novel-admin/src/main/resources/static/img/a6.jpg create mode 100644 novel-admin/src/main/resources/static/img/a7.jpg create mode 100644 novel-admin/src/main/resources/static/img/a8.jpg create mode 100644 novel-admin/src/main/resources/static/img/a9.jpg create mode 100644 novel-admin/src/main/resources/static/img/backg01.jpg create mode 100644 novel-admin/src/main/resources/static/img/backg02.jpg create mode 100644 novel-admin/src/main/resources/static/img/background-login.jpg create mode 100644 novel-admin/src/main/resources/static/img/background_login.jpg create mode 100644 novel-admin/src/main/resources/static/img/bg.png create mode 100644 novel-admin/src/main/resources/static/img/browser.png create mode 100644 novel-admin/src/main/resources/static/img/browser.psd create mode 100644 novel-admin/src/main/resources/static/img/court.jpg create mode 100644 novel-admin/src/main/resources/static/img/iconfont-logo.png create mode 100644 novel-admin/src/main/resources/static/img/icons.png create mode 100644 novel-admin/src/main/resources/static/img/index.jpg create mode 100644 novel-admin/src/main/resources/static/img/index_4.jpg create mode 100644 novel-admin/src/main/resources/static/img/loading-upload.gif create mode 100644 novel-admin/src/main/resources/static/img/loading.gif create mode 100644 novel-admin/src/main/resources/static/img/locked.png create mode 100644 novel-admin/src/main/resources/static/img/login-background.jpg create mode 100644 novel-admin/src/main/resources/static/img/p1.jpg create mode 100644 novel-admin/src/main/resources/static/img/p2.jpg create mode 100644 novel-admin/src/main/resources/static/img/p3.jpg create mode 100644 novel-admin/src/main/resources/static/img/p_big1.jpg create mode 100644 novel-admin/src/main/resources/static/img/p_big2.jpg create mode 100644 novel-admin/src/main/resources/static/img/p_big3.jpg create mode 100644 novel-admin/src/main/resources/static/img/photo_s.jpg create mode 100644 novel-admin/src/main/resources/static/img/post-bg.jpg create mode 100644 novel-admin/src/main/resources/static/img/profile.jpg create mode 100644 novel-admin/src/main/resources/static/img/profile_big.jpg create mode 100644 novel-admin/src/main/resources/static/img/profile_small.jpg create mode 100644 novel-admin/src/main/resources/static/img/progress.png create mode 100644 novel-admin/src/main/resources/static/img/qr_code.png create mode 100644 novel-admin/src/main/resources/static/img/sprite-skin-flat.png create mode 100644 novel-admin/src/main/resources/static/img/success.png create mode 100644 novel-admin/src/main/resources/static/img/user.png create mode 100644 novel-admin/src/main/resources/static/img/webuploader.png create mode 100644 novel-admin/src/main/resources/static/img/wenku_logo.png create mode 100644 novel-admin/src/main/resources/static/js/.DS_Store create mode 100644 novel-admin/src/main/resources/static/js/app.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/common/dict/add.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/common/dict/dict.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/common/dict/edit.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/common/genColumns/add.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/common/genColumns/edit.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/common/genColumns/genColumns.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/common/generator/edit.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/common/generator/list.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/common/log/log.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/dataPerm/add.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/dataPerm/dataPerm.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/dataPerm/edit.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/dept/add.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/dept/dept.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/dept/edit.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/menu/add.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/menu/edit.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/menu/menu.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/online/online.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/role/add.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/role/edit.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/role/role.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/roleDataPerm/add.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/roleDataPerm/edit.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/roleDataPerm/roleDataPerm.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/user/add.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/user/edit.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/user/java2nb.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/user/personal.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/system/user/user.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/test/order/add.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/test/order/edit.js create mode 100644 novel-admin/src/main/resources/static/js/appjs/test/order/order.js create mode 100644 novel-admin/src/main/resources/static/js/bootstrap-paginator.min.js create mode 100644 novel-admin/src/main/resources/static/js/bootstrap.min.js create mode 100644 novel-admin/src/main/resources/static/js/common.js create mode 100644 novel-admin/src/main/resources/static/js/contabs.js create mode 100644 novel-admin/src/main/resources/static/js/content.js create mode 100644 novel-admin/src/main/resources/static/js/dict-util.js create mode 100644 novel-admin/src/main/resources/static/js/jquery-ui-1.10.4.min.js create mode 100644 novel-admin/src/main/resources/static/js/jquery-ui.custom.min.js create mode 100644 novel-admin/src/main/resources/static/js/jquery.min.js create mode 100644 novel-admin/src/main/resources/static/js/jquery.min.map create mode 100644 novel-admin/src/main/resources/static/js/lay/all-mobile.js create mode 100644 novel-admin/src/main/resources/static/js/lay/all.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/carousel.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/code.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/element.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/flow.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/form.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/jquery.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/laydate.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/layedit.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/layer.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/laypage.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/laytpl.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/mobile.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/mobile/layer-mobile.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/mobile/layim-mobile-open.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/mobile/upload-mobile.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/mobile/zepto.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/table.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/tree.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/upload.js create mode 100644 novel-admin/src/main/resources/static/js/lay/modules/util.js create mode 100644 novel-admin/src/main/resources/static/js/layui.js create mode 100644 novel-admin/src/main/resources/static/js/openTab.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/.DS_Store create mode 100644 novel-admin/src/main/resources/static/js/plugins/beautifyhtml/beautifyhtml.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/blueimp/jquery.blueimp-gallery.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/bootstrap-paginator.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/bootstrap-table/.DS_Store create mode 100644 novel-admin/src/main/resources/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/bootstrap-table/bootstrap-table.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/chartJs/Chart.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/chosen/chosen.jquery.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/clipboard/clipboard.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/clockpicker/clockpicker.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/codemirror.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/apl/apl.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/apl/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/asterisk/asterisk.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/asterisk/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/clike.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/scala.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clojure/clojure.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clojure/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cobol/cobol.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cobol/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/coffeescript/coffeescript.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/coffeescript/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/commonlisp/commonlisp.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/commonlisp/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/css.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/less.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/less_test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/scss.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/scss_test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cypher/cypher.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cypher/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/d/d.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/d/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dart/dart.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dart/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/diff/diff.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/diff/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/django/django.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/django/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dockerfile/dockerfile.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dockerfile/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dtd/dtd.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dtd/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dylan/dylan.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dylan/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ebnf/ebnf.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ebnf/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ecl/ecl.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ecl/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/eiffel/eiffel.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/eiffel/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/erlang/erlang.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/erlang/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/fortran/fortran.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/fortran/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gas/gas.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gas/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/gfm.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gherkin/gherkin.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gherkin/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/go/go.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/go/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/groovy/groovy.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/groovy/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/haml.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haskell/haskell.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haskell/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haxe/haxe.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haxe/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlembedded/htmlembedded.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlembedded/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlmixed/htmlmixed.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlmixed/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/http/http.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/http/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/idl/idl.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/idl/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jade/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jade/jade.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/javascript.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/json-ld.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/typescript.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jinja2/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jinja2/jinja2.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/julia/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/julia/julia.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/kotlin/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/kotlin/kotlin.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/livescript/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/livescript/livescript.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/lua/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/lua/lua.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/markdown.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/meta.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mirc/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mirc/mirc.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mllike/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mllike/mllike.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/modelica/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/modelica/modelica.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/nginx/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/nginx/nginx.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ntriples/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ntriples/ntriples.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/octave/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/octave/octave.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pascal/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pascal/pascal.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pegjs/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pegjs/pegjs.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/perl/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/perl/perl.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/php.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pig/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pig/pig.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/properties/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/properties/properties.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/puppet/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/puppet/puppet.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/python/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/python/python.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/q/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/q/q.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/r/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/r/r.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/changes/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/rpm.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rst/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rst/rst.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/ruby.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rust/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rust/rust.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sass/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sass/sass.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/scheme/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/scheme/scheme.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/shell.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sieve/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sieve/sieve.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/slim.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smalltalk/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smalltalk/smalltalk.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smarty/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smarty/smarty.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smartymixed/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smartymixed/smartymixed.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/solr/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/solr/solr.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/soy/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/soy/soy.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sparql/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sparql/sparql.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/spreadsheet/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/spreadsheet/spreadsheet.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sql/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sql/sql.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/stex.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tcl/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tcl/tcl.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/textile.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/tiddlywiki.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/tiddlywiki.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/tiki.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/tiki.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/toml/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/toml/toml.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tornado/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tornado/tornado.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/turtle/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/turtle/turtle.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vb/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vb/vb.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vbscript/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vbscript/vbscript.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/velocity/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/velocity/velocity.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/verilog.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/xml.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/test.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/xquery.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/yaml/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/yaml/yaml.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/z80/index.html create mode 100644 novel-admin/src/main/resources/static/js/plugins/codemirror/mode/z80/z80.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/colorpicker/bootstrap-colorpicker.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/cropper/cropper.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/dataTables/dataTables.bootstrap.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/dataTables/jquery.dataTables.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/datapicker/bootstrap-datepicker.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/diff_match_patch/diff_match_patch.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/distpicker/distpicker.data.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/distpicker/distpicker.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/distpicker/distpicker.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/dropzone/dropzone.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/duallistbox/jquery.bootstrap-duallistbox.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/easypiechart/jquery.easypiechart.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/echarts/.DS_Store create mode 100644 novel-admin/src/main/resources/static/js/plugins/echarts/echarts-all.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.min.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/edittable/main.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/fancybox/blank.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_loading.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_loading@2x.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_overlay.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_sprite.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_sprite@2x.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/fancybox/jquery.fancybox.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/fancybox/jquery.fancybox.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/flot/curvedLines.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.pie.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.resize.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.spline.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.symbol.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.tooltip.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/footable/footable.all.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/fullcalendar/fullcalendar.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/fullcalendar/moment.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/gritter/images/gritter-light.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/gritter/images/gritter.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/gritter/images/ie-spacer.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/gritter/jquery.gritter.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/gritter/jquery.gritter.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/iCheck/icheck.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/ionRangeSlider/ion.rangeSlider.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/ionRangeSlider/jasny/jasny-bootstrap.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jasny/jasny-bootstrap.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jeditable/jquery.jeditable.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jqTreeGrid/jquery.treegrid.bootstrap3.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jqTreeGrid/jquery.treegrid.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/jqTreeGrid/jquery.treegrid.extension.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jqTreeGrid/jquery.treegrid.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jqTreeGrid/jquery.treegrid.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jqTreeGrid/tree.table.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jqgrid/i18n/grid.locale-cn.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jqgrid/jquery.jqGrid.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jquery-ui/jquery-ui.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jsKnob/jquery.knob.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jsTree/jstree.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jsTree/jstree.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/jvectormap/jquery-jvectormap-world-mill-en.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/.DS_Store create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/extend/layer.ext.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/laydate/laydate.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/laydate/need/laydate.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/laydate/skins/default/icon.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/laydate/skins/default/laydate.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/layer.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/layer.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/layim/data/chatlog.json create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/layim/data/friend.json create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/layim/data/group.json create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/layim/data/groups.json create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/layim/layim.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/layim/layim.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/layim/loading.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/mobile/layer.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/mobile/need/layer.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/icon-ext.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/icon.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/icon_ext.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/loading-0.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/loading-1.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/loading-2.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/textbg.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_ico0.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_loading0.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_loading1.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_loading2.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_loading3.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_title0.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/layer.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/layer.ext.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/moon/default.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/skin/moon/style.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/theme/default/icon-ext.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/theme/default/icon.png create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/theme/default/layer.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/theme/default/loading-0.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/theme/default/loading-1.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/layer/theme/default/loading-2.gif create mode 100644 novel-admin/src/main/resources/static/js/plugins/markdown/bootstrap-markdown.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/markdown/bootstrap-markdown.zh.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/markdown/markdown.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/markdown/to-markdown.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/metisMenu/jquery.metisMenu.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/morris/morris.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/morris/raphael-2.1.0.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/multiselect/bootstrap-multiselect.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/nestable/jquery.nestable.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/nouslider/jquery.nouislider.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/pace/pace.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/peity/jquery.peity.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/plyr/plyr.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/preetyTextDiff/jquery.pretty-text-diff.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/prettyfile/bootstrap-prettyfile.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/rickshaw/rickshaw.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/rickshaw/vendor/d3.v3.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/simditor/hotkeys.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/simditor/hotkeys.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/simditor/jquery.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/simditor/module.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/simditor/module.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/simditor/simditor.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/simditor/simditor.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/simditor/uploader.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/simditor/uploader.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/slimscroll/jquery.slimscroll.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/sparkline/jquery.sparkline.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/staps/jquery.steps.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/suggest/.DS_Store create mode 100644 novel-admin/src/main/resources/static/js/plugins/suggest/bootstrap-suggest.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/suggest/data.json create mode 100644 novel-admin/src/main/resources/static/js/plugins/summernote/summernote-zh-CN.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/summernote/summernote-zh-CN.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/summernote/summernote.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/summernote/summernote.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/sweetalert/sweetalert.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/switchery/switchery.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/toastr/toastr.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/treeview/bootstrap-treeview.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/validate/additional-methods.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/validate/jquery.validate.extend.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/validate/jquery.validate.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/validate/messages_zh.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/.DS_Store create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/README.md create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/Uploader.swf create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.css create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.custom.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.custom.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.fis.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.flashonly.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.flashonly.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.html5only.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.html5only.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.noimage.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.noimage.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.nolog.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.nolog.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.withoutimage.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/webuploader/webuploader.withoutimage.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/zTree/jquery.ztree.all.min.js create mode 100644 novel-admin/src/main/resources/static/js/plugins/zTree/jquery.ztree.core.min.js create mode 100644 novel-admin/src/main/resources/static/js/vue.min.js create mode 100644 novel-admin/src/main/resources/static/js/welcome.js create mode 100644 novel-admin/src/main/resources/static/layuimini/api/clear.json create mode 100644 novel-admin/src/main/resources/static/layuimini/api/init.json create mode 100644 novel-admin/src/main/resources/static/layuimini/api/menus.json create mode 100644 novel-admin/src/main/resources/static/layuimini/api/table.json create mode 100644 novel-admin/src/main/resources/static/layuimini/api/tableSelect.json create mode 100644 novel-admin/src/main/resources/static/layuimini/api/upload.json create mode 100644 novel-admin/src/main/resources/static/layuimini/css/layuimini.css create mode 100644 novel-admin/src/main/resources/static/layuimini/css/public.css create mode 100644 novel-admin/src/main/resources/static/layuimini/images/bg.jpg create mode 100644 novel-admin/src/main/resources/static/layuimini/images/captcha.jpg create mode 100644 novel-admin/src/main/resources/static/layuimini/images/donate_qrcode.png create mode 100644 novel-admin/src/main/resources/static/layuimini/images/favicon.ico create mode 100644 novel-admin/src/main/resources/static/layuimini/images/home.png create mode 100644 novel-admin/src/main/resources/static/layuimini/images/logo.png create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-config.js create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/echarts/echarts.js create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/echarts/echartsTheme.js create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/iconPicker/iconPickerFa.js create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/layuimini/layuimini.js create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/step-lay/step.css create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/step-lay/step.js create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/tableSelect/tableSelect.js create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/treetable-lay/treetable.css create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/treetable-lay/treetable.js create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/wangEditor/fonts/w-e-icon.woff create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/wangEditor/wangEditor.css create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/wangEditor/wangEditor.js create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/wangEditor/wangEditor.min.css create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/wangEditor/wangEditor.min.js create mode 100644 novel-admin/src/main/resources/static/layuimini/js/lay-module/wangEditor/wangEditor.min.js.map create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/HELP-US-OUT.txt create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/css/font-awesome.css create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/css/font-awesome.min.css create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/fonts/FontAwesome.otf create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.eot create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.svg create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/animated.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/bordered-pulled.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/core.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/fixed-width.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/font-awesome.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/icons.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/larger.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/list.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/mixins.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/path.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/rotated-flipped.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/screen-reader.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/stacked.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/less/variables.less create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_animated.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_bordered-pulled.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_core.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_fixed-width.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_icons.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_larger.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_list.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_mixins.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_path.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_rotated-flipped.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_screen-reader.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_stacked.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/_variables.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/font-awesome-4.7.0/scss/font-awesome.scss create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/jq-module/jquery.particleground.min.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/jq-module/paigusu.min.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/jq-module/zyupload/zyupload-1.0.0.min.css create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/jq-module/zyupload/zyupload-1.0.0.min.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/jquery-3.4.1/jquery-3.4.1.min.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/css/layui.css create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/css/layui.mobile.css create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/css/modules/code.css create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/css/modules/laydate/default/laydate.css create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/css/modules/layer/default/icon-ext.png create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/css/modules/layer/default/icon.png create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/css/modules/layer/default/layer.css create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/css/modules/layer/default/loading-0.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/css/modules/layer/default/loading-1.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/css/modules/layer/default/loading-2.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/font/iconfont.eot create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/font/iconfont.svg create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/font/iconfont.ttf create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/font/iconfont.woff create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/font/iconfont.woff2 create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/0.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/1.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/10.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/11.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/12.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/13.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/14.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/15.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/16.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/17.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/18.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/19.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/2.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/20.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/21.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/22.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/23.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/24.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/25.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/26.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/27.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/28.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/29.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/3.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/30.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/31.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/32.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/33.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/34.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/35.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/36.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/37.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/38.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/39.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/4.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/40.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/41.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/42.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/43.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/44.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/45.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/46.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/47.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/48.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/49.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/5.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/50.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/51.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/52.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/53.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/54.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/55.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/56.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/57.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/58.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/59.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/6.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/60.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/61.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/62.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/63.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/64.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/65.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/66.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/67.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/68.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/69.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/7.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/70.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/71.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/8.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/images/face/9.gif create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/carousel.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/code.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/colorpicker.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/element.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/flow.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/form.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/jquery.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/laydate.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/layedit.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/layer.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/laypage.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/laytpl.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/mobile.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/rate.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/slider.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/table.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/transfer.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/tree.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/upload.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/util.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/layui.all.js create mode 100644 novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/layui.js create mode 100644 novel-admin/src/main/resources/static/sql/system/dataPerm/menu.js create mode 100644 novel-admin/src/main/resources/static/sql/system/order/menu.js create mode 100644 novel-admin/src/main/resources/static/sql/system/roleDataPerm/menu.js create mode 100644 novel-admin/src/main/resources/static/sql/test/order/menu.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/.eslintignore create mode 100644 novel-admin/src/main/resources/static/wangEditor/.eslintrc.json create mode 100644 novel-admin/src/main/resources/static/wangEditor/.gitattributes create mode 100644 novel-admin/src/main/resources/static/wangEditor/.gitignore create mode 100644 novel-admin/src/main/resources/static/wangEditor/.npmignore create mode 100644 novel-admin/src/main/resources/static/wangEditor/ISSUE.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/LICENSE create mode 100644 novel-admin/src/main/resources/static/wangEditor/README.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/bower.json create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/dev/README.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/01-demo.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/02-use-module.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/03-sperate.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/04-multi.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/01-set-content.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/02-get-content.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/03-use-textarea.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/04-get-json.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/01-menu.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/02-debug.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/03-onchange.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/04-z-index.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/05-lang.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/06-paste.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/07-linkImgCallback.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/08-linkCheck.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/09-onfocus.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/10-onblur.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/11-linkImgCheck.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/12-colors.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/13-emot.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/01-show-tab.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/02-base64.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/03-upload-config.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/04-qiniu.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/01-全屏-预览-查看源码.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/02-上传附件.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/03-markdown.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/04-xss.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/05-react.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/06-vue.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/07-ng.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/08-api.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/docs/usage/README.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/README.md create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/package.json create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/public/favicon.ico create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/public/index.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/public/manifest.json create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.css create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.test.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/index.css create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/logo.svg create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/registerServiceWorker.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.babelrc create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.editorconfig create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.postcssrc.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/build.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/check-versions.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/dev-client.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/dev-server.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/utils.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/vue-loader.conf.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.base.conf.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.dev.conf.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.prod.conf.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/dev.env.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/prod.env.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/index.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/package.json create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/App.vue create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/assets/logo.png create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/components/Editor.vue create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/components/Hello.vue create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/main.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/static/.gitkeep create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-amd-main.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-amd.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-css-reset.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-emot.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-fullscreen.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-get-content.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-getJSON.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-lang.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-menus.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-mult.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-onblur.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-onchange.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-onfocus.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-paste.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-set-content.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-sperate.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-textarea.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/demo/test-uploadimg.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/favicon.ico create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/icomoon/Read Me.txt create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/icomoon/demo-files/demo.css create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/icomoon/demo-files/demo.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/icomoon/demo.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.eot create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.svg create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.ttf create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.woff create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/icomoon/selection.json create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/icomoon/style.css create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/index.html create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/pay.png create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/server/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/example/server/util.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/gulpfile.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/package.json create mode 100644 novel-admin/src/main/resources/static/wangEditor/release/fonts/w-e-icon.woff create mode 100644 novel-admin/src/main/resources/static/wangEditor/release/wangEditor.css create mode 100644 novel-admin/src/main/resources/static/wangEditor/release/wangEditor.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/release/wangEditor.min.css create mode 100644 novel-admin/src/main/resources/static/wangEditor/release/wangEditor.min.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/release/wangEditor.min.js.map create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/fonts/w-e-icon.woff create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/.babelrc create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/command/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/config.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/editor/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/editor/upload/progress.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/editor/upload/upload-img.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/backColor/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/bold/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/code/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/droplist.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/emoticon/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/foreColor/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/head/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/img/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/italic/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/justify/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/link/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/list/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/menu-list.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/panel.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/quote/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/redo/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/strikethrough/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/table/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/underline/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/undo/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/menus/video/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/selection/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/text/index.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/util/dom-core.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/util/paste-handle.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/util/poly-fill.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/util/replace-lang.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/js/util/util.js create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/less/common.less create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/less/droplist.less create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/less/icon.less create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/less/menus.less create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/less/panel.less create mode 100644 novel-admin/src/main/resources/static/wangEditor/src/less/text.less create mode 100644 novel-admin/src/main/resources/templates/common/dict/add.html create mode 100644 novel-admin/src/main/resources/templates/common/dict/dict.html create mode 100644 novel-admin/src/main/resources/templates/common/dict/edit.html create mode 100644 novel-admin/src/main/resources/templates/common/file/file.html create mode 100644 novel-admin/src/main/resources/templates/common/genColumns/add.html create mode 100644 novel-admin/src/main/resources/templates/common/genColumns/detail.html create mode 100644 novel-admin/src/main/resources/templates/common/genColumns/edit.html create mode 100644 novel-admin/src/main/resources/templates/common/genColumns/genColumns.html create mode 100644 novel-admin/src/main/resources/templates/common/generator/Controller.java.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/Dao.java.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/Mapper.java.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/Mapper.xml.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/Service.java.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/ServiceImpl.java.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/add.html.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/add.js.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/detail.html.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/domain.java.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/edit.html create mode 100644 novel-admin/src/main/resources/templates/common/generator/edit.html.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/edit.js.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/list.html create mode 100644 novel-admin/src/main/resources/templates/common/generator/list.html.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/list.js.vm create mode 100644 novel-admin/src/main/resources/templates/common/generator/menu.sql.vm create mode 100644 novel-admin/src/main/resources/templates/common/log/log.html create mode 100644 novel-admin/src/main/resources/templates/error/403.html create mode 100644 novel-admin/src/main/resources/templates/error/404.html create mode 100644 novel-admin/src/main/resources/templates/error/500.html create mode 100644 novel-admin/src/main/resources/templates/error/error.html create mode 100644 novel-admin/src/main/resources/templates/include.html create mode 100644 novel-admin/src/main/resources/templates/index.html create mode 100644 novel-admin/src/main/resources/templates/login.html create mode 100644 novel-admin/src/main/resources/templates/main.html create mode 100644 novel-admin/src/main/resources/templates/system/dataPerm/add.html create mode 100644 novel-admin/src/main/resources/templates/system/dataPerm/dataPerm.html create mode 100644 novel-admin/src/main/resources/templates/system/dataPerm/detail.html create mode 100644 novel-admin/src/main/resources/templates/system/dataPerm/edit.html create mode 100644 novel-admin/src/main/resources/templates/system/dept/add.html create mode 100644 novel-admin/src/main/resources/templates/system/dept/dept.html create mode 100644 novel-admin/src/main/resources/templates/system/dept/deptTree.html create mode 100644 novel-admin/src/main/resources/templates/system/dept/edit.html create mode 100644 novel-admin/src/main/resources/templates/system/menu/add.html create mode 100644 novel-admin/src/main/resources/templates/system/menu/edit.html create mode 100644 novel-admin/src/main/resources/templates/system/menu/menu.html create mode 100644 novel-admin/src/main/resources/templates/system/online/online.html create mode 100644 novel-admin/src/main/resources/templates/system/role/add.html create mode 100644 novel-admin/src/main/resources/templates/system/role/edit.html create mode 100644 novel-admin/src/main/resources/templates/system/role/role.html create mode 100644 novel-admin/src/main/resources/templates/system/roleDataPerm/add.html create mode 100644 novel-admin/src/main/resources/templates/system/roleDataPerm/detail.html create mode 100644 novel-admin/src/main/resources/templates/system/roleDataPerm/edit.html create mode 100644 novel-admin/src/main/resources/templates/system/roleDataPerm/roleDataPerm.html create mode 100644 novel-admin/src/main/resources/templates/system/user/add.html create mode 100644 novel-admin/src/main/resources/templates/system/user/edit.html create mode 100644 novel-admin/src/main/resources/templates/system/user/include.html create mode 100644 novel-admin/src/main/resources/templates/system/user/personal.html create mode 100644 novel-admin/src/main/resources/templates/system/user/reset_pwd.html create mode 100644 novel-admin/src/main/resources/templates/system/user/user.html create mode 100644 novel-admin/src/main/resources/templates/system/user/userTree.html create mode 100644 novel-admin/src/main/resources/templates/test/order/add.html create mode 100644 novel-admin/src/main/resources/templates/test/order/detail.html create mode 100644 novel-admin/src/main/resources/templates/test/order/edit.html create mode 100644 novel-admin/src/main/resources/templates/test/order/order.html create mode 100644 novel-admin/src/test/java/com/java2nb/testDemo/TestDemo.java diff --git a/.gitignore b/.gitignore index ca48c75..47fca9c 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /novel-front/novel-front.iml /novel-crawl/novel-crawl.iml /novel-crawl/target +/novel-admin/target diff --git a/novel-admin/novel-admin.iml b/novel-admin/novel-admin.iml new file mode 100644 index 0000000..9efc71a --- /dev/null +++ b/novel-admin/novel-admin.iml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/novel-admin/pom.xml b/novel-admin/pom.xml new file mode 100644 index 0000000..6587b21 --- /dev/null +++ b/novel-admin/pom.xml @@ -0,0 +1,265 @@ + + + 4.0.0 + + com.java2nb + novel-admin + 1.0.0 + jar + + novel-admin + 小说精品屋后台管理 + + + org.springframework.boot + spring-boot-starter-parent + 2.0.1.RELEASE + + + + + UTF-8 + UTF-8 + 1.8 + 1.7 + 5.22.0 + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-aop + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + net.sourceforge.nekohtml + nekohtml + + + + mysql + mysql-connector-java + 8.0.11 + + + org.mybatis + mybatis + 3.4.4 + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 1.1.1 + + + + com.alibaba + druid + 1.0.28 + + + + org.apache.commons + commons-lang3 + 3.6 + + + commons-configuration + commons-configuration + 1.10 + + + commons-io + commons-io + 2.5 + + + + org.apache.shiro + shiro-core + 1.3.2 + + + org.apache.shiro + shiro-spring + 1.3.2 + + + + org.apache.shiro + shiro-ehcache + + + net.sf.ehcache + ehcache-core + + + 1.4.0 + + + com.github.theborakompanioni + thymeleaf-extras-shiro + 2.0.0 + + + + com.alibaba + fastjson + 1.2.31 + + + + org.apache.velocity + velocity + 1.7 + + + org.springframework.boot + spring-boot-starter-cache + + + + + + + + + + + + + + + + + + + + + + + + + + io.springfox + springfox-swagger2 + 2.6.1 + + + io.springfox + springfox-swagger-ui + 2.6.1 + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + redis.clients + jedis + 2.9.0 + + + + + + org.projectlombok + lombok + + + + org.apache.commons + commons-text + 1.4 + + + + + org.springframework.boot + spring-boot-starter-cache + + + net.sf.ehcache + ehcache + + + + + + + + + + + + + + + + + + + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + UTF-8 + + + + + + + nexus_release + release + http://47.106.243.172:8081/nexus/content/repositories/releases/ + + + nexus_snapshots + snapshots + http://47.106.243.172:8081/nexus/content/repositories/snapshots/ + + + diff --git a/novel-admin/src/main/java/com/java2nb/AdminApplication.java b/novel-admin/src/main/java/com/java2nb/AdminApplication.java new file mode 100644 index 0000000..5eb633f --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/AdminApplication.java @@ -0,0 +1,25 @@ +package com.java2nb; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +//关闭SpringSecurity的功能 +@EnableAutoConfiguration(exclude = { + org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class +}) +@EnableTransactionManagement +@ServletComponentScan +@MapperScan("com.java2nb.*.dao") +@SpringBootApplication +@EnableCaching +public class AdminApplication { + public static void main(String[] args) { + SpringApplication.run(AdminApplication.class, args); + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/annotation/Log.java b/novel-admin/src/main/java/com/java2nb/common/annotation/Log.java new file mode 100644 index 0000000..b2985b1 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/annotation/Log.java @@ -0,0 +1,12 @@ +package com.java2nb.common.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; +import java.lang.annotation.RetentionPolicy; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Log { + String value() default ""; +} diff --git a/novel-admin/src/main/java/com/java2nb/common/aspect/LogAspect.java b/novel-admin/src/main/java/com/java2nb/common/aspect/LogAspect.java new file mode 100644 index 0000000..6ea0ffc --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/aspect/LogAspect.java @@ -0,0 +1,104 @@ +package com.java2nb.common.aspect; + +import java.lang.reflect.Method; +import java.util.Date; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.http.HttpServletRequest; + +import com.java2nb.common.service.LogService; +import com.java2nb.system.domain.UserToken; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +import com.java2nb.common.annotation.Log; +import com.java2nb.common.dao.LogDao; +import com.java2nb.common.domain.LogDO; +import com.java2nb.common.utils.HttpContextUtils; +import com.java2nb.common.utils.IPUtils; +import com.java2nb.common.utils.JSONUtils; +import com.java2nb.common.utils.ShiroUtils; +import com.java2nb.system.domain.UserDO; + +@Aspect +@Component +public class LogAspect { + private static final Logger logger = LoggerFactory.getLogger(LogAspect.class); + + @Autowired + LogService logService; + + + @Pointcut("@annotation(com.java2nb.common.annotation.Log)") + public void logPointCut() { + } + + @Around("logPointCut()") + public Object around(ProceedingJoinPoint point) throws Throwable { + long beginTime = System.currentTimeMillis(); + // 执行方法 + Object result = point.proceed(); + // 执行时长(毫秒) + long time = System.currentTimeMillis() - beginTime; + //异步保存日志 + saveLog(point, time); + return result; + } + + void saveLog(ProceedingJoinPoint joinPoint, long time) throws InterruptedException { + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); + LogDO sysLog = new LogDO(); + Log syslog = method.getAnnotation(Log.class); + if (syslog != null) { + // 注解上的描述 + sysLog.setOperation(syslog.value()); + } + // 请求的方法名 + String className = joinPoint.getTarget().getClass().getName(); + String methodName = signature.getName(); + sysLog.setMethod(className + "." + methodName + "()"); + // 请求的参数 + Object[] args = joinPoint.getArgs(); + try { + String params = JSONUtils.beanToJson(args[0]).substring(0, 4999); + sysLog.setParams(params); + } catch (Exception e) { + + } + // 获取request + HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); + // 设置IP地址 + sysLog.setIp(IPUtils.getIpAddr(request)); + // 用户名 + UserDO currUser = ShiroUtils.getUser(); + if (null == currUser) { + if (null != sysLog.getParams()) { + sysLog.setUserId(-1L); + sysLog.setUsername(sysLog.getParams()); + } else { + sysLog.setUserId(-1L); + sysLog.setUsername("获取用户信息为空"); + } + } else { + sysLog.setUserId(ShiroUtils.getUserId()); + sysLog.setUsername(ShiroUtils.getUser().getUsername()); + } + sysLog.setTime((int) time); + // 系统当前时间 + Date date = new Date(); + sysLog.setGmtCreate(date); + // 保存系统日志 + logService.save(sysLog); + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/aspect/WebLogAspect.java b/novel-admin/src/main/java/com/java2nb/common/aspect/WebLogAspect.java new file mode 100644 index 0000000..889fdb6 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/aspect/WebLogAspect.java @@ -0,0 +1,61 @@ +package com.java2nb.common.aspect; + +import com.java2nb.common.utils.HttpContextUtils; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.*; +import org.aspectj.lang.reflect.MethodSignature; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import sun.net.util.IPAddressUtil; + +import javax.servlet.http.HttpServletRequest; +import java.lang.reflect.Method; +import java.util.Arrays; + +@Aspect +@Component +public class WebLogAspect { + + private static final Logger logger = LoggerFactory.getLogger(WebLogAspect.class); + + @Pointcut("execution( * com.java2nb..controller.*.*(..))")//两个..代表所有子目录,最后括号里的两个..代表所有参数 + public void logPointCut() { + } + + + @Before("logPointCut()") + public void doBefore(JoinPoint joinPoint) throws Throwable { + // 接收到请求,记录请求内容 + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + + // 记录下请求内容 + logger.info("请求地址 : " + request.getRequestURL().toString()); + logger.info("HTTP METHOD : " + request.getMethod()); + // 获取真实的ip地址 + //logger.info("IP : " + IPAddressUtil.getClientIpAddress(request)); + logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + + joinPoint.getSignature().getName()); + logger.info("参数 : " + Arrays.toString(joinPoint.getArgs())); +// loggger.info("参数 : " + joinPoint.getArgs()); + + } + + @AfterReturning(returning = "ret", pointcut = "logPointCut()")// returning的值和doAfterReturning的参数名一致 + public void doAfterReturning(Object ret) throws Throwable { + // 处理完请求,返回内容(返回值太复杂时,打印的是物理存储空间的地址) + logger.debug("返回值 : " + ret); + } + + @Around("logPointCut()") + public Object doAround(ProceedingJoinPoint pjp) throws Throwable { + long startTime = System.currentTimeMillis(); + Object ob = pjp.proceed();// ob 为方法的返回值 + logger.info("耗时 : " + (System.currentTimeMillis() - startTime)); + return ob; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/config/ApplicationContextRegister.java b/novel-admin/src/main/java/com/java2nb/common/config/ApplicationContextRegister.java new file mode 100644 index 0000000..0b699fa --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/ApplicationContextRegister.java @@ -0,0 +1,50 @@ +package com.java2nb.common.config; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * + * @author xiongxy + * @date 2019-09-25 15:09:21 + *

+ * Email 122741482@qq.com + *

+ * Describe: + */ +@Component +public class ApplicationContextRegister implements ApplicationContextAware { + private static Logger logger = LoggerFactory.getLogger(ApplicationContextRegister.class); + private static ApplicationContext APPLICATION_CONTEXT; + /** + * 设置spring上下文 + * @param applicationContext spring上下文 + * @throws BeansException + * */ + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + logger.debug("ApplicationContext registed-->{}", applicationContext); + APPLICATION_CONTEXT = applicationContext; + } + + /** + * 获取容器 + * @return + */ + public static ApplicationContext getApplicationContext() { + return APPLICATION_CONTEXT; + } + + /** + * 获取容器对象 + * @param type + * @param + * @return + */ + public static T getBean(Class type) { + return APPLICATION_CONTEXT.getBean(type); + } +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/config/BDSessionListener.java b/novel-admin/src/main/java/com/java2nb/common/config/BDSessionListener.java new file mode 100644 index 0000000..2351af7 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/BDSessionListener.java @@ -0,0 +1,32 @@ +package com.java2nb.common.config; + +import java.util.concurrent.atomic.AtomicInteger; + +import org.apache.shiro.session.Session; +import org.apache.shiro.session.SessionListener; + +public class BDSessionListener implements SessionListener { + + private final AtomicInteger sessionCount = new AtomicInteger(0); + + @Override + public void onStart(Session session) { + sessionCount.incrementAndGet(); + } + + @Override + public void onStop(Session session) { + sessionCount.decrementAndGet(); + } + + @Override + public void onExpiration(Session session) { + sessionCount.decrementAndGet(); + + } + + public int getSessionCount() { + return sessionCount.get(); + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/config/Constant.java b/novel-admin/src/main/java/com/java2nb/common/config/Constant.java new file mode 100644 index 0000000..fe8a3bc --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/Constant.java @@ -0,0 +1,24 @@ +package com.java2nb.common.config; + +public class Constant { + //演示系统账户 + public static String DEMO_ACCOUNT = "test"; + //自动去除表前缀 + public static String AUTO_REOMVE_PRE = "true"; + //停止计划任务 + public static String STATUS_RUNNING_STOP = "stop"; + //开启计划任务 + public static String STATUS_RUNNING_START = "start"; + //通知公告阅读状态-未读 + public static String OA_NOTIFY_READ_NO = "0"; + //通知公告阅读状态-已读 + public static int OA_NOTIFY_READ_YES = 1; + //部门根节点id + public static Long DEPT_ROOT_ID = 0l; + //缓存方式 + public static String CACHE_TYPE_REDIS ="redis"; + + public static String LOG_ERROR = "error"; + + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/config/DateConverConfig.java b/novel-admin/src/main/java/com/java2nb/common/config/DateConverConfig.java new file mode 100644 index 0000000..820b645 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/DateConverConfig.java @@ -0,0 +1,40 @@ +package com.java2nb.common.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.converter.Converter; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.zip.DataFormatException; + +/** + * @author xiongxy + * @date 2019-09-25 15:09:21 + */ +@Configuration +public class DateConverConfig { + @Bean + public Converter stringDateConvert() { + return new Converter() { + @Override + public Date convert(String source) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = null; + try { + date = sdf.parse((String) source); + } catch (Exception e) { + SimpleDateFormat sdfday = new SimpleDateFormat("yyyy-MM-dd"); + try { + date = sdfday.parse((String) source); + } catch (ParseException e1) { + e1.printStackTrace(); + } + } + return date; + } + }; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/config/DruidDBConfig.java b/novel-admin/src/main/java/com/java2nb/common/config/DruidDBConfig.java new file mode 100644 index 0000000..92a2383 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/DruidDBConfig.java @@ -0,0 +1,132 @@ +package com.java2nb.common.config; +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.support.http.StatViewServlet; +import com.alibaba.druid.support.http.WebStatFilter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; + +import javax.sql.DataSource; +import java.sql.SQLException; + +/** + * Created by PrimaryKey on 17/2/4. + */ +@SuppressWarnings("AlibabaRemoveCommentedCode") +@Configuration +public class DruidDBConfig { + private Logger logger = LoggerFactory.getLogger(DruidDBConfig.class); + @Value("${spring.datasource.url}") + private String dbUrl; + + @Value("${spring.datasource.username}") + private String username; + + @Value("${spring.datasource.password}") + private String password; + + @Value("${spring.datasource.driverClassName}") + private String driverClassName; + + @Value("${spring.datasource.initialSize}") + private int initialSize; + + @Value("${spring.datasource.minIdle}") + private int minIdle; + + @Value("${spring.datasource.maxActive}") + private int maxActive; + + @Value("${spring.datasource.maxWait}") + private int maxWait; + + @Value("${spring.datasource.timeBetweenEvictionRunsMillis}") + private int timeBetweenEvictionRunsMillis; + + @Value("${spring.datasource.minEvictableIdleTimeMillis}") + private int minEvictableIdleTimeMillis; + + @Value("${spring.datasource.validationQuery}") + private String validationQuery; + + @Value("${spring.datasource.testWhileIdle}") + private boolean testWhileIdle; + + @Value("${spring.datasource.testOnBorrow}") + private boolean testOnBorrow; + + @Value("${spring.datasource.testOnReturn}") + private boolean testOnReturn; + + @Value("${spring.datasource.poolPreparedStatements}") + private boolean poolPreparedStatements; + + @Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize}") + private int maxPoolPreparedStatementPerConnectionSize; + + @Value("${spring.datasource.filters}") + private String filters; + + @Value("{spring.datasource.connectionProperties}") + private String connectionProperties; + + @Bean(initMethod = "init", destroyMethod = "close") //声明其为Bean实例 + @Primary //在同样的DataSource中,首先使用被标注的DataSource + public DataSource dataSource() { + DruidDataSource datasource = new DruidDataSource(); + + datasource.setUrl(this.dbUrl); + datasource.setUsername(username); + datasource.setPassword(password); + datasource.setDriverClassName(driverClassName); + + //configuration + datasource.setInitialSize(initialSize); + datasource.setMinIdle(minIdle); + datasource.setMaxActive(maxActive); + datasource.setMaxWait(maxWait); + datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); + datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); + datasource.setValidationQuery(validationQuery); + datasource.setTestWhileIdle(testWhileIdle); + datasource.setTestOnBorrow(testOnBorrow); + datasource.setTestOnReturn(testOnReturn); + datasource.setPoolPreparedStatements(poolPreparedStatements); + datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize); + try { + datasource.setFilters(filters); + } catch (SQLException e) { + logger.error("druid configuration initialization filter", e); + } + datasource.setConnectionProperties(connectionProperties); + + return datasource; + } + + @Bean + public ServletRegistrationBean druidServlet() { + ServletRegistrationBean reg = new ServletRegistrationBean(); + reg.setServlet(new StatViewServlet()); + reg.addUrlMappings("/druid/*"); + reg.addInitParameter("allow", ""); //白名单 + return reg; + } + + @Bean public FilterRegistrationBean filterRegistrationBean() { + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); + filterRegistrationBean.setFilter(new WebStatFilter()); + filterRegistrationBean.addUrlPatterns("/*"); + filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); + filterRegistrationBean.addInitParameter("profileEnable", "true"); + filterRegistrationBean.addInitParameter("principalCookieName","USER_COOKIE"); + filterRegistrationBean.addInitParameter("principalSessionName","USER_SESSION"); + filterRegistrationBean.addInitParameter("DruidWebStatFilter","/*"); + return filterRegistrationBean; + } +} + diff --git a/novel-admin/src/main/java/com/java2nb/common/config/JnConfig.java b/novel-admin/src/main/java/com/java2nb/common/config/JnConfig.java new file mode 100644 index 0000000..797ec30 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/JnConfig.java @@ -0,0 +1,39 @@ +package com.java2nb.common.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@ConfigurationProperties(prefix="java2nb") +public class JnConfig { + //上传路径 + private String uploadPath; + + private String username; + + private String password; + + public String getUploadPath() { + return uploadPath; + } + + public void setUploadPath(String uploadPath) { + this.uploadPath = uploadPath; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/config/RedisConfig.java b/novel-admin/src/main/java/com/java2nb/common/config/RedisConfig.java new file mode 100644 index 0000000..c5a0c10 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/RedisConfig.java @@ -0,0 +1,82 @@ +package com.java2nb.common.config; + + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +@Configuration +public class RedisConfig { + + + @Bean + @SuppressWarnings("all") + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + + + RedisTemplate template = new RedisTemplate(); + + + template.setConnectionFactory(factory); + + + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); + + + ObjectMapper om = new ObjectMapper(); + + + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + + + om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + + + jackson2JsonRedisSerializer.setObjectMapper(om); + + + StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); + + + // key采用String的序列化方式 + + + template.setKeySerializer(stringRedisSerializer); + + + // hash的key也采用String的序列化方式 + + + template.setHashKeySerializer(stringRedisSerializer); + + + // value序列化方式采用jackson + + + template.setValueSerializer(jackson2JsonRedisSerializer); + + + // hash的value序列化方式采用jackson + + + template.setHashValueSerializer(jackson2JsonRedisSerializer); + + + template.afterPropertiesSet(); + + + return template; + + + } + + +} + + diff --git a/novel-admin/src/main/java/com/java2nb/common/config/SecuityConfig.java b/novel-admin/src/main/java/com/java2nb/common/config/SecuityConfig.java new file mode 100644 index 0000000..fbed75a --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/SecuityConfig.java @@ -0,0 +1,13 @@ +package com.java2nb.common.config; + +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.context.annotation.Configuration; + +@EnableAutoConfiguration(exclude = { + org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class +}) +@Configuration +public class SecuityConfig { + + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/config/ShiroConfig.java b/novel-admin/src/main/java/com/java2nb/common/config/ShiroConfig.java new file mode 100644 index 0000000..bc2a8f7 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/ShiroConfig.java @@ -0,0 +1,203 @@ +package com.java2nb.common.config; + +import at.pollux.thymeleaf.shiro.dialect.ShiroDialect; +import com.java2nb.common.redis.shiro.RedisCacheManager; +import com.java2nb.common.redis.shiro.RedisManager; +import com.java2nb.common.redis.shiro.RedisSessionDAO; +import com.java2nb.system.shiro.UserRealm; +import net.sf.ehcache.CacheManager; +import org.apache.shiro.cache.ehcache.EhCacheManager; +import org.apache.shiro.mgt.SecurityManager; +import org.apache.shiro.session.SessionListener; +import org.apache.shiro.session.mgt.eis.MemorySessionDAO; +import org.apache.shiro.session.mgt.eis.SessionDAO; +import org.apache.shiro.spring.LifecycleBeanPostProcessor; +import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; +import org.apache.shiro.spring.web.ShiroFilterFactoryBean; +import org.apache.shiro.web.mgt.DefaultWebSecurityManager; +import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; + +/** + * @author xiongxy + */ +@Configuration +public class ShiroConfig { + @Value("${spring.redis.host}") + private String host; + @Value("${spring.redis.password}") + private String password; + @Value("${spring.redis.port}") + private int port; + @Value("${spring.redis.timeout}") + private int timeout; + + @Value("${spring.cache.type}") + private String cacheType ; + + @Value("${server.session-timeout}") + private int tomcatTimeout; + + @Bean + public static LifecycleBeanPostProcessor getLifecycleBeanPostProcessor() { + return new LifecycleBeanPostProcessor(); + } + + /** + * ShiroDialect,为了在thymeleaf里使用shiro的标签的bean + * + * @return + */ + @Bean + public ShiroDialect shiroDialect() { + return new ShiroDialect(); + } + + @Bean + ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) { + ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); + shiroFilterFactoryBean.setSecurityManager(securityManager); + shiroFilterFactoryBean.setLoginUrl("/login"); + shiroFilterFactoryBean.setSuccessUrl("/index"); + shiroFilterFactoryBean.setUnauthorizedUrl("/403"); + LinkedHashMap filterChainDefinitionMap = new LinkedHashMap<>(); + filterChainDefinitionMap.put("/login","anon"); + filterChainDefinitionMap.put("/getVerify","anon"); + filterChainDefinitionMap.put("/css/**", "anon"); + filterChainDefinitionMap.put("/js/**", "anon"); + filterChainDefinitionMap.put("/fonts/**", "anon"); + filterChainDefinitionMap.put("/img/**", "anon"); + filterChainDefinitionMap.put("/docs/**", "anon"); + filterChainDefinitionMap.put("/layuimini/**", "anon"); + filterChainDefinitionMap.put("/druid/**", "anon"); + filterChainDefinitionMap.put("/upload/**", "anon"); + filterChainDefinitionMap.put("/files/**", "anon"); + filterChainDefinitionMap.put("/logout", "logout"); + filterChainDefinitionMap.put("/blog", "anon"); + filterChainDefinitionMap.put("/blog/open/**", "anon"); + filterChainDefinitionMap.put("/**", "authc"); + shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); + return shiroFilterFactoryBean; + } + + + @Bean + public SecurityManager securityManager() { + DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); + //设置realm. + securityManager.setRealm(userRealm()); + // 自定义缓存实现 使用redis + if (Constant.CACHE_TYPE_REDIS.equals(cacheType)) { + securityManager.setCacheManager(rediscacheManager()); + } else { + securityManager.setCacheManager(ehCacheManager()); + } + securityManager.setSessionManager(sessionManager()); + return securityManager; + } + + @Bean + UserRealm userRealm() { + UserRealm userRealm = new UserRealm(); + return userRealm; + } + + /** + * 开启shiro aop注解支持. + * 使用代理方式;所以需要开启代码支持; + * + * @param securityManager + * @return + */ + @Bean + public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) { + AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor(); + authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); + return authorizationAttributeSourceAdvisor; + } + + /** + * 配置shiro redisManager + * + * @return + */ + @Bean + public RedisManager redisManager() { + RedisManager redisManager = new RedisManager(); + redisManager.setHost(host); + redisManager.setPort(port); + redisManager.setExpire(1800);// 配置缓存过期时间 + //redisManager.setTimeout(1800); + redisManager.setPassword(password); + return redisManager; + } + + /** + * cacheManager 缓存 redis实现 + * 使用的是shiro-redis开源插件 + * + * @return + */ + public RedisCacheManager rediscacheManager() { + RedisCacheManager redisCacheManager = new RedisCacheManager(); + redisCacheManager.setRedisManager(redisManager()); + return redisCacheManager; + } + + + /** + * RedisSessionDAO shiro sessionDao层的实现 通过redis + * 使用的是shiro-redis开源插件 + */ + @Bean + public RedisSessionDAO redisSessionDAO() { + RedisSessionDAO redisSessionDAO = new RedisSessionDAO(); + redisSessionDAO.setRedisManager(redisManager()); + return redisSessionDAO; + } + + @Bean + public SessionDAO sessionDAO() { + if (Constant.CACHE_TYPE_REDIS.equals(cacheType)) { + return redisSessionDAO(); + } else { + return new MemorySessionDAO(); + } + } + + /** + * shiro session的管理 + */ + @Bean + public DefaultWebSessionManager sessionManager() { + DefaultWebSessionManager sessionManager = new DefaultWebSessionManager(); + sessionManager.setGlobalSessionTimeout(tomcatTimeout * 1000); + sessionManager.setSessionDAO(sessionDAO()); + Collection listeners = new ArrayList(); + listeners.add(new BDSessionListener()); + sessionManager.setSessionListeners(listeners); + return sessionManager; + } + + @Bean + public EhCacheManager ehCacheManager() { + EhCacheManager em = new EhCacheManager(); + em.setCacheManager(cacheManager()); + return em; + } + + @Bean("cacheManager2") + CacheManager cacheManager(){ + return CacheManager.create(); + } + + + + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/config/SpringAsyncConfig.java b/novel-admin/src/main/java/com/java2nb/common/config/SpringAsyncConfig.java new file mode 100644 index 0000000..2f883b0 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/SpringAsyncConfig.java @@ -0,0 +1,23 @@ +package com.java2nb.common.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.task.AsyncTaskExecutor; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +@Configuration +@EnableAsync +public class SpringAsyncConfig { +// @Bean +// public AsyncTaskExecutor taskExecutor() { +// ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); +// executor.setMaxPoolSize(10); +// return executor; +// } +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/config/Swagger2Config.java b/novel-admin/src/main/java/com/java2nb/common/config/Swagger2Config.java new file mode 100644 index 0000000..90b912c --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/Swagger2Config.java @@ -0,0 +1,48 @@ +package com.java2nb.common.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +/** + * ${DESCRIPTION} + * + * @author xiongxy + * @create 2019-11-02 23:53 + */ +@EnableSwagger2 +@Configuration +public class Swagger2Config { + + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + //为当前包路径 + .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.any()) + .build(); + } + + //构建 api文档的详细信息函数 + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + //页面标题 + .title("功能测试") + //创建人 + .contact(new Contact("xiongxy", "1179705413@qq.com", "1179705413@qq.com")) + //版本号 + .version("1.0") + //描述 + .description("API 描述") + .build(); + } +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/config/WebConfigurer.java b/novel-admin/src/main/java/com/java2nb/common/config/WebConfigurer.java new file mode 100644 index 0000000..6e65e53 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/config/WebConfigurer.java @@ -0,0 +1,17 @@ +package com.java2nb.common.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Component +class WebConfigurer extends WebMvcConfigurerAdapter { + @Autowired + JnConfig jnConfig; + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/files/**").addResourceLocations("file:///"+ jnConfig.getUploadPath()); + } + +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/controller/BaseController.java b/novel-admin/src/main/java/com/java2nb/common/controller/BaseController.java new file mode 100644 index 0000000..59b9129 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/controller/BaseController.java @@ -0,0 +1,21 @@ +package com.java2nb.common.controller; + +import com.java2nb.system.domain.UserToken; +import org.springframework.stereotype.Controller; +import com.java2nb.common.utils.ShiroUtils; +import com.java2nb.system.domain.UserDO; + +@Controller +public class BaseController { + public UserDO getUser() { + return ShiroUtils.getUser(); + } + + public Long getUserId() { + return getUser().getUserId(); + } + + public String getUsername() { + return getUser().getUsername(); + } +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/controller/DictController.java b/novel-admin/src/main/java/com/java2nb/common/controller/DictController.java new file mode 100644 index 0000000..3a91fac --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/controller/DictController.java @@ -0,0 +1,148 @@ +package com.java2nb.common.controller; + +import com.java2nb.common.config.Constant; +import com.java2nb.common.domain.DictDO; +import com.java2nb.common.service.DictService; +import com.java2nb.common.utils.PageBean; +import com.java2nb.common.utils.Query; +import com.java2nb.common.utils.R; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 字典表 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-09-29 18:28:07 + */ + +@Controller +@RequestMapping("/common/dict") +public class DictController extends BaseController { + @Autowired + private DictService dictService; + + @GetMapping() + @RequiresPermissions("common:dict:dict") + String dict() { + return "common/dict/dict"; + } + + @ResponseBody + @GetMapping("/list") + @RequiresPermissions("common:dict:dict") + public PageBean list(@RequestParam Map params) { + // 查询列表数据 + Query query = new Query(params); + List dictList = dictService.list(query); + int total = dictService.count(query); + PageBean pageBean = new PageBean(dictList, total); + return pageBean; + } + + @GetMapping("/add") + @RequiresPermissions("common:dict:add") + String add() { + return "common/dict/add"; + } + + @GetMapping("/edit/{id}") + @RequiresPermissions("common:dict:edit") + String edit(@PathVariable("id") Long id, Model model) { + DictDO dict = dictService.get(id); + model.addAttribute("dict", dict); + return "common/dict/edit"; + } + + /** + * 保存 + */ + @ResponseBody + @PostMapping("/save") + @RequiresPermissions("common:dict:add") + public R save(DictDO dict) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (dictService.save(dict) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 修改 + */ + @ResponseBody + @RequestMapping("/update") + @RequiresPermissions("common:dict:edit") + public R update(DictDO dict) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + dictService.update(dict); + return R.ok(); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ResponseBody + @RequiresPermissions("common:dict:remove") + public R remove(Long id) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (dictService.remove(id) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 删除 + */ + @PostMapping("/batchRemove") + @ResponseBody + @RequiresPermissions("common:dict:batchRemove") + public R remove(@RequestParam("ids[]") Long[] ids) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + dictService.batchRemove(ids); + return R.ok(); + } + + @GetMapping("/type") + @ResponseBody + public List listType() { + return dictService.listType(); + }; + + // 类别已经指定增加 + @GetMapping("/add/{type}/{description}") + @RequiresPermissions("common:dict:add") + String addD(Model model, @PathVariable("type") String type, @PathVariable("description") String description) { + model.addAttribute("type", type); + model.addAttribute("description", description); + return "common/dict/add"; + } + + @ResponseBody + @GetMapping("/list/{type}") + public List listByType(@PathVariable("type") String type) { + // 查询列表数据 + Map map = new HashMap<>(16); + map.put("type", type); + List dictList = dictService.list(map); + return dictList; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/controller/FileController.java b/novel-admin/src/main/java/com/java2nb/common/controller/FileController.java new file mode 100644 index 0000000..363dfe7 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/controller/FileController.java @@ -0,0 +1,196 @@ +package com.java2nb.common.controller; + +import com.java2nb.common.config.JnConfig; +import com.java2nb.common.domain.FileDO; +import com.java2nb.common.service.FileService; +import com.java2nb.common.utils.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.*; +import java.net.URLEncoder; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 文件上传 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-09-19 16:02:20 + */ +@Controller +@RequestMapping("/common/sysFile") +public class FileController extends BaseController { + + @Autowired + private FileService sysFileService; + + @Autowired + private JnConfig jnConfig; + + @GetMapping() + @RequiresPermissions("common:sysFile:sysFile") + String sysFile(Model model) { + Map params = new HashMap<>(16); + return "common/file/file"; + } + + @ResponseBody + @GetMapping("/list") + @RequiresPermissions("common:sysFile:sysFile") + public PageBean list(@RequestParam Map params) { + // 查询列表数据 + Query query = new Query(params); + List sysFileList = sysFileService.list(query); + int total = sysFileService.count(query); + PageBean pageBean = new PageBean(sysFileList, total); + return pageBean; + } + + @GetMapping("/add") + // @RequiresPermissions("common:bComments") + String add() { + return "common/sysFile/add"; + } + + @GetMapping("/edit") + // @RequiresPermissions("common:bComments") + String edit(Long id, Model model) { + FileDO sysFile = sysFileService.get(id); + model.addAttribute("sysFile", sysFile); + return "common/sysFile/edit"; + } + + /** + * 信息 + */ + @RequestMapping("/info/{id}") + @RequiresPermissions("common:info") + public R info(@PathVariable("id") Long id) { + FileDO sysFile = sysFileService.get(id); + return R.ok().put("sysFile", sysFile); + } + + /** + * 保存 + */ + @ResponseBody + @PostMapping("/save") + @RequiresPermissions("common:save") + public R save(FileDO sysFile) { + if (sysFileService.save(sysFile) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 修改 + */ + @RequestMapping("/update") + @RequiresPermissions("common:update") + public R update(@RequestBody FileDO sysFile) { + sysFileService.update(sysFile); + + return R.ok(); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ResponseBody + // @RequiresPermissions("common:remove") + public R remove(Long id, HttpServletRequest request) { + if ("test".equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + String fileName = jnConfig.getUploadPath() + sysFileService.get(id).getUrl().replace("/files/", ""); + if (sysFileService.remove(id) > 0) { + boolean b = FileUtil.deleteFile(fileName); + if (!b) { + return R.error("数据库记录删除成功,文件删除失败"); + } + return R.ok(); + } else { + return R.error(); + } + } + + /** + * 删除 + */ + @PostMapping("/batchRemove") + @ResponseBody + @RequiresPermissions("common:remove") + public R remove(@RequestParam("ids[]") Long[] ids) { + if ("test".equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + sysFileService.batchRemove(ids); + return R.ok(); + } + + @ResponseBody + @PostMapping("/upload") + R upload(@RequestParam("file") MultipartFile file, HttpServletRequest request) { + if ("test".equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + Date date = new Date(); + String year = DateUtils.format(date,DateUtils.YEAR_PATTERN); + String month = DateUtils.format(date,DateUtils.MONTH_PATTERN); + String day = DateUtils.format(date,DateUtils.DAY_PATTERN); + + String fileName = file.getOriginalFilename(); + String fileDir = year+"/"+month+"/"+day + "/"; + fileName = FileUtil.renameToUUID(fileName); + FileDO sysFile = new FileDO(FileType.fileType(fileName), "/files/" + fileDir + fileName, date); + try { + FileUtil.uploadFile(file.getBytes(), jnConfig.getUploadPath()+fileDir, fileName); + } catch (Exception e) { + return R.error(); + } + + if (sysFileService.save(sysFile) > 0) { + return R.ok().put("fileName",sysFile.getUrl()); + } + return R.error(); + } + + /** + * 文件下载 + */ + @RequestMapping(value = "/download") + public void fileDownload(String filePath,String fileName, HttpServletResponse resp) throws Exception { + String realFilePath = jnConfig.getUploadPath() + filePath; + InputStream in = new FileInputStream(realFilePath); + //设置响应头,对文件进行url编码 + fileName = URLEncoder.encode(fileName, "UTF-8"); + resp.setHeader("Content-Disposition", "attachment;filename=" + fileName); + + resp.setContentLength(in.available()); + + OutputStream out = resp.getOutputStream(); + byte[] b = new byte[1024]; + int len = 0; + while ((len = in.read(b)) != -1) { + out.write(b, 0, len); + } + out.flush(); + out.close(); + in.close(); + } + + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/controller/GeneratorController.java b/novel-admin/src/main/java/com/java2nb/common/controller/GeneratorController.java new file mode 100644 index 0000000..9df2efd --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/controller/GeneratorController.java @@ -0,0 +1,157 @@ +package com.java2nb.common.controller; + +import com.alibaba.fastjson.JSON; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.java2nb.common.domain.GenColumnsDO; +import com.java2nb.common.service.GeneratorService; +import com.java2nb.common.utils.GenUtils; +import com.java2nb.common.utils.PageBean; +import com.java2nb.common.utils.R; +import io.swagger.annotations.ApiOperation; +import lombok.SneakyThrows; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.commons.io.IOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RequestMapping("/common/generator") +@Controller +public class GeneratorController { + String prefix = "common/generator"; + @Autowired + GeneratorService generatorService; + + @Autowired + private ObjectMapper objectMapper; + + @GetMapping() + String generator() { + return prefix + "/list"; + } + + @ResponseBody + @GetMapping("/list") + List> list(String tableName) { + List> list = generatorService.list(tableName); + return list; + } + + ; + + @RequestMapping("/downLoadCode/{tableName}") + public void downLoadCode(HttpServletRequest request, HttpServletResponse response, + @PathVariable("tableName") String tableName) throws IOException { + String[] tableNames = new String[]{tableName}; + byte[] data = generatorService.downloadCode(tableNames); + response.reset(); + response.setHeader("Content-Disposition", "attachment; filename=\"java2nb.zip\""); + response.addHeader("Content-Length", "" + data.length); + response.setContentType("application/octet-stream; charset=UTF-8"); + + IOUtils.write(data, response.getOutputStream()); + } + + @ResponseBody + @PostMapping("/genCode") + public R genCode(String tableName) { + String[] tableNames = new String[]{tableName}; + generatorService.generatorCode(tableNames); + return R.ok("代码生成成功,请到本地项目中查看!"); + } + + @RequestMapping("/batchDownload") + public void batchDownload(HttpServletRequest request, HttpServletResponse response, String tables) throws IOException { + String[] tableNames = new String[]{}; + tableNames = JSON.parseArray(tables).toArray(tableNames); + byte[] data = generatorService.downloadCode(tableNames); + response.reset(); + response.setHeader("Content-Disposition", "attachment; filename=\"java2nb.zip\""); + response.addHeader("Content-Length", "" + data.length); + response.setContentType("application/octet-stream; charset=UTF-8"); + + IOUtils.write(data, response.getOutputStream()); + } + + @ResponseBody + @PostMapping("/batchCode") + public R batchCode(String tables) { + String[] tableNames = new String[]{}; + tableNames = JSON.parseArray(tables).toArray(tableNames); + generatorService.generatorCode(tableNames); + return R.ok("代码批量生成成功,请到本地项目中查看!"); + } + + @GetMapping("/edit") + public String edit(Model model) { + Configuration conf = GenUtils.getConfig(); + Map property = new HashMap<>(16); + property.put("author", conf.getProperty("author")); + property.put("email", conf.getProperty("email")); + property.put("package", conf.getProperty("package")); + property.put("autoRemovePre", conf.getProperty("autoRemovePre")); + property.put("tablePrefix", conf.getProperty("tablePrefix")); + property.put("srcPath", conf.getProperty("srcPath")); + model.addAttribute("property", property); + return prefix + "/edit"; + } + + @ResponseBody + @PostMapping("/update") + R update(@RequestParam Map map) { + try { + PropertiesConfiguration conf = new PropertiesConfiguration("generator.properties"); + conf.setProperty("author", map.get("author")); + conf.setProperty("email", map.get("email")); + conf.setProperty("package", map.get("package")); + conf.setProperty("autoRemovePre", map.get("autoRemovePre")); + conf.setProperty("tablePrefix", map.get("tablePrefix")); + conf.setProperty("srcPath", map.get("srcPath")); + conf.save(); + } catch (ConfigurationException e) { + return R.error("保存配置文件出错"); + } + return R.ok(); + } + + @GetMapping("/genColumns") + String genColumns(String tableName, Model model) { + model.addAttribute("tableName", tableName); + return "common/genColumns/genColumns"; + } + + + @ResponseBody + @GetMapping("/genColumns/list") + @SneakyThrows + public R genColumnsList(String tableName) { + List genColumns = generatorService.listColumnsByTableName(tableName); + int total = genColumns.size(); + PageBean pageBean = new PageBean(genColumns, total); + return R.ok().put("data", pageBean); + } + + + /** + * 保存 + */ + @ApiOperation(value = "新增", notes = "新增") + @ResponseBody + @PostMapping("/genColumns/save") + public R save(@RequestBody List list) { + generatorService.genColumnsSave(list); + return R.ok(); + } + + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/controller/LogController.java b/novel-admin/src/main/java/com/java2nb/common/controller/LogController.java new file mode 100644 index 0000000..061ee14 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/controller/LogController.java @@ -0,0 +1,57 @@ +package com.java2nb.common.controller; + +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.java2nb.common.domain.LogDO; +import com.java2nb.common.domain.PageDO; +import com.java2nb.common.service.LogService; +import com.java2nb.common.utils.Query; +import com.java2nb.common.utils.R; + +@RequestMapping("/common/log") +@Controller +public class LogController { + @Autowired + LogService logService; + String prefix = "common/log"; + + @GetMapping() + String log() { + return prefix + "/log"; + } + + @ResponseBody + @GetMapping("/list") + PageDO list(@RequestParam Map params) { + Query query = new Query(params); + PageDO page = logService.queryList(query); + return page; + } + + @ResponseBody + @PostMapping("/remove") + R remove(Long id) { + if (logService.remove(id)>0) { + return R.ok(); + } + return R.error(); + } + + @ResponseBody + @PostMapping("/batchRemove") + R batchRemove(@RequestParam("ids[]") Long[] ids) { + int r = logService.batchRemove(ids); + if (r > 0) { + return R.ok(); + } + return R.error(); + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/dao/DictDao.java b/novel-admin/src/main/java/com/java2nb/common/dao/DictDao.java new file mode 100644 index 0000000..6fab6f6 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/dao/DictDao.java @@ -0,0 +1,35 @@ +package com.java2nb.common.dao; + +import com.java2nb.common.domain.DictDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 字典表 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-10-03 15:45:42 + */ +@Mapper +public interface DictDao { + + DictDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(DictDO dict); + + int update(DictDO dict); + + int remove(Long id); + + int batchRemove(Long[] ids); + + List listType(); +} diff --git a/novel-admin/src/main/java/com/java2nb/common/dao/FileDao.java b/novel-admin/src/main/java/com/java2nb/common/dao/FileDao.java new file mode 100644 index 0000000..2aa5769 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/dao/FileDao.java @@ -0,0 +1,32 @@ +package com.java2nb.common.dao; + +import com.java2nb.common.domain.FileDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 文件上传 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-10-03 15:45:42 + */ +@Mapper +public interface FileDao { + + FileDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(FileDO file); + + int update(FileDO file); + + int remove(Long id); + + int batchRemove(Long[] ids); +} diff --git a/novel-admin/src/main/java/com/java2nb/common/dao/GenColumnsDao.java b/novel-admin/src/main/java/com/java2nb/common/dao/GenColumnsDao.java new file mode 100644 index 0000000..1985bbf --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/dao/GenColumnsDao.java @@ -0,0 +1,38 @@ +package com.java2nb.common.dao; + +import java.util.List; +import java.util.Map; + +import com.java2nb.common.domain.GenColumnsDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-22 10:39:29 + */ +@Mapper +public interface GenColumnsDao { + + + GenColumnsDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(GenColumnsDO genColumns); + + int update(GenColumnsDO genColumns); + + int remove(Long id); + + int batchRemove(Long[] ids); + + + void saveBatch(List list); + + void deleteByTableName(@Param("tableName") String tableName); +} diff --git a/novel-admin/src/main/java/com/java2nb/common/dao/GeneratorMapper.java b/novel-admin/src/main/java/com/java2nb/common/dao/GeneratorMapper.java new file mode 100644 index 0000000..7b360fc --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/dao/GeneratorMapper.java @@ -0,0 +1,28 @@ +package com.java2nb.common.dao; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +public interface GeneratorMapper { + @Select("select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables" + + " where table_schema = (select database()) and table_name like concat('%',#{tableName},'%')") + List> list(@Param("tableName") String tableName); + + @Select("select count(*) from information_schema.tables where table_schema = (select database())") + int count(Map map); + + @Select("select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables \r\n" + + " where table_schema = (select database()) and table_name = #{tableName}") + Map get(String tableName); + + @Select("select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra from information_schema.columns\r\n" + + " where table_name = #{tableName} and table_schema = (select database()) order by ordinal_position") + List> listColumns(String tableName); + + @Select("select column_name columnName, data_type dataType, column_comment columnComment, column_key columnKey, extra from information_schema.columns\r\n" + + " where table_name = #{tableName} and table_schema = (select database()) and column_key = 'PRI' limit 1") + Map getPriColumn(String tableName); +} diff --git a/novel-admin/src/main/java/com/java2nb/common/dao/LogDao.java b/novel-admin/src/main/java/com/java2nb/common/dao/LogDao.java new file mode 100644 index 0000000..e859984 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/dao/LogDao.java @@ -0,0 +1,32 @@ +package com.java2nb.common.dao; + +import com.java2nb.common.domain.LogDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 系统日志 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-10-03 15:45:42 + */ +@Mapper +public interface LogDao { + + LogDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(LogDO log); + + int update(LogDO log); + + int remove(Long id); + + int batchRemove(Long[] ids); +} diff --git a/novel-admin/src/main/java/com/java2nb/common/domain/ColumnDO.java b/novel-admin/src/main/java/com/java2nb/common/domain/ColumnDO.java new file mode 100644 index 0000000..76b1d72 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/domain/ColumnDO.java @@ -0,0 +1,93 @@ +package com.java2nb.common.domain; + +/** + * 列的属性 + * + * + */ +public class ColumnDO { + // 列名 + private String columnName; + // 列名类型 + private String dataType; + // 列名备注 + private String comments; + + // 属性名称(第一个字母大写),如:user_name => UserName + private String attrName; + // 属性名称(第一个字母小写),如:user_name => userName + private String attrname; + // 属性类型 + private String attrType; + // auto_increment + private String extra; + + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public String getComments() { + return comments; + } + + public void setComments(String comments) { + this.comments = comments; + } + + public String getAttrname() { + return attrname; + } + + public void setAttrname(String attrname) { + this.attrname = attrname; + } + + public String getAttrName() { + return attrName; + } + + public void setAttrName(String attrName) { + this.attrName = attrName; + } + + public String getAttrType() { + return attrType; + } + + public void setAttrType(String attrType) { + this.attrType = attrType; + } + + public String getExtra() { + return extra; + } + + public void setExtra(String extra) { + this.extra = extra; + } + + @Override + public String toString() { + return "ColumnDO{" + + "columnName='" + columnName + '\'' + + ", dataType='" + dataType + '\'' + + ", comments='" + comments + '\'' + + ", attrName='" + attrName + '\'' + + ", attrname='" + attrname + '\'' + + ", attrType='" + attrType + '\'' + + ", extra='" + extra + '\'' + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/domain/DictDO.java b/novel-admin/src/main/java/com/java2nb/common/domain/DictDO.java new file mode 100644 index 0000000..547bd23 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/domain/DictDO.java @@ -0,0 +1,221 @@ +package com.java2nb.common.domain; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + + + +/** + * 字典表 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-09-29 18:28:07 + */ +public class DictDO implements Serializable { + private static final long serialVersionUID = 1L; + + //编号 + private Long id; + //标签名 + private String name; + //数据值 + private String value; + //类型 + private String type; + //描述 + private String description; + //排序(升序) + private BigDecimal sort; + //父级编号 + private Long parentId; + //创建者 + private Integer createBy; + //创建时间 + private Date createDate; + //更新者 + private Long updateBy; + //更新时间 + private Date updateDate; + //备注信息 + private String remarks; + //删除标记 + private String delFlag; + + /** + * 设置:编号 + */ + public void setId(Long id) { + this.id = id; + } + /** + * 获取:编号 + */ + public Long getId() { + return id; + } + /** + * 设置:标签名 + */ + public void setName(String name) { + this.name = name; + } + /** + * 获取:标签名 + */ + public String getName() { + return name; + } + /** + * 设置:数据值 + */ + public void setValue(String value) { + this.value = value; + } + /** + * 获取:数据值 + */ + public String getValue() { + return value; + } + /** + * 设置:类型 + */ + public void setType(String type) { + this.type = type; + } + /** + * 获取:类型 + */ + public String getType() { + return type; + } + /** + * 设置:描述 + */ + public void setDescription(String description) { + this.description = description; + } + /** + * 获取:描述 + */ + public String getDescription() { + return description; + } + /** + * 设置:排序(升序) + */ + public void setSort(BigDecimal sort) { + this.sort = sort; + } + /** + * 获取:排序(升序) + */ + public BigDecimal getSort() { + return sort; + } + /** + * 设置:父级编号 + */ + public void setParentId(Long parentId) { + this.parentId = parentId; + } + /** + * 获取:父级编号 + */ + public Long getParentId() { + return parentId; + } + /** + * 设置:创建者 + */ + public void setCreateBy(Integer createBy) { + this.createBy = createBy; + } + /** + * 获取:创建者 + */ + public Integer getCreateBy() { + return createBy; + } + /** + * 设置:创建时间 + */ + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + /** + * 获取:创建时间 + */ + public Date getCreateDate() { + return createDate; + } + /** + * 设置:更新者 + */ + public void setUpdateBy(Long updateBy) { + this.updateBy = updateBy; + } + /** + * 获取:更新者 + */ + public Long getUpdateBy() { + return updateBy; + } + /** + * 设置:更新时间 + */ + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + /** + * 获取:更新时间 + */ + public Date getUpdateDate() { + return updateDate; + } + /** + * 设置:备注信息 + */ + public void setRemarks(String remarks) { + this.remarks = remarks; + } + /** + * 获取:备注信息 + */ + public String getRemarks() { + return remarks; + } + /** + * 设置:删除标记 + */ + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + /** + * 获取:删除标记 + */ + public String getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return "DictDO{" + + "id=" + id + + ", name='" + name + '\'' + + ", value='" + value + '\'' + + ", type='" + type + '\'' + + ", description='" + description + '\'' + + ", sort=" + sort + + ", parentId=" + parentId + + ", createBy=" + createBy + + ", createDate=" + createDate + + ", updateBy=" + updateBy + + ", updateDate=" + updateDate + + ", remarks='" + remarks + '\'' + + ", delFlag='" + delFlag + '\'' + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/domain/FileDO.java b/novel-admin/src/main/java/com/java2nb/common/domain/FileDO.java new file mode 100644 index 0000000..51bb460 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/domain/FileDO.java @@ -0,0 +1,104 @@ +package com.java2nb.common.domain; + +import java.io.Serializable; +import java.util.Date; + +/** + * 文件上传 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-09-19 16:02:20 + */ +public class FileDO implements Serializable { + private static final long serialVersionUID = 1L; + + // + private Long id; + // 文件类型 + private Integer type; + // URL地址 + private String url; + // 创建时间 + private Date createDate; + + + public FileDO() { + super(); + } + + + public FileDO(Integer type, String url, Date createDate) { + super(); + this.type = type; + this.url = url; + this.createDate = createDate; + } + + + /** + * 设置: + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 获取: + */ + public Long getId() { + return id; + } + + /** + * 设置:文件类型 + */ + public void setType(Integer type) { + this.type = type; + } + + /** + * 获取:文件类型 + */ + public Integer getType() { + return type; + } + + /** + * 设置:URL地址 + */ + public void setUrl(String url) { + this.url = url; + } + + /** + * 获取:URL地址 + */ + public String getUrl() { + return url; + } + + /** + * 设置:创建时间 + */ + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + /** + * 获取:创建时间 + */ + public Date getCreateDate() { + return createDate; + } + + @Override + public String toString() { + return "FileDO{" + + "id=" + id + + ", type=" + type + + ", url='" + url + '\'' + + ", createDate=" + createDate + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/domain/GenColumnsDO.java b/novel-admin/src/main/java/com/java2nb/common/domain/GenColumnsDO.java new file mode 100644 index 0000000..0e954df --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/domain/GenColumnsDO.java @@ -0,0 +1,163 @@ +package com.java2nb.common.domain; + +import java.io.Serializable; + + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.java2nb.common.jsonserializer.LongToStringSerializer; +import lombok.Data; + + +/** + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-22 18:03:46 + */ +public class GenColumnsDO implements Serializable { + private static final long serialVersionUID = 1L; + + //主键 + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long id; + //表名 + private String tableName; + //列名 + private String columnName; + //列类型 + private String columnType; + //映射java类型 + private String javaType; + //列注释 + private String columnComment; + //列排序(升序) + private Integer columnSort; + //列标签名 + private String columnLabel; + //页面显示类型:1、文本框 2、下拉框 3、数值4、日期 5、文本域6、富文本 7、上传图片【单文件】 8、上传图片【多文件】9、上传文件【单文件】 10、上传文件【多文件】11、隐藏域 12、不显示 + private Integer pageType; + //是否必填 + private Integer isRequired; + //页面显示为下拉时使用,字典类型从字典表中取出 + private String dictType; + + // 属性名称(第一个字母大写),如:user_name => UserName + private String attrName; + // 属性名称(第一个字母小写),如:user_name => userName + private String attrname; + + private String extra; + + public String getExtra() { + return extra; + } + + public void setExtra(String extra) { + this.extra = extra; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getColumnType() { + return columnType; + } + + public void setColumnType(String columnType) { + this.columnType = columnType; + } + + public String getJavaType() { + return javaType; + } + + public void setJavaType(String javaType) { + this.javaType = javaType; + } + + public String getColumnComment() { + return columnComment; + } + + public void setColumnComment(String columnComment) { + this.columnComment = columnComment; + } + + public Integer getColumnSort() { + return columnSort; + } + + public void setColumnSort(Integer columnSort) { + this.columnSort = columnSort; + } + + public String getColumnLabel() { + return columnLabel; + } + + public void setColumnLabel(String columnLabel) { + this.columnLabel = columnLabel; + } + + public Integer getPageType() { + return pageType; + } + + public void setPageType(Integer pageType) { + this.pageType = pageType; + } + + public Integer getIsRequired() { + return isRequired; + } + + public void setIsRequired(Integer isRequired) { + this.isRequired = isRequired; + } + + public String getDictType() { + return dictType; + } + + public void setDictType(String dictType) { + this.dictType = dictType; + } + + public String getAttrName() { + return attrName; + } + + public void setAttrName(String attrName) { + this.attrName = attrName; + } + + public String getAttrname() { + return attrname; + } + + public void setAttrname(String attrname) { + this.attrname = attrname; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/domain/LogDO.java b/novel-admin/src/main/java/com/java2nb/common/domain/LogDO.java new file mode 100644 index 0000000..8be0c4b --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/domain/LogDO.java @@ -0,0 +1,112 @@ +package com.java2nb.common.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.Date; + +public class LogDO { + private Long id; + + private Long userId; + + private String username; + + private String operation; + + private Integer time; + + private String method; + + private String params; + + private String ip; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gmtCreate; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username == null ? null : username.trim(); + } + + public String getOperation() { + return operation; + } + + public void setOperation(String operation) { + this.operation = operation == null ? null : operation.trim(); + } + + public Integer getTime() { + return time; + } + + public void setTime(Integer time) { + this.time = time; + } + + public String getMethod() { + return method; + } + + public void setMethod(String method) { + this.method = method == null ? null : method.trim(); + } + + public String getParams() { + return params; + } + + public void setParams(String params) { + this.params = params == null ? null : params.trim(); + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip == null ? null : ip.trim(); + } + + public Date getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(Date gmtCreate) { + this.gmtCreate = gmtCreate; + } + + @Override + public String toString() { + return "LogDO{" + + "id=" + id + + ", userId=" + userId + + ", username='" + username + '\'' + + ", operation='" + operation + '\'' + + ", time=" + time + + ", method='" + method + '\'' + + ", params='" + params + '\'' + + ", ip='" + ip + '\'' + + ", gmtCreate=" + gmtCreate + + '}'; + } +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/domain/PageDO.java b/novel-admin/src/main/java/com/java2nb/common/domain/PageDO.java new file mode 100644 index 0000000..08892f3 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/domain/PageDO.java @@ -0,0 +1,86 @@ +package com.java2nb.common.domain; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PageDO { + + private int offset; + private int limit; + private int total; + private Map params; + private String param; + private List rows; + + public PageDO() { + super(); + this.offset = 0; + this.limit = 10; + this.total = 1; + this.params = new HashMap<>(); + this.param = ""; + this.rows = new ArrayList<>(); + } + + public int getOffset() { + return offset; + } + + public void setOffset(int offset) { + this.offset = offset; + } + + public int getLimit() { + return limit; + } + + public void setLimit(int limit) { + this.limit = limit; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public Map getParams() { + return params; + } + + public void setParams(Map params) { + this.params = params; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public String getParam() { + return param; + } + + public void setParam(String param) { + this.param = param; + } + + @Override + public String toString() { + return "PageDO{" + + "offset=" + offset + + ", limit=" + limit + + ", total=" + total + + ", params=" + params + + ", param='" + param + '\'' + + ", rows=" + rows + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/domain/TableDO.java b/novel-admin/src/main/java/com/java2nb/common/domain/TableDO.java new file mode 100644 index 0000000..4f4c338 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/domain/TableDO.java @@ -0,0 +1,88 @@ +package com.java2nb.common.domain; + +import lombok.Data; + +import java.util.List; + +/** + * 表数据 + * + * @author chenshun + * @email 1179705413@qq.com + * @date 2019-09-25 15:09:21 + */ +public class TableDO { + //表的名称 + private String tableName; + //表的备注 + private String comments; + //表的主键 + private GenColumnsDO pk; + //表的列名(不包含主键) + private List columns; + + //类名(第一个字母大写),如:sys_user => SysUser + private String className; + //类名(第一个字母小写),如:sys_user => sysUser + private String classname; + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getComments() { + return comments; + } + + public void setComments(String comments) { + this.comments = comments; + } + + public GenColumnsDO getPk() { + return pk; + } + + public void setPk(GenColumnsDO pk) { + this.pk = pk; + } + + public List getColumns() { + return columns; + } + + public void setColumns(List columns) { + this.columns = columns; + } + + public String getClassName() { + return className; + } + + public void setClassName(String className) { + this.className = className; + } + + public String getClassname() { + return classname; + } + + public void setClassname(String classname) { + this.classname = classname; + } + + @Override + public String toString() { + return "TableDO{" + + "tableName='" + tableName + '\'' + + ", comments='" + comments + '\'' + + ", pk=" + pk + + ", columns=" + columns + + ", className='" + className + '\'' + + ", classname='" + classname + '\'' + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/domain/Tree.java b/novel-admin/src/main/java/com/java2nb/common/domain/Tree.java new file mode 100644 index 0000000..594ec8c --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/domain/Tree.java @@ -0,0 +1,151 @@ +package com.java2nb.common.domain; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.alibaba.fastjson.JSON; + +/** + * tree TODO
+ * + * @author xiongxy + * + */ +public class Tree { + /** + * 节点ID + */ + private String id; + /** + * 显示节点文本 + */ + private String text; + /** + * 节点状态,open closed + */ + private Map state; + /** + * 节点是否被选中 true false + */ + private boolean checked = false; + /** + * 节点属性 + */ + private Map attributes; + + /** + * 节点的子节点 + */ + private List> children = new ArrayList>(); + + /** + * 父ID + */ + private String parentId; + /** + * 是否有父节点 + */ + private boolean hasParent = false; + /** + * 是否有子节点 + */ + private boolean hasChildren = false; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public Map getState() { + return state; + } + + public void setState(Map state) { + this.state = state; + } + + public boolean isChecked() { + return checked; + } + + public void setChecked(boolean checked) { + this.checked = checked; + } + + public Map getAttributes() { + return attributes; + } + + public void setAttributes(Map attributes) { + this.attributes = attributes; + } + + public List> getChildren() { + return children; + } + + public void setChildren(List> children) { + this.children = children; + } + + public boolean isHasParent() { + return hasParent; + } + + public void setHasParent(boolean isParent) { + this.hasParent = isParent; + } + + public boolean isHasChildren() { + return hasChildren; + } + + public void setChildren(boolean isChildren) { + this.hasChildren = isChildren; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public Tree(String id, String text, Map state, boolean checked, Map attributes, + List> children, boolean isParent, boolean isChildren, String parentID) { + super(); + this.id = id; + this.text = text; + this.state = state; + this.checked = checked; + this.attributes = attributes; + this.children = children; + this.hasParent = isParent; + this.hasChildren = isChildren; + this.parentId = parentID; + } + + public Tree() { + super(); + } + + @Override + public String toString() { + + return JSON.toJSONString(this); + } + +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/exception/BusinessException.java b/novel-admin/src/main/java/com/java2nb/common/exception/BusinessException.java new file mode 100644 index 0000000..1188dc9 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/exception/BusinessException.java @@ -0,0 +1,25 @@ +package com.java2nb.common.exception; + +import lombok.Data; + +/** + * 自定义业务异常 + */ +@Data +public class BusinessException extends RuntimeException { + private static final long serialVersionUID = 1L; + + private String msg; + private int code; + + public BusinessException(int code,String msg) { + //不调用父类Throwable的fillInStackTrace()方法生成栈追踪信息,提高应用性能 + //构造器之间的调用必须在第一行 + super(msg, null, false, false); + this.code = code; + this.msg = msg; + } + + + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/exception/CommonExceptionHandler.java b/novel-admin/src/main/java/com/java2nb/common/exception/CommonExceptionHandler.java new file mode 100644 index 0000000..0f0869b --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/exception/CommonExceptionHandler.java @@ -0,0 +1,81 @@ +package com.java2nb.common.exception; + +import com.java2nb.common.config.Constant; +import com.java2nb.common.domain.LogDO; +import com.java2nb.common.service.LogService; +import com.java2nb.common.utils.HttpServletUtils; +import com.java2nb.common.utils.R; +import com.java2nb.common.utils.ShiroUtils; +import com.java2nb.system.domain.UserDO; +import org.apache.shiro.authz.AuthorizationException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DuplicateKeyException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; + +/** + * 异常处理器 + */ +@RestControllerAdvice +public class CommonExceptionHandler { + private Logger logger = LoggerFactory.getLogger(getClass()); + @Autowired + LogService logService; + + /** + * 自定义业务异常处理 + */ + @ExceptionHandler(BusinessException.class) + public R handleBusinessException(BusinessException e) { + logger.error(e.getMessage(), e); + return R.error(e.getCode(),e.getMessage()); + } + + @ExceptionHandler(DuplicateKeyException.class) + public R handleDuplicateKeyException(DuplicateKeyException e) { + logger.error(e.getMessage(), e); + return R.error("数据库中已存在该记录"); + } + + @ExceptionHandler(org.springframework.web.servlet.NoHandlerFoundException.class) + public R noHandlerFoundException(org.springframework.web.servlet.NoHandlerFoundException e) { + logger.error(e.getMessage(), e); + return R.error(404, "没找找到页面"); + } + + @ExceptionHandler(AuthorizationException.class) + public Object handleAuthorizationException(AuthorizationException e, HttpServletRequest request) { + logger.error(e.getMessage(), e); + if (HttpServletUtils.jsAjax(request)) { + return R.error(403, "未授权"); + } + return new ModelAndView("error/403"); + } + + + @ExceptionHandler({Exception.class}) + public Object handleException(Exception e, HttpServletRequest request) { + LogDO logDO = new LogDO(); + logDO.setGmtCreate(new Date()); + logDO.setOperation(Constant.LOG_ERROR); + logDO.setMethod(request.getRequestURL().toString()); + logDO.setParams(e.toString()); + UserDO current = ShiroUtils.getUser(); + if(null!=current){ + logDO.setUserId(current.getUserId()); + logDO.setUsername(current.getUsername()); + } + logService.save(logDO); + logger.error(e.getMessage(), e); + if (HttpServletUtils.jsAjax(request)) { + return R.error(500, "服务器错误,请联系管理员"); + } + return new ModelAndView("error/500"); + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/exception/MainsiteErrorController.java b/novel-admin/src/main/java/com/java2nb/common/exception/MainsiteErrorController.java new file mode 100644 index 0000000..46da1fd --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/exception/MainsiteErrorController.java @@ -0,0 +1,66 @@ +package com.java2nb.common.exception; + + +import com.java2nb.common.utils.R; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.web.servlet.error.ErrorAttributes; +import org.springframework.boot.web.servlet.error.ErrorController; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + +@RestController +public class MainsiteErrorController implements ErrorController { + private Logger logger = LoggerFactory.getLogger(getClass()); + private static final String ERROR_PATH = "/error"; + + @Autowired + ErrorAttributes errorAttributes; + + @RequestMapping( + value = {ERROR_PATH}, + produces = {"text/html"} + ) + public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) { + int code = response.getStatus(); + if (404 == code) { + return new ModelAndView("error/404"); + } else if (403 == code) { + return new ModelAndView("error/403"); + } else if (401 == code) { + return new ModelAndView("login"); + } else { + return new ModelAndView("error/500"); + } + + } + + @RequestMapping(value = ERROR_PATH) + public R handleError(HttpServletRequest request, HttpServletResponse response) { + response.setStatus(200); + int code = response.getStatus(); + if (404 == code) { + return R.error(404, "未找到资源"); + } else if (403 == code) { + return R.error(403, "没有访问权限"); + } else if (401 == code) { + return R.error(403, "登录过期"); + } else { + return R.error(500, "服务器错误"); + } + } + + @Override + public String getErrorPath() { + // TODO Auto-generated method stub + return ERROR_PATH; + } +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/interceptor/DataPermInterceptor.java b/novel-admin/src/main/java/com/java2nb/common/interceptor/DataPermInterceptor.java new file mode 100644 index 0000000..f784ace --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/interceptor/DataPermInterceptor.java @@ -0,0 +1,155 @@ +package com.java2nb.common.interceptor; + +import com.java2nb.common.utils.ShiroUtils; +import com.java2nb.system.domain.DataPermDO; +import com.java2nb.system.domain.UserDO; +import org.apache.ibatis.cache.CacheKey; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.plugin.*; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Field; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +@Intercepts({@Signature( + type = Executor.class, + method = "query", + args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class} +), @Signature( + type = Executor.class, + method = "query", + args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class} +)}) +@Component +public class DataPermInterceptor implements Interceptor { + + + public DataPermInterceptor() { + super(); + } + + //插件运行的代码,它将代替原有的方法 + @Override + public Object intercept(Invocation invocation) throws Throwable { + Object[] args = invocation.getArgs(); + MappedStatement mappedStatement = (MappedStatement) args[0]; + String sqlId = mappedStatement.getId(); + String methodName = sqlId.substring(sqlId.lastIndexOf(".") + 1); + if (methodName.endsWith("ByPerm")) { + Object parameter = args[1]; + RowBounds rowBounds = (RowBounds) args[2]; + ResultHandler resultHandler = (ResultHandler) args[3]; + Executor executor = (Executor) invocation.getTarget(); + CacheKey cacheKey; + BoundSql boundSql; + if (args.length == 4) { + boundSql = mappedStatement.getBoundSql(parameter); + cacheKey = executor.createCacheKey(mappedStatement, parameter, rowBounds, boundSql); + } else { + cacheKey = (CacheKey) args[4]; + boundSql = (BoundSql) args[5]; + } + Class boundSqlClass = BoundSql.class; + Field field = boundSqlClass.getDeclaredField("sql"); + field.setAccessible(true); + String lastSql = boundSql.getSql(); + Pattern tableNamePattern = Pattern.compile("\\s+from\\s+([^\\s]+)\\s*"); + Matcher tableNameMatcher = tableNamePattern.matcher(lastSql); + if (tableNameMatcher.find()) { + String tableName = tableNameMatcher.group(1); + if(!tableName.contains("_")){ + if(tableNameMatcher.find()) { + tableName = tableNameMatcher.group(1); + } + } + UserDO user = ShiroUtils.getUser(); + List perms = user.getDataPerms().get(tableName); + String pageSql = ""; + int limitIndex = lastSql.indexOf(" limit "); + if (limitIndex != -1) { + pageSql = lastSql.substring(limitIndex); + lastSql = lastSql.substring(0, limitIndex); + } + String orderSql = ""; + int orderIndex = lastSql.indexOf(" order "); + if (orderIndex == -1) { + orderIndex = lastSql.indexOf(" ORDER "); + } + if (orderIndex != -1) { + orderSql = lastSql.substring(orderIndex); + lastSql = lastSql.substring(0, orderIndex); + } + + String linkSql = " WHERE "; + String permSql = ""; + boolean allPerms= false; + if (perms != null && perms.size() > 0) { + + Class userClass = UserDO.class; + for (DataPermDO perm : perms) { + if (allPerms) { + break; + } + + String attrName = perm.getCrlAttrName(); + String columnName = perm.getCrlColumnName(); + String permCode = perm.getPermCode(); + + switch (permCode.substring(0, permCode.indexOf("_"))) { + case "all": { + allPerms = true; + break; + } + case "own": { + Field attrNameField = userClass.getDeclaredField(attrName); + attrNameField.setAccessible(true); + String attrValue = attrNameField.get(user) + ""; + permSql += ("or " + columnName + "=" + attrValue + " "); + break; + } + case "sup": { + Field supAttrNameField = userClass.getDeclaredField("sup" + (attrName.substring(0, 1).toUpperCase() + attrName.substring(1)) + "s"); + supAttrNameField.setAccessible(true); + String supAttrValue = (String) supAttrNameField.get(user); + permSql += ("or " + columnName + " in(" + supAttrValue + ") "); + break; + } + } + + } + } + if (!allPerms) { + if(permSql.length()==0){ + permSql = "0"; + }else{ + permSql = permSql.replaceFirst("or",""); + } + lastSql = lastSql + linkSql + "(" + permSql + ")"; + } + lastSql += (orderSql + pageSql); + + } + + field.set(boundSql, lastSql); + return executor.query(mappedStatement, parameter, rowBounds, resultHandler, cacheKey, boundSql); + } + return invocation.proceed(); + } + + // 拦截类型StatementHandler + @Override + public Object plugin(Object target) { + return Plugin.wrap(target, this); + } + + @Override + public void setProperties(Properties properties) { + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/jsonserializer/LongToStringSerializer.java b/novel-admin/src/main/java/com/java2nb/common/jsonserializer/LongToStringSerializer.java new file mode 100644 index 0000000..d4c1594 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/jsonserializer/LongToStringSerializer.java @@ -0,0 +1,20 @@ +package com.java2nb.common.jsonserializer; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public class LongToStringSerializer extends JsonSerializer { + @Override + public void serialize(Long value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { + + if(value != null){ + jsonGenerator.writeString(value+""); + }else{ + jsonGenerator.writeNull(); + } + + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisCache.java b/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisCache.java new file mode 100644 index 0000000..81eadb3 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisCache.java @@ -0,0 +1,194 @@ +package com.java2nb.common.redis.shiro; + +/** + * @author xiongxy + * @version V1.0 + */ +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.apache.shiro.cache.Cache; +import org.apache.shiro.cache.CacheException; +import org.apache.shiro.util.CollectionUtils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RedisCache implements Cache { + + private Logger logger = LoggerFactory.getLogger(this.getClass()); + + /** + * The wrapped Jedis instance. + */ + private RedisManager cache; + + /** + * The Redis key prefix for the sessions + */ + private String keyPrefix = "shiro_redis_session:"; + + /** + * Returns the Redis session keys + * prefix. + * @return The prefix + */ + public String getKeyPrefix() { + return keyPrefix; + } + + /** + * Sets the Redis sessions key + * prefix. + * @param keyPrefix The prefix + */ + public void setKeyPrefix(String keyPrefix) { + this.keyPrefix = keyPrefix; + } + + /** + * 通过一个JedisManager实例构造RedisCache + */ + public RedisCache(RedisManager cache){ + if (cache == null) { + throw new IllegalArgumentException("Cache argument cannot be null."); + } + this.cache = cache; + } + + /** + * Constructs a cache instance with the specified + * Redis manager and using a custom key prefix. + * @param cache The cache manager instance + * @param prefix The Redis key prefix + */ + public RedisCache(RedisManager cache, + String prefix){ + + this( cache ); + + // set the prefix + this.keyPrefix = prefix; + } + + /** + * 获得byte[]型的key + * @param key + * @return + */ + private byte[] getByteKey(K key){ + if(key instanceof String){ + String preKey = this.keyPrefix + key; + return preKey.getBytes(); + }else{ + return SerializeUtils.serialize(key); + } + } + + @Override + public V get(K key) throws CacheException { + logger.debug("根据key从Redis中获取对象 key [" + key + "]"); + try { + if (key == null) { + return null; + }else{ + byte[] rawValue = cache.get(getByteKey(key)); + @SuppressWarnings("unchecked") + V value = (V)SerializeUtils.deserialize(rawValue); + return value; + } + } catch (Throwable t) { + throw new CacheException(t); + } + + } + + @Override + public V put(K key, V value) throws CacheException { + logger.debug("根据key从存储 key [" + key + "]"); + try { + cache.set(getByteKey(key), SerializeUtils.serialize(value)); + return value; + } catch (Throwable t) { + throw new CacheException(t); + } + } + + @Override + public V remove(K key) throws CacheException { + logger.debug("从redis中删除 key [" + key + "]"); + try { + V previous = get(key); + cache.del(getByteKey(key)); + return previous; + } catch (Throwable t) { + throw new CacheException(t); + } + } + + @Override + public void clear() throws CacheException { + logger.debug("从redis中删除所有元素"); + try { + cache.flushDB(); + } catch (Throwable t) { + throw new CacheException(t); + } + } + + @Override + public int size() { + try { + Long longSize = new Long(cache.dbSize()); + return longSize.intValue(); + } catch (Throwable t) { + throw new CacheException(t); + } + } + + @SuppressWarnings("unchecked") + @Override + public Set keys() { + try { + Set keys = cache.keys(this.keyPrefix + "*"); + if (CollectionUtils.isEmpty(keys)) { + return Collections.emptySet(); + }else{ + Set newKeys = new HashSet(); + for(byte[] key:keys){ + newKeys.add((K)key); + } + return newKeys; + } + } catch (Throwable t) { + throw new CacheException(t); + } + } + + @Override + public Collection values() { + try { + Set keys = cache.keys(this.keyPrefix + "*"); + if (!CollectionUtils.isEmpty(keys)) { + List values = new ArrayList(keys.size()); + for (byte[] key : keys) { + @SuppressWarnings("unchecked") + V value = get((K)key); + if (value != null) { + values.add(value); + } + } + return Collections.unmodifiableList(values); + } else { + return Collections.emptyList(); + } + } catch (Throwable t) { + throw new CacheException(t); + } + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisCacheManager.java b/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisCacheManager.java new file mode 100644 index 0000000..24b755f --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisCacheManager.java @@ -0,0 +1,77 @@ +package com.java2nb.common.redis.shiro; + +/** + * @author xiongxy + * @version V1.0 + */ +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +import org.apache.shiro.cache.Cache; +import org.apache.shiro.cache.CacheException; +import org.apache.shiro.cache.CacheManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RedisCacheManager implements CacheManager { + + private static final Logger logger = LoggerFactory + .getLogger(RedisCacheManager.class); + + // fast lookup by name map + private final ConcurrentMap caches = new ConcurrentHashMap(); + + private RedisManager redisManager; + + /** + * The Redis key prefix for caches + */ + private String keyPrefix = "shiro_redis_cache:"; + + /** + * Returns the Redis session keys + * prefix. + * @return The prefix + */ + public String getKeyPrefix() { + return keyPrefix; + } + + /** + * Sets the Redis sessions key + * prefix. + * @param keyPrefix The prefix + */ + public void setKeyPrefix(String keyPrefix) { + this.keyPrefix = keyPrefix; + } + + @Override + public Cache getCache(String name) throws CacheException { + logger.debug("获取名称为: " + name + " 的RedisCache实例"); + + Cache c = caches.get(name); + + if (c == null) { + + // initialize the Redis manager instance + redisManager.init(); + + // create a new cache instance + c = new RedisCache(redisManager, keyPrefix); + + // add it to the cache collection + caches.put(name, c); + } + return c; + } + + public RedisManager getRedisManager() { + return redisManager; + } + + public void setRedisManager(RedisManager redisManager) { + this.redisManager = redisManager; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisManager.java b/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisManager.java new file mode 100644 index 0000000..4810fa2 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisManager.java @@ -0,0 +1,228 @@ +package com.java2nb.common.redis.shiro; + +/** + * @author xiongxy + * @version V1.0 + */ + +import java.util.Set; + +import org.springframework.beans.factory.annotation.Value; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; +import redis.clients.jedis.JedisPoolConfig; + +/** + * + */ +public class RedisManager { + + @Value("${spring.redis.host}") + private String host = "127.0.0.1"; + + @Value("${spring.redis.port}") + private int port = 6379; + + // 0 - never expire + private int expire = 0; + + //timeout for jedis try to connect to redis server, not expire time! In milliseconds + @Value("${spring.redis.timeout}") + private int timeout = 0; + + @Value("${spring.redis.password}") + private String password = ""; + + private static JedisPool jedisPool = null; + + public RedisManager() { + + } + + /** + * 初始化方法 + */ + public void init() { + if (jedisPool == null) { + if (password != null && !"".equals(password)) { + jedisPool = new JedisPool(new JedisPoolConfig(), host, port, timeout, password); + } else if (timeout != 0) { + jedisPool = new JedisPool(new JedisPoolConfig(), host, port, timeout); + } else { + jedisPool = new JedisPool(new JedisPoolConfig(), host, port); + } + + } + } + + /** + * get value from redis + * + * @param key + * @return + */ + public byte[] get(byte[] key) { + byte[] value = null; + Jedis jedis = jedisPool.getResource(); + try { + value = jedis.get(key); + } finally { + if (jedis != null) { + jedis.close(); + } + } + return value; + } + + /** + * set + * + * @param key + * @param value + * @return + */ + public byte[] set(byte[] key, byte[] value) { + Jedis jedis = jedisPool.getResource(); + try { + jedis.set(key, value); + if (this.expire != 0) { + jedis.expire(key, this.expire); + } + } finally { + if (jedis != null) { + jedis.close(); + } + } + return value; + } + + /** + * set + * + * @param key + * @param value + * @param expire + * @return + */ + public byte[] set(byte[] key, byte[] value, int expire) { + Jedis jedis = jedisPool.getResource(); + try { + jedis.set(key, value); + if (expire != 0) { + jedis.expire(key, expire); + } + } finally { + if (jedis != null) { + jedis.close(); + } + } + return value; + } + + /** + * del + * + * @param key + */ + public void del(byte[] key) { + Jedis jedis = jedisPool.getResource(); + try { + jedis.del(key); + } finally { + if (jedis != null) { + jedis.close(); + } + } + } + + /** + * flush + */ + public void flushDB() { + Jedis jedis = jedisPool.getResource(); + try { + jedis.flushDB(); + } finally { + if (jedis != null) { + jedis.close(); + } + } + } + + /** + * size + */ + public Long dbSize() { + Long dbSize = 0L; + Jedis jedis = jedisPool.getResource(); + try { + dbSize = jedis.dbSize(); + } finally { + if (jedis != null) { + jedis.close(); + } + } + return dbSize; + } + + /** + * keys + * + * @param regex + * @return + */ + public Set keys(String pattern) { + Set keys = null; + Jedis jedis = jedisPool.getResource(); + try { + keys = jedis.keys(pattern.getBytes()); + } finally { + if (jedis != null) { + jedis.close(); + } + } + return keys; + } + + public String getHost() { + return host; + } + + public void setHost(String host) { + this.host = host; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public int getExpire() { + return expire; + } + + public void setExpire(int expire) { + this.expire = expire; + } + + public int getTimeout() { + return timeout; + } + + public void setTimeout(int timeout) { + this.timeout = timeout; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisSessionDAO.java b/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisSessionDAO.java new file mode 100644 index 0000000..ca70e99 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/redis/shiro/RedisSessionDAO.java @@ -0,0 +1,139 @@ +package com.java2nb.common.redis.shiro; + +import org.apache.shiro.session.Session; +import org.apache.shiro.session.UnknownSessionException; +import org.apache.shiro.session.mgt.eis.AbstractSessionDAO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.Serializable; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + +/** + * @author xiongxy + * @version V1.0 + */ +public class RedisSessionDAO extends AbstractSessionDAO { + + private static Logger logger = LoggerFactory.getLogger(RedisSessionDAO.class); + /** + * shiro-redis的session对象前缀 + */ + private RedisManager redisManager; + + /** + * The Redis key prefix for the sessions + */ + private String keyPrefix = "shiro_redis_session:"; + + @Override + public void update(Session session) throws UnknownSessionException { + this.saveSession(session); + } + + /** + * save session + * @param session + * @throws UnknownSessionException + */ + private void saveSession(Session session) throws UnknownSessionException{ + if(session == null || session.getId() == null){ + logger.error("session or session id is null"); + return; + } + + byte[] key = getByteKey(session.getId()); + byte[] value = SerializeUtils.serialize(session); + session.setTimeout(redisManager.getExpire()*1000); + this.redisManager.set(key, value, redisManager.getExpire()); + } + + @Override + public void delete(Session session) { + if(session == null || session.getId() == null){ + logger.error("session or session id is null"); + return; + } + redisManager.del(this.getByteKey(session.getId())); + + } + + @Override + public Collection getActiveSessions() { + Set sessions = new HashSet(); + + Set keys = redisManager.keys(this.keyPrefix + "*"); + if(keys != null && keys.size()>0){ + for(byte[] key:keys){ + Session s = (Session)SerializeUtils.deserialize(redisManager.get(key)); + sessions.add(s); + } + } + + return sessions; + } + + @Override + protected Serializable doCreate(Session session) { + Serializable sessionId = this.generateSessionId(session); + this.assignSessionId(session, sessionId); + this.saveSession(session); + return sessionId; + } + + @Override + protected Session doReadSession(Serializable sessionId) { + if(sessionId == null){ + logger.error("session id is null"); + return null; + } + + Session s = (Session)SerializeUtils.deserialize(redisManager.get(this.getByteKey(sessionId))); + return s; + } + + /** + * 获得byte[]型的key + * @param key + * @return + */ + private byte[] getByteKey(Serializable sessionId){ + String preKey = this.keyPrefix + sessionId; + return preKey.getBytes(); + } + + public RedisManager getRedisManager() { + return redisManager; + } + + public void setRedisManager(RedisManager redisManager) { + this.redisManager = redisManager; + + /** + * 初始化redisManager + */ + this.redisManager.init(); + } + + /** + * Returns the Redis session keys + * prefix. + * @return The prefix + */ + public String getKeyPrefix() { + return keyPrefix; + } + + /** + * Sets the Redis sessions key + * prefix. + * @param keyPrefix The prefix + */ + public void setKeyPrefix(String keyPrefix) { + this.keyPrefix = keyPrefix; + } + + +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/redis/shiro/SerializeUtils.java b/novel-admin/src/main/java/com/java2nb/common/redis/shiro/SerializeUtils.java new file mode 100644 index 0000000..30f0eb2 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/redis/shiro/SerializeUtils.java @@ -0,0 +1,89 @@ +package com.java2nb.common.redis.shiro; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author xiongxy + * @version V1.0 + */ +public class SerializeUtils { + + private static Logger logger = LoggerFactory.getLogger(SerializeUtils.class); + + /** + * 反序列化 + * @param bytes + * @return + */ + public static Object deserialize(byte[] bytes) { + + Object result = null; + + if (isEmpty(bytes)) { + return null; + } + + try { + ByteArrayInputStream byteStream = new ByteArrayInputStream(bytes); + try { + ObjectInputStream objectInputStream = new ObjectInputStream(byteStream); + try { + result = objectInputStream.readObject(); + } + catch (ClassNotFoundException ex) { + throw new Exception("Failed to deserialize object type", ex); + } + } + catch (Throwable ex) { + throw new Exception("Failed to deserialize", ex); + } + } catch (Exception e) { + logger.error("Failed to deserialize",e); + } + return result; + } + + public static boolean isEmpty(byte[] data) { + return (data == null || data.length == 0); + } + + /** + * 序列化 + * @param object + * @return + */ + public static byte[] serialize(Object object) { + + byte[] result = null; + + if (object == null) { + return new byte[0]; + } + try { + ByteArrayOutputStream byteStream = new ByteArrayOutputStream(128); + try { + if (!(object instanceof Serializable)) { + throw new IllegalArgumentException(SerializeUtils.class.getSimpleName() + " requires a Serializable payload " + + "but received an object of type [" + object.getClass().getName() + "]"); + } + ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteStream); + objectOutputStream.writeObject(object); + objectOutputStream.flush(); + result = byteStream.toByteArray(); + } + catch (Throwable ex) { + throw new Exception("Failed to serialize", ex); + } + } catch (Exception ex) { + logger.error("Failed to serialize",ex); + } + return result; + } +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/service/DictService.java b/novel-admin/src/main/java/com/java2nb/common/service/DictService.java new file mode 100644 index 0000000..948e2e4 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/service/DictService.java @@ -0,0 +1,56 @@ +package com.java2nb.common.service; + +import com.java2nb.common.domain.DictDO; +import com.java2nb.system.domain.UserDO; + +import java.util.List; +import java.util.Map; + +/** + * 字典表 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-09-29 18:28:07 + */ +public interface DictService { + + DictDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(DictDO dict); + + int update(DictDO dict); + + int remove(Long id); + + int batchRemove(Long[] ids); + + List listType(); + + String getName(String type,String value); + + /** + * 获取爱好列表 + * @return + * @param userDO + */ + List getHobbyList(UserDO userDO); + + /** + * 获取性别列表 + * @return + */ + List getSexList(); + + /** + * 根据type获取数据 + * @param map + * @return + */ + List listByType(String type); + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/service/FileService.java b/novel-admin/src/main/java/com/java2nb/common/service/FileService.java new file mode 100644 index 0000000..af3fc3e --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/service/FileService.java @@ -0,0 +1,37 @@ +package com.java2nb.common.service; + +import com.java2nb.common.domain.FileDO; + +import java.util.List; +import java.util.Map; + +/** + * 文件上传 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-09-19 16:02:20 + */ +public interface FileService { + + FileDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(FileDO sysFile); + + int update(FileDO sysFile); + + int remove(Long id); + + int batchRemove(Long[] ids); + + /** + * 判断一个文件是否存在 + * @param url FileDO中存的路径 + * @return + */ + Boolean isExist(String url); +} diff --git a/novel-admin/src/main/java/com/java2nb/common/service/GeneratorService.java b/novel-admin/src/main/java/com/java2nb/common/service/GeneratorService.java new file mode 100644 index 0000000..18936f6 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/service/GeneratorService.java @@ -0,0 +1,30 @@ +/** + * + */ +package com.java2nb.common.service; + +import java.util.List; +import java.util.Map; + +import com.java2nb.common.domain.GenColumnsDO; +import org.springframework.stereotype.Service; + +/** + * @author xiongxy + * @Time 2019-10-20 11:23:09 + * @description + * + */ +@Service +public interface GeneratorService { + List> list(String tableName); + + void generatorCode(String[] tableNames); + + byte[] downloadCode(String[] tableNames); + + + List listColumnsByTableName(String tableName); + + boolean genColumnsSave(List list); +} diff --git a/novel-admin/src/main/java/com/java2nb/common/service/LogService.java b/novel-admin/src/main/java/com/java2nb/common/service/LogService.java new file mode 100644 index 0000000..8741870 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/service/LogService.java @@ -0,0 +1,16 @@ +package com.java2nb.common.service; + +import java.util.List; + +import org.springframework.stereotype.Service; + +import com.java2nb.common.domain.LogDO; +import com.java2nb.common.domain.PageDO; +import com.java2nb.common.utils.Query; +@Service +public interface LogService { + void save(LogDO logDO); + PageDO queryList(Query query); + int remove(Long id); + int batchRemove(Long[] ids); +} diff --git a/novel-admin/src/main/java/com/java2nb/common/service/impl/DictServiceImpl.java b/novel-admin/src/main/java/com/java2nb/common/service/impl/DictServiceImpl.java new file mode 100644 index 0000000..79b55b1 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/service/impl/DictServiceImpl.java @@ -0,0 +1,109 @@ +package com.java2nb.common.service.impl; + +import com.java2nb.common.utils.StringUtils; +import com.java2nb.system.domain.UserDO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import com.java2nb.common.dao.DictDao; +import com.java2nb.common.domain.DictDO; +import com.java2nb.common.service.DictService; + + +@Service +public class DictServiceImpl implements DictService { + @Autowired + private DictDao dictDao; + + @Override + public DictDO get(Long id) { + return dictDao.get(id); + } + + @Override + public List list(Map map) { + return dictDao.list(map); + } + + @Override + public int count(Map map) { + return dictDao.count(map); + } + + @Override + public int save(DictDO dict) { + return dictDao.save(dict); + } + + @Override + public int update(DictDO dict) { + return dictDao.update(dict); + } + + @Override + public int remove(Long id) { + return dictDao.remove(id); + } + + @Override + public int batchRemove(Long[] ids) { + return dictDao.batchRemove(ids); + } + + @Override + + public List listType() { + return dictDao.listType(); + } + + @Override + public String getName(String type, String value) { + Map param = new HashMap(16); + param.put("type", type); + param.put("value", value); + String rString = dictDao.list(param).get(0).getName(); + return rString; + } + + @Override + public List getHobbyList(UserDO userDO) { + Map param = new HashMap<>(16); + param.put("type", "hobby"); + List hobbyList = dictDao.list(param); + + if (StringUtils.isNotEmpty(userDO.getHobby())) { + String userHobbys[] = userDO.getHobby().split(";"); + for (String userHobby : userHobbys) { + for (DictDO hobby : hobbyList) { + if (!Objects.equals(userHobby, hobby.getId().toString())) { + continue; + } + hobby.setRemarks("true"); + break; + } + } + } + + return hobbyList; + } + + @Override + public List getSexList() { + Map param = new HashMap<>(16); + param.put("type", "sex"); + return dictDao.list(param); + } + + @Override + public List listByType(String type) { + Map param = new HashMap<>(16); + param.put("type", type); + return dictDao.list(param); + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/service/impl/FileServiceImpl.java b/novel-admin/src/main/java/com/java2nb/common/service/impl/FileServiceImpl.java new file mode 100644 index 0000000..e746869 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/service/impl/FileServiceImpl.java @@ -0,0 +1,72 @@ +package com.java2nb.common.service.impl; + +import com.java2nb.common.config.JnConfig; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.util.List; +import java.util.Map; + +import com.java2nb.common.dao.FileDao; +import com.java2nb.common.domain.FileDO; +import com.java2nb.common.service.FileService; +import org.springframework.util.StringUtils; + + +@Service +public class FileServiceImpl implements FileService { + @Autowired + private FileDao sysFileMapper; + + @Autowired + private JnConfig jnConfig; + @Override + public FileDO get(Long id){ + return sysFileMapper.get(id); + } + + @Override + public List list(Map map){ + return sysFileMapper.list(map); + } + + @Override + public int count(Map map){ + return sysFileMapper.count(map); + } + + @Override + public int save(FileDO sysFile){ + return sysFileMapper.save(sysFile); + } + + @Override + public int update(FileDO sysFile){ + return sysFileMapper.update(sysFile); + } + + @Override + public int remove(Long id){ + return sysFileMapper.remove(id); + } + + @Override + public int batchRemove(Long[] ids){ + return sysFileMapper.batchRemove(ids); + } + + @Override + public Boolean isExist(String url) { + Boolean isExist = false; + if (!StringUtils.isEmpty(url)) { + String filePath = url.replace("/files/", ""); + filePath = jnConfig.getUploadPath() + filePath; + File file = new File(filePath); + if (file.exists()) { + isExist = true; + } + } + return isExist; + } + } diff --git a/novel-admin/src/main/java/com/java2nb/common/service/impl/GeneratorServiceImpl.java b/novel-admin/src/main/java/com/java2nb/common/service/impl/GeneratorServiceImpl.java new file mode 100644 index 0000000..672bc74 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/service/impl/GeneratorServiceImpl.java @@ -0,0 +1,141 @@ +package com.java2nb.common.service.impl; + +import java.io.ByteArrayOutputStream; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.zip.ZipOutputStream; + +import com.java2nb.common.dao.GenColumnsDao; +import com.java2nb.common.domain.GenColumnsDO; +import lombok.SneakyThrows; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.commons.io.IOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.java2nb.common.dao.GeneratorMapper; +import com.java2nb.common.service.GeneratorService; +import com.java2nb.common.utils.GenUtils; +import org.springframework.transaction.annotation.Transactional; + + +@Service +public class GeneratorServiceImpl implements GeneratorService { + @Autowired + GeneratorMapper generatorMapper; + + @Autowired + GenColumnsDao genColumnsDao; + + @Override + public List> list(String tableName) { + List> list = generatorMapper.list(tableName); + return list; + } + + @Override + public void generatorCode(String[] tableNames) { + for (String tableName : tableNames) { + //查询表信息 + Map table = generatorMapper.get(tableName); + //查询列信息 + List> columns = generatorMapper.listColumns(tableName); + //生成代码 + GenUtils.generatorCode(table, columns, null); + } + } + + @Override + public byte[] downloadCode(String[] tableNames) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + for (String tableName : tableNames) { + //查询表信息 + Map table = generatorMapper.get(tableName); + //查询列信息 + List> columns = generatorMapper.listColumns(tableName); + //生成代码 + GenUtils.generatorCode(table, columns, zip); + } + IOUtils.closeQuietly(zip); + return outputStream.toByteArray(); + } + + + @Override + public List listColumnsByTableName(String tableName) { + Map query = new HashMap<>(); + query.put("tableName", tableName); + query.put("sort", "column_sort"); + query.put("order", "asc"); + List columnList = genColumnsDao.list(query); + if (columnList.size() == 0) { + //查询列信息 + List> columns = generatorMapper.listColumns(tableName); + + int columnSort = 0; + for (Map column : columns) { + GenColumnsDO genColumnsDO = transGenColumnDO(tableName,column,++columnSort); + + if(!"PRI".equalsIgnoreCase(column.get("columnKey"))) { + columnList.add(genColumnsDO); + }else{ + genColumnsDO.setColumnSort(0); + genColumnsDO.setPageType(11); + columnList.add(0,genColumnsDO); + } + + + } + + }else{ + Map column = generatorMapper.getPriColumn(tableName); + GenColumnsDO genColumnsDO = transGenColumnDO(tableName,column,0); + genColumnsDO.setPageType(11); + columnList.add(0,genColumnsDO); + } + return columnList; + } + + @Transactional + @Override + public boolean genColumnsSave(List list) { + GenColumnsDO pkColumn = list.get(0); + String tableName = pkColumn.getTableName(); + genColumnsDao.deleteByTableName(tableName); + list.remove(0); + genColumnsDao.saveBatch(list); + //查询表信息 + Map table = generatorMapper.get(tableName); + //生成代码 + GenUtils.generatorCode(table,pkColumn, list); + + + + return true; + } + + @SneakyThrows + public GenColumnsDO transGenColumnDO(String tableName,Map column,int columnSort){ + GenColumnsDO genColumnsDO = new GenColumnsDO(); + genColumnsDO.setTableName(tableName); + genColumnsDO.setColumnName(column.get("columnName")); + genColumnsDO.setColumnType(column.get("dataType")); + genColumnsDO.setColumnComment(column.get("columnComment")); + PropertiesConfiguration conf = new PropertiesConfiguration("generator.properties"); + genColumnsDO.setJavaType(conf.getString(column.get("dataType"))); + genColumnsDO.setColumnSort(columnSort); + genColumnsDO.setExtra(column.get("extra")); + genColumnsDO.setIsRequired(0); + if ("Date".equals(conf.getString(column.get("dataType")))) { + genColumnsDO.setPageType(4); + + } else { + genColumnsDO.setPageType(1); + } + genColumnsDO.setColumnLabel(column.get("columnComment")); + return genColumnsDO; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/service/impl/LogServiceImpl.java b/novel-admin/src/main/java/com/java2nb/common/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..d8d10a1 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/service/impl/LogServiceImpl.java @@ -0,0 +1,45 @@ +package com.java2nb.common.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import com.java2nb.common.dao.LogDao; +import com.java2nb.common.domain.LogDO; +import com.java2nb.common.domain.PageDO; +import com.java2nb.common.service.LogService; +import com.java2nb.common.utils.Query; + +@Service +public class LogServiceImpl implements LogService { + @Autowired + LogDao logMapper; + + @Async + @Override + public void save(LogDO logDO) { + logMapper.save(logDO); + } + + @Override + public PageDO queryList(Query query) { + int total = logMapper.count(query); + List logs = logMapper.list(query); + PageDO page = new PageDO<>(); + page.setTotal(total); + page.setRows(logs); + return page; + } + + @Override + public int remove(Long id) { + int count = logMapper.remove(id); + return count; + } + + @Override + public int batchRemove(Long[] ids){ + return logMapper.batchRemove(ids); + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/BDException.java b/novel-admin/src/main/java/com/java2nb/common/utils/BDException.java new file mode 100644 index 0000000..1e37993 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/BDException.java @@ -0,0 +1,52 @@ +package com.java2nb.common.utils; + +/** + * 自定义异常 + * + */ +public class BDException extends RuntimeException { + private static final long serialVersionUID = 1L; + + private String msg; + private int code = 500; + + public BDException(String msg) { + super(msg); + this.msg = msg; + } + + public BDException(String msg, Throwable e) { + super(msg, e); + this.msg = msg; + } + + public BDException(String msg, int code) { + super(msg); + this.msg = msg; + this.code = code; + } + + public BDException(String msg, int code, Throwable e) { + super(msg, e); + this.msg = msg; + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/Base64Utils.java b/novel-admin/src/main/java/com/java2nb/common/utils/Base64Utils.java new file mode 100644 index 0000000..d0b6d17 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/Base64Utils.java @@ -0,0 +1,5 @@ +package com.java2nb.common.utils; + +public class Base64Utils { + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/BuildTree.java b/novel-admin/src/main/java/com/java2nb/common/utils/BuildTree.java new file mode 100644 index 0000000..dfcd0d0 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/BuildTree.java @@ -0,0 +1,89 @@ +package com.java2nb.common.utils; + +import com.java2nb.common.domain.Tree; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class BuildTree { + + public static Tree build(List> nodes) { + + if (nodes == null) { + return null; + } + List> topNodes = new ArrayList>(); + + for (Tree children : nodes) { + + String pid = children.getParentId(); + if (pid == null || "0".equals(pid)) { + topNodes.add(children); + + continue; + } + + for (Tree parent : nodes) { + String id = parent.getId(); + if (id != null && id.equals(pid)) { + parent.getChildren().add(children); + children.setHasParent(true); + parent.setChildren(true); + continue; + } + } + + } + + Tree root = new Tree(); + if (topNodes.size() == 1) { + root = topNodes.get(0); + } else { + root.setId("-1"); + root.setParentId(""); + root.setHasParent(false); + root.setChildren(true); + root.setChecked(true); + root.setChildren(topNodes); + root.setText("顶级节点"); + Map state = new HashMap<>(16); + state.put("opened", true); + root.setState(state); + } + + return root; + } + + public static List> buildList(List> nodes, String idParam) { + if (nodes == null) { + return null; + } + List> topNodes = new ArrayList>(); + + for (Tree children : nodes) { + + String pid = children.getParentId(); + if (pid == null || idParam.equals(pid)) { + topNodes.add(children); + + continue; + } + + for (Tree parent : nodes) { + String id = parent.getId(); + if (id != null && id.equals(pid)) { + parent.getChildren().add(children); + children.setHasParent(true); + parent.setChildren(true); + + continue; + } + } + + } + return topNodes; + } + +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/DateUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/DateUtils.java new file mode 100644 index 0000000..8263e84 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/DateUtils.java @@ -0,0 +1,94 @@ +package com.java2nb.common.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 日期处理 + */ +public class DateUtils { + private final static Logger logger = LoggerFactory.getLogger(DateUtils.class); + public final static String YEAR_PATTERN = "yyyy"; + public final static String MONTH_PATTERN = "MM"; + public final static String DAY_PATTERN = "dd"; + /** + * 时间格式(yyyy-MM-dd) + */ + public final static String DATE_PATTERN = "yyyy-MM-dd"; + /** + * 时间格式(yyyy-MM-dd HH:mm:ss) + */ + public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; + + public static String format(Date date) { + return format(date, DATE_PATTERN); + } + + public static String format(Date date, String pattern) { + if (date != null) { + SimpleDateFormat df = new SimpleDateFormat(pattern); + return df.format(date); + } + return null; + } + + /** + * 计算距离现在多久,非精确 + * + * @param date + * @return + */ + public static String getTimeBefore(Date date) { + Date now = new Date(); + long l = now.getTime() - date.getTime(); + long day = l / (24 * 60 * 60 * 1000); + long hour = (l / (60 * 60 * 1000) - day * 24); + long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60); + long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); + String r = ""; + if (day > 0) { + r += day + "天"; + } else if (hour > 0) { + r += hour + "小时"; + } else if (min > 0) { + r += min + "分"; + } else if (s > 0) { + r += s + "秒"; + } + r += "前"; + return r; + } + + /** + * 计算距离现在多久,精确 + * + * @param date + * @return + */ + public static String getTimeBeforeAccurate(Date date) { + Date now = new Date(); + long l = now.getTime() - date.getTime(); + long day = l / (24 * 60 * 60 * 1000); + long hour = (l / (60 * 60 * 1000) - day * 24); + long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60); + long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); + String r = ""; + if (day > 0) { + r += day + "天"; + } + if (hour > 0) { + r += hour + "小时"; + } + if (min > 0) { + r += min + "分"; + } + if (s > 0) { + r += s + "秒"; + } + r += "前"; + return r; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/ExceptionUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/ExceptionUtils.java new file mode 100644 index 0000000..ed97e7e --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/ExceptionUtils.java @@ -0,0 +1,12 @@ +package com.java2nb.common.utils; + +public class ExceptionUtils { + public static String getExceptionAllinformation(Exception ex) { + String sOut = ""; + StackTraceElement[] trace = ex.getStackTrace(); + for (StackTraceElement s : trace) { + sOut += "\tat " + s + "\r\n"; + } + return sOut; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/FileType.java b/novel-admin/src/main/java/com/java2nb/common/utils/FileType.java new file mode 100644 index 0000000..266e6b7 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/FileType.java @@ -0,0 +1,55 @@ +package com.java2nb.common.utils; + +/* author:zss + * 日期:2017年3月31日 + * 功能:根据文件名称判断类型 + * 接受参数类型:String + * 返回参数类型:String + * 备注:文件类型不完善,有需要的自行添加 + */ +public class FileType { + public static int fileType(String fileName) { + if (fileName == null) { + fileName = "文件名为空!"; + return 500; + + } else { + // 获取文件后缀名并转化为写,用于后续比较 + String fileType = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()).toLowerCase(); + // 创建图片类型数组0 + String[] img = { "bmp", "jpg", "jpeg", "png", "tiff", "gif", "pcx", "tga", "exif", "fpx", "svg", "psd", + "cdr", "pcd", "dxf", "ufo", "eps", "ai", "raw", "wmf" }; + for (int i = 0; i < img.length; i++) { + if (img[i].equals(fileType)) { + return 0; + } + } + + // 创建文档类型数组1 + String[] document = { "txt", "doc", "docx", "xls", "htm", "html", "jsp", "rtf", "wpd", "pdf", "ppt" }; + for (int i = 0; i < document.length; i++) { + if (document[i].equals(fileType)) { + return 1; + } + } + // 创建视频类型数组2 + String[] video = { "mp4", "avi", "mov", "wmv", "asf", "navi", "3gp", "mkv", "f4v", "rmvb", "webm" }; + for (int i = 0; i < video.length; i++) { + if (video[i].equals(fileType)) { + return 2; + } + } + // 创建音乐类型数组3 + String[] music = { "mp3", "wma", "wav", "mod", "ra", "cd", "md", "asf", "aac", "vqf", "ape", "mid", "ogg", + "m4a", "vqf" }; + for (int i = 0; i < music.length; i++) { + if (music[i].equals(fileType)) { + return 3; + } + } + + } + //4 + return 99; + } +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/FileUtil.java b/novel-admin/src/main/java/com/java2nb/common/utils/FileUtil.java new file mode 100644 index 0000000..2049759 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/FileUtil.java @@ -0,0 +1,37 @@ +package com.java2nb.common.utils; + +import java.io.File; +import java.io.FileOutputStream; +import java.util.UUID; + +public class FileUtil { + + public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception { + File targetFile = new File(filePath); + if (!targetFile.exists()) { + targetFile.mkdirs(); + } + FileOutputStream out = new FileOutputStream(filePath + fileName); + out.write(file); + out.flush(); + out.close(); + } + + public static boolean deleteFile(String fileName) { + File file = new File(fileName); + // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除 + if (file.exists() && file.isFile()) { + if (file.delete()) { + return true; + } else { + return false; + } + } else { + return false; + } + } + + public static String renameToUUID(String fileName) { + return UUID.randomUUID() + "." + fileName.substring(fileName.lastIndexOf(".") + 1); + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/GenUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/GenUtils.java new file mode 100644 index 0000000..1b0f260 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/GenUtils.java @@ -0,0 +1,376 @@ +package com.java2nb.common.utils; + + +import com.java2nb.common.config.Constant; +import com.java2nb.common.domain.ColumnDO; +import com.java2nb.common.domain.GenColumnsDO; +import com.java2nb.common.domain.TableDO; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.WordUtils; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; + +import java.io.*; +import java.util.*; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +/** + * 代码生成器 工具类 + */ +public class GenUtils { + + + public static List getTemplates() { + List templates = new ArrayList(); + templates.add("templates/common/generator/domain.java.vm"); + templates.add("templates/common/generator/Dao.java.vm"); + //templates.add("templates/common/generator/Mapper.java.vm"); + templates.add("templates/common/generator/Mapper.xml.vm"); + templates.add("templates/common/generator/Service.java.vm"); + templates.add("templates/common/generator/ServiceImpl.java.vm"); + templates.add("templates/common/generator/Controller.java.vm"); + templates.add("templates/common/generator/list.html.vm"); + templates.add("templates/common/generator/add.html.vm"); + templates.add("templates/common/generator/edit.html.vm"); + templates.add("templates/common/generator/detail.html.vm"); + templates.add("templates/common/generator/list.js.vm"); + templates.add("templates/common/generator/add.js.vm"); + templates.add("templates/common/generator/edit.js.vm"); + templates.add("templates/common/generator/menu.sql.vm"); + + //templates.add("templates/common/generator/menu.sql.vm"); + return templates; + } + + + /** + * 生成代码 + */ + + + public static void generatorCode(Map table, + List> columns, ZipOutputStream zip) { + /*//封装模板数据 + Map map = new HashMap<>(16); + + + //配置信息 + Configuration config = getConfig(); + //表信息 + TableDO tableDO = new TableDO(); + tableDO.setTableName(table.get("tableName")); + tableDO.setComments(table.get("tableComment")); + //表名转换成Java类名 + String className = tableToJava(tableDO.getTableName(), config.getString("tablePrefix"), config.getString("autoRemovePre")); + tableDO.setClassName(className); + tableDO.setClassname(StringUtils.uncapitalize(className)); + + //列信息 + List columsList = new ArrayList<>(); + for (Map column : columns) { + ColumnDO columnDO = new ColumnDO(); + columnDO.setColumnName(column.get("columnName")); + columnDO.setDataType(column.get("dataType")); + columnDO.setComments(column.get("columnComment")); + columnDO.setExtra(column.get("extra")); + + //列名转换成Java属性名 + String attrName = columnToJava(columnDO.getColumnName()); + columnDO.setAttrName(attrName); + columnDO.setAttrname(StringUtils.uncapitalize(attrName)); + + //列的数据类型,转换成Java类型 + String attrType = config.getString(columnDO.getDataType(), "unknowType"); + switch (attrType) { + case "BigDecimal": { + map.put("hasBigDecimal", true); + break; + } + case "Date": { + map.put("hasDate", true); + break; + } + case "Long": { + map.put("hasLong", true); + break; + } + } + + columnDO.setAttrType(attrType); + + //是否主键 + if ("PRI".equalsIgnoreCase(column.get("columnKey")) && tableDO.getPk() == null) { + tableDO.setPk(columnDO); + } + + columsList.add(columnDO); + } + tableDO.setColumns(columsList); + + //没主键,则第一个字段为主键 + if (tableDO.getPk() == null) { + tableDO.setPk(tableDO.getColumns().get(0)); + } + + //设置velocity资源加载器 + Properties prop = new Properties(); + prop.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + Velocity.init(prop); + + + map.put("tableName", tableDO.getTableName()); + map.put("comments", tableDO.getComments()); + map.put("pk", tableDO.getPk()); + map.put("className", tableDO.getClassName()); + map.put("classname", tableDO.getClassname()); + map.put("pathName", config.getString("package").substring(config.getString("package").lastIndexOf(".") + 1)); + map.put("columns", tableDO.getColumns()); + map.put("package", config.getString("package")); + map.put("author", config.getString("author")); + map.put("email", config.getString("email")); + map.put("datetime", DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN)); + VelocityContext context = new VelocityContext(map); + + //获取模板列表 + List templates = getTemplates(); + for (String template : templates) { + //渲染模板 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, "UTF-8"); + tpl.merge(context, sw); + + try { + String fileName = getFileName(template, tableDO.getClassname(), tableDO.getClassName(), config.getString("package")); + if (zip != null) { + //添加到zip + zip.putNextEntry(new ZipEntry(fileName)); + IOUtils.write(sw.toString(), zip, "UTF-8"); + IOUtils.closeQuietly(sw); + zip.closeEntry(); + } else { + String srcPath = config.getString("srcPath"); + fileName = srcPath + File.separator + fileName; + File file = new File(fileName); + if (file.exists()) { + file = new File(fileName + 1); + } + File parentCatelog = file.getParentFile(); + if (!parentCatelog.exists()) { + parentCatelog.mkdirs(); + } + OutputStream fos = new FileOutputStream(file); + IOUtils.write(sw.toString(), fos, "UTF-8"); + fos.close(); + } + } catch (IOException e) { + throw new RuntimeException("渲染模板失败,表名:" + tableDO.getTableName(), e); + } + }*/ + } + + + /** + * 列名转换成Java属性名 + */ + public static String columnToJava(String columnName) { + return WordUtils.capitalizeFully(columnName, new char[]{'_'}).replace("_", ""); + } + + /** + * 表名转换成Java类名 + */ + public static String tableToJava(String tableName, String tablePrefix, String autoRemovePre) { + if (Constant.AUTO_REOMVE_PRE.equals(autoRemovePre)) { + tableName = tableName.substring(tableName.indexOf("_") + 1); + } + if (StringUtils.isNotBlank(tablePrefix)) { + tableName = tableName.replace(tablePrefix, ""); + } + + return columnToJava(tableName); + } + + /** + * 获取配置信息 + */ + public static Configuration getConfig() { + try { + return new PropertiesConfiguration("generator.properties"); + } catch (ConfigurationException e) { + throw new RuntimeException("获取配置文件失败,", e); + } + } + + /** + * 获取文件名 + */ + public static String getFileName(String template, String classname, String className, String packageName) { + String moduleName = packageName.substring(packageName.lastIndexOf(".") + 1); + + String javaPackagePath = "main" + File.separator + "java" + File.separator; + //String modulesname=config.getString("packageName"); + if (StringUtils.isNotBlank(packageName)) { + javaPackagePath += packageName.replace(".", File.separator) + File.separator; + } + + if (template.contains("domain.java.vm")) { + return javaPackagePath + "domain" + File.separator + className + "DO.java"; + } + + if (template.contains("Dao.java.vm")) { + return javaPackagePath + "dao" + File.separator + className + "Dao.java"; + } + +// if(template.contains("Mapper.java.vm")){ +// return packagePath + "dao" + File.separator + className + "Mapper.java"; +// } + + if (template.contains("Service.java.vm")) { + return javaPackagePath + "service" + File.separator + className + "Service.java"; + } + + if (template.contains("ServiceImpl.java.vm")) { + return javaPackagePath + "service" + File.separator + "impl" + File.separator + className + "ServiceImpl.java"; + } + + if (template.contains("Controller.java.vm")) { + return javaPackagePath + "controller" + File.separator + className + "Controller.java"; + } + + if (template.contains("Mapper.xml.vm")) { + return "main" + File.separator + "resources" + File.separator + "mybatis" + File.separator + moduleName + File.separator + className + "Mapper.xml"; + } + + if (template.contains("list.html.vm")) { + return "main" + File.separator + "resources" + File.separator + "templates" + File.separator + + moduleName + File.separator + classname + File.separator + classname + ".html"; + // + "modules" + File.separator + "generator" + File.separator + className.toLowerCase() + ".html"; + } + if (template.contains("add.html.vm")) { + return "main" + File.separator + "resources" + File.separator + "templates" + File.separator + + moduleName + File.separator + classname + File.separator + "add.html"; + } + if (template.contains("edit.html.vm")) { + return "main" + File.separator + "resources" + File.separator + "templates" + File.separator + + moduleName + File.separator + classname + File.separator + "edit.html"; + } + if (template.contains("detail.html.vm")) { + return "main" + File.separator + "resources" + File.separator + "templates" + File.separator + + moduleName + File.separator + classname + File.separator + "detail.html"; + } + + if (template.contains("list.js.vm")) { + return "main" + File.separator + "resources" + File.separator + "static" + File.separator + "js" + File.separator + + "appjs" + File.separator + moduleName + File.separator + classname + File.separator + classname + ".js"; + // + "modules" + File.separator + "generator" + File.separator + className.toLowerCase() + ".js"; + } + if (template.contains("add.js.vm")) { + return "main" + File.separator + "resources" + File.separator + "static" + File.separator + "js" + File.separator + + "appjs" + File.separator + moduleName + File.separator + classname + File.separator + "add.js"; + } + if (template.contains("edit.js.vm")) { + return "main" + File.separator + "resources" + File.separator + "static" + File.separator + "js" + File.separator + + "appjs" + File.separator + moduleName + File.separator + classname + File.separator + "edit.js"; + } + if (template.contains("menu.sql.vm")) { + return "main" + File.separator + "resources" + File.separator + "static" + File.separator + "sql" + + File.separator + moduleName + File.separator + classname + File.separator + "menu.js"; + } + +// if(template.contains("menu.sql.vm")){ +// return className.toLowerCase() + "_menu.sql"; +// } + + return null; + } + + public static void generatorCode(Map table, GenColumnsDO pkColumn, List list) { + //封装模板数据 + Map map = new HashMap<>(16); + + + //配置信息 + Configuration config = getConfig(); + //表信息 + TableDO tableDO = new TableDO(); + tableDO.setTableName(table.get("tableName")); + tableDO.setComments(table.get("tableComment")); + //表名转换成Java类名 + String className = tableToJava(tableDO.getTableName(), config.getString("tablePrefix"), config.getString("autoRemovePre")); + tableDO.setClassName(className); + tableDO.setClassname(StringUtils.uncapitalize(className)); + + + + Collections.sort(list, Comparator.comparingInt(GenColumnsDO::getColumnSort)); + + for(GenColumnsDO genColumnsDO : list){ + String attrName = columnToJava(genColumnsDO.getColumnName()); + genColumnsDO.setAttrName(attrName); + genColumnsDO.setAttrname(StringUtils.uncapitalize(attrName)); + } + + String attrName = columnToJava(pkColumn.getColumnName()); + pkColumn.setAttrName(attrName); + pkColumn.setAttrname(StringUtils.uncapitalize(attrName)); + + tableDO.setPk(pkColumn); + + list.add(0,pkColumn); + tableDO.setColumns(list); + + //设置velocity资源加载器 + Properties prop = new Properties(); + prop.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + Velocity.init(prop); + + + map.put("tableName", tableDO.getTableName()); + map.put("comments", tableDO.getComments()); + map.put("pk", tableDO.getPk()); + map.put("className", tableDO.getClassName()); + map.put("classname", tableDO.getClassname()); + map.put("pathName", config.getString("package").substring(config.getString("package").lastIndexOf(".") + 1)); + map.put("columns", tableDO.getColumns()); + map.put("package", config.getString("package")); + map.put("author", config.getString("author")); + map.put("email", config.getString("email")); + map.put("datetime", DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN)); + VelocityContext context = new VelocityContext(map); + + //获取模板列表 + List templates = getTemplates(); + for (String template : templates) { + //渲染模板 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, "UTF-8"); + tpl.merge(context, sw); + + try { + String fileName = getFileName(template, tableDO.getClassname(), tableDO.getClassName(), config.getString("package")); + + String srcPath = config.getString("srcPath"); + fileName = srcPath + File.separator + fileName; + File file = new File(fileName); + if (file.exists()) { + file = new File(fileName + 1); + } + File parentCatelog = file.getParentFile(); + if (!parentCatelog.exists()) { + parentCatelog.mkdirs(); + } + OutputStream fos = new FileOutputStream(file); + IOUtils.write(sw.toString(), fos, "UTF-8"); + fos.close(); + } catch (IOException e) { + throw new RuntimeException("渲染模板失败,表名:" + tableDO.getTableName(), e); + } + } + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/HttpContextUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/HttpContextUtils.java new file mode 100644 index 0000000..5e6241e --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/HttpContextUtils.java @@ -0,0 +1,12 @@ +package com.java2nb.common.utils; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +public class HttpContextUtils { + public static HttpServletRequest getHttpServletRequest() { + return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/HttpServletUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/HttpServletUtils.java new file mode 100644 index 0000000..39e0f16 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/HttpServletUtils.java @@ -0,0 +1,14 @@ +package com.java2nb.common.utils; + +import javax.servlet.http.HttpServletRequest; + +public class HttpServletUtils { + public static boolean jsAjax(HttpServletRequest req){ + //判断是否为ajax请求,默认不是 + boolean isAjaxRequest = false; + if(!StringUtils.isBlank(req.getHeader("x-requested-with")) && req.getHeader("x-requested-with").equals("XMLHttpRequest")){ + isAjaxRequest = true; + } + return isAjaxRequest; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/IPUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/IPUtils.java new file mode 100644 index 0000000..de3c9a9 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/IPUtils.java @@ -0,0 +1,32 @@ +package com.java2nb.common.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.http.HttpServletRequest; + +public class IPUtils { + private static Logger logger = LoggerFactory.getLogger(IPUtils.class); + + /** + * 获取IP地址 + * + * 使用Nginx等反向代理软件, 则不能通过request.getRemoteAddr()获取IP地址 + * 如果使用了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP地址,X-Forwarded-For中第一个非unknown的有效IP字符串,则为真实IP地址 + */ + public static String getIpAddr(HttpServletRequest request) { + + String ip = request.getHeader("x-forwarded-for"); + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/IdWorker.java b/novel-admin/src/main/java/com/java2nb/common/utils/IdWorker.java new file mode 100644 index 0000000..6c3e9b2 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/IdWorker.java @@ -0,0 +1,163 @@ +package com.java2nb.common.utils; + + +import java.lang.management.ManagementFactory; +import java.net.InetAddress; +import java.net.NetworkInterface; + +/** + *

名称:IdWorker.java

+ *

描述:分布式自增长ID

+ *
+ *     Twitter的 Snowflake JAVA实现方案
+ * 
+ * 核心代码为其IdWorker这个类实现,其原理结构如下,我分别用一个0表示一位,用—分割开部分的作用: + * 1||0---0000000000 0000000000 0000000000 0000000000 0 --- 00000 ---00000 ---000000000000 + * 在上面的字符串中,第一位为未使用(实际上也可作为long的符号位),接下来的41位为毫秒级时间, + * 然后5位datacenter标识位,5位机器ID(并不算标识符,实际是为线程标识), + * 然后12位该毫秒内的当前毫秒内的计数,加起来刚好64位,为一个Long型。 + * 这样的好处是,整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞(由datacenter和机器ID作区分), + * 并且效率较高,经测试,snowflake每秒能够产生26万ID左右,完全满足需要。 + *

+ * 64位ID (42(毫秒)+5(机器ID)+5(业务编码)+12(重复累加)) + * + */ +public class IdWorker { + // 时间起始标记点,作为基准,一般取系统的最近时间(一旦确定不能变动) + private final static long twepoch = 1288834974657L; + // 机器标识位数 + private final static long workerIdBits = 5L; + // 数据中心标识位数 + private final static long datacenterIdBits = 5L; + // 机器ID最大值 + private final static long maxWorkerId = -1L ^ (-1L << workerIdBits); + // 数据中心ID最大值 + private final static long maxDatacenterId = -1L ^ (-1L << datacenterIdBits); + // 毫秒内自增位 + private final static long sequenceBits = 12L; + // 机器ID偏左移12位 + private final static long workerIdShift = sequenceBits; + // 数据中心ID左移17位 + private final static long datacenterIdShift = sequenceBits + workerIdBits; + // 时间毫秒左移22位 + private final static long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits; + + private final static long sequenceMask = -1L ^ (-1L << sequenceBits); + /* 上次生产id时间戳 */ + private static long lastTimestamp = -1L; + // 0,并发控制 + private long sequence = 0L; + + private final long workerId; + // 数据标识id部分 + private final long datacenterId; + + public IdWorker(){ + this.datacenterId = getDatacenterId(maxDatacenterId); + this.workerId = getMaxWorkerId(datacenterId, maxWorkerId); + } + /** + * @param workerId + * 工作机器ID + * @param datacenterId + * 序列号 + */ + public IdWorker(long workerId, long datacenterId) { + if (workerId > maxWorkerId || workerId < 0) { + throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId)); + } + if (datacenterId > maxDatacenterId || datacenterId < 0) { + throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId)); + } + this.workerId = workerId; + this.datacenterId = datacenterId; + } + /** + * 获取下一个ID + * + * @return + */ + public synchronized long nextId() { + long timestamp = timeGen(); + if (timestamp < lastTimestamp) { + throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp)); + } + + if (lastTimestamp == timestamp) { + // 当前毫秒内,则+1 + sequence = (sequence + 1) & sequenceMask; + if (sequence == 0) { + // 当前毫秒内计数满了,则等待下一秒 + timestamp = tilNextMillis(lastTimestamp); + } + } else { + sequence = 0L; + } + lastTimestamp = timestamp; + // ID偏移组合生成最终的ID,并返回ID + long nextId = ((timestamp - twepoch) << timestampLeftShift) + | (datacenterId << datacenterIdShift) + | (workerId << workerIdShift) | sequence; + + return nextId; + } + + private long tilNextMillis(final long lastTimestamp) { + long timestamp = this.timeGen(); + while (timestamp <= lastTimestamp) { + timestamp = this.timeGen(); + } + return timestamp; + } + + private long timeGen() { + return System.currentTimeMillis(); + } + + /** + *

+ * 获取 maxWorkerId + *

+ */ + protected static long getMaxWorkerId(long datacenterId, long maxWorkerId) { + StringBuffer mpid = new StringBuffer(); + mpid.append(datacenterId); + String name = ManagementFactory.getRuntimeMXBean().getName(); + if (!name.isEmpty()) { + /* + * GET jvmPid + */ + mpid.append(name.split("@")[0]); + } + /* + * MAC + PID 的 hashcode 获取16个低位 + */ + return (mpid.toString().hashCode() & 0xffff) % (maxWorkerId + 1); + } + + /** + *

+ * 数据标识id部分 + *

+ */ + protected static long getDatacenterId(long maxDatacenterId) { + long id = 0L; + try { + InetAddress ip = InetAddress.getLocalHost(); + NetworkInterface network = NetworkInterface.getByInetAddress(ip); + if (network == null) { + id = 1L; + } else { + byte[] mac = network.getHardwareAddress(); + id = ((0x000000FF & (long) mac[mac.length - 1]) + | (0x0000FF00 & (((long) mac[mac.length - 2]) << 8))) >> 6; + id = id % (maxDatacenterId + 1); + } + } catch (Exception e) { + System.out.println(" getDatacenterId: " + e.getMessage()); + } + return id; + } + + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/ImageUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/ImageUtils.java new file mode 100644 index 0000000..43d6784 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/ImageUtils.java @@ -0,0 +1,77 @@ +package com.java2nb.common.utils; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.multipart.MultipartFile; + +import javax.imageio.ImageIO; +import javax.imageio.ImageReadParam; +import javax.imageio.ImageReader; +import javax.imageio.stream.ImageInputStream; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.Iterator; + +/** + * @author xiongxy + * @date 2019-09-25 15:09:21 + */ +@Slf4j +public class ImageUtils { + /*** + * 剪裁图片 + * @param file 图片 + * @param x 起点横坐标 + * @param y 纵坐标 + * @param w 长 + * @param h 高 + * @throws IOException + * @date 2019-09-25 15:09:21 + */ + public static BufferedImage cutImage(MultipartFile file, int x, int y, int w, int h,String prefix) { + + Iterator iterator = ImageIO.getImageReadersByFormatName(prefix); + try { + ImageReader reader = (ImageReader)iterator.next(); + //转换成输入流 + InputStream in = file.getInputStream(); + ImageInputStream iis = ImageIO.createImageInputStream(in); + reader.setInput(iis, true); + ImageReadParam param = reader.getDefaultReadParam(); + Rectangle rect = new Rectangle(x, y, w,h); + param.setSourceRegion(rect); + BufferedImage bi = reader.read(0,param); + return bi; + } catch (Exception e) { + log.error(e.getMessage(),e); + + } + return null; + } + /*** + * 图片旋转指定角度 + * @param bufferedimage 图像 + * @param degree 角度 + * @return + * @date 2019-09-25 15:09:21 + */ + public static BufferedImage rotateImage(BufferedImage bufferedimage, int degree) { + int w = bufferedimage.getWidth(); + int h = bufferedimage.getHeight(); + int type = bufferedimage.getColorModel().getTransparency(); + BufferedImage img; + Graphics2D graphics2d; + (graphics2d = (img = new BufferedImage(w, h, type)) + .createGraphics()).setRenderingHint( + RenderingHints.KEY_INTERPOLATION, + RenderingHints.VALUE_INTERPOLATION_BILINEAR); + graphics2d.setPaint(Color.WHITE); + graphics2d.fillRect(0, 0, w, h); + graphics2d.rotate(Math.toRadians(degree), w / 2, h / 2); + graphics2d.drawImage(bufferedimage, 0, 0,Color.WHITE, null); + graphics2d.dispose(); + return img; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/JSONUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/JSONUtils.java new file mode 100644 index 0000000..4575bd4 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/JSONUtils.java @@ -0,0 +1,86 @@ +package com.java2nb.common.utils; + +import com.alibaba.druid.util.StringUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; + +import java.util.HashMap; +import java.util.Map; + +public class JSONUtils { + /** + * Bean对象转JSON + * + * @param object + * @param dataFormatString + * @return + */ + public static String beanToJson(Object object, String dataFormatString) { + if (object != null) { + if (StringUtils.isEmpty(dataFormatString)) { + return JSONObject.toJSONString(object); + } + return JSON.toJSONStringWithDateFormat(object, dataFormatString); + } else { + return null; + } + } + + /** + * Bean对象转JSON + * + * @param object + * @return + */ + public static String beanToJson(Object object) { + if (object != null) { + return JSON.toJSONString(object); + } else { + return null; + } + } + + /** + * String转JSON字符串 + * + * @param key + * @param value + * @return + */ + public static String stringToJsonByFastjson(String key, String value) { + if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) { + return null; + } + Map map = new HashMap(16); + map.put(key, value); + return beanToJson(map, null); + } + + /** + * 将json字符串转换成对象 + * + * @param json + * @param clazz + * @return + */ + public static Object jsonToBean(String json, Object clazz) { + if (StringUtils.isEmpty(json) || clazz == null) { + return null; + } + return JSON.parseObject(json, clazz.getClass()); + } + + /** + * json字符串转map + * + * @param json + * @return + */ + @SuppressWarnings("unchecked") + public static Map jsonToMap(String json) { + if (StringUtils.isEmpty(json)) { + return null; + } + return JSON.parseObject(json, Map.class); + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/MD5Utils.java b/novel-admin/src/main/java/com/java2nb/common/utils/MD5Utils.java new file mode 100644 index 0000000..131d186 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/MD5Utils.java @@ -0,0 +1,28 @@ +package com.java2nb.common.utils; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.apache.shiro.util.ByteSource; + +public class MD5Utils { + private static final String SALT = "1qazxsw2"; + + private static final String ALGORITH_NAME = "md5"; + + private static final int HASH_ITERATIONS = 2; + + public static String encrypt(String pswd) { + String newPassword = new SimpleHash(ALGORITH_NAME, pswd, ByteSource.Util.bytes(SALT), HASH_ITERATIONS).toHex(); + return newPassword; + } + + public static String encrypt(String username, String pswd) { + String newPassword = new SimpleHash(ALGORITH_NAME, pswd, ByteSource.Util.bytes(username + SALT), + HASH_ITERATIONS).toHex(); + return newPassword; + } + public static void main(String[] args) { + + //System.out.println(MD5Utils.encrypt("admin", "1")); + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/PageBean.java b/novel-admin/src/main/java/com/java2nb/common/utils/PageBean.java new file mode 100644 index 0000000..3495c9b --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/PageBean.java @@ -0,0 +1,35 @@ +package com.java2nb.common.utils; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author xiongxy + */ +public class PageBean implements Serializable { + private static final long serialVersionUID = 1L; + private int total; + private List rows; + + public PageBean(List list, int total) { + this.rows = list; + this.total = total; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/Query.java b/novel-admin/src/main/java/com/java2nb/common/utils/Query.java new file mode 100644 index 0000000..09b9cbe --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/Query.java @@ -0,0 +1,41 @@ +package com.java2nb.common.utils; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * 查询参数 + */ +public class Query extends LinkedHashMap { + private static final long serialVersionUID = 1L; + // + private int offset; + // 每页条数 + private int limit; + + public Query(Map params) { + this.putAll(params); + // 分页参数 + this.offset = Integer.parseInt(params.get("offset").toString()); + this.limit = Integer.parseInt(params.get("limit").toString()); + this.put("offset", offset); + this.put("page", offset / limit + 1); + this.put("limit", limit); + } + + public int getOffset() { + return offset; + } + + public void setOffset(int offset) { + this.put("offset", offset); + } + + public int getLimit() { + return limit; + } + + public void setLimit(int limit) { + this.limit = limit; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/R.java b/novel-admin/src/main/java/com/java2nb/common/utils/R.java new file mode 100644 index 0000000..05e9d06 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/R.java @@ -0,0 +1,50 @@ +package com.java2nb.common.utils; + +import java.util.HashMap; +import java.util.Map; + +public class R extends HashMap { + private static final long serialVersionUID = 1L; + + public R() { + put("code", 0); + put("msg", "操作成功"); + } + + public static R error() { + return error(1, "操作失败"); + } + + public static R error(String msg) { + return error(500, msg); + } + + public static R error(int code, String msg) { + R r = new R(); + r.put("code", code); + r.put("msg", msg); + return r; + } + + public static R ok(String msg) { + R r = new R(); + r.put("msg", msg); + return r; + } + + public static R ok(Map map) { + R r = new R(); + r.putAll(map); + return r; + } + + public static R ok() { + return new R(); + } + + @Override + public R put(String key, Object value) { + super.put(key, value); + return this; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/RandomValidateCodeUtil.java b/novel-admin/src/main/java/com/java2nb/common/utils/RandomValidateCodeUtil.java new file mode 100644 index 0000000..9f61c3f --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/RandomValidateCodeUtil.java @@ -0,0 +1,122 @@ +package com.java2nb.common.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.imageio.ImageIO; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.util.Random; + +/** + * @author xiongxy + */ +public class RandomValidateCodeUtil { + + + public static final String RANDOMCODEKEY = "RANDOMVALIDATECODEKEY";//放到session中的key + private String randString = "0123456789";//随机产生只有数字的字符串 private String + //private String randString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";//随机产生只有字母的字符串 + //private String randString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//随机产生数字与字母组合的字符串 + private int width = 95;// 图片宽 + private int height = 25;// 图片高 + private int lineSize = 40;// 干扰线数量 + private int stringNum = 4;// 随机产生字符数量 + + private static final Logger logger = LoggerFactory.getLogger(RandomValidateCodeUtil.class); + + private Random random = new Random(); + + /** + * 获得字体 + */ + private Font getFont() { + return new Font("Fixedsys", Font.CENTER_BASELINE, 18); + } + + /** + * 获得颜色 + */ + private Color getRandColor(int fc, int bc) { + if (fc > 255) { + fc = 255; + } + if (bc > 255) { + bc = 255; + } + int r = fc + random.nextInt(bc - fc - 16); + int g = fc + random.nextInt(bc - fc - 14); + int b = fc + random.nextInt(bc - fc - 18); + return new Color(r, g, b); + } + + /** + * 生成随机图片 + */ + public void getRandcode(HttpServletRequest request, HttpServletResponse response) { + HttpSession session = request.getSession(); + // BufferedImage类是具有缓冲区的Image类,Image类是用于描述图像信息的类 + BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); + Graphics g = image.getGraphics();// 产生Image对象的Graphics对象,改对象可以在图像上进行各种绘制操作 + g.fillRect(0, 0, width, height);//图片大小 + g.setFont(new Font("Default", Font.ROMAN_BASELINE, 18));//字体大小 + g.setColor(getRandColor(110, 133));//字体颜色 + // 绘制干扰线 + for (int i = 0; i <= lineSize; i++) { + drowLine(g); + } + // 绘制随机字符 + String randomString = ""; + for (int i = 1; i <= stringNum; i++) { + randomString = drowString(g, randomString, i); + } + logger.info(randomString); + //将生成的随机字符串保存到session中 + session.removeAttribute(RANDOMCODEKEY); + session.setAttribute(RANDOMCODEKEY, randomString); + g.dispose(); + try { + // 将内存中的图片通过流动形式输出到客户端 + ImageIO.write(image, "JPEG", response.getOutputStream()); + } catch (Exception e) { + logger.error("将内存中的图片通过流动形式输出到客户端失败>>>> ", e); + } + + } + + /** + * 绘制字符串 + */ + private String drowString(Graphics g, String randomString, int i) { + g.setFont(getFont()); + g.setColor(new Color(random.nextInt(101), random.nextInt(111), random + .nextInt(121))); + String rand = String.valueOf(getRandomString(random.nextInt(randString + .length()))); + randomString += rand; + g.translate(random.nextInt(3), random.nextInt(3)); + g.drawString(rand, 13 * i, 16); + return randomString; + } + + /** + * 绘制干扰线 + */ + private void drowLine(Graphics g) { + int x = random.nextInt(width); + int y = random.nextInt(height); + int xl = random.nextInt(13); + int yl = random.nextInt(15); + g.drawLine(x, y, x + xl, y + yl); + } + + /** + * 获取随机的字符 + */ + public String getRandomString(int num) { + return String.valueOf(randString.charAt(num)); + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/RedisUtil.java b/novel-admin/src/main/java/com/java2nb/common/utils/RedisUtil.java new file mode 100644 index 0000000..071b17d --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/RedisUtil.java @@ -0,0 +1,601 @@ +package com.java2nb.common.utils; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +@Component +@Slf4j +public final class RedisUtil { + + + @Autowired + private RedisTemplate redisTemplate; + + /** + * 指定缓存失效时间 + * + * @param key 键 + * @param time 时间(秒) + * @return + */ + + + public boolean expire(String key, long time) { + try { + if (time > 0) { + redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 根据key 获取过期时间 + * + * @param key 键 不能为null + * @return 时间(秒) 返回0代表为永久有效 + */ + + + public long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + + /** + * 判断key是否存在 + * + * @param key 键 + * @return true 存在 false不存在 + */ + + + public boolean hasKey(String key) { + try { + return redisTemplate.hasKey(key); + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 删除缓存 + * + * @param key 可以传一个值 或多个 + */ + public void del(String... key) { + if (key != null && key.length > 0) { + if (key.length == 1) { + redisTemplate.delete(key[0]); + } else { + redisTemplate.delete(CollectionUtils.arrayToList(key)); + } + } + } + + /** + * 普通缓存获取 + * + * @param key 键 + * @return 值 + */ + public Object get(String key) { + return key == null ? null : redisTemplate.opsForValue().get(key); + } + + + /** + * 普通缓存放入 + * + * @param key 键 + * @param value 值 + * @return true成功 false失败 + */ + public boolean set(String key, Object value) { + try { + redisTemplate.opsForValue().set(key, value); + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 普通缓存放入并设置时间 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @return true成功 false 失败 + */ + public boolean set(String key, Object value, long time) { + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } else { + set(key, value); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 递增 + * + * @param key 键 + * @param delta 要增加几(大于0) + * @return + */ + public long incr(String key, long delta) { + if (delta < 0) { + throw new RuntimeException("递增因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, delta); + } + + + /** + * 递减 + * + * @param key 键 + * @param delta 要减少几(小于0) + * @return + */ + public long decr(String key, long delta) { + if (delta < 0) { + throw new RuntimeException("递减因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, -delta); + } + + + // ================================Map================================= + + + /** + * HashGet + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return 值 + */ + public Object hget(String key, String item) { + return redisTemplate.opsForHash().get(key, item); + } + + + /** + * 获取hashKey对应的所有键值 + * + * @param key 键 + * @return 对应的多个键值 + */ + public Map hmget(String key) { + return redisTemplate.opsForHash().entries(key); + } + + + /** + * HashSet + * + * @param key 键 + * @param map 对应多个键值 + * @return true 成功 false 失败 + */ + public boolean hmset(String key, Map map) { + try { + redisTemplate.opsForHash().putAll(key, map); + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * HashSet 并设置时间 + * + * @param key 键 + * @param map 对应多个键值 + * @param time 时间(秒) + * @return true成功 false失败 + */ + public boolean hmset(String key, Map map, long time) { + try { + redisTemplate.opsForHash().putAll(key, map); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value) { + try { + redisTemplate.opsForHash().put(key, item, value); + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value, long time) { + try { + redisTemplate.opsForHash().put(key, item, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 删除hash表中的值 + * + * @param key 键 不能为null + * @param item 项 可以使多个 不能为null + */ + + + public void hdel(String key, Object... item) { + redisTemplate.opsForHash().delete(key, item); + } + + + /** + * 判断hash表中是否有该项的值 + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return true 存在 false不存在 + */ + public boolean hHasKey(String key, String item) { + return redisTemplate.opsForHash().hasKey(key, item); + } + + + /** + * hash递增 如果不存在,就会创建一个 并把新增后的值返回 + * + * @param key 键 + * @param item 项 + * @param by 要增加几(大于0) + * @return + */ + public double hincr(String key, String item, double by) { + return redisTemplate.opsForHash().increment(key, item, by); + } + + + /** + * hash递减 + * + * @param key 键 + * @param item 项 + * @param by 要减少记(小于0) + * @return + */ + public double hdecr(String key, String item, double by) { + return redisTemplate.opsForHash().increment(key, item, -by); + } + + + /** + * 根据key获取Set中的所有值 + * + * @param key 键 + * @return + */ + public Set sGet(String key) { + try { + return redisTemplate.opsForSet().members(key); + } catch (Exception e) { + log.error(e.getMessage(),e); + return null; + } + } + + + /** + * 根据value从一个set中查询,是否存在 + * + * @param key 键 + * @param value 值 + * @return true 存在 false不存在 + */ + public boolean sHasKey(String key, Object value) { + try { + return redisTemplate.opsForSet().isMember(key, value); + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 将数据放入set缓存 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSet(String key, Object... values) { + try { + return redisTemplate.opsForSet().add(key, values); + } catch (Exception e) { + log.error(e.getMessage(),e); + return 0; + } + } + + + /** + * 将set数据放入缓存 + * + * @param key 键 + * @param time 时间(秒) + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSetAndTime(String key, long time, Object... values) { + try { + Long count = redisTemplate.opsForSet().add(key, values); + if (time > 0) + expire(key, time); + return count; + } catch (Exception e) { + log.error(e.getMessage(),e); + return 0; + } + } + + + /** + * 获取set缓存的长度 + * + * @param key 键 + * @return + */ + public long sGetSetSize(String key) { + try { + return redisTemplate.opsForSet().size(key); + } catch (Exception e) { + log.error(e.getMessage(),e); + return 0; + } + } + + + /** + * 移除值为value的 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 移除的个数 + */ + public long setRemove(String key, Object... values) { + try { + Long count = redisTemplate.opsForSet().remove(key, values); + return count; + } catch (Exception e) { + log.error(e.getMessage(),e); + return 0; + } + } + + + /** + * 获取list缓存的内容 + * + * @param key 键 + * @param start 开始 + * @param end 结束 0 到 -代表所有值 + * @return + */ + public List lGet(String key, long start, long end) { + try { + return redisTemplate.opsForList().range(key, start, end); + } catch (Exception e) { + log.error(e.getMessage(),e); + return null; + } + } + + + /** + * 获取list缓存的长度 + * + * @param key 键 + * @return + */ + public long lGetListSize(String key) { + try { + return redisTemplate.opsForList().size(key); + } catch (Exception e) { + log.error(e.getMessage(),e); + return 0; + } + } + + + /** + * 通过索引 获取list中的值 + * + * @param key 键 + * @param index 索引 index>=0时, 0 表头, 第二个元素,依次类推;index<0时,-,表尾,-倒数第二个元素,依次类推 + * @return + */ + public Object lGetIndex(String key, long index) { + try { + return redisTemplate.opsForList().index(key, index); + } catch (Exception e) { + log.error(e.getMessage(),e); + return null; + } + } + + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, Object value) { + try { + redisTemplate.opsForList().rightPush(key, value); + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, Object value, long time) { + try { + redisTemplate.opsForList().rightPush(key, value); + if (time > 0) + expire(key, time); + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, List value) { + try { + redisTemplate.opsForList().rightPushAll(key, value); + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, List value, long time) { + try { + redisTemplate.opsForList().rightPushAll(key, value); + if (time > 0) + expire(key, time); + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 根据索引修改list中的某条数据 + * + * @param key 键 + * @param index 索引 + * @param value 值 + * @return + */ + public boolean lUpdateIndex(String key, long index, Object value) { + try { + redisTemplate.opsForList().set(key, index, value); + return true; + } catch (Exception e) { + log.error(e.getMessage(),e); + return false; + } + } + + + /** + * 移除N个值为value + * + * @param key 键 + * @param count 移除多少个 + * @param value 值 + * @return 移除的个数 + */ + public long lRemove(String key, long count, Object value) { + try { + Long remove = redisTemplate.opsForList().remove(key, count, value); + return remove; + } catch (Exception e) { + log.error(e.getMessage(),e); + return 0; + } + } +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/ShiroUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/ShiroUtils.java new file mode 100644 index 0000000..4b240bf --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/ShiroUtils.java @@ -0,0 +1,41 @@ +package com.java2nb.common.utils; + +import com.java2nb.system.domain.UserToken; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.apache.shiro.session.mgt.eis.SessionDAO; +import org.apache.shiro.subject.Subject; + +import com.java2nb.system.domain.UserDO; +import org.springframework.beans.factory.annotation.Autowired; + +import java.lang.reflect.InvocationTargetException; +import java.security.Principal; +import java.util.Collection; +import java.util.List; + +public class ShiroUtils { + @Autowired + private static SessionDAO sessionDAO; + + public static Subject getSubjct() { + return SecurityUtils.getSubject(); + } + public static UserDO getUser() { + Object object = getSubjct().getPrincipal(); + return (UserDO)object; + } + public static Long getUserId() { + return getUser().getUserId(); + } + public static void logout() { + getSubjct().logout(); + } + + public static List getPrinciples() { + List principals = null; + Collection sessions = sessionDAO.getActiveSessions(); + return principals; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/SpringContextHolder.java b/novel-admin/src/main/java/com/java2nb/common/utils/SpringContextHolder.java new file mode 100644 index 0000000..c434959 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/SpringContextHolder.java @@ -0,0 +1,82 @@ +//package com.java2nb.common.utils; +// +//import org.apache.commons.lang3.Validate; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.beans.factory.DisposableBean; +//import org.springframework.context.ApplicationContext; +//import org.springframework.context.ApplicationContextAware; +//import org.springframework.context.annotation.Lazy; +//import org.springframework.stereotype.Service; +// +///** +// * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候取出ApplicaitonContext. +// * +// */ +//@Service +//@Lazy(false) +//public class SpringContextHolder implements ApplicationContextAware, DisposableBean { +// +// private static ApplicationContext applicationContext = null; +// +// private static Logger logger = LoggerFactory.getLogger(SpringContextHolder.class); +// +// /** +// * 取得存储在静态变量中的ApplicationContext. +// */ +// public static ApplicationContext getApplicationContext() { +// assertContextInjected(); +// return applicationContext; +// } +// +// /** +// * 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型. +// */ +// @SuppressWarnings("unchecked") +// public static T getBean(String name) { +// assertContextInjected(); +// return (T) applicationContext.getBean(name); +// } +// +// /** +// * 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型. +// */ +// public static T getBean(Class requiredType) { +// assertContextInjected(); +// return applicationContext.getBean(requiredType); +// } +// +// /** +// * 清除SpringContextHolder中的ApplicationContext为Null. +// */ +// public static void clearHolder() { +// if (logger.isDebugEnabled()) { +// logger.debug("清除SpringContextHolder中的ApplicationContext:" + applicationContext); +// } +// applicationContext = null; +// } +// +// /** +// * 实现ApplicationContextAware接口, 注入Context到静态变量中. +// */ +// @Override +// public void setApplicationContext(ApplicationContext applicationContext) { +// SpringContextHolder.applicationContext = applicationContext; +// } +// +// /** +// * 实现DisposableBean接口, 在Context关闭时清理静态变量. +// */ +// @Override +// public void destroy() throws Exception { +// SpringContextHolder.clearHolder(); +// } +// +// /** +// * 检查ApplicationContext不为空. +// */ +// private static void assertContextInjected() { +// Validate.validState(applicationContext != null, +// "applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder."); +// } +//} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/StringUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/StringUtils.java new file mode 100644 index 0000000..1547b08 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/StringUtils.java @@ -0,0 +1,7 @@ +package com.java2nb.common.utils; + +/** + * @author xiongxy + */ +public class StringUtils extends org.apache.commons.lang3.StringUtils{ +} diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/TimeUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/TimeUtils.java new file mode 100644 index 0000000..85382d1 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/TimeUtils.java @@ -0,0 +1,323 @@ +/** + * Copyright © 2012-2016 JeeSite All rights reserved. + */ +package com.java2nb.common.utils; + +import org.apache.commons.lang3.time.DateFormatUtils; + +import java.util.Arrays; +import java.util.Date; + +/** + * 时间计算工具类 + + */ +public class TimeUtils { + + public static String toTimeString(long time) { + TimeUtils t = new TimeUtils(time); + int day = t.get(TimeUtils.DAY); + int hour = t.get(TimeUtils.HOUR); + int minute = t.get(TimeUtils.MINUTE); + int second = t.get(TimeUtils.SECOND); + StringBuilder sb = new StringBuilder(); + if (day > 0){ + sb.append(day).append("天"); + } + if (hour > 0){ + sb.append(hour).append("时"); + } + if (minute > 0){ + sb.append(minute).append("分"); + } + if (second > 0){ + sb.append(second).append("秒"); + } + return sb.toString(); + } + + /** + * 时间字段常量,表示“秒” + */ + public final static int SECOND = 0; + + /** + * 时间字段常量,表示“分” + */ + public final static int MINUTE = 1; + + /** + * 时间字段常量,表示“时” + */ + public final static int HOUR = 2; + + /** + * 时间字段常量,表示“天” + */ + public final static int DAY = 3; + + /** + * 各常量允许的最大值 + */ + private final int[] maxFields = { 59, 59, 23, Integer.MAX_VALUE - 1 }; + + /** + * 各常量允许的最小值 + */ + private final int[] minFields = { 0, 0, 0, Integer.MIN_VALUE }; + + /** + * 默认的字符串格式时间分隔符 + */ + private String timeSeparator = ":"; + + /** + * 时间数据容器 + */ + private int[] fields = new int[4]; + + /** + * 无参构造,将各字段置为 0 + */ + public TimeUtils() { + this(0, 0, 0, 0); + } + + /** + * 使用时、分构造一个时间 + * @param hour 小时 + * @param minute 分钟 + */ + public TimeUtils(int hour, int minute) { + this(0, hour, minute, 0); + } + + /** + * 使用时、分、秒构造一个时间 + * @param hour 小时 + * @param minute 分钟 + * @param second 秒 + */ + public TimeUtils(int hour, int minute, int second) { + this(0, hour, minute, second); + } + + /** + * 使用一个字符串构造时间
+ * Time time = new Time("14:22:23"); + * @param time 字符串格式的时间,默认采用“:”作为分隔符 + */ + public TimeUtils(String time) { + this(time, null); + } + + /** + * 使用时间毫秒构建时间 + * @param time + */ + public TimeUtils(long time){ + this(new Date(time)); + } + + /** + * 使用日期对象构造时间 + * @param date + */ + public TimeUtils(Date date){ + this(DateFormatUtils.formatUTC(date, "HH:mm:ss")); + } + + /** + * 使用天、时、分、秒构造时间,进行全字符的构造 + * @param day 天 + * @param hour 时 + * @param minute 分 + * @param second 秒 + */ + public TimeUtils(int day, int hour, int minute, int second) { + initialize(day, hour, minute, second); + } + + /** + * 使用一个字符串构造时间,指定分隔符
+ * Time time = new Time("14-22-23", "-"); + * @param time 字符串格式的时间 + */ + public TimeUtils(String time, String timeSeparator) { + if(timeSeparator != null) { + setTimeSeparator(timeSeparator); + } + parseTime(time); + } + + /** + * 设置时间字段的值 + * @param field 时间字段常量 + * @param value 时间字段的值 + */ + public void set(int field, int value) { + if(value < minFields[field]) { + throw new IllegalArgumentException(value + ", time value must be positive."); + } + fields[field] = value % (maxFields[field] + 1); + // 进行进位计算 + int carry = value / (maxFields[field] + 1); + if(carry > 0) { + int upFieldValue = get(field + 1); + set(field + 1, upFieldValue + carry); + } + } + + /** + * 获得时间字段的值 + * @param field 时间字段常量 + * @return 该时间字段的值 + */ + public int get(int field) { + if(field < 0 || field > fields.length - 1) { + throw new IllegalArgumentException(field + ", field value is error."); + } + return fields[field]; + } + + /** + * 将时间进行“加”运算,即加上一个时间 + * @param time 需要加的时间 + * @return 运算后的时间 + */ + public TimeUtils addTime(TimeUtils time) { + TimeUtils result = new TimeUtils(); + int up = 0; // 进位标志 + for (int i = 0; i < fields.length; i++) { + int sum = fields[i] + time.fields[i] + up; + up = sum / (maxFields[i] + 1); + result.fields[i] = sum % (maxFields[i] + 1); + } + return result; + } + + /** + * 将时间进行“减”运算,即减去一个时间 + * @param time 需要减的时间 + * @return 运算后的时间 + */ + public TimeUtils subtractTime(TimeUtils time) { + TimeUtils result = new TimeUtils(); + int down = 0; // 退位标志 + for (int i = 0, k = fields.length - 1; i < k; i++) { + int difference = fields[i] + down; + if (difference >= time.fields[i]) { + difference -= time.fields[i]; + down = 0; + } else { + difference += maxFields[i] + 1 - time.fields[i]; + down = -1; + } + result.fields[i] = difference; + } + result.fields[DAY] = fields[DAY] - time.fields[DAY] + down; + return result; + } + + /** + * 获得时间字段的分隔符 + * @return + */ + public String getTimeSeparator() { + return timeSeparator; + } + + /** + * 设置时间字段的分隔符(用于字符串格式的时间) + * @param timeSeparator 分隔符字符串 + */ + public void setTimeSeparator(String timeSeparator) { + this.timeSeparator = timeSeparator; + } + + private void initialize(int day, int hour, int minute, int second) { + set(DAY, day); + set(HOUR, hour); + set(MINUTE, minute); + set(SECOND, second); + } + + private void parseTime(String time) { + if(time == null) { + initialize(0, 0, 0, 0); + return; + } + String t = time; + int field = DAY; + set(field--, 0); + int p = -1; + while((p = t.indexOf(timeSeparator)) > -1) { + parseTimeField(time, t.substring(0, p), field--); + t = t.substring(p + timeSeparator.length()); + } + parseTimeField(time, t, field--); + } + + private void parseTimeField(String time, String t, int field) { + if(field < SECOND || t.length() < 1) { + parseTimeException(time); + } + char[] chs = t.toCharArray(); + int n = 0; + for(int i = 0; i < chs.length; i++) { + if(chs[i] <= ' ') { + continue; + } + if(chs[i] >= '0' && chs[i] <= '9') { + n = n * 10 + chs[i] - '0'; + continue; + } + parseTimeException(time); + } + set(field, n); + } + + private void parseTimeException(String time) { + throw new IllegalArgumentException(time + ", time format error, HH" + + this.timeSeparator + "mm" + this.timeSeparator + "ss"); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(16); + sb.append(fields[DAY]).append(',').append(' '); + buildString(sb, HOUR).append(timeSeparator); + buildString(sb, MINUTE).append(timeSeparator); + buildString(sb, SECOND); + return sb.toString(); + } + + private StringBuilder buildString(StringBuilder sb, int field) { + if(fields[field] < 10) { + sb.append('0'); + } + return sb.append(fields[field]); + } + + public int hashCode() { + final int PRIME = 31; + int result = 1; + result = PRIME * result + Arrays.hashCode(fields); + return result; + } + + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final TimeUtils other = (TimeUtils) obj; + if (!Arrays.equals(fields, other.fields)) { + return false; + } + return true; + } + +} \ No newline at end of file diff --git a/novel-admin/src/main/java/com/java2nb/common/utils/UploadUtils.java b/novel-admin/src/main/java/com/java2nb/common/utils/UploadUtils.java new file mode 100644 index 0000000..206be7a --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/utils/UploadUtils.java @@ -0,0 +1,5 @@ +package com.java2nb.common.utils; + +public class UploadUtils { + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/xss/XssAndSqlHttpServletRequestWrapper.java b/novel-admin/src/main/java/com/java2nb/common/xss/XssAndSqlHttpServletRequestWrapper.java new file mode 100644 index 0000000..7044070 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/xss/XssAndSqlHttpServletRequestWrapper.java @@ -0,0 +1,61 @@ +package com.java2nb.common.xss; + + +import org.apache.commons.lang3.StringUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import java.util.Arrays; +import java.util.List; + +public class XssAndSqlHttpServletRequestWrapper extends HttpServletRequestWrapper { + private HttpServletRequest request; + + /** + * 假如有有html 代码是自己传来的 需要设定对应的name 不过滤 + */ + private static final List noFilterNames = Arrays.asList("attach","push_ip"); + + public XssAndSqlHttpServletRequestWrapper(HttpServletRequest request) { + super(request); + this.request = request; + } + + + @Override + public String getParameter(String name) { + String value = request.getParameter(name); + if (!StringUtils.isEmpty(value) && !noFilterNames.contains(name)) { + value = htmlEncodeByRegExp(value); + } + return value; + } + + @Override + public String[] getParameterValues(String name) { + String[] parameterValues = super.getParameterValues(name); + if (parameterValues == null || noFilterNames.contains(name)) { + return parameterValues; + } + for (int i = 0; i < parameterValues.length; i++) { + String value = parameterValues[i]; + if (!StringUtils.isEmpty(value)){ + parameterValues[i] = htmlEncodeByRegExp(value); + } + } + return parameterValues; + } + + + private String htmlEncodeByRegExp(String str) { + String temp = "" ; + temp = str + //.replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">"); + //.replaceAll("\\s", " ") + //.replaceAll("\'", "'") + //.replaceAll("\"", """); + return temp; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/common/xss/XssFilter.java b/novel-admin/src/main/java/com/java2nb/common/xss/XssFilter.java new file mode 100644 index 0000000..8770a40 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/xss/XssFilter.java @@ -0,0 +1,45 @@ +package com.java2nb.common.xss; + +import org.springframework.stereotype.Component; + +import javax.servlet.*; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@WebFilter(filterName = "xssFilter", urlPatterns = "/*", asyncSupported = true) +@Component +public class XssFilter implements Filter { + + private static final List NO_XSS_PATH = Arrays.asList("/common/generator/batchCode","/common/generator/batchDownload"); + + @Override + public void destroy() { + // TODO Auto-generated method stub + + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException { + // TODO Auto-generated method stub + HttpServletRequest req = (HttpServletRequest) request; + String reqURI = req.getRequestURI(); + if(NO_XSS_PATH.contains(reqURI)){ + chain.doFilter(request,response); + }else { + XssAndSqlHttpServletRequestWrapper xssRequestWrapper = new XssAndSqlHttpServletRequestWrapper(req); + chain.doFilter(xssRequestWrapper, response); + } + } + + @Override + public void init(FilterConfig arg0) { + // TODO Auto-generated method stub + } + + +} diff --git a/novel-admin/src/main/java/com/java2nb/common/xss/XssStringJsonSerializer.java b/novel-admin/src/main/java/com/java2nb/common/xss/XssStringJsonSerializer.java new file mode 100644 index 0000000..8ce4f27 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/common/xss/XssStringJsonSerializer.java @@ -0,0 +1,28 @@ +package com.java2nb.common.xss; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import org.apache.commons.text.StringEscapeUtils; + +import java.io.IOException; + +public class XssStringJsonSerializer extends JsonSerializer { + + @Override + public Class handledType() { + return String.class; + } + + /** + * 假如有html代码是自己传来的,需要设定对应的name,不走StringEscapeUtils.escapeHtml4(value)过滤 + */ + @Override + public void serialize(String value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) + throws IOException { + if (value != null) { + String encodedValue = StringEscapeUtils.escapeHtml4(value); + jsonGenerator.writeString(encodedValue); + } + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/controller/DataPermController.java b/novel-admin/src/main/java/com/java2nb/system/controller/DataPermController.java new file mode 100644 index 0000000..b6b4f2e --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/controller/DataPermController.java @@ -0,0 +1,160 @@ +package com.java2nb.system.controller; + +import java.util.List; +import java.util.Map; + +import com.java2nb.common.domain.DictDO; +import com.java2nb.common.domain.Tree; +import com.java2nb.system.domain.MenuDO; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import io.swagger.annotations.ApiOperation; + + +import com.java2nb.system.domain.DataPermDO; +import com.java2nb.system.service.DataPermService; +import com.java2nb.common.utils.PageBean; +import com.java2nb.common.utils.Query; +import com.java2nb.common.utils.R; + +/** + * 数据权限管理 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:40:03 + */ + +@Controller +@RequestMapping("/system/dataPerm") +public class DataPermController { + @Autowired + private DataPermService dataPermService; + + @GetMapping() + @RequiresPermissions("system:dataPerm:dataPerm") + String DataPerm() { + return "system/dataPerm/dataPerm"; + } + + @ApiOperation(value = "获取数据权限管理列表", notes = "获取数据权限管理列表") + @ResponseBody + @GetMapping("/list") + @RequiresPermissions("system:dataPerm:dataPerm") + public R list(@RequestParam Map params) { + //查询列表数据 + Query query = new Query(params); + List dataPermList = dataPermService.list(query); + int total = dataPermService.count(query); + PageBean pageBean = new PageBean(dataPermList, total); + return R.ok().put("data", pageBean); + } + + @ApiOperation(value = "新增数据权限管理页面", notes = "新增数据权限管理页面") + @GetMapping("/add") + @RequiresPermissions("system:dataPerm:add") + String add() { + return "system/dataPerm/add"; + } + + @ApiOperation(value = "修改数据权限管理页面", notes = "修改数据权限管理页面") + @GetMapping("/edit/{id}") + @RequiresPermissions("system:dataPerm:edit") + String edit(@PathVariable("id") Long id, Model model) { + DataPermDO dataPerm = dataPermService.get(id); + model.addAttribute("dataPerm", dataPerm); + return "system/dataPerm/edit"; + } + + @ApiOperation(value = "查看数据权限管理页面", notes = "查看数据权限管理页面") + @GetMapping("/detail/{id}") + @RequiresPermissions("system:dataPerm:detail") + String detail(@PathVariable("id") Long id, Model model) { + DataPermDO dataPerm = dataPermService.get(id); + model.addAttribute("dataPerm", dataPerm); + return "system/dataPerm/detail"; + } + + /** + * 保存 + */ + @ApiOperation(value = "新增数据权限管理", notes = "新增数据权限管理") + @ResponseBody + @PostMapping("/save") + @RequiresPermissions("system:dataPerm:add") + public R save( DataPermDO dataPerm) { + if (dataPermService.save(dataPerm) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 修改 + */ + @ApiOperation(value = "修改数据权限管理", notes = "修改数据权限管理") + @ResponseBody + @RequestMapping("/update") + @RequiresPermissions("system:dataPerm:edit") + public R update( DataPermDO dataPerm) { + dataPermService.update(dataPerm); + return R.ok(); + } + + /** + * 删除 + */ + @ApiOperation(value = "删除数据权限管理", notes = "删除数据权限管理") + @PostMapping("/remove") + @ResponseBody + @RequiresPermissions("system:dataPerm:remove") + public R remove( Long id) { + if (dataPermService.remove(id) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 删除 + */ + @ApiOperation(value = "批量删除数据权限管理", notes = "批量删除数据权限管理") + @PostMapping("/batchRemove") + @ResponseBody + @RequiresPermissions("system:dataPerm:batchRemove") + public R remove(@RequestParam("ids[]") Long[] ids) { + dataPermService.batchRemove(ids); + return R.ok(); + } + + + @GetMapping("/moduleName") + @ResponseBody + public List listModuleName() { + return dataPermService.listModuleName(); + }; + + + @GetMapping("/tree") + @ResponseBody + Tree tree() { + Tree tree = dataPermService.getTree(); + return tree; + } + + @GetMapping("/tree/{roleId}") + @ResponseBody + Tree tree(@PathVariable("roleId") Long roleId) { + Tree tree = dataPermService.getTree(roleId); + return tree; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/controller/DeptController.java b/novel-admin/src/main/java/com/java2nb/system/controller/DeptController.java new file mode 100644 index 0000000..6137798 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/controller/DeptController.java @@ -0,0 +1,161 @@ +package com.java2nb.system.controller; + +import com.java2nb.common.config.Constant; +import com.java2nb.common.controller.BaseController; +import com.java2nb.common.domain.Tree; +import com.java2nb.common.utils.R; +import com.java2nb.system.domain.DeptDO; +import com.java2nb.system.service.DeptService; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 部门管理 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-09-27 14:40:36 + */ + +@Controller +@RequestMapping("/system/sysDept") +public class DeptController extends BaseController { + private String prefix = "system/dept"; + @Autowired + private DeptService sysDeptService; + + @GetMapping() + @RequiresPermissions("system:sysDept:sysDept") + String dept() { + return prefix + "/dept"; + } + + @ApiOperation(value="获取部门列表", notes="获取部门列表") + @ResponseBody + @GetMapping("/list") + @RequiresPermissions("system:sysDept:sysDept") + public List list() { + Map query = new HashMap<>(16); + List sysDeptList = sysDeptService.list(query); + return sysDeptList; + } + + @GetMapping("/add/{pId}") + @RequiresPermissions("system:sysDept:add") + String add(@PathVariable("pId") Long pId, Model model) { + model.addAttribute("pId", pId); + if (pId == 0) { + model.addAttribute("pName", "总部门"); + } else { + model.addAttribute("pName", sysDeptService.get(pId).getName()); + } + return prefix + "/add"; + } + + @GetMapping("/edit/{deptId}") + @RequiresPermissions("system:sysDept:edit") + String edit(@PathVariable("deptId") Long deptId, Model model) { + DeptDO sysDept = sysDeptService.get(deptId); + model.addAttribute("sysDept", sysDept); + if(Constant.DEPT_ROOT_ID.equals(sysDept.getParentId())) { + model.addAttribute("parentDeptName", "无"); + }else { + DeptDO parDept = sysDeptService.get(sysDept.getParentId()); + model.addAttribute("parentDeptName", parDept.getName()); + } + return prefix + "/edit"; + } + + /** + * 保存 + */ + @ResponseBody + @PostMapping("/save") + @RequiresPermissions("system:sysDept:add") + public R save(DeptDO sysDept) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (sysDeptService.save(sysDept) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 修改 + */ + @ResponseBody + @RequestMapping("/update") + @RequiresPermissions("system:sysDept:edit") + public R update(DeptDO sysDept) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (sysDeptService.update(sysDept) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ResponseBody + @RequiresPermissions("system:sysDept:remove") + public R remove(Long deptId) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + Map map = new HashMap(); + map.put("parentId", deptId); + if(sysDeptService.count(map)>0) { + return R.error(1, "包含下级部门,不允许修改"); + } + if(sysDeptService.checkDeptHasUser(deptId)) { + if (sysDeptService.remove(deptId) > 0) { + return R.ok(); + } + }else { + return R.error(1, "部门包含用户,不允许修改"); + } + return R.error(); + } + + /** + * 删除 + */ + @PostMapping("/batchRemove") + @ResponseBody + @RequiresPermissions("system:sysDept:batchRemove") + public R remove(@RequestParam("ids[]") Long[] deptIds) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + sysDeptService.batchRemove(deptIds); + return R.ok(); + } + + @GetMapping("/tree") + @ResponseBody + public Tree tree() { + Tree tree = new Tree(); + tree = sysDeptService.getTree(); + return tree; + } + + @GetMapping("/treeView") + String treeView() { + return prefix + "/deptTree"; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/controller/LoginController.java b/novel-admin/src/main/java/com/java2nb/system/controller/LoginController.java new file mode 100644 index 0000000..bea3de6 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/controller/LoginController.java @@ -0,0 +1,126 @@ +package com.java2nb.system.controller; + +import com.java2nb.common.annotation.Log; +import com.java2nb.common.config.JnConfig; +import com.java2nb.common.controller.BaseController; +import com.java2nb.common.domain.FileDO; +import com.java2nb.common.domain.Tree; +import com.java2nb.common.service.FileService; +import com.java2nb.common.utils.*; +import com.java2nb.system.domain.MenuDO; +import com.java2nb.system.service.MenuService; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Controller +public class LoginController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + MenuService menuService; + @Autowired + FileService fileService; + @Autowired + JnConfig jnConfig; + + + @Log("请求访问主页") + @GetMapping({"","/","/index"}) + String index(Model model) { + List> menus = menuService.listMenuTree(getUserId()); + model.addAttribute("menus", menus); + model.addAttribute("name", getUser().getName()); + FileDO fileDO = fileService.get(getUser().getPicId()); + if (fileDO != null && fileDO.getUrl() != null) { + if (fileService.isExist(fileDO.getUrl())) { + model.addAttribute("picUrl", fileDO.getUrl()); + } else { + model.addAttribute("picUrl", "/img/photo_s.jpg"); + } + } else { + model.addAttribute("picUrl", "/img/photo_s.jpg"); + } + model.addAttribute("username", getUser().getUsername()); + return "index"; + } + + @GetMapping("/login") + String login(Model model) { + model.addAttribute("username", jnConfig.getUsername()); + model.addAttribute("password", jnConfig.getPassword()); + return "login"; + } + + @Log("登录") + @PostMapping("/login") + @ResponseBody + R ajaxLogin(String username, String password,String verify,HttpServletRequest request) { + + try { + //从session中获取随机数 + String random = (String) request.getSession().getAttribute(RandomValidateCodeUtil.RANDOMCODEKEY); + if (StringUtils.isBlank(verify)) { + return R.error("请输入验证码"); + } + if (random.equals(verify)) { + } else { + return R.error("请输入正确的验证码"); + } + } catch (Exception e) { + logger.error("验证码校验失败", e); + return R.error("验证码校验失败"); + } + password = MD5Utils.encrypt(username, password); + UsernamePasswordToken token = new UsernamePasswordToken(username, password); + Subject subject = SecurityUtils.getSubject(); + try { + subject.login(token); + return R.ok(); + } catch (AuthenticationException e) { + return R.error("用户或密码错误"); + } + } + + @GetMapping("/logout") + String logout() { + ShiroUtils.logout(); + return "redirect:/login"; + } + + @GetMapping("/main") + String main() { + return "main"; + } + + /** + * 生成验证码 + */ + @GetMapping(value = "/getVerify") + public void getVerify(HttpServletRequest request, HttpServletResponse response) { + try { + response.setContentType("image/jpeg");//设置相应类型,告诉浏览器输出的内容为图片 + response.setHeader("Pragma", "No-cache");//设置响应头信息,告诉浏览器不要缓存此内容 + response.setHeader("Cache-Control", "no-cache"); + response.setDateHeader("Expire", 0); + RandomValidateCodeUtil randomValidateCode = new RandomValidateCodeUtil(); + randomValidateCode.getRandcode(request, response);//输出验证码图片方法 + } catch (Exception e) { + logger.error("获取验证码失败>>>> ", e); + } + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/controller/MenuController.java b/novel-admin/src/main/java/com/java2nb/system/controller/MenuController.java new file mode 100644 index 0000000..4fffdf6 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/controller/MenuController.java @@ -0,0 +1,130 @@ +package com.java2nb.system.controller; + +import com.java2nb.common.annotation.Log; +import com.java2nb.common.config.Constant; +import com.java2nb.common.controller.BaseController; +import com.java2nb.common.domain.Tree; +import com.java2nb.common.utils.R; +import com.java2nb.system.domain.MenuDO; +import com.java2nb.system.service.MenuService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * @author xiongxy + */ +@RequestMapping("/sys/menu") +@Controller +public class MenuController extends BaseController { + String prefix = "system/menu"; + @Autowired + MenuService menuService; + + @RequiresPermissions("sys:menu:menu") + @GetMapping() + String menu(Model model) { + return prefix+"/menu"; + } + + @RequiresPermissions("sys:menu:menu") + @RequestMapping("/list") + @ResponseBody + List list(@RequestParam Map params) { + List menus = menuService.list(params); + return menus; + } + + @Log("添加菜单") + @RequiresPermissions("sys:menu:add") + @GetMapping("/add/{pId}") + String add(Model model, @PathVariable("pId") Long pId) { + model.addAttribute("pId", pId); + if (pId == 0) { + model.addAttribute("pName", "根目录"); + } else { + model.addAttribute("pName", menuService.get(pId).getName()); + } + return prefix + "/add"; + } + + @Log("编辑菜单") + @RequiresPermissions("sys:menu:edit") + @GetMapping("/edit/{id}") + String edit(Model model, @PathVariable("id") Long id) { + MenuDO mdo = menuService.get(id); + Long pId = mdo.getParentId(); + model.addAttribute("pId", pId); + if (pId == 0) { + model.addAttribute("pName", "根目录"); + } else { + model.addAttribute("pName", menuService.get(pId).getName()); + } + model.addAttribute("menu", mdo); + return prefix+"/edit"; + } + + @Log("保存菜单") + @RequiresPermissions("sys:menu:add") + @PostMapping("/save") + @ResponseBody + R save(MenuDO menu) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (menuService.save(menu) > 0) { + return R.ok(); + } else { + return R.error(1, "保存失败"); + } + } + + @Log("更新菜单") + @RequiresPermissions("sys:menu:edit") + @PostMapping("/update") + @ResponseBody + R update(MenuDO menu) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (menuService.update(menu) > 0) { + return R.ok(); + } else { + return R.error(1, "更新失败"); + } + } + + @Log("删除菜单") + @RequiresPermissions("sys:menu:remove") + @PostMapping("/remove") + @ResponseBody + R remove(Long id) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (menuService.remove(id) > 0) { + return R.ok(); + } else { + return R.error(1, "删除失败"); + } + } + + @GetMapping("/tree") + @ResponseBody + Tree tree() { + Tree tree = menuService.getTree(); + return tree; + } + + @GetMapping("/tree/{roleId}") + @ResponseBody + Tree tree(@PathVariable("roleId") Long roleId) { + Tree tree = menuService.getTree(roleId); + return tree; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/controller/RoleController.java b/novel-admin/src/main/java/com/java2nb/system/controller/RoleController.java new file mode 100644 index 0000000..923762d --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/controller/RoleController.java @@ -0,0 +1,113 @@ +package com.java2nb.system.controller; + +import com.java2nb.common.annotation.Log; +import com.java2nb.common.config.Constant; +import com.java2nb.common.controller.BaseController; +import com.java2nb.common.utils.R; +import com.java2nb.system.domain.RoleDO; +import com.java2nb.system.service.RoleService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RequestMapping("/sys/role") +@Controller +public class RoleController extends BaseController { + String prefix = "system/role"; + @Autowired + RoleService roleService; + + @RequiresPermissions("sys:role:role") + @GetMapping() + String role() { + return prefix + "/role"; + } + + @RequiresPermissions("sys:role:role") + @GetMapping("/list") + @ResponseBody() + List list() { + List roles = roleService.list(); + return roles; + } + + @Log("添加角色") + @RequiresPermissions("sys:role:add") + @GetMapping("/add") + String add() { + return prefix + "/add"; + } + + @Log("编辑角色") + @RequiresPermissions("sys:role:edit") + @GetMapping("/edit/{id}") + String edit(@PathVariable("id") Long id, Model model) { + RoleDO roleDO = roleService.get(id); + model.addAttribute("role", roleDO); + return prefix + "/edit"; + } + + @Log("保存角色") + @RequiresPermissions("sys:role:add") + @PostMapping("/save") + @ResponseBody() + R save(RoleDO role) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (roleService.save(role) > 0) { + return R.ok(); + } else { + return R.error(1, "保存失败"); + } + } + + @Log("更新角色") + @RequiresPermissions("sys:role:edit") + @PostMapping("/update") + @ResponseBody() + R update(RoleDO role) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (roleService.update(role) > 0) { + return R.ok(); + } else { + return R.error(1, "保存失败"); + } + } + + @Log("删除角色") + @RequiresPermissions("sys:role:remove") + @PostMapping("/remove") + @ResponseBody() + R save(Long id) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (roleService.remove(id) > 0) { + return R.ok(); + } else { + return R.error(1, "删除失败"); + } + } + + @RequiresPermissions("sys:role:batchRemove") + @Log("批量删除角色") + @PostMapping("/batchRemove") + @ResponseBody + R batchRemove(@RequestParam("ids[]") Long[] ids) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + int r = roleService.batchremove(ids); + if (r > 0) { + return R.ok(); + } + return R.error(); + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/controller/RoleDataPermController.java b/novel-admin/src/main/java/com/java2nb/system/controller/RoleDataPermController.java new file mode 100644 index 0000000..1b5a342 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/controller/RoleDataPermController.java @@ -0,0 +1,135 @@ +package com.java2nb.system.controller; + +import java.util.List; +import java.util.Map; + +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import io.swagger.annotations.ApiOperation; + + +import com.java2nb.system.domain.RoleDataPermDO; +import com.java2nb.system.service.RoleDataPermService; +import com.java2nb.common.utils.PageBean; +import com.java2nb.common.utils.Query; +import com.java2nb.common.utils.R; + +/** + * 角色与数据权限对应关系 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:32:49 + */ + +@Controller +@RequestMapping("/system/roleDataPerm") +public class RoleDataPermController { + @Autowired + private RoleDataPermService roleDataPermService; + + @GetMapping() + @RequiresPermissions("system:roleDataPerm:roleDataPerm") + String RoleDataPerm() { + return "system/roleDataPerm/roleDataPerm"; + } + + @ApiOperation(value = "获取角色与数据权限对应关系列表", notes = "获取角色与数据权限对应关系列表") + @ResponseBody + @GetMapping("/list") + @RequiresPermissions("system:roleDataPerm:roleDataPerm") + public R list(@RequestParam Map params) { + //查询列表数据 + Query query = new Query(params); + List roleDataPermList = roleDataPermService.list(query); + int total = roleDataPermService.count(query); + PageBean pageBean = new PageBean(roleDataPermList, total); + return R.ok().put("data", pageBean); + } + + @ApiOperation(value = "新增角色与数据权限对应关系页面", notes = "新增角色与数据权限对应关系页面") + @GetMapping("/add") + @RequiresPermissions("system:roleDataPerm:add") + String add() { + return "system/roleDataPerm/add"; + } + + @ApiOperation(value = "修改角色与数据权限对应关系页面", notes = "修改角色与数据权限对应关系页面") + @GetMapping("/edit/{id}") + @RequiresPermissions("system:roleDataPerm:edit") + String edit(@PathVariable("id") Long id, Model model) { + RoleDataPermDO roleDataPerm = roleDataPermService.get(id); + model.addAttribute("roleDataPerm", roleDataPerm); + return "system/roleDataPerm/edit"; + } + + @ApiOperation(value = "查看角色与数据权限对应关系页面", notes = "查看角色与数据权限对应关系页面") + @GetMapping("/detail/{id}") + @RequiresPermissions("system:roleDataPerm:detail") + String detail(@PathVariable("id") Long id, Model model) { + RoleDataPermDO roleDataPerm = roleDataPermService.get(id); + model.addAttribute("roleDataPerm", roleDataPerm); + return "system/roleDataPerm/detail"; + } + + /** + * 保存 + */ + @ApiOperation(value = "新增角色与数据权限对应关系", notes = "新增角色与数据权限对应关系") + @ResponseBody + @PostMapping("/save") + @RequiresPermissions("system:roleDataPerm:add") + public R save( RoleDataPermDO roleDataPerm) { + if (roleDataPermService.save(roleDataPerm) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 修改 + */ + @ApiOperation(value = "修改角色与数据权限对应关系", notes = "修改角色与数据权限对应关系") + @ResponseBody + @RequestMapping("/update") + @RequiresPermissions("system:roleDataPerm:edit") + public R update( RoleDataPermDO roleDataPerm) { + roleDataPermService.update(roleDataPerm); + return R.ok(); + } + + /** + * 删除 + */ + @ApiOperation(value = "删除角色与数据权限对应关系", notes = "删除角色与数据权限对应关系") + @PostMapping("/remove") + @ResponseBody + @RequiresPermissions("system:roleDataPerm:remove") + public R remove( Long id) { + if (roleDataPermService.remove(id) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 删除 + */ + @ApiOperation(value = "批量删除角色与数据权限对应关系", notes = "批量删除角色与数据权限对应关系") + @PostMapping("/batchRemove") + @ResponseBody + @RequiresPermissions("system:roleDataPerm:batchRemove") + public R remove(@RequestParam("ids[]") Long[] ids) { + roleDataPermService.batchRemove(ids); + return R.ok(); + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/controller/SessionController.java b/novel-admin/src/main/java/com/java2nb/system/controller/SessionController.java new file mode 100644 index 0000000..540492e --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/controller/SessionController.java @@ -0,0 +1,57 @@ +package com.java2nb.system.controller; + +import java.security.Principal; +import java.util.Collection; +import java.util.List; + +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.java2nb.common.utils.R; +import com.java2nb.system.domain.UserOnline; +import com.java2nb.system.service.SessionService; + +@RequestMapping("/sys/online") +@Controller +public class SessionController { + @Autowired + SessionService sessionService; + + @GetMapping() + public String online() { + return "system/online/online"; + } + + @ResponseBody + @RequestMapping("/list") + public List list() { + return sessionService.list(); + } + + @ResponseBody + @RequestMapping("/forceLogout/{sessionId}") + public R forceLogout(@PathVariable("sessionId") String sessionId, RedirectAttributes redirectAttributes) { + try { + sessionService.forceLogout(sessionId); + return R.ok(); + } catch (Exception e) { + e.printStackTrace(); + return R.error(); + } + + } + + @ResponseBody + @RequestMapping("/sessionList") + public Collection sessionList() { + return sessionService.sessionList(); + } + + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/controller/UserController.java b/novel-admin/src/main/java/com/java2nb/system/controller/UserController.java new file mode 100644 index 0000000..d66b4fd --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/controller/UserController.java @@ -0,0 +1,244 @@ +package com.java2nb.system.controller; + +import com.java2nb.common.annotation.Log; +import com.java2nb.common.config.Constant; +import com.java2nb.common.controller.BaseController; +import com.java2nb.common.domain.Tree; +import com.java2nb.common.service.DictService; +import com.java2nb.common.utils.*; +import com.java2nb.system.domain.DeptDO; +import com.java2nb.system.domain.RoleDO; +import com.java2nb.system.domain.UserDO; +import com.java2nb.system.service.RoleService; +import com.java2nb.system.service.UserService; +import com.java2nb.system.vo.UserVO; +import javax.servlet.http.HttpServletRequest; + +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RequestMapping("/sys/user") +@Controller +public class UserController extends BaseController { + private String prefix="system/user" ; + @Autowired + UserService userService; + @Autowired + RoleService roleService; + @Autowired + DictService dictService; + @Autowired + RedisUtil redisUtil; + + @RequiresPermissions("sys:user:user") + @GetMapping("") + String user(Model model) { + return prefix + "/user"; + } + + @GetMapping("/list") + @ResponseBody + PageBean list(@RequestParam Map params) { + // 查询列表数据 + Query query = new Query(params); + List sysUserList = userService.list(query); + int total = userService.count(query); + PageBean pageUtil = new PageBean(sysUserList, total); + return pageUtil; + } + + @RequiresPermissions("sys:user:add") + @Log("添加用户") + @GetMapping("/add") + String add(Model model) { + List roles = roleService.list(); + model.addAttribute("roles", roles); + return prefix + "/add"; + } + + @RequiresPermissions("sys:user:edit") + @Log("编辑用户") + @GetMapping("/edit/{id}") + String edit(Model model, @PathVariable("id") Long id) { + UserDO userDO = userService.get(id); + model.addAttribute("user", userDO); + List roles = roleService.list(id); + model.addAttribute("roles", roles); + return prefix+"/edit"; + } + + public static void main(String[] args) { + System.out.println(MD5Utils.encrypt("admin", "admin")); + } + + @RequiresPermissions("sys:user:add") + @Log("保存用户") + @PostMapping("/save") + @ResponseBody + R save(UserDO user) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + user.setPassword(MD5Utils.encrypt(user.getUsername(), user.getPassword())); + if (userService.save(user) > 0) { + return R.ok(); + } + return R.error(); + } + + @RequiresPermissions("sys:user:edit") + @Log("更新用户") + @PostMapping("/update") + @ResponseBody + R update(UserDO user) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (userService.update(user) > 0) { + return R.ok(); + } + return R.error(); + } + + + @RequiresPermissions("sys:user:edit") + @Log("更新用户") + @PostMapping("/updatePeronal") + @ResponseBody + R updatePeronal(UserDO user) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (userService.updatePersonal(user) > 0) { + return R.ok(); + } + return R.error(); + } + + + @RequiresPermissions("sys:user:remove") + @Log("删除用户") + @PostMapping("/remove") + @ResponseBody + R remove(Long id) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + if (userService.remove(id) > 0) { + return R.ok(); + } + return R.error(); + } + + @RequiresPermissions("sys:user:batchRemove") + @Log("批量删除用户") + @PostMapping("/batchRemove") + @ResponseBody + R batchRemove(@RequestParam("ids[]") Long[] userIds) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + int r = userService.batchremove(userIds); + if (r > 0) { + return R.ok(); + } + return R.error(); + } + + @PostMapping("/exit") + @ResponseBody + boolean exit(@RequestParam Map params) { + // 存在,不通过,false + return !userService.exit(params); + } + + @RequiresPermissions("sys:user:resetPwd") + @Log("请求更改用户密码") + @GetMapping("/resetPwd/{id}") + String resetPwd(@PathVariable("id") Long userId, Model model) { + + UserDO userDO = new UserDO(); + userDO.setUserId(userId); + model.addAttribute("user", userDO); + return prefix + "/reset_pwd"; + } + + @Log("提交更改用户密码") + @PostMapping("/resetPwd") + @ResponseBody + R resetPwd(UserVO userVO) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + try{ + userService.resetPwd(userVO,getUser()); + return R.ok(); + }catch (Exception e){ + return R.error(1,e.getMessage()); + } + + } + @RequiresPermissions("sys:user:resetPwd") + @Log("admin提交更改用户密码") + @PostMapping("/adminResetPwd") + @ResponseBody + R adminResetPwd(UserVO userVO) { + if (Constant.DEMO_ACCOUNT.equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + try{ + userService.adminResetPwd(userVO); + return R.ok(); + }catch (Exception e){ + return R.error(1,e.getMessage()); + } + + } + @GetMapping("/tree") + @ResponseBody + public Tree tree() { + Tree tree = new Tree(); + tree = userService.getTree(); + return tree; + } + + @GetMapping("/treeView") + String treeView() { + return prefix + "/userTree"; + } + + @GetMapping("/personal") + String personal(Model model) { + UserDO userDO = userService.get(getUserId()); + model.addAttribute("user",userDO); + model.addAttribute("hobbyList",dictService.getHobbyList(userDO)); + model.addAttribute("sexList",dictService.getSexList()); + return prefix + "/personal"; + } + @ResponseBody + @PostMapping("/uploadImg") + R uploadImg(@RequestParam("avatar_file") MultipartFile file, String avatar_data, HttpServletRequest request) { + if ("test".equals(getUsername())) { + return R.error(1, "演示系统不允许修改,完整体验请部署程序"); + } + Map result = new HashMap<>(); + try { + result = userService.updatePersonalImg(file, avatar_data, getUserId()); + } catch (Exception e) { + return R.error("更新图像失败!"); + } + if(result!=null && result.size()>0){ + return R.ok(result); + }else { + return R.error("更新图像失败!"); + } + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/DataPermDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/DataPermDao.java new file mode 100644 index 0000000..5651a23 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/dao/DataPermDao.java @@ -0,0 +1,37 @@ +package com.java2nb.system.dao; + +import com.java2nb.system.domain.DataPermDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 数据权限管理 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:40:03 + */ +@Mapper +public interface DataPermDao { + + DataPermDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(DataPermDO dataPerm); + + int update(DataPermDO dataPerm); + + int remove(Long id); + + int batchRemove(Long[] ids); + + List listModuleName(); + + List selectDataPermsByUserId(@Param("userId") Long userId); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/DeptDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/DeptDao.java new file mode 100644 index 0000000..0b1a979 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/dao/DeptDao.java @@ -0,0 +1,39 @@ +package com.java2nb.system.dao; + +import com.java2nb.system.domain.DeptDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 部门管理 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-10-03 15:35:39 + */ +@Mapper +public interface DeptDao { + + DeptDO get(Long deptId); + + List list(Map map); + + int count(Map map); + + int save(DeptDO dept); + + int update(DeptDO dept); + + int remove(Long deptId); + + int batchRemove(Long[] deptIds); + + Long[] listParentDept(); + + int getDeptUserNumber(Long deptId); + + String getDeptIdsByParentId(@Param("deptId") Long deptId); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/MenuDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/MenuDao.java new file mode 100644 index 0000000..454a03c --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/dao/MenuDao.java @@ -0,0 +1,36 @@ +package com.java2nb.system.dao; + +import com.java2nb.system.domain.MenuDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 菜单管理 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-10-03 09:45:09 + */ +@Mapper +public interface MenuDao { + + MenuDO get(Long menuId); + + List list(Map map); + + int count(Map map); + + int save(MenuDO menu); + + int update(MenuDO menu); + + int remove(Long menuId); + + int batchRemove(Long[] menuIds); + + List listMenuByUserId(Long id); + + List listUserPerms(Long id); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/RoleDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/RoleDao.java new file mode 100644 index 0000000..21c3572 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/dao/RoleDao.java @@ -0,0 +1,32 @@ +package com.java2nb.system.dao; + +import com.java2nb.system.domain.RoleDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 角色 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-10-02 20:24:47 + */ +@Mapper +public interface RoleDao { + + RoleDO get(Long roleId); + + List list(Map map); + + int count(Map map); + + int save(RoleDO role); + + int update(RoleDO role); + + int remove(Long roleId); + + int batchRemove(Long[] roleIds); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/RoleDataPermDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/RoleDataPermDao.java new file mode 100644 index 0000000..df978b0 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/dao/RoleDataPermDao.java @@ -0,0 +1,38 @@ +package com.java2nb.system.dao; + +import com.java2nb.system.domain.RoleDataPermDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 角色与数据权限对应关系 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:32:49 + */ +@Mapper +public interface RoleDataPermDao { + + RoleDataPermDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(RoleDataPermDO roleDataPerm); + + int update(RoleDataPermDO roleDataPerm); + + int remove(Long id); + + int batchRemove(Long[] ids); + + void removeByRoleId(Long roleId); + + void batchSave(List rps); + + List listPermIdByRoleId(Long roleId); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/RoleMenuDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/RoleMenuDao.java new file mode 100644 index 0000000..6c07032 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/dao/RoleMenuDao.java @@ -0,0 +1,40 @@ +package com.java2nb.system.dao; + +import com.java2nb.system.domain.RoleMenuDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 角色与菜单对应关系 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-10-03 11:08:59 + */ +@Mapper +public interface RoleMenuDao { + + RoleMenuDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(RoleMenuDO roleMenu); + + int update(RoleMenuDO roleMenu); + + int remove(Long id); + + int batchRemove(Long[] ids); + + List listMenuIdByRoleId(Long roleId); + + int removeByRoleId(Long roleId); + + int removeByMenuId(Long menuId); + + int batchSave(List list); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/UserDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/UserDao.java new file mode 100644 index 0000000..75b9af9 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/dao/UserDao.java @@ -0,0 +1,39 @@ +package com.java2nb.system.dao; + +import com.java2nb.system.domain.UserDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-10-03 09:45:11 + */ +@Mapper +public interface UserDao { + + UserDO get(Long userId); + + List list(Map map); + + int count(Map map); + + int save(UserDO user); + + int update(UserDO user); + + int remove(Long userId); + + int batchRemove(Long[] userIds); + + Long[] listAllDept(); + + List listByPerm(Map map); + + int countByPerm(Map map); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/dao/UserRoleDao.java b/novel-admin/src/main/java/com/java2nb/system/dao/UserRoleDao.java new file mode 100644 index 0000000..b3c863f --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/dao/UserRoleDao.java @@ -0,0 +1,43 @@ +package com.java2nb.system.dao; + +import com.java2nb.system.domain.UserRoleDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 用户与角色对应关系 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-10-03 11:08:59 + */ +@Mapper +public interface UserRoleDao { + + UserRoleDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(UserRoleDO userRole); + + int update(UserRoleDO userRole); + + int remove(Long id); + + int batchRemove(Long[] ids); + + List listRoleId(Long userId); + + int removeByUserId(Long userId); + + int removeByRoleId(Long roleId); + + int batchSave(List list); + + int batchRemoveByUserId(Long[] ids); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/domain/DataPermDO.java b/novel-admin/src/main/java/com/java2nb/system/domain/DataPermDO.java new file mode 100644 index 0000000..6ffa234 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/domain/DataPermDO.java @@ -0,0 +1,174 @@ +package com.java2nb.system.domain; + +import java.io.Serializable; + + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.java2nb.common.jsonserializer.LongToStringSerializer; + + +import org.springframework.format.annotation.DateTimeFormat; +import java.util.Date; + + + +/** + * 数据权限管理 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:40:03 + */ +public class DataPermDO implements Serializable { + private static final long serialVersionUID = 1L; + + + // + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long id; + //权限名称 + private String name; + //数据表名称 + private String tableName; + //所属模块 + private String moduleName; + //用户权限控制属性名 + private String crlAttrName; + //数据表权限控制列名 + private String crlColumnName; + //权限code,all_开头表示查看所有数据的权限,sup_开头表示查看下级数据的权限,own_开头表示查看本级数据的权限 + private String permCode; + //排序 + private Integer orderNum; + //创建时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date gmtCreate; + //修改时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date gmtModified; + + /** + * 设置: + */ + public void setId(Long id) { + this.id = id; + } + /** + * 获取: + */ + public Long getId() { + return id; + } + /** + * 设置:权限名称 + */ + public void setName(String name) { + this.name = name; + } + /** + * 获取:权限名称 + */ + public String getName() { + return name; + } + /** + * 设置:数据表名称 + */ + public void setTableName(String tableName) { + this.tableName = tableName; + } + /** + * 获取:数据表名称 + */ + public String getTableName() { + return tableName; + } + /** + * 设置:所属模块 + */ + public void setModuleName(String moduleName) { + this.moduleName = moduleName; + } + /** + * 获取:所属模块 + */ + public String getModuleName() { + return moduleName; + } + /** + * 设置:用户权限控制属性名 + */ + public void setCrlAttrName(String crlAttrName) { + this.crlAttrName = crlAttrName; + } + /** + * 获取:用户权限控制属性名 + */ + public String getCrlAttrName() { + return crlAttrName; + } + /** + * 设置:数据表权限控制列名 + */ + public void setCrlColumnName(String crlColumnName) { + this.crlColumnName = crlColumnName; + } + /** + * 获取:数据表权限控制列名 + */ + public String getCrlColumnName() { + return crlColumnName; + } + /** + * 设置:权限code,all_开头表示查看所有数据的权限,sup_开头表示查看下级数据的权限,own_开头表示查看本级数据的权限 + */ + public void setPermCode(String permCode) { + this.permCode = permCode; + } + /** + * 获取:权限code,all_开头表示查看所有数据的权限,sup_开头表示查看下级数据的权限,own_开头表示查看本级数据的权限 + */ + public String getPermCode() { + return permCode; + } + /** + * 设置:排序 + */ + public void setOrderNum(Integer orderNum) { + this.orderNum = orderNum; + } + /** + * 获取:排序 + */ + public Integer getOrderNum() { + return orderNum; + } + /** + * 设置:创建时间 + */ + public void setGmtCreate(Date gmtCreate) { + this.gmtCreate = gmtCreate; + } + /** + * 获取:创建时间 + */ + public Date getGmtCreate() { + return gmtCreate; + } + /** + * 设置:修改时间 + */ + public void setGmtModified(Date gmtModified) { + this.gmtModified = gmtModified; + } + /** + * 获取:修改时间 + */ + public Date getGmtModified() { + return gmtModified; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/domain/DeptDO.java b/novel-admin/src/main/java/com/java2nb/system/domain/DeptDO.java new file mode 100644 index 0000000..f3d9ed7 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/domain/DeptDO.java @@ -0,0 +1,99 @@ +package com.java2nb.system.domain; + +import java.io.Serializable; + + + +/** + * 部门管理 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-09-27 14:28:36 + */ +public class DeptDO implements Serializable { + private static final long serialVersionUID = 1L; + + // + private Long deptId; + //上级部门ID,一级部门为0 + private Long parentId; + //部门名称 + private String name; + //排序 + private Integer orderNum; + //是否删除 -1:已删除 0:正常 + private Integer delFlag; + + /** + * 设置: + */ + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + /** + * 获取: + */ + public Long getDeptId() { + return deptId; + } + /** + * 设置:上级部门ID,一级部门为0 + */ + public void setParentId(Long parentId) { + this.parentId = parentId; + } + /** + * 获取:上级部门ID,一级部门为0 + */ + public Long getParentId() { + return parentId; + } + /** + * 设置:部门名称 + */ + public void setName(String name) { + this.name = name; + } + /** + * 获取:部门名称 + */ + public String getName() { + return name; + } + /** + * 设置:排序 + */ + public void setOrderNum(Integer orderNum) { + this.orderNum = orderNum; + } + /** + * 获取:排序 + */ + public Integer getOrderNum() { + return orderNum; + } + /** + * 设置:是否删除 -1:已删除 0:正常 + */ + public void setDelFlag(Integer delFlag) { + this.delFlag = delFlag; + } + /** + * 获取:是否删除 -1:已删除 0:正常 + */ + public Integer getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return "DeptDO{" + + "deptId=" + deptId + + ", parentId=" + parentId + + ", name='" + name + '\'' + + ", orderNum=" + orderNum + + ", delFlag=" + delFlag + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/domain/MenuDO.java b/novel-admin/src/main/java/com/java2nb/system/domain/MenuDO.java new file mode 100644 index 0000000..283c266 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/domain/MenuDO.java @@ -0,0 +1,184 @@ +package com.java2nb.system.domain; + +import java.io.Serializable; +import java.util.Date; + +public class MenuDO implements Serializable { + private static final long serialVersionUID = 1L; + // + private Long menuId; + // 父菜单ID,一级菜单为0 + private Long parentId; + // 菜单名称 + private String name; + // 菜单URL + private String url; + // 授权(多个用逗号分隔,如:user:list,user:create) + private String perms; + // 类型 0:目录 1:菜单 2:按钮 + private Integer type; + // 菜单图标 + private String icon; + // 排序 + private Integer orderNum; + // 创建时间 + private Date gmtCreate; + // 修改时间 + private Date gmtModified; + + /** + * 设置: + */ + public void setMenuId(Long menuId) { + this.menuId = menuId; + } + + /** + * 获取: + */ + public Long getMenuId() { + return menuId; + } + + /** + * 设置:父菜单ID,一级菜单为0 + */ + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + /** + * 获取:父菜单ID,一级菜单为0 + */ + public Long getParentId() { + return parentId; + } + + /** + * 设置:菜单名称 + */ + public void setName(String name) { + this.name = name; + } + + /** + * 获取:菜单名称 + */ + public String getName() { + return name; + } + + /** + * 设置:菜单URL + */ + public void setUrl(String url) { + this.url = url; + } + + /** + * 获取:菜单URL + */ + public String getUrl() { + return url; + } + + /** + * 设置:授权(多个用逗号分隔,如:user:list,user:create) + */ + public void setPerms(String perms) { + this.perms = perms; + } + + /** + * 获取:授权(多个用逗号分隔,如:user:list,user:create) + */ + public String getPerms() { + return perms; + } + + /** + * 设置:类型 0:目录 1:菜单 2:按钮 + */ + public void setType(Integer type) { + this.type = type; + } + + /** + * 获取:类型 0:目录 1:菜单 2:按钮 + */ + public Integer getType() { + return type; + } + + /** + * 设置:菜单图标 + */ + public void setIcon(String icon) { + this.icon = icon; + } + + /** + * 获取:菜单图标 + */ + public String getIcon() { + return icon; + } + + /** + * 设置:排序 + */ + public void setOrderNum(Integer orderNum) { + this.orderNum = orderNum; + } + + /** + * 获取:排序 + */ + public Integer getOrderNum() { + return orderNum; + } + + /** + * 设置:创建时间 + */ + public void setGmtCreate(Date gmtCreate) { + this.gmtCreate = gmtCreate; + } + + /** + * 获取:创建时间 + */ + public Date getGmtCreate() { + return gmtCreate; + } + + /** + * 设置:修改时间 + */ + public void setGmtModified(Date gmtModified) { + this.gmtModified = gmtModified; + } + + /** + * 获取:修改时间 + */ + public Date getGmtModified() { + return gmtModified; + } + + @Override + public String toString() { + return "MenuDO{" + + "menuId=" + menuId + + ", parentId=" + parentId + + ", name='" + name + '\'' + + ", url='" + url + '\'' + + ", perms='" + perms + '\'' + + ", type=" + type + + ", icon='" + icon + '\'' + + ", orderNum=" + orderNum + + ", gmtCreate=" + gmtCreate + + ", gmtModified=" + gmtModified + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/domain/RoleDO.java b/novel-admin/src/main/java/com/java2nb/system/domain/RoleDO.java new file mode 100644 index 0000000..c8ab52a --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/domain/RoleDO.java @@ -0,0 +1,104 @@ +package com.java2nb.system.domain; + +import java.sql.Timestamp; +import java.util.List; + +public class RoleDO { + + private Long roleId; + private String roleName; + private String roleSign; + private String remark; + private Long userIdCreate; + private Timestamp gmtCreate; + private Timestamp gmtModified; + private List menuIds; + + private List permIds; + + public List getPermIds() { + return permIds; + } + + public void setPermIds(List permIds) { + this.permIds = permIds; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + public String getRoleSign() { + return roleSign; + } + + public void setRoleSign(String roleSign) { + this.roleSign = roleSign; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Long getUserIdCreate() { + return userIdCreate; + } + + public void setUserIdCreate(Long userIdCreate) { + this.userIdCreate = userIdCreate; + } + + public Timestamp getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(Timestamp gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public Timestamp getGmtModified() { + return gmtModified; + } + + public void setGmtModified(Timestamp gmtModified) { + this.gmtModified = gmtModified; + } + + public List getMenuIds() { + return menuIds; + } + + public void setMenuIds(List menuIds) { + this.menuIds = menuIds; + } + + @Override + public String toString() { + return "RoleDO{" + + "roleId=" + roleId + + ", roleName='" + roleName + '\'' + + ", roleSign='" + roleSign + '\'' + + ", remark='" + remark + '\'' + + ", userIdCreate=" + userIdCreate + + ", gmtCreate=" + gmtCreate + + ", gmtModified=" + gmtModified + + ", menuIds=" + menuIds + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/domain/RoleDataPermDO.java b/novel-admin/src/main/java/com/java2nb/system/domain/RoleDataPermDO.java new file mode 100644 index 0000000..8241a80 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/domain/RoleDataPermDO.java @@ -0,0 +1,80 @@ +package com.java2nb.system.domain; + +import java.io.Serializable; + + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.java2nb.common.jsonserializer.LongToStringSerializer; + + +import org.springframework.format.annotation.DateTimeFormat; +import java.util.Date; + + + +/** + * 角色与数据权限对应关系 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:32:49 + */ +public class RoleDataPermDO implements Serializable { + private static final long serialVersionUID = 1L; + + + // + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long id; + //角色ID + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long roleId; + //权限ID + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long permId; + + /** + * 设置: + */ + public void setId(Long id) { + this.id = id; + } + /** + * 获取: + */ + public Long getId() { + return id; + } + /** + * 设置:角色ID + */ + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + /** + * 获取:角色ID + */ + public Long getRoleId() { + return roleId; + } + /** + * 设置:权限ID + */ + public void setPermId(Long permId) { + this.permId = permId; + } + /** + * 获取:权限ID + */ + public Long getPermId() { + return permId; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/domain/RoleMenuDO.java b/novel-admin/src/main/java/com/java2nb/system/domain/RoleMenuDO.java new file mode 100644 index 0000000..d0626d0 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/domain/RoleMenuDO.java @@ -0,0 +1,35 @@ +package com.java2nb.system.domain; + +public class RoleMenuDO { + private Long id; + private Long roleId; + private Long menuId; + + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public Long getRoleId() { + return roleId; + } + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + public Long getMenuId() { + return menuId; + } + public void setMenuId(Long menuId) { + this.menuId = menuId; + } + + @Override + public String toString() { + return "RoleMenuDO{" + + "id=" + id + + ", roleId=" + roleId + + ", menuId=" + menuId + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/domain/UserDO.java b/novel-admin/src/main/java/com/java2nb/system/domain/UserDO.java new file mode 100644 index 0000000..7e9eef6 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/domain/UserDO.java @@ -0,0 +1,269 @@ +package com.java2nb.system.domain; + +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; +import java.util.Map; + +public class UserDO implements Serializable { + private static final long serialVersionUID = 1L; + // + private Long userId; + // 用户名 + private String username; + // 用户真实姓名 + private String name; + // 密码 + private String password; + // 部门 + private Long deptId; + //下级部门 + private String supDeptIds; + private String deptName; + // 邮箱 + private String email; + // 手机号 + private String mobile; + // 状态 0:禁用,1:正常 + private Integer status; + // 创建用户id + private Long userIdCreate; + // 创建时间 + private Date gmtCreate; + // 修改时间 + private Date gmtModified; + //角色 + private List roleIds; + //数据权限(table_name->dataPerms) + private Map> dataPerms; + //性别 + private Long sex; + //出身日期 + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date birth; + //图片ID + private Long picId; + //现居住地 + private String liveAddress; + //爱好 + private String hobby; + //省份 + private String province; + //所在城市 + private String city; + //所在地区 + private String district; + + public String getSupDeptIds() { + return supDeptIds; + } + + public void setSupDeptIds(String supDeptIds) { + this.supDeptIds = supDeptIds; + } + + public Map> getDataPerms() { + return dataPerms; + } + + public void setDataPerms(Map> dataPerms) { + this.dataPerms = dataPerms; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Long getUserIdCreate() { + return userIdCreate; + } + + public void setUserIdCreate(Long userIdCreate) { + this.userIdCreate = userIdCreate; + } + + public Date getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(Date gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public Date getGmtModified() { + return gmtModified; + } + + public void setGmtModified(Date gmtModified) { + this.gmtModified = gmtModified; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public Long getSex() { + return sex; + } + + public void setSex(Long sex) { + this.sex = sex; + } + + public Date getBirth() { + return birth; + } + + public void setBirth(Date birth) { + this.birth = birth; + } + + public Long getPicId() { + return picId; + } + + public void setPicId(Long picId) { + this.picId = picId; + } + + public String getLiveAddress() { + return liveAddress; + } + + public void setLiveAddress(String liveAddress) { + this.liveAddress = liveAddress; + } + + public String getHobby() { + return hobby; + } + + public void setHobby(String hobby) { + this.hobby = hobby; + } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getDistrict() { + return district; + } + + public void setDistrict(String district) { + this.district = district; + } + + @Override + public String toString() { + return "UserDO{" + + "userId=" + userId + + ", username='" + username + '\'' + + ", name='" + name + '\'' + + ", password='" + password + '\'' + + ", deptId=" + deptId + + ", deptName='" + deptName + '\'' + + ", email='" + email + '\'' + + ", mobile='" + mobile + '\'' + + ", status=" + status + + ", userIdCreate=" + userIdCreate + + ", gmtCreate=" + gmtCreate + + ", gmtModified=" + gmtModified + + ", roleIds=" + roleIds + + ", sex=" + sex + + ", birth=" + birth + + ", picId=" + picId + + ", liveAddress='" + liveAddress + '\'' + + ", hobby='" + hobby + '\'' + + ", province='" + province + '\'' + + ", city='" + city + '\'' + + ", district='" + district + '\'' + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/domain/UserOnline.java b/novel-admin/src/main/java/com/java2nb/system/domain/UserOnline.java new file mode 100644 index 0000000..62be851 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/domain/UserOnline.java @@ -0,0 +1,150 @@ +package com.java2nb.system.domain; + +import java.util.Date; + +/** + * + * + */ +public class UserOnline { + + /** + */ + private String id; + + private String userId; + + private String username; + + /** + * 用户主机地址 + */ + private String host; + + /** + * 用户登录时系统IP + */ + private String systemHost; + + /** + * 用户浏览器类型 + */ + private String userAgent; + + /** + * 在线状态 + */ + private String status = "on_line"; + + /** + * session创建时间 + */ + private Date startTimestamp; + /** + * session最后访问时间 + */ + private Date lastAccessTime; + + /** + * 超时时间 + */ + private Long timeout; + + /** + * 备份的当前用户会话 + */ + private String onlineSession; + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Date getStartTimestamp() { + return startTimestamp; + } + + public void setStartTimestamp(Date startTimestamp) { + this.startTimestamp = startTimestamp; + } + + public Date getLastAccessTime() { + return lastAccessTime; + } + + public void setLastAccessTime(Date lastAccessTime) { + this.lastAccessTime = lastAccessTime; + } + + public Long getTimeout() { + return timeout; + } + + public void setTimeout(Long timeout) { + this.timeout = timeout; + } + + public String getHost() { + return host; + } + + public void setHost(String host) { + this.host = host; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getUserAgent() { + return userAgent; + } + + public void setUserAgent(String userAgent) { + this.userAgent = userAgent; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getOnlineSession() { + return onlineSession; + } + + public void setOnlineSession(String onlineSession) { + this.onlineSession = onlineSession; + } + + + public String getSystemHost() { + return systemHost; + } + + public void setSystemHost(String systemHost) { + this.systemHost = systemHost; + } + + + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/domain/UserRoleDO.java b/novel-admin/src/main/java/com/java2nb/system/domain/UserRoleDO.java new file mode 100644 index 0000000..8161175 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/domain/UserRoleDO.java @@ -0,0 +1,40 @@ +package com.java2nb.system.domain; + +public class UserRoleDO { + private Long id; + private Long userId; + private Long roleId; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + @Override + public String toString() { + return "UserRoleDO{" + + "id=" + id + + ", userId=" + userId + + ", roleId=" + roleId + + '}'; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/domain/UserToken.java b/novel-admin/src/main/java/com/java2nb/system/domain/UserToken.java new file mode 100644 index 0000000..3bf909f --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/domain/UserToken.java @@ -0,0 +1,56 @@ +package com.java2nb.system.domain; + +import java.io.Serializable; + +/** + * @author xiongxy + * @version V1.0 + */ +public class UserToken implements Serializable { + private static final long serialVersionUID = 1L; + private Long userId; + private String username; + private String name; + private String password; + private Long deptId; + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/DataPermService.java b/novel-admin/src/main/java/com/java2nb/system/service/DataPermService.java new file mode 100644 index 0000000..c8c5e53 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/DataPermService.java @@ -0,0 +1,38 @@ +package com.java2nb.system.service; + +import com.java2nb.common.domain.DictDO; +import com.java2nb.common.domain.Tree; +import com.java2nb.system.domain.DataPermDO; + +import java.util.List; +import java.util.Map; + +/** + * 数据权限管理 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:40:03 + */ +public interface DataPermService { + + DataPermDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(DataPermDO dataPerm); + + int update(DataPermDO dataPerm); + + int remove(Long id); + + int batchRemove(Long[] ids); + + List listModuleName(); + + Tree getTree(); + + Tree getTree(Long roleId); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/DeptService.java b/novel-admin/src/main/java/com/java2nb/system/service/DeptService.java new file mode 100644 index 0000000..61ff557 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/DeptService.java @@ -0,0 +1,37 @@ +package com.java2nb.system.service; + +import com.java2nb.common.domain.Tree; +import com.java2nb.system.domain.DeptDO; + +import java.util.List; +import java.util.Map; + +/** + * 部门管理 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-09-27 14:28:36 + */ +public interface DeptService { + + DeptDO get(Long deptId); + + List list(Map map); + + int count(Map map); + + int save(DeptDO sysDept); + + int update(DeptDO sysDept); + + int remove(Long deptId); + + int batchRemove(Long[] deptIds); + + Tree getTree(); + + boolean checkDeptHasUser(Long deptId); + + List listChildrenIds(Long parentId); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/MenuService.java b/novel-admin/src/main/java/com/java2nb/system/service/MenuService.java new file mode 100644 index 0000000..b7aec4c --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/MenuService.java @@ -0,0 +1,33 @@ +package com.java2nb.system.service; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.springframework.stereotype.Service; + +import com.java2nb.common.domain.Tree; +import com.java2nb.system.domain.MenuDO; + +@Service +public interface MenuService { + Tree getSysMenuTree(Long id); + + List> listMenuTree(Long id); + + Tree getTree(); + + Tree getTree(Long id); + + List list(Map params); + + int remove(Long id); + + int save(MenuDO menu); + + int update(MenuDO menu); + + MenuDO get(Long id); + + Set listPerms(Long userId); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/RoleDataPermService.java b/novel-admin/src/main/java/com/java2nb/system/service/RoleDataPermService.java new file mode 100644 index 0000000..8cc0bff --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/RoleDataPermService.java @@ -0,0 +1,30 @@ +package com.java2nb.system.service; + +import com.java2nb.system.domain.RoleDataPermDO; + +import java.util.List; +import java.util.Map; + +/** + * 角色与数据权限对应关系 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:32:49 + */ +public interface RoleDataPermService { + + RoleDataPermDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(RoleDataPermDO roleDataPerm); + + int update(RoleDataPermDO roleDataPerm); + + int remove(Long id); + + int batchRemove(Long[] ids); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/RoleService.java b/novel-admin/src/main/java/com/java2nb/system/service/RoleService.java new file mode 100644 index 0000000..8560b49 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/RoleService.java @@ -0,0 +1,25 @@ +package com.java2nb.system.service; + +import java.util.List; + +import org.springframework.stereotype.Service; + +import com.java2nb.system.domain.RoleDO; + +@Service +public interface RoleService { + + RoleDO get(Long id); + + List list(); + + int save(RoleDO role); + + int update(RoleDO role); + + int remove(Long id); + + List list(Long userId); + + int batchremove(Long[] ids); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/SessionService.java b/novel-admin/src/main/java/com/java2nb/system/service/SessionService.java new file mode 100644 index 0000000..de4da7d --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/SessionService.java @@ -0,0 +1,23 @@ +package com.java2nb.system.service; + +import java.io.PrintStream; +import java.security.Principal; +import java.util.Collection; +import java.util.List; + +import com.java2nb.system.domain.UserDO; +import org.apache.shiro.session.Session; +import org.springframework.stereotype.Service; + +import com.java2nb.system.domain.UserOnline; + +@Service +public interface SessionService { + List list(); + + List listOnlineUser(); + + Collection sessionList(); + + boolean forceLogout(String sessionId); +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/UserService.java b/novel-admin/src/main/java/com/java2nb/system/service/UserService.java new file mode 100644 index 0000000..6d59679 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/UserService.java @@ -0,0 +1,54 @@ +package com.java2nb.system.service; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.java2nb.system.vo.UserVO; +import org.springframework.stereotype.Service; + +import com.java2nb.common.domain.Tree; +import com.java2nb.system.domain.DeptDO; +import com.java2nb.system.domain.UserDO; +import org.springframework.web.multipart.MultipartFile; + +@Service +public interface UserService { + UserDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(UserDO user); + + int update(UserDO user); + + int remove(Long userId); + + int batchremove(Long[] userIds); + + boolean exit(Map params); + + Set listRoles(Long userId); + + int resetPwd(UserVO userVO,UserDO userDO) throws Exception; + int adminResetPwd(UserVO userVO) throws Exception; + Tree getTree(); + + /** + * 更新个人信息 + * @param userDO + * @return + */ + int updatePersonal(UserDO userDO); + + /** + * 更新个人图片 + * @param file 图片 + * @param avatar_data 裁剪信息 + * @param userId 用户ID + * @throws Exception + */ + Map updatePersonalImg(MultipartFile file, String avatar_data, Long userId) throws Exception; +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/impl/DataPermServiceImpl.java b/novel-admin/src/main/java/com/java2nb/system/service/impl/DataPermServiceImpl.java new file mode 100644 index 0000000..f390b61 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/impl/DataPermServiceImpl.java @@ -0,0 +1,130 @@ +package com.java2nb.system.service.impl; + +import com.java2nb.common.domain.DictDO; +import com.java2nb.common.domain.Tree; +import com.java2nb.common.utils.BuildTree; +import com.java2nb.common.utils.IdWorker; +import com.java2nb.system.dao.RoleDataPermDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.java2nb.system.dao.DataPermDao; +import com.java2nb.system.domain.DataPermDO; +import com.java2nb.system.service.DataPermService; + + + +@Service +public class DataPermServiceImpl implements DataPermService { + @Autowired + private DataPermDao dataPermDao; + + @Autowired + private RoleDataPermDao roleDataPermDao; + + @Override + public DataPermDO get(Long id){ + return dataPermDao.get(id); + } + + @Override + public List list(Map map){ + return dataPermDao.list(map); + } + + @Override + public int count(Map map){ + return dataPermDao.count(map); + } + + @Override + public int save(DataPermDO dataPerm){ + return dataPermDao.save(dataPerm); + } + + @Override + public int update(DataPermDO dataPerm){ + return dataPermDao.update(dataPerm); + } + + @Override + public int remove(Long id){ + return dataPermDao.remove(id); + } + + @Override + public int batchRemove(Long[] ids){ + return dataPermDao.batchRemove(ids); + } + + @Override + public List listModuleName() { + return dataPermDao.listModuleName(); + } + + @Override + public Tree getTree() { + List> trees = new ArrayList>(); + List permDOs = dataPermDao.list(new HashMap<>(16)); + Map topTree = new HashMap<>(); + for (DataPermDO permDO : permDOs) { + Tree tree = new Tree<>(); + tree.setId(permDO.getId().toString()); + if(!topTree.containsKey(permDO.getModuleName())){ + Tree parentTree = new Tree<>(); + String id = new IdWorker().nextId()+""; + parentTree.setId(id); + parentTree.setParentId(0+""); + parentTree.setText(permDO.getModuleName()); + topTree.put(permDO.getModuleName(),id); + trees.add(parentTree); + } + tree.setParentId(topTree.get(permDO.getModuleName())); + tree.setText(permDO.getName()); + trees.add(tree); + } + // 默认顶级菜单为0,根据数据库实际情况调整 + Tree t = BuildTree.build(trees); + return t; + } + + @Override + public Tree getTree(Long roleId) { + List> trees = new ArrayList>(); + List permDOs = dataPermDao.list(new HashMap<>(16)); + List permIds = roleDataPermDao.listPermIdByRoleId(roleId); + Map topTree = new HashMap<>(); + for (DataPermDO permDO : permDOs) { + Tree tree = new Tree<>(); + tree.setId(permDO.getId().toString()); + if(!topTree.containsKey(permDO.getModuleName())){ + Tree parentTree = new Tree<>(); + String id = new IdWorker().nextId()+""; + parentTree.setId(id); + parentTree.setParentId(0+""); + parentTree.setText(permDO.getModuleName()); + topTree.put(permDO.getModuleName(),id); + trees.add(parentTree); + } + tree.setParentId(topTree.get(permDO.getModuleName())); + tree.setText(permDO.getName()); + Map state = new HashMap<>(16); + if (permIds.contains(permDO.getId())) { + state.put("selected", true); + } else { + state.put("selected", false); + } + tree.setState(state); + trees.add(tree); + } + // 默认顶级菜单为0,根据数据库实际情况调整 + Tree t = BuildTree.build(trees); + return t; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/impl/DeptServiceImpl.java b/novel-admin/src/main/java/com/java2nb/system/service/impl/DeptServiceImpl.java new file mode 100644 index 0000000..75a65c2 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/impl/DeptServiceImpl.java @@ -0,0 +1,104 @@ +package com.java2nb.system.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.java2nb.common.domain.Tree; +import com.java2nb.common.utils.BuildTree; +import com.java2nb.system.dao.DeptDao; +import com.java2nb.system.domain.DeptDO; +import com.java2nb.system.service.DeptService; + + +@Service +public class DeptServiceImpl implements DeptService { + @Autowired + private DeptDao sysDeptMapper; + + @Override + public DeptDO get(Long deptId) { + return sysDeptMapper.get(deptId); + } + + @Override + public List list(Map map) { + return sysDeptMapper.list(map); + } + + @Override + public int count(Map map) { + return sysDeptMapper.count(map); + } + + @Override + public int save(DeptDO sysDept) { + return sysDeptMapper.save(sysDept); + } + + @Override + public int update(DeptDO sysDept) { + return sysDeptMapper.update(sysDept); + } + + @Override + public int remove(Long deptId) { + return sysDeptMapper.remove(deptId); + } + + @Override + public int batchRemove(Long[] deptIds) { + return sysDeptMapper.batchRemove(deptIds); + } + + @Override + public Tree getTree() { + List> trees = new ArrayList>(); + List sysDepts = sysDeptMapper.list(new HashMap(16)); + for (DeptDO sysDept : sysDepts) { + Tree tree = new Tree(); + tree.setId(sysDept.getDeptId().toString()); + tree.setParentId(sysDept.getParentId().toString()); + tree.setText(sysDept.getName()); + Map state = new HashMap<>(16); + state.put("opened", true); + tree.setState(state); + trees.add(tree); + } + // 默认顶级菜单为0,根据数据库实际情况调整 + Tree t = BuildTree.build(trees); + return t; + } + + @Override + public boolean checkDeptHasUser(Long deptId) { + // TODO Auto-generated method stub + //查询部门以及此部门的下级部门 + int result = sysDeptMapper.getDeptUserNumber(deptId); + return result == 0 ? true : false; + } + + @Override + public List listChildrenIds(Long parentId) { + List deptDOS = list(null); + return treeMenuList(deptDOS, parentId); + } + + List treeMenuList(List menuList, long pid) { + List childIds = new ArrayList<>(); + for (DeptDO mu : menuList) { + //遍历出父id等于参数的id,add进子节点集合 + if (mu.getParentId() == pid) { + //递归遍历下一级 + treeMenuList(menuList, mu.getDeptId()); + childIds.add(mu.getDeptId()); + } + } + return childIds; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/impl/MenuServiceImpl.java b/novel-admin/src/main/java/com/java2nb/system/service/impl/MenuServiceImpl.java new file mode 100644 index 0000000..ab10a0e --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/impl/MenuServiceImpl.java @@ -0,0 +1,163 @@ +package com.java2nb.system.service.impl; + +import com.java2nb.common.domain.Tree; +import com.java2nb.common.utils.BuildTree; +import com.java2nb.system.dao.MenuDao; +import com.java2nb.system.dao.RoleMenuDao; +import com.java2nb.system.domain.MenuDO; +import com.java2nb.system.service.MenuService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +@Service +@Transactional(readOnly = true,rollbackFor = Exception.class) +public class MenuServiceImpl implements MenuService { + @Autowired + MenuDao menuMapper; + @Autowired + RoleMenuDao roleMenuMapper; + + /** + * @param + * @return 树形菜单 + */ + @Cacheable + @Override + public Tree getSysMenuTree(Long id) { + List> trees = new ArrayList>(); + List menuDOs = menuMapper.listMenuByUserId(id); + for (MenuDO sysMenuDO : menuDOs) { + Tree tree = new Tree(); + tree.setId(sysMenuDO.getMenuId().toString()); + tree.setParentId(sysMenuDO.getParentId().toString()); + tree.setText(sysMenuDO.getName()); + Map attributes = new HashMap<>(16); + attributes.put("url", sysMenuDO.getUrl()); + attributes.put("icon", sysMenuDO.getIcon()); + tree.setAttributes(attributes); + trees.add(tree); + } + // 默认顶级菜单为0,根据数据库实际情况调整 + Tree t = BuildTree.build(trees); + return t; + } + + @Override + public List list(Map params) { + List menus = menuMapper.list(params); + return menus; + } + + @Transactional(readOnly = false,rollbackFor = Exception.class) + @Override + public int remove(Long id) { + int result = menuMapper.remove(id); + return result; + } + @Transactional(readOnly = false,rollbackFor = Exception.class) + @Override + public int save(MenuDO menu) { + int r = menuMapper.save(menu); + return r; + } + + @Transactional(readOnly = false,rollbackFor = Exception.class) + @Override + public int update(MenuDO menu) { + int r = menuMapper.update(menu); + return r; + } + + @Override + public MenuDO get(Long id) { + MenuDO menuDO = menuMapper.get(id); + return menuDO; + } + + @Override + public Tree getTree() { + List> trees = new ArrayList>(); + List menuDOs = menuMapper.list(new HashMap<>(16)); + for (MenuDO sysMenuDO : menuDOs) { + Tree tree = new Tree(); + tree.setId(sysMenuDO.getMenuId().toString()); + tree.setParentId(sysMenuDO.getParentId().toString()); + tree.setText(sysMenuDO.getName()); + trees.add(tree); + } + // 默认顶级菜单为0,根据数据库实际情况调整 + Tree t = BuildTree.build(trees); + return t; + } + + @Override + public Tree getTree(Long id) { + // 根据roleId查询权限 + List menus = menuMapper.list(new HashMap(16)); + List menuIds = roleMenuMapper.listMenuIdByRoleId(id); + List temp = menuIds; + for (MenuDO menu : menus) { + if (temp.contains(menu.getParentId())) { + menuIds.remove(menu.getParentId()); + } + } + List> trees = new ArrayList>(); + List menuDOs = menuMapper.list(new HashMap(16)); + for (MenuDO sysMenuDO : menuDOs) { + Tree tree = new Tree(); + tree.setId(sysMenuDO.getMenuId().toString()); + tree.setParentId(sysMenuDO.getParentId().toString()); + tree.setText(sysMenuDO.getName()); + Map state = new HashMap<>(16); + Long menuId = sysMenuDO.getMenuId(); + if (menuIds.contains(menuId)) { + state.put("selected", true); + } else { + state.put("selected", false); + } + tree.setState(state); + trees.add(tree); + } + // 默认顶级菜单为0,根据数据库实际情况调整 + Tree t = BuildTree.build(trees); + return t; + } + + @Override + public Set listPerms(Long userId) { + List perms = menuMapper.listUserPerms(userId); + Set permsSet = new HashSet<>(); + for (String perm : perms) { + if (StringUtils.isNotBlank(perm)) { + permsSet.addAll(Arrays.asList(perm.trim().split(","))); + } + } + return permsSet; + } + + @Override + public List> listMenuTree(Long id) { + List> trees = new ArrayList>(); + List menuDOs = menuMapper.listMenuByUserId(id); + for (MenuDO sysMenuDO : menuDOs) { + Tree tree = new Tree(); + tree.setId(sysMenuDO.getMenuId().toString()); + tree.setParentId(sysMenuDO.getParentId().toString()); + tree.setText(sysMenuDO.getName()); + Map attributes = new HashMap<>(16); + attributes.put("url", sysMenuDO.getUrl()); + attributes.put("icon", sysMenuDO.getIcon()); + tree.setAttributes(attributes); + trees.add(tree); + } + // 默认顶级菜单为0,根据数据库实际情况调整 + List> list = BuildTree.buildList(trees, "0"); + return list; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/impl/RoleDataPermServiceImpl.java b/novel-admin/src/main/java/com/java2nb/system/service/impl/RoleDataPermServiceImpl.java new file mode 100644 index 0000000..ec7405c --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/impl/RoleDataPermServiceImpl.java @@ -0,0 +1,55 @@ +package com.java2nb.system.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +import com.java2nb.system.dao.RoleDataPermDao; +import com.java2nb.system.domain.RoleDataPermDO; +import com.java2nb.system.service.RoleDataPermService; + + + +@Service +public class RoleDataPermServiceImpl implements RoleDataPermService { + @Autowired + private RoleDataPermDao roleDataPermDao; + + @Override + public RoleDataPermDO get(Long id){ + return roleDataPermDao.get(id); + } + + @Override + public List list(Map map){ + return roleDataPermDao.list(map); + } + + @Override + public int count(Map map){ + return roleDataPermDao.count(map); + } + + @Override + public int save(RoleDataPermDO roleDataPerm){ + return roleDataPermDao.save(roleDataPerm); + } + + @Override + public int update(RoleDataPermDO roleDataPerm){ + return roleDataPermDao.update(roleDataPerm); + } + + @Override + public int remove(Long id){ + return roleDataPermDao.remove(id); + } + + @Override + public int batchRemove(Long[] ids){ + return roleDataPermDao.batchRemove(ids); + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/impl/RoleServiceImpl.java b/novel-admin/src/main/java/com/java2nb/system/service/impl/RoleServiceImpl.java new file mode 100644 index 0000000..d8064ed --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/impl/RoleServiceImpl.java @@ -0,0 +1,150 @@ +package com.java2nb.system.service.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Objects; + +import com.java2nb.system.dao.*; +import com.java2nb.system.domain.RoleDataPermDO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.java2nb.system.domain.RoleDO; +import com.java2nb.system.domain.RoleMenuDO; +import com.java2nb.system.service.RoleService; + + +@Service +public class RoleServiceImpl implements RoleService { + + public static final String ROLE_ALL_KEY = "\"role_all\""; + + public static final String DEMO_CACHE_NAME = "role"; + + @Autowired + RoleDao roleMapper; + @Autowired + RoleMenuDao roleMenuMapper; + @Autowired + UserDao userMapper; + @Autowired + UserRoleDao userRoleMapper; + @Autowired + RoleDataPermDao roleDataPermDao; + + @Override + public List list() { + List roles = roleMapper.list(new HashMap<>(16)); + return roles; + } + + + @Override + public List list(Long userId) { + List rolesIds = userRoleMapper.listRoleId(userId); + List roles = roleMapper.list(new HashMap<>(16)); + for (RoleDO roleDO : roles) { + roleDO.setRoleSign("false"); + for (Long roleId : rolesIds) { + if (Objects.equals(roleDO.getRoleId(), roleId)) { + roleDO.setRoleSign("true"); + break; + } + } + } + return roles; + } + @Transactional + @Override + public int save(RoleDO role) { + int count = roleMapper.save(role); + List menuIds = role.getMenuIds(); + Long roleId = role.getRoleId(); + List rms = new ArrayList<>(); + for (Long menuId : menuIds) { + RoleMenuDO rmDo = new RoleMenuDO(); + rmDo.setRoleId(roleId); + rmDo.setMenuId(menuId); + rms.add(rmDo); + } + roleMenuMapper.removeByRoleId(roleId); + if (rms.size() > 0) { + roleMenuMapper.batchSave(rms); + } + List permIds = role.getPermIds(); + if(permIds!=null) { + List rps = new ArrayList<>(); + for (Long permId : permIds) { + RoleDataPermDO rpDo = new RoleDataPermDO(); + rpDo.setRoleId(roleId); + rpDo.setPermId(permId); + rps.add(rpDo); + } + roleDataPermDao.removeByRoleId(roleId); + if (rps.size() > 0) { + roleDataPermDao.batchSave(rps); + } + } + return count; + } + + @Transactional + @Override + public int remove(Long id) { + int count = roleMapper.remove(id); + userRoleMapper.removeByRoleId(id); + roleMenuMapper.removeByRoleId(id); + return count; + } + + @Override + public RoleDO get(Long id) { + RoleDO roleDO = roleMapper.get(id); + return roleDO; + } + + @Transactional + @Override + public int update(RoleDO role) { + int r = roleMapper.update(role); + List menuIds = role.getMenuIds(); + Long roleId = role.getRoleId(); + roleMenuMapper.removeByRoleId(roleId); + List rms = new ArrayList<>(); + for (Long menuId : menuIds) { + RoleMenuDO rmDo = new RoleMenuDO(); + rmDo.setRoleId(roleId); + rmDo.setMenuId(menuId); + rms.add(rmDo); + } + if (rms.size() > 0) { + roleMenuMapper.batchSave(rms); + } + List permIds = role.getPermIds(); + if(permIds!=null) { + List rps = new ArrayList<>(); + for (Long permId : permIds) { + RoleDataPermDO rpDo = new RoleDataPermDO(); + rpDo.setRoleId(roleId); + rpDo.setPermId(permId); + rps.add(rpDo); + } + roleDataPermDao.removeByRoleId(roleId); + if (rps.size() > 0) { + roleDataPermDao.batchSave(rps); + } + } + return r; + } + + @Override + public int batchremove(Long[] ids) { + int r = roleMapper.batchRemove(ids); + return r; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/impl/SessionServiceImpl.java b/novel-admin/src/main/java/com/java2nb/system/service/impl/SessionServiceImpl.java new file mode 100644 index 0000000..0463c62 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/impl/SessionServiceImpl.java @@ -0,0 +1,85 @@ +package com.java2nb.system.service.impl; + +import com.java2nb.system.domain.UserDO; +import com.java2nb.system.domain.UserOnline; +import com.java2nb.system.service.SessionService; +import org.apache.shiro.session.Session; +import org.apache.shiro.session.mgt.eis.SessionDAO; +import org.apache.shiro.subject.SimplePrincipalCollection; +import org.apache.shiro.subject.support.DefaultSubjectContext; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * 待完善 + * + * @author xiongxy + */ +@Service +public class SessionServiceImpl implements SessionService { + private final SessionDAO sessionDAO; + + @Autowired + public SessionServiceImpl(SessionDAO sessionDAO) { + this.sessionDAO = sessionDAO; + } + + @Override + public List list() { + List list = new ArrayList<>(); + Collection sessions = sessionDAO.getActiveSessions(); + for (Session session : sessions) { + UserOnline userOnline = new UserOnline(); + if (session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY) == null) { + continue; + } else { + SimplePrincipalCollection principalCollection = (SimplePrincipalCollection) session + .getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY); + UserDO userDO = (UserDO) principalCollection.getPrimaryPrincipal(); + userOnline.setUsername(userDO.getUsername()); + } + userOnline.setId((String) session.getId()); + userOnline.setHost(session.getHost()); + userOnline.setStartTimestamp(session.getStartTimestamp()); + userOnline.setLastAccessTime(session.getLastAccessTime()); + userOnline.setTimeout(session.getTimeout()); + list.add(userOnline); + } + return list; + } + + @Override + public List listOnlineUser() { + List list = new ArrayList<>(); + UserDO userDO; + Collection sessions = sessionDAO.getActiveSessions(); + for (Session session : sessions) { + SimplePrincipalCollection principalCollection = new SimplePrincipalCollection(); + if (session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY) == null) { + continue; + } else { + principalCollection = (SimplePrincipalCollection) session + .getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY); + userDO = (UserDO) principalCollection.getPrimaryPrincipal(); + list.add(userDO); + } + } + return list; + } + + @Override + public Collection sessionList() { + return sessionDAO.getActiveSessions(); + } + + @Override + public boolean forceLogout(String sessionId) { + Session session = sessionDAO.readSession(sessionId); + session.setTimeout(0); + return true; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/system/service/impl/UserServiceImpl.java b/novel-admin/src/main/java/com/java2nb/system/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..f513443 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/service/impl/UserServiceImpl.java @@ -0,0 +1,253 @@ +package com.java2nb.system.service.impl; + +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.util.*; + +import com.java2nb.common.config.JnConfig; +import com.java2nb.common.domain.FileDO; +import com.java2nb.common.service.FileService; +import com.java2nb.common.utils.*; +import com.java2nb.system.service.DeptService; +import com.java2nb.system.vo.UserVO; +import org.apache.commons.lang.ArrayUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.java2nb.common.domain.Tree; +import com.java2nb.system.dao.DeptDao; +import com.java2nb.system.dao.UserDao; +import com.java2nb.system.dao.UserRoleDao; +import com.java2nb.system.domain.DeptDO; +import com.java2nb.system.domain.UserDO; +import com.java2nb.system.domain.UserRoleDO; +import com.java2nb.system.service.UserService; +import org.springframework.web.multipart.MultipartFile; + +import javax.imageio.ImageIO; + +@Transactional +@Service +public class UserServiceImpl implements UserService { + @Autowired + UserDao userMapper; + @Autowired + UserRoleDao userRoleMapper; + @Autowired + DeptDao deptMapper; + @Autowired + private FileService sysFileService; + @Autowired + private JnConfig jnConfig; + @Autowired + DeptService deptService; + private static final Logger logger = LoggerFactory.getLogger(UserService.class); + + @Override +// @Cacheable(value = "user",key = "#id") + public UserDO get(Long id) { + List roleIds = userRoleMapper.listRoleId(id); + UserDO user = userMapper.get(id); + user.setDeptName(deptMapper.get(user.getDeptId()).getName()); + user.setRoleIds(roleIds); + return user; + } + + @Override + public List list(Map map) { + String deptId = map.get("deptId").toString(); + if (StringUtils.isNotBlank(deptId)) { + Long deptIdl = Long.valueOf(deptId); + List childIds = deptService.listChildrenIds(deptIdl); + childIds.add(deptIdl); + map.put("deptId", null); + map.put("deptIds",childIds); + } + return userMapper.listByPerm(map); + } + + @Override + public int count(Map map) { + return userMapper.countByPerm(map); + } + + @Transactional + @Override + public int save(UserDO user) { + int count = userMapper.save(user); + Long userId = user.getUserId(); + List roles = user.getRoleIds(); + userRoleMapper.removeByUserId(userId); + List list = new ArrayList<>(); + for (Long roleId : roles) { + UserRoleDO ur = new UserRoleDO(); + ur.setUserId(userId); + ur.setRoleId(roleId); + list.add(ur); + } + if (list.size() > 0) { + userRoleMapper.batchSave(list); + } + return count; + } + + @Override + public int update(UserDO user) { + int r = userMapper.update(user); + Long userId = user.getUserId(); + List roles = user.getRoleIds(); + userRoleMapper.removeByUserId(userId); + List list = new ArrayList<>(); + for (Long roleId : roles) { + UserRoleDO ur = new UserRoleDO(); + ur.setUserId(userId); + ur.setRoleId(roleId); + list.add(ur); + } + if (list.size() > 0) { + userRoleMapper.batchSave(list); + } + return r; + } + + // @CacheEvict(value = "user") + @Override + public int remove(Long userId) { + userRoleMapper.removeByUserId(userId); + return userMapper.remove(userId); + } + + @Override + public boolean exit(Map params) { + boolean exit; + exit = userMapper.list(params).size() > 0; + return exit; + } + + @Override + public Set listRoles(Long userId) { + return null; + } + + @Override + public int resetPwd(UserVO userVO, UserDO userDO) throws Exception { + if (Objects.equals(userVO.getUserDO().getUserId(), userDO.getUserId())) { + if (Objects.equals(MD5Utils.encrypt(userDO.getUsername(), userVO.getPwdOld()), userDO.getPassword())) { + userDO.setPassword(MD5Utils.encrypt(userDO.getUsername(), userVO.getPwdNew())); + return userMapper.update(userDO); + } else { + throw new Exception("输入的旧密码有误!"); + } + } else { + throw new Exception("你修改的不是你登录的账号!"); + } + } + + @Override + public int adminResetPwd(UserVO userVO) throws Exception { + UserDO userDO = get(userVO.getUserDO().getUserId()); + if ("admin".equals(userDO.getUsername())) { + throw new Exception("超级管理员的账号不允许直接重置!"); + } + userDO.setPassword(MD5Utils.encrypt(userDO.getUsername(), userVO.getPwdNew())); + return userMapper.update(userDO); + + + } + + @Transactional + @Override + public int batchremove(Long[] userIds) { + int count = userMapper.batchRemove(userIds); + userRoleMapper.batchRemoveByUserId(userIds); + return count; + } + + @Override + public Tree getTree() { + List> trees = new ArrayList>(); + List depts = deptMapper.list(new HashMap(16)); + Long[] pDepts = deptMapper.listParentDept(); + Long[] uDepts = userMapper.listAllDept(); + Long[] allDepts = (Long[]) ArrayUtils.addAll(pDepts, uDepts); + for (DeptDO dept : depts) { + if (!ArrayUtils.contains(allDepts, dept.getDeptId())) { + continue; + } + Tree tree = new Tree(); + tree.setId(dept.getDeptId().toString()); + tree.setParentId(dept.getParentId().toString()); + tree.setText(dept.getName()); + Map state = new HashMap<>(16); + state.put("opened", true); + state.put("mType", "dept"); + tree.setState(state); + trees.add(tree); + } + List users = userMapper.list(new HashMap(16)); + for (UserDO user : users) { + Tree tree = new Tree(); + tree.setId(user.getUserId().toString()); + tree.setParentId(user.getDeptId().toString()); + tree.setText(user.getName()); + Map state = new HashMap<>(16); + state.put("opened", true); + state.put("mType", "user"); + tree.setState(state); + trees.add(tree); + } + // 默认顶级菜单为0,根据数据库实际情况调整 + Tree t = BuildTree.build(trees); + return t; + } + + @Override + public int updatePersonal(UserDO userDO) { + return userMapper.update(userDO); + } + + @Override + public Map updatePersonalImg(MultipartFile file, String avatar_data, Long userId) throws Exception { + String fileName = file.getOriginalFilename(); + fileName = FileUtil.renameToUUID(fileName); + FileDO sysFile = new FileDO(FileType.fileType(fileName), "/files/" + fileName, new Date()); + //获取图片后缀 + String prefix = fileName.substring((fileName.lastIndexOf(".") + 1)); + String[] str = avatar_data.split(","); + //获取截取的x坐标 + int x = (int) Math.floor(Double.parseDouble(str[0].split(":")[1])); + //获取截取的y坐标 + int y = (int) Math.floor(Double.parseDouble(str[1].split(":")[1])); + //获取截取的高度 + int h = (int) Math.floor(Double.parseDouble(str[2].split(":")[1])); + //获取截取的宽度 + int w = (int) Math.floor(Double.parseDouble(str[3].split(":")[1])); + //获取旋转的角度 + int r = Integer.parseInt(str[4].split(":")[1].replaceAll("}", "")); + try { + BufferedImage cutImage = ImageUtils.cutImage(file, x, y, w, h, prefix); + BufferedImage rotateImage = ImageUtils.rotateImage(cutImage, r); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + boolean flag = ImageIO.write(rotateImage, prefix, out); + //转换后存入数据库 + byte[] b = out.toByteArray(); + FileUtil.uploadFile(b, jnConfig.getUploadPath(), fileName); + } catch (Exception e) { + throw new Exception("图片裁剪错误!!"); + } + Map result = new HashMap<>(); + if (sysFileService.save(sysFile) > 0) { + UserDO userDO = new UserDO(); + userDO.setUserId(userId); + userDO.setPicId(sysFile.getId()); + if (userMapper.update(userDO) > 0) { + result.put("url", sysFile.getUrl()); + } + } + return result; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/shiro/UserRealm.java b/novel-admin/src/main/java/com/java2nb/system/shiro/UserRealm.java new file mode 100644 index 0000000..ea45d15 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/shiro/UserRealm.java @@ -0,0 +1,94 @@ +package com.java2nb.system.shiro; + +import java.util.*; + +import com.java2nb.common.config.ApplicationContextRegister; +import com.java2nb.system.dao.DataPermDao; +import com.java2nb.system.dao.DeptDao; +import com.java2nb.system.domain.DataPermDO; +import com.java2nb.system.domain.UserToken; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.IncorrectCredentialsException; +import org.apache.shiro.authc.LockedAccountException; +import org.apache.shiro.authc.SimpleAuthenticationInfo; +import org.apache.shiro.authc.UnknownAccountException; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.authz.SimpleAuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.subject.PrincipalCollection; +import org.springframework.beans.factory.annotation.Autowired; + +import com.java2nb.common.utils.ShiroUtils; +import com.java2nb.system.dao.UserDao; +import com.java2nb.system.domain.UserDO; +import com.java2nb.system.service.MenuService; + +public class UserRealm extends AuthorizingRealm { +/* @Autowired + UserDao userMapper; + @Autowired + MenuService menuService;*/ + + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection arg0) { + Long userId = ShiroUtils.getUserId(); + MenuService menuService = ApplicationContextRegister.getBean(MenuService.class); + Set perms = menuService.listPerms(userId); + SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); + info.setStringPermissions(perms); + return info; + } + + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { + String username = (String) token.getPrincipal(); + Map map = new HashMap<>(16); + map.put("username", username); + String password = new String((char[]) token.getCredentials()); + + UserDao userMapper = ApplicationContextRegister.getBean(UserDao.class); + // 查询用户信息 + UserDO user = userMapper.list(map).get(0); + + // 账号不存在 + if (user == null) { + throw new UnknownAccountException("账号或密码不正确"); + } + + // 密码错误 + if (!password.equals(user.getPassword())) { + throw new IncorrectCredentialsException("账号或密码不正确"); + } + + // 账号锁定 + if (user.getStatus() == 0) { + throw new LockedAccountException("账号已被锁定,请联系管理员"); + } + + //查询下级部门 + DeptDao deptDao = ApplicationContextRegister.getBean(DeptDao.class); + user.setSupDeptIds(deptDao.getDeptIdsByParentId(user.getDeptId())); + //查询数据权限 + DataPermDao dataPermDao = ApplicationContextRegister.getBean(DataPermDao.class); + List dataPerms = dataPermDao.selectDataPermsByUserId(user.getUserId()); + Map> permsMap = new HashMap<>(); + for (DataPermDO perm : dataPerms) { + String key = perm.getTableName(); + List value = permsMap.get(key); + if (value == null) { + value = new ArrayList<>(); + permsMap.put(key, value); + } + value.add(perm); + + } + user.setDataPerms(permsMap); + + + SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, password, getName()); + return info; + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/system/vo/UserVO.java b/novel-admin/src/main/java/com/java2nb/system/vo/UserVO.java new file mode 100644 index 0000000..f023363 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/system/vo/UserVO.java @@ -0,0 +1,46 @@ +package com.java2nb.system.vo; + +import com.java2nb.system.domain.UserDO; + +/** + * @author xiongxy + * @date 2019-09-25 15:09:21 + */ +public class UserVO { + /** + * 更新的用户对象 + */ + private UserDO userDO = new UserDO(); + /** + * 旧密码 + */ + private String pwdOld; + /** + * 新密码 + */ + private String pwdNew; + + public UserDO getUserDO() { + return userDO; + } + + public void setUserDO(UserDO userDO) { + this.userDO = userDO; + } + + public String getPwdOld() { + return pwdOld; + } + + public void setPwdOld(String pwdOld) { + this.pwdOld = pwdOld; + } + + public String getPwdNew() { + return pwdNew; + } + + public void setPwdNew(String pwdNew) { + this.pwdNew = pwdNew; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/test/controller/OrderController.java b/novel-admin/src/main/java/com/java2nb/test/controller/OrderController.java new file mode 100644 index 0000000..bd8f376 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/test/controller/OrderController.java @@ -0,0 +1,135 @@ +package com.java2nb.test.controller; + +import java.util.List; +import java.util.Map; + +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import io.swagger.annotations.ApiOperation; + + +import com.java2nb.test.domain.OrderDO; +import com.java2nb.test.service.OrderService; +import com.java2nb.common.utils.PageBean; +import com.java2nb.common.utils.Query; +import com.java2nb.common.utils.R; + +/** + * 付呗-订单信息表 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:57:16 + */ + +@Controller +@RequestMapping("/test/order") +public class OrderController { + @Autowired + private OrderService orderService; + + @GetMapping() + @RequiresPermissions("test:order:order") + String Order() { + return "test/order/order"; + } + + @ApiOperation(value = "获取付呗-订单信息表列表", notes = "获取付呗-订单信息表列表") + @ResponseBody + @GetMapping("/list") + @RequiresPermissions("test:order:order") + public R list(@RequestParam Map params) { + //查询列表数据 + Query query = new Query(params); + List orderList = orderService.list(query); + int total = orderService.count(query); + PageBean pageBean = new PageBean(orderList, total); + return R.ok().put("data", pageBean); + } + + @ApiOperation(value = "新增付呗-订单信息表页面", notes = "新增付呗-订单信息表页面") + @GetMapping("/add") + @RequiresPermissions("test:order:add") + String add() { + return "test/order/add"; + } + + @ApiOperation(value = "修改付呗-订单信息表页面", notes = "修改付呗-订单信息表页面") + @GetMapping("/edit/{id}") + @RequiresPermissions("test:order:edit") + String edit(@PathVariable("id") Long id, Model model) { + OrderDO order = orderService.get(id); + model.addAttribute("order", order); + return "test/order/edit"; + } + + @ApiOperation(value = "查看付呗-订单信息表页面", notes = "查看付呗-订单信息表页面") + @GetMapping("/detail/{id}") + @RequiresPermissions("test:order:detail") + String detail(@PathVariable("id") Long id, Model model) { + OrderDO order = orderService.get(id); + model.addAttribute("order", order); + return "test/order/detail"; + } + + /** + * 保存 + */ + @ApiOperation(value = "新增付呗-订单信息表", notes = "新增付呗-订单信息表") + @ResponseBody + @PostMapping("/save") + @RequiresPermissions("test:order:add") + public R save( OrderDO order) { + if (orderService.save(order) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 修改 + */ + @ApiOperation(value = "修改付呗-订单信息表", notes = "修改付呗-订单信息表") + @ResponseBody + @RequestMapping("/update") + @RequiresPermissions("test:order:edit") + public R update( OrderDO order) { + orderService.update(order); + return R.ok(); + } + + /** + * 删除 + */ + @ApiOperation(value = "删除付呗-订单信息表", notes = "删除付呗-订单信息表") + @PostMapping("/remove") + @ResponseBody + @RequiresPermissions("test:order:remove") + public R remove( Long id) { + if (orderService.remove(id) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 删除 + */ + @ApiOperation(value = "批量删除付呗-订单信息表", notes = "批量删除付呗-订单信息表") + @PostMapping("/batchRemove") + @ResponseBody + @RequiresPermissions("test:order:batchRemove") + public R remove(@RequestParam("ids[]") Long[] ids) { + orderService.batchRemove(ids); + return R.ok(); + } + +} diff --git a/novel-admin/src/main/java/com/java2nb/test/dao/OrderDao.java b/novel-admin/src/main/java/com/java2nb/test/dao/OrderDao.java new file mode 100644 index 0000000..8fe5d98 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/test/dao/OrderDao.java @@ -0,0 +1,32 @@ +package com.java2nb.test.dao; + +import com.java2nb.test.domain.OrderDO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * 付呗-订单信息表 + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:57:16 + */ +@Mapper +public interface OrderDao { + + OrderDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(OrderDO order); + + int update(OrderDO order); + + int remove(Long id); + + int batchRemove(Long[] ids); +} diff --git a/novel-admin/src/main/java/com/java2nb/test/domain/OrderDO.java b/novel-admin/src/main/java/com/java2nb/test/domain/OrderDO.java new file mode 100644 index 0000000..5b44c96 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/test/domain/OrderDO.java @@ -0,0 +1,475 @@ +package com.java2nb.test.domain; + +import java.io.Serializable; + + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.java2nb.common.jsonserializer.LongToStringSerializer; + + +import org.springframework.format.annotation.DateTimeFormat; +import java.util.Date; + + + +/** + * 付呗-订单信息表 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:57:16 + */ +public class OrderDO implements Serializable { + private static final long serialVersionUID = 1L; + + + //主键 + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long id; + //付呗商户号 + private String fbMerchantCode; + //第三方商户的订单号 + private String merchantOrderSn; + //付呗订单号 + private String orderSn; + //平台方订单号 + private String platformOrderNo; + //商户单号 + private String tradeNo; + //订单状态,1:未支付,2:支付成功,3:支付失败,4:支付取消 + private Integer orderState; + //蜂鸟优惠卷抵扣 + private Double fnCoupon; + //红包抵扣 + private BigDecimal redPacket; + //实收金额(元) + private BigDecimal totalFee; + //订单金额 + private BigDecimal orderPrice; + //手续费(元) + private BigDecimal fee; + //对商品或交易的描述 + private String body; + //附加数据 + private String attach; + //付呗系统的门店id + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long storeId; + //付呗系统的收银员id + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + private Long cashierId; + //设备终端号 + private String deviceNo; + //微信顾客支付授权的“open_id”或者支付宝顾客的“buyer_user_id” + private String userId; + //支付宝顾客的账号 + private String userLogonId; + //交易成功的时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date payTime; + //支付通道:1微信、2支付宝、3银联 + private Integer payChannel; + //免充值代金券金额(元) + private BigDecimal noCashCouponFee; + //预充值代金券金额(元) + private BigDecimal cashCouponFee; + //顾客实际支付金额(元) + private BigDecimal cashFee; + //签名 + private String sign; + //其它选项 + private String options; + //创建时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + //推送时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date pushTime; + //推送IP + private String pushIp; + //商户id + private BigDecimal mchtId; + //QR编号 + private String sn; + + /** + * 设置:主键 + */ + public void setId(Long id) { + this.id = id; + } + /** + * 获取:主键 + */ + public Long getId() { + return id; + } + /** + * 设置:付呗商户号 + */ + public void setFbMerchantCode(String fbMerchantCode) { + this.fbMerchantCode = fbMerchantCode; + } + /** + * 获取:付呗商户号 + */ + public String getFbMerchantCode() { + return fbMerchantCode; + } + /** + * 设置:第三方商户的订单号 + */ + public void setMerchantOrderSn(String merchantOrderSn) { + this.merchantOrderSn = merchantOrderSn; + } + /** + * 获取:第三方商户的订单号 + */ + public String getMerchantOrderSn() { + return merchantOrderSn; + } + /** + * 设置:付呗订单号 + */ + public void setOrderSn(String orderSn) { + this.orderSn = orderSn; + } + /** + * 获取:付呗订单号 + */ + public String getOrderSn() { + return orderSn; + } + /** + * 设置:平台方订单号 + */ + public void setPlatformOrderNo(String platformOrderNo) { + this.platformOrderNo = platformOrderNo; + } + /** + * 获取:平台方订单号 + */ + public String getPlatformOrderNo() { + return platformOrderNo; + } + /** + * 设置:商户单号 + */ + public void setTradeNo(String tradeNo) { + this.tradeNo = tradeNo; + } + /** + * 获取:商户单号 + */ + public String getTradeNo() { + return tradeNo; + } + /** + * 设置:订单状态,1:未支付,2:支付成功,3:支付失败,4:支付取消 + */ + public void setOrderState(Integer orderState) { + this.orderState = orderState; + } + /** + * 获取:订单状态,1:未支付,2:支付成功,3:支付失败,4:支付取消 + */ + public Integer getOrderState() { + return orderState; + } + /** + * 设置:蜂鸟优惠卷抵扣 + */ + public void setFnCoupon(Double fnCoupon) { + this.fnCoupon = fnCoupon; + } + /** + * 获取:蜂鸟优惠卷抵扣 + */ + public Double getFnCoupon() { + return fnCoupon; + } + /** + * 设置:红包抵扣 + */ + public void setRedPacket(BigDecimal redPacket) { + this.redPacket = redPacket; + } + /** + * 获取:红包抵扣 + */ + public BigDecimal getRedPacket() { + return redPacket; + } + /** + * 设置:实收金额(元) + */ + public void setTotalFee(BigDecimal totalFee) { + this.totalFee = totalFee; + } + /** + * 获取:实收金额(元) + */ + public BigDecimal getTotalFee() { + return totalFee; + } + /** + * 设置:订单金额 + */ + public void setOrderPrice(BigDecimal orderPrice) { + this.orderPrice = orderPrice; + } + /** + * 获取:订单金额 + */ + public BigDecimal getOrderPrice() { + return orderPrice; + } + /** + * 设置:手续费(元) + */ + public void setFee(BigDecimal fee) { + this.fee = fee; + } + /** + * 获取:手续费(元) + */ + public BigDecimal getFee() { + return fee; + } + /** + * 设置:对商品或交易的描述 + */ + public void setBody(String body) { + this.body = body; + } + /** + * 获取:对商品或交易的描述 + */ + public String getBody() { + return body; + } + /** + * 设置:附加数据 + */ + public void setAttach(String attach) { + this.attach = attach; + } + /** + * 获取:附加数据 + */ + public String getAttach() { + return attach; + } + /** + * 设置:付呗系统的门店id + */ + public void setStoreId(Long storeId) { + this.storeId = storeId; + } + /** + * 获取:付呗系统的门店id + */ + public Long getStoreId() { + return storeId; + } + /** + * 设置:付呗系统的收银员id + */ + public void setCashierId(Long cashierId) { + this.cashierId = cashierId; + } + /** + * 获取:付呗系统的收银员id + */ + public Long getCashierId() { + return cashierId; + } + /** + * 设置:设备终端号 + */ + public void setDeviceNo(String deviceNo) { + this.deviceNo = deviceNo; + } + /** + * 获取:设备终端号 + */ + public String getDeviceNo() { + return deviceNo; + } + /** + * 设置:微信顾客支付授权的“open_id”或者支付宝顾客的“buyer_user_id” + */ + public void setUserId(String userId) { + this.userId = userId; + } + /** + * 获取:微信顾客支付授权的“open_id”或者支付宝顾客的“buyer_user_id” + */ + public String getUserId() { + return userId; + } + /** + * 设置:支付宝顾客的账号 + */ + public void setUserLogonId(String userLogonId) { + this.userLogonId = userLogonId; + } + /** + * 获取:支付宝顾客的账号 + */ + public String getUserLogonId() { + return userLogonId; + } + /** + * 设置:交易成功的时间 + */ + public void setPayTime(Date payTime) { + this.payTime = payTime; + } + /** + * 获取:交易成功的时间 + */ + public Date getPayTime() { + return payTime; + } + /** + * 设置:支付通道:1微信、2支付宝、3银联 + */ + public void setPayChannel(Integer payChannel) { + this.payChannel = payChannel; + } + /** + * 获取:支付通道:1微信、2支付宝、3银联 + */ + public Integer getPayChannel() { + return payChannel; + } + /** + * 设置:免充值代金券金额(元) + */ + public void setNoCashCouponFee(BigDecimal noCashCouponFee) { + this.noCashCouponFee = noCashCouponFee; + } + /** + * 获取:免充值代金券金额(元) + */ + public BigDecimal getNoCashCouponFee() { + return noCashCouponFee; + } + /** + * 设置:预充值代金券金额(元) + */ + public void setCashCouponFee(BigDecimal cashCouponFee) { + this.cashCouponFee = cashCouponFee; + } + /** + * 获取:预充值代金券金额(元) + */ + public BigDecimal getCashCouponFee() { + return cashCouponFee; + } + /** + * 设置:顾客实际支付金额(元) + */ + public void setCashFee(BigDecimal cashFee) { + this.cashFee = cashFee; + } + /** + * 获取:顾客实际支付金额(元) + */ + public BigDecimal getCashFee() { + return cashFee; + } + /** + * 设置:签名 + */ + public void setSign(String sign) { + this.sign = sign; + } + /** + * 获取:签名 + */ + public String getSign() { + return sign; + } + /** + * 设置:其它选项 + */ + public void setOptions(String options) { + this.options = options; + } + /** + * 获取:其它选项 + */ + public String getOptions() { + return options; + } + /** + * 设置:创建时间 + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + /** + * 获取:创建时间 + */ + public Date getCreateTime() { + return createTime; + } + /** + * 设置:推送时间 + */ + public void setPushTime(Date pushTime) { + this.pushTime = pushTime; + } + /** + * 获取:推送时间 + */ + public Date getPushTime() { + return pushTime; + } + /** + * 设置:推送IP + */ + public void setPushIp(String pushIp) { + this.pushIp = pushIp; + } + /** + * 获取:推送IP + */ + public String getPushIp() { + return pushIp; + } + /** + * 设置:商户id + */ + public void setMchtId(BigDecimal mchtId) { + this.mchtId = mchtId; + } + /** + * 获取:商户id + */ + public BigDecimal getMchtId() { + return mchtId; + } + /** + * 设置:QR编号 + */ + public void setSn(String sn) { + this.sn = sn; + } + /** + * 获取:QR编号 + */ + public String getSn() { + return sn; + } +} diff --git a/novel-admin/src/main/java/com/java2nb/test/service/OrderService.java b/novel-admin/src/main/java/com/java2nb/test/service/OrderService.java new file mode 100644 index 0000000..4f5914e --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/test/service/OrderService.java @@ -0,0 +1,30 @@ +package com.java2nb.test.service; + +import com.java2nb.test.domain.OrderDO; + +import java.util.List; +import java.util.Map; + +/** + * 付呗-订单信息表 + * + * @author xiongxy + * @email 1179705413@qq.com + * @date 2019-11-25 11:57:16 + */ +public interface OrderService { + + OrderDO get(Long id); + + List list(Map map); + + int count(Map map); + + int save(OrderDO order); + + int update(OrderDO order); + + int remove(Long id); + + int batchRemove(Long[] ids); +} diff --git a/novel-admin/src/main/java/com/java2nb/test/service/impl/OrderServiceImpl.java b/novel-admin/src/main/java/com/java2nb/test/service/impl/OrderServiceImpl.java new file mode 100644 index 0000000..cefed83 --- /dev/null +++ b/novel-admin/src/main/java/com/java2nb/test/service/impl/OrderServiceImpl.java @@ -0,0 +1,55 @@ +package com.java2nb.test.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +import com.java2nb.test.dao.OrderDao; +import com.java2nb.test.domain.OrderDO; +import com.java2nb.test.service.OrderService; + + + +@Service +public class OrderServiceImpl implements OrderService { + @Autowired + private OrderDao orderDao; + + @Override + public OrderDO get(Long id){ + return orderDao.get(id); + } + + @Override + public List list(Map map){ + return orderDao.list(map); + } + + @Override + public int count(Map map){ + return orderDao.count(map); + } + + @Override + public int save(OrderDO order){ + return orderDao.save(order); + } + + @Override + public int update(OrderDO order){ + return orderDao.update(order); + } + + @Override + public int remove(Long id){ + return orderDao.remove(id); + } + + @Override + public int batchRemove(Long[] ids){ + return orderDao.batchRemove(ids); + } + +} diff --git a/novel-admin/src/main/resources/application-dev.yml b/novel-admin/src/main/resources/application-dev.yml new file mode 100644 index 0000000..876ac5f --- /dev/null +++ b/novel-admin/src/main/resources/application-dev.yml @@ -0,0 +1,54 @@ +java2nb: + uploadPath: c:/var/java2nb/uploaded_files/ + username: admin + password: 111111 +logging: + level: + root: info + com.java2nb: debug +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: com.mysql.jdbc.Driver + url: jdbc:mysql://128.0.0.1:3306/novel_biz?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai + username: root + password: test123456 + #password: + initialSize: 1 + minIdle: 3 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 30000 + validationQuery: select 'x' + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + # 打开PSCache,并且指定每个连接上PSCache的大小 + poolPreparedStatements: true + maxPoolPreparedStatementPerConnectionSize: 20 + # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 + filters: stat,slf4j + # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 + connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 + # 合并多个DruidDataSource的监控数据 + #useGlobalDataSourceStat: true + redis: + host: 127.0.0.1 + port: 6379 + password: test + # 连接超时时间(毫秒) + timeout: 10000 + jedis: + pool: + # 连接池中的最大空闲连接 + max-idle: 8 + # 连接池中的最小空闲连接 + min-idle: 10 + # 连接池最大连接数(使用负值表示没有限制) + max-active: 100 + # 连接池最大阻塞等待时间(使用负值表示没有限制) + max-wait: -1 \ No newline at end of file diff --git a/novel-admin/src/main/resources/application-prod.yml b/novel-admin/src/main/resources/application-prod.yml new file mode 100644 index 0000000..64c02e7 --- /dev/null +++ b/novel-admin/src/main/resources/application-prod.yml @@ -0,0 +1,51 @@ +java2nb: + uploadPath: /var/java2nb/uploaded_files/ +logging: + level: + root: error + com.java2nb: info +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/java2nb?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai + username: java2nb + password: java2nb1019 + initialSize: 1 + minIdle: 3 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 30000 + validationQuery: select 'x' + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + # 打开PSCache,并且指定每个连接上PSCache的大小 + poolPreparedStatements: true + maxPoolPreparedStatementPerConnectionSize: 20 + # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 + filters: stat,slf4j + # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 + connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 + # 合并多个DruidDataSource的监控数据 + #useGlobalDataSourceStat: true + redis: + host: 127.0.0.1 + port: 6379 + password: + # 连接超时时间(毫秒) + timeout: 10000 + jedis: + pool: + # 连接池中的最大空闲连接 + max-idle: 8 + # 连接池中的最小空闲连接 + min-idle: 10 + # 连接池最大连接数(使用负值表示没有限制) + max-active: 100 + # 连接池最大阻塞等待时间(使用负值表示没有限制) + max-wait: -1 \ No newline at end of file diff --git a/novel-admin/src/main/resources/application.yml b/novel-admin/src/main/resources/application.yml new file mode 100644 index 0000000..a247363 --- /dev/null +++ b/novel-admin/src/main/resources/application.yml @@ -0,0 +1,38 @@ +server: + session-timeout: 18000 +# tomcat: +# max-threads: 1000 +# min-spare-threads: 30 + port: 8082 +# uri-encoding: utf-8 +#security: +# basic: +# enabled: false +spring: + thymeleaf: + mode: LEGACYHTML5 + cache: false + jackson: + time-zone: GMT+8 + date-format: yyyy-MM-dd HH:mm:ss + profiles: + active: dev + servlet: + multipart: + max-file-size: 30Mb + max-request-size: 30Mb + devtools: + restart: + enabled: true + cache: + type: ehcache + ehcache: + config: classpath:ehcache.xml +mybatis: + configuration: + #自动将数据库带下划线的表字段值映射到Java类的驼峰字段上 + map-underscore-to-camel-case: true + mapper-locations: mybatis/**/*Mapper.xml + typeAliasesPackage: com.java2nb.**.domain +#[弃用]配置缓存和session存储方式,默认ehcache,可选redis,[弃用]调整至 spring cache type【shiro.用户,权限,session,spring.cache通用】 +#[弃用]cacheType: ehcache diff --git a/novel-admin/src/main/resources/banner.txt b/novel-admin/src/main/resources/banner.txt new file mode 100644 index 0000000..8e9bd6d --- /dev/null +++ b/novel-admin/src/main/resources/banner.txt @@ -0,0 +1,6 @@ + __ ________ ___. + |__|____ ___ _______ \_____ \ ____\_ |__ + | \__ \\ \/ /\__ \ / ____/ / \| __ \ + | |/ __ \\ / / __ \_/ \| | \ \_\ \ +/\__| (____ /\_/ (____ /\_______ \___| /___ / +\______| \/ \/ \/ \/ \/ \ No newline at end of file diff --git a/novel-admin/src/main/resources/ehcache.xml b/novel-admin/src/main/resources/ehcache.xml new file mode 100644 index 0000000..3d79aa5 --- /dev/null +++ b/novel-admin/src/main/resources/ehcache.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/generator.properties b/novel-admin/src/main/resources/generator.properties new file mode 100644 index 0000000..c7cf254 --- /dev/null +++ b/novel-admin/src/main/resources/generator.properties @@ -0,0 +1,35 @@ +#\u4EE3\u7801\u751F\u6210\u5668\uFF0C\u914D\u7F6E\u4FE1\u606F +#\u5305\u540D +srcPath=D:\\gitee\\admin-base\\java2nb\\src +package=com.java2nb.system +#\u4F5C\u8005 +author=xiongxy +#Email +email=1179705413@qq.com +#\u81EA\u52A8\u53BB\u9664\u8868\u524D\u7F00\uFF0C\u9ED8\u8BA4\u662F true +autoRemovePre=true +#\u8868\u524D\u7F00(\u7C7B\u540D\u4E0D\u4F1A\u5305\u542B\u8868\u524D\u7F00) +tablePrefix=sys_ + +#\u7C7B\u578B\u8F6C\u6362\uFF0C\u914D\u7F6E\u4FE1\u606F +tinyint=Integer +smallint=Integer +mediumint=Integer +int=Integer +integer=Integer +bigint=Long +float=Float +double=Double +decimal=BigDecimal +bit=Boolean + +char=String +varchar=String +tinytext=String +text=String +mediumtext=String +longtext=String + +date=Date +datetime=Date +timestamp=Date \ No newline at end of file diff --git a/novel-admin/src/main/resources/logback-spring.xml b/novel-admin/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..cc2b1b5 --- /dev/null +++ b/novel-admin/src/main/resources/logback-spring.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + + UTF-8 + + + + + + + + + logs/debug.log + + + + + + logs/debug.%d.%i.log + + 30 + + + 10MB + + + + + + %d %p (%file:%line\)- %m%n + + + UTF-8 + + + + + + + + + + + + + diff --git a/novel-admin/src/main/resources/mybatis/common/DictMapper.xml b/novel-admin/src/main/resources/mybatis/common/DictMapper.xml new file mode 100644 index 0000000..dcb2157 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/common/DictMapper.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + insert into sys_dict + ( + `name`, + `value`, + `type`, + `description`, + `sort`, + `parent_id`, + `create_by`, + `create_date`, + `update_by`, + `update_date`, + `remarks`, + `del_flag` + ) + values + ( + #{name}, + #{value}, + #{type}, + #{description}, + #{sort}, + #{parentId}, + #{createBy}, + #{createDate}, + #{updateBy}, + #{updateDate}, + #{remarks}, + #{delFlag} + ) + + + + update sys_dict + + `name` = #{name}, + `value` = #{value}, + `type` = #{type}, + `description` = #{description}, + `sort` = #{sort}, + `parent_id` = #{parentId}, + `create_by` = #{createBy}, + `create_date` = #{createDate}, + `update_by` = #{updateBy}, + `update_date` = #{updateDate}, + `remarks` = #{remarks}, + `del_flag` = #{delFlag} + + where id = #{id} + + + + delete from sys_dict where id = #{value} + + + + delete from sys_dict where id in + + #{id} + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/common/FileMapper.xml b/novel-admin/src/main/resources/mybatis/common/FileMapper.xml new file mode 100644 index 0000000..07b10e1 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/common/FileMapper.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + insert into sys_file + ( + `type`, + `url`, + `create_date` + ) + values + ( + #{type}, + #{url}, + #{createDate} + ) + + + + update sys_file + + `type` = #{type}, + `url` = #{url}, + `create_date` = #{createDate} + + where id = #{id} + + + + delete from sys_file where id = #{value} + + + + delete from sys_file where id in + + #{id} + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/common/GenColumnsMapper.xml b/novel-admin/src/main/resources/mybatis/common/GenColumnsMapper.xml new file mode 100644 index 0000000..e40e870 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/common/GenColumnsMapper.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + insert into sys_gen_columns + ( + `table_name`, + `column_name`, + `column_type`, + `java_type`, + `column_comment`, + `column_sort`, + `column_label`, + `page_type`, + `is_required`, + `dict_type` + ) + values + ( + #{tableName}, + #{columnName}, + #{columnType}, + #{javaType}, + #{columnComment}, + #{columnSort}, + #{columnLabel}, + #{pageType}, + #{isRequired}, + #{dictType} + ) + + + + update sys_gen_columns + + `table_name` = #{tableName}, + `column_name` = #{columnName}, + `column_type` = #{columnType}, + `java_type` = #{javaType}, + `column_comment` = #{columnComment}, + `column_sort` = #{columnSort}, + `column_label` = #{columnLabel}, + `page_type` = #{pageType}, + `is_required` = #{isRequired}, + `dict_type` = #{dictType} + + where id = #{id} + + + + delete from sys_gen_columns where id = #{value} + + + + delete from sys_gen_columns where id in + + #{id} + + + + + + insert into sys_gen_columns + ( + `table_name`, + `column_name`, + `column_type`, + `java_type`, + `column_comment`, + `column_sort`, + `column_label`, + `page_type`, + `is_required`, + `dict_type` + ) + values + + + #{item.tableName}, + #{item.columnName}, + #{item.columnType}, + #{item.javaType}, + #{item.columnComment}, + #{item.columnSort}, + #{item.columnLabel}, + #{item.pageType}, + #{item.isRequired}, + #{item.dictType} + + + + + + + delete from sys_gen_columns where table_name = #{tableName} + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/common/LogMapper.xml b/novel-admin/src/main/resources/mybatis/common/LogMapper.xml new file mode 100644 index 0000000..e50ed78 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/common/LogMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + insert into sys_log + ( + `user_id`, + `username`, + `operation`, + `time`, + `method`, + `params`, + `ip`, + `gmt_create` + ) + values + ( + #{userId}, + #{username}, + #{operation}, + #{time}, + #{method}, + #{params}, + #{ip}, + #{gmtCreate} + ) + + + + update sys_log + + `user_id` = #{userId}, + `username` = #{username}, + `operation` = #{operation}, + `time` = #{time}, + `method` = #{method}, + `params` = #{params}, + `ip` = #{ip}, + `gmt_create` = #{gmtCreate} + + where id = #{id} + + + + delete from sys_log where id = #{value} + + + + delete from sys_log where id in + + #{id} + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/system/DataPermMapper.xml b/novel-admin/src/main/resources/mybatis/system/DataPermMapper.xml new file mode 100644 index 0000000..181975c --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/system/DataPermMapper.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + insert into sys_data_perm + ( + `name`, + `table_name`, + `module_name`, + `crl_attr_name`, + `crl_column_name`, + `perm_code`, + `order_num`, + `gmt_create`, + `gmt_modified` + ) + values + ( + #{name}, + #{tableName}, + #{moduleName}, + #{crlAttrName}, + #{crlColumnName}, + #{permCode}, + #{orderNum}, + #{gmtCreate}, + #{gmtModified} + ) + + + + insert into sys_data_perm + ( + `id`, + `name`, + `table_name`, + `module_name`, + `crl_attr_name`, + `crl_column_name`, + `perm_code`, + `order_num`, + `gmt_create`, + `gmt_modified` + ) + values + ( + #{id}, + #{name}, + #{tableName}, + #{moduleName}, + #{crlAttrName}, + #{crlColumnName}, + #{permCode}, + #{orderNum}, + #{gmtCreate}, + #{gmtModified} + ) + + + + update sys_data_perm + + `name` = #{name}, + `table_name` = #{tableName}, + `module_name` = #{moduleName}, + `crl_attr_name` = #{crlAttrName}, + `crl_column_name` = #{crlColumnName}, + `perm_code` = #{permCode}, + `order_num` = #{orderNum}, + `gmt_create` = #{gmtCreate}, + `gmt_modified` = #{gmtModified} + + where id = #{id} + + + + delete from sys_data_perm where id = #{value} + + + + delete from sys_data_perm where id in + + #{id} + + + + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/system/DeptMapper.xml b/novel-admin/src/main/resources/mybatis/system/DeptMapper.xml new file mode 100644 index 0000000..347e920 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/system/DeptMapper.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + insert into sys_dept + ( + `parent_id`, + `name`, + `order_num`, + `del_flag` + ) + values + ( + #{parentId}, + #{name}, + #{orderNum}, + #{delFlag} + ) + + + + update sys_dept + + `parent_id` = #{parentId}, + `name` = #{name}, + `order_num` = #{orderNum}, + `del_flag` = #{delFlag} + + where dept_id = #{deptId} + + + + delete from sys_dept where dept_id = #{value} + + + + delete from sys_dept where dept_id in + + #{deptId} + + + + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/system/MenuMapper.xml b/novel-admin/src/main/resources/mybatis/system/MenuMapper.xml new file mode 100644 index 0000000..e1ff564 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/system/MenuMapper.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + insert into sys_menu + ( + `parent_id`, + `name`, + `url`, + `perms`, + `type`, + `icon`, + `order_num`, + `gmt_create`, + `gmt_modified` + ) + values + ( + #{parentId}, + #{name}, + #{url}, + #{perms}, + #{type}, + #{icon}, + #{orderNum}, + #{gmtCreate}, + #{gmtModified} + ) + + + + update sys_menu + + `parent_id` = #{parentId}, + `name` = #{name}, + `url` = #{url}, + `perms` = #{perms}, + `type` = #{type}, + `icon` = #{icon}, + `order_num` = #{orderNum}, + `gmt_create` = #{gmtCreate}, + `gmt_modified` = #{gmtModified} + + where menu_id = #{menuId} + + + + delete from sys_menu where menu_id = #{value} + + + + delete from sys_menu where menu_id in + + #{menuId} + + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/system/RoleDataPermMapper.xml b/novel-admin/src/main/resources/mybatis/system/RoleDataPermMapper.xml new file mode 100644 index 0000000..75476f0 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/system/RoleDataPermMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + insert into sys_role_data_perm + ( + `role_id`, + `perm_id` + ) + values + ( + #{roleId}, + #{permId} + ) + + + + insert into sys_role_data_perm + ( + `id`, + `role_id`, + `perm_id` + ) + values + ( + #{id}, + #{roleId}, + #{permId} + ) + + + + update sys_role_data_perm + + `role_id` = #{roleId}, + `perm_id` = #{permId} + + where id = #{id} + + + + delete from sys_role_data_perm where id = #{value} + + + + delete from sys_role_data_perm where id in + + #{id} + + + + + DELETE FROM sys_role_data_perm WHERE role_id=#{roleId} + + + + INSERT INTO sys_role_data_perm(role_id, perm_id) values + + (#{item.roleId},#{item.permId}) + + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/system/RoleMapper.xml b/novel-admin/src/main/resources/mybatis/system/RoleMapper.xml new file mode 100644 index 0000000..e8573c2 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/system/RoleMapper.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + insert into sys_role + ( + `role_name`, + `role_sign`, + `remark`, + `user_id_create`, + `gmt_create`, + `gmt_modified` + ) + values + ( + #{roleName}, + #{roleSign}, + #{remark}, + #{userIdCreate}, + #{gmtCreate}, + #{gmtModified} + ) + + + + update sys_role + + `role_name` = #{roleName}, + `role_sign` = #{roleSign}, + `remark` = #{remark}, + `user_id_create` = #{userIdCreate}, + `gmt_create` = #{gmtCreate}, + `gmt_modified` = #{gmtModified} + + where role_id = #{roleId} + + + + delete from sys_role where role_id = #{value} + + + + delete from sys_role where role_id in + + #{roleId} + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/system/RoleMenuMapper.xml b/novel-admin/src/main/resources/mybatis/system/RoleMenuMapper.xml new file mode 100644 index 0000000..3a9e19d --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/system/RoleMenuMapper.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + insert into sys_role_menu + ( + `role_id`, + `menu_id` + ) + values + ( + #{roleId}, + #{menuId} + ) + + + + update sys_role_menu + + `role_id` = #{roleId}, + `menu_id` = #{menuId} + + where id = #{id} + + + + delete from sys_role_menu where id = #{value} + + + + delete from sys_role_menu where id in + + #{id} + + + + + + + DELETE FROM sys_role_menu WHERE role_id=#{roleId} + + + + DELETE FROM sys_role_menu WHERE menu_id=#{menuId} + + + + INSERT INTO sys_role_menu(role_id, menu_id) values + + (#{item.roleId},#{item.menuId}) + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/system/UserMapper.xml b/novel-admin/src/main/resources/mybatis/system/UserMapper.xml new file mode 100644 index 0000000..23d8b15 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/system/UserMapper.xml @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + insert into sys_user + ( + `username`, + `name`, + `password`, + `dept_id`, + `email`, + `mobile`, + `status`, + `user_id_create`, + `gmt_create`, + `gmt_modified`, + `sex`, + `birth`, + `pic_id`, + `live_address`, + `hobby`, + `province`, + `city`, + `district` + ) + values + ( + #{username}, + #{name}, + #{password}, + #{deptId}, + #{email}, + #{mobile}, + #{status}, + #{userIdCreate}, + #{gmtCreate}, + #{gmtModified}, + #{sex}, + #{birth}, + #{picId}, + #{liveAddress}, + #{hobby}, + #{province}, + #{city}, + #{district} + ) + + + + update sys_user + + `username` = #{username}, + `name` = #{name}, + `password` = #{password}, + `dept_id` = #{deptId}, + `email` = #{email}, + `mobile` = #{mobile}, + `status` = #{status}, + `user_id_create` = #{userIdCreate}, + `gmt_create` = #{gmtCreate}, + `gmt_modified` = #{gmtModified}, + `sex` = #{sex}, + `birth` = #{birth}, + `pic_id` = #{picId}, + `live_address` = #{liveAddress}, + `hobby` = #{hobby}, + `province` = #{province}, + `city` = #{city}, + `district` = #{district} + + where user_id = #{userId} + + + + delete from sys_user where user_id = #{value} + + + + delete from sys_user where user_id in + + #{userId} + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/system/UserRoleMapper.xml b/novel-admin/src/main/resources/mybatis/system/UserRoleMapper.xml new file mode 100644 index 0000000..24a1236 --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/system/UserRoleMapper.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + insert into sys_user_role + ( + `user_id`, + `role_id` + ) + values + ( + #{userId}, + #{roleId} + ) + + + + update sys_user_role + + `user_id` = #{userId}, + `role_id` = #{roleId} + + where id = #{id} + + + + delete from sys_user_role where id = #{value} + + + + delete from sys_user_role where id in + + #{id} + + + + + + + delete from sys_user_role where user_id=#{userId} + + + + delete from sys_user_role where role_id=#{roleId} + + + + delete from sys_user_role where user_id in + + #{id} + + + + + INSERT INTO sys_user_role(user_id, role_id) values + + (#{item.userId},#{item.roleId}) + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/mybatis/test/OrderMapper.xml b/novel-admin/src/main/resources/mybatis/test/OrderMapper.xml new file mode 100644 index 0000000..664c1bb --- /dev/null +++ b/novel-admin/src/main/resources/mybatis/test/OrderMapper.xml @@ -0,0 +1,283 @@ + + + + + + + + + + + + + insert into fb_order + ( + `fb_merchant_code`, + `merchant_order_sn`, + `order_sn`, + `platform_order_no`, + `trade_no`, + `order_state`, + `fn_coupon`, + `red_packet`, + `total_fee`, + `order_price`, + `fee`, + `body`, + `attach`, + `store_id`, + `cashier_id`, + `device_no`, + `user_id`, + `user_logon_id`, + `pay_time`, + `pay_channel`, + `no_cash_coupon_fee`, + `cash_coupon_fee`, + `cash_fee`, + `sign`, + `options`, + `create_time`, + `push_time`, + `push_ip`, + `mcht_id`, + `sn` + ) + values + ( + #{fbMerchantCode}, + #{merchantOrderSn}, + #{orderSn}, + #{platformOrderNo}, + #{tradeNo}, + #{orderState}, + #{fnCoupon}, + #{redPacket}, + #{totalFee}, + #{orderPrice}, + #{fee}, + #{body}, + #{attach}, + #{storeId}, + #{cashierId}, + #{deviceNo}, + #{userId}, + #{userLogonId}, + #{payTime}, + #{payChannel}, + #{noCashCouponFee}, + #{cashCouponFee}, + #{cashFee}, + #{sign}, + #{options}, + #{createTime}, + #{pushTime}, + #{pushIp}, + #{mchtId}, + #{sn} + ) + + + + insert into fb_order + ( + `id`, + `fb_merchant_code`, + `merchant_order_sn`, + `order_sn`, + `platform_order_no`, + `trade_no`, + `order_state`, + `fn_coupon`, + `red_packet`, + `total_fee`, + `order_price`, + `fee`, + `body`, + `attach`, + `store_id`, + `cashier_id`, + `device_no`, + `user_id`, + `user_logon_id`, + `pay_time`, + `pay_channel`, + `no_cash_coupon_fee`, + `cash_coupon_fee`, + `cash_fee`, + `sign`, + `options`, + `create_time`, + `push_time`, + `push_ip`, + `mcht_id`, + `sn` + ) + values + ( + #{id}, + #{fbMerchantCode}, + #{merchantOrderSn}, + #{orderSn}, + #{platformOrderNo}, + #{tradeNo}, + #{orderState}, + #{fnCoupon}, + #{redPacket}, + #{totalFee}, + #{orderPrice}, + #{fee}, + #{body}, + #{attach}, + #{storeId}, + #{cashierId}, + #{deviceNo}, + #{userId}, + #{userLogonId}, + #{payTime}, + #{payChannel}, + #{noCashCouponFee}, + #{cashCouponFee}, + #{cashFee}, + #{sign}, + #{options}, + #{createTime}, + #{pushTime}, + #{pushIp}, + #{mchtId}, + #{sn} + ) + + + + update fb_order + + `fb_merchant_code` = #{fbMerchantCode}, + `merchant_order_sn` = #{merchantOrderSn}, + `order_sn` = #{orderSn}, + `platform_order_no` = #{platformOrderNo}, + `trade_no` = #{tradeNo}, + `order_state` = #{orderState}, + `fn_coupon` = #{fnCoupon}, + `red_packet` = #{redPacket}, + `total_fee` = #{totalFee}, + `order_price` = #{orderPrice}, + `fee` = #{fee}, + `body` = #{body}, + `attach` = #{attach}, + `store_id` = #{storeId}, + `cashier_id` = #{cashierId}, + `device_no` = #{deviceNo}, + `user_id` = #{userId}, + `user_logon_id` = #{userLogonId}, + `pay_time` = #{payTime}, + `pay_channel` = #{payChannel}, + `no_cash_coupon_fee` = #{noCashCouponFee}, + `cash_coupon_fee` = #{cashCouponFee}, + `cash_fee` = #{cashFee}, + `sign` = #{sign}, + `options` = #{options}, + `create_time` = #{createTime}, + `push_time` = #{pushTime}, + `push_ip` = #{pushIp}, + `mcht_id` = #{mchtId}, + `sn` = #{sn} + + where id = #{id} + + + + delete from fb_order where id = #{value} + + + + delete from fb_order where id in + + #{id} + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/css/.DS_Store b/novel-admin/src/main/resources/static/css/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..cfec20c7460366091f0a1ca38cbcd2898edc493d GIT binary patch literal 6148 zcmeHK!A=4(5Pby_K`xkh@VG}WkoX51f+k+|ZWK_10oK40<842KkMaZj06)M#z&GuP zQiOOihRl$e*X_=<)7R{j0&wkF{{(0Ns8R(h`!qj@ycb=QlJ-cP^JCl~$1PguVY=pR z9maq$@ZT7aZ?}#cj4{B7`1Sox&xcvBJIuQDkn(UwJzjWW3phX*8Gkvy^&At%KB7s? zG1LkWkMQz~5n9Y*z-&SdiAHc2(FhgvS#L(jR&#Z)kzWIM%yi7$n#}WwF;hN|mbEIH zr*sv?A8v`?l5goP8mC5XGTd)oVfi77sFGFL71@^wR}f`devkb3=s(0v=ZL)h9?rk* zVa@N|Gb28$b{rvlHmAD9g4Sf07~q*LQmqFxYYZ3z#=w#RsSgQNFjXu9`qDw;uK>gf zyS=b2e- .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-right: 0; + border-left: initial; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-left: 0; + border-right: initial; + } +} +.radio label, +.checkbox label { + padding-right: 20px; + padding-left: initial; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + margin-right: -20px; + margin-left: auto; +} +.radio-inline, +.checkbox-inline { + padding-right: 20px; + padding-left: 0; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-right: 10px; + margin-left: 0; +} +.has-feedback .form-control { + padding-left: 42.5px; + padding-right: 12px; +} +.form-control-feedback { + left: 0; + right: auto; +} +@media (min-width: 768px) { + .form-inline label { + padding-right: 0; + padding-left: initial; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + margin-right: 0; + margin-left: auto; + } +} +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: left; + } +} +.form-horizontal .has-feedback .form-control-feedback { + left: 15px; + right: auto; +} +.caret { + margin-right: 2px; + margin-left: 0; +} +.dropdown-menu { + right: 0; + left: auto; + float: left; + text-align: right; +} +.dropdown-menu.pull-right { + left: 0; + right: auto; + float: right; +} +.dropdown-menu-right { + left: auto; + right: 0; +} +.dropdown-menu-left { + left: 0; + right: auto; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + left: auto; + right: 0; + } + .navbar-right .dropdown-menu-left { + left: 0; + right: auto; + } +} +.btn-group > .btn, +.btn-group-vertical > .btn { + float: right; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-right: -1px; + margin-left: 0px; +} +.btn-toolbar { + margin-right: -5px; + margin-left: 0px; +} +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: right; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-right: 5px; + margin-left: 0px; +} +.btn-group > .btn:first-child { + margin-right: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn-group { + float: right; +} +.btn-group.btn-group-justified > .btn, +.btn-group.btn-group-justified > .btn-group { + float: none; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group > .btn-group:last-child > .btn:first-child { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn .caret { + margin-right: 0; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-right: 0; +} +.input-group .form-control { + float: right; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.input-group-addon:first-child { + border-right-width: 1px; + border-right-style: solid; + border-left: 0px; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.input-group-addon:last-child { + border-left-width: 1px; + border-left-style: solid; + border-right: 0px; +} +.input-group-btn > .btn + .btn { + margin-right: -1px; + margin-left: auto; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-left: -1px; + margin-right: auto; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + margin-right: -1px; + margin-left: auto; +} +.nav { + padding-right: 0; + padding-left: initial; +} +.nav-tabs > li { + float: right; +} +.nav-tabs > li > a { + margin-left: auto; + margin-right: -2px; + border-radius: 4px 4px 0 0; +} +.nav-pills > li { + float: right; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-right: 2px; + margin-left: auto; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-right: 0; + margin-left: auto; +} +.nav-justified > .dropdown .dropdown-menu { + right: auto; +} +.nav-tabs-justified > li > a { + margin-left: 0; + margin-right: auto; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-radius: 4px 4px 0 0; + } +} +@media (min-width: 768px) { + .navbar-header { + float: right; + } +} +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; +} +.navbar-brand { + float: right; +} +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-right: -15px; + margin-left: auto; + } +} +.navbar-toggle { + float: left; + margin-left: 15px; + margin-right: auto; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 25px 5px 15px; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: right; + } + .navbar-nav > li { + float: right; + } +} +@media (min-width: 768px) { + .navbar-left.flip { + float: right !important; + } + .navbar-right:last-child { + margin-left: -15px; + margin-right: auto; + } + .navbar-right.flip { + float: left !important; + margin-left: -15px; + margin-right: auto; + } + .navbar-right .dropdown-menu { + left: 0; + right: auto; + } +} +@media (min-width: 768px) { + .navbar-text { + float: right; + } + .navbar-text.navbar-right:last-child { + margin-left: 0; + margin-right: auto; + } +} +.pagination { + padding-right: 0; +} +.pagination > li > a, +.pagination > li > span { + float: right; + margin-right: -1px; + margin-left: 0px; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + margin-right: -1px; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.pager { + padding-right: 0; + padding-left: initial; +} +.pager .next > a, +.pager .next > span { + float: left; +} +.pager .previous > a, +.pager .previous > span { + float: right; +} +.nav-pills > li > a > .badge { + margin-left: 0px; + margin-right: 3px; +} +.list-group-item > .badge { + float: left; +} +.list-group-item > .badge + .badge { + margin-left: 5px; + margin-right: auto; +} +.alert-dismissable, +.alert-dismissible { + padding-left: 35px; + padding-right: 15px; +} +.alert-dismissable .close, +.alert-dismissible .close { + right: auto; + left: -21px; +} +.progress-bar { + float: right; +} +.media > .pull-left { + margin-right: 10px; +} +.media > .pull-left.flip { + margin-right: 0; + margin-left: 10px; +} +.media > .pull-right { + margin-left: 10px; +} +.media > .pull-right.flip { + margin-left: 0; + margin-right: 10px; +} +.media-right, +.media > .pull-right { + padding-right: 10px; + padding-left: initial; +} +.media-left, +.media > .pull-left { + padding-left: 10px; + padding-right: initial; +} +.media-list { + padding-right: 0; + padding-left: initial; + list-style: none; +} +.list-group { + padding-right: 0; + padding-left: initial; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-right-radius: 3px; + border-top-left-radius: 0; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-left-radius: 3px; + border-top-right-radius: 0; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; + border-top-right-radius: 0; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; + border-top-left-radius: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-right: 0; + border-left: none; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: none; + border-left: 0; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object { + right: 0; + left: auto; +} +.close { + float: left; +} +.modal-footer { + text-align: left; +} +.modal-footer .btn + .btn { + margin-left: auto; + margin-right: 5px; +} +.modal-footer .btn-group .btn + .btn { + margin-right: -1px; + margin-left: auto; +} +.modal-footer .btn-block + .btn-block { + margin-right: 0; + margin-left: auto; +} +.popover { + left: auto; + text-align: right; +} +.popover.top > .arrow { + right: 50%; + left: auto; + margin-right: -11px; + margin-left: auto; +} +.popover.top > .arrow:after { + margin-right: -10px; + margin-left: auto; +} +.popover.bottom > .arrow { + right: 50%; + left: auto; + margin-right: -11px; + margin-left: auto; +} +.popover.bottom > .arrow:after { + margin-right: -10px; + margin-left: auto; +} +.carousel-control { + right: 0; + bottom: 0; +} +.carousel-control.left { + right: auto; + left: 0; + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%)); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} +.carousel-control.right { + left: auto; + right: 0; + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%)); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + right: auto; + margin-right: -10px; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + left: auto; + margin-left: -10px; +} +.carousel-indicators { + right: 50%; + left: 0; + margin-right: -30%; + margin-left: 0; + padding-left: 0; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: 0; + margin-right: -15px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-left: 0; + margin-right: -15px; + } + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } +} +.pull-right.flip { + float: left !important; +} +.pull-left.flip { + float: right !important; +} +/*# sourceMappingURL=bootstrap-rtl.css.map */ diff --git a/novel-admin/src/main/resources/static/css/bootstrap.min.css b/novel-admin/src/main/resources/static/css/bootstrap.min.css new file mode 100644 index 0000000..f7bca0a --- /dev/null +++ b/novel-admin/src/main/resources/static/css/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.6 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.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}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ diff --git a/novel-admin/src/main/resources/static/css/font-awesome.css b/novel-admin/src/main/resources/static/css/font-awesome.css new file mode 100644 index 0000000..880eb82 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/font-awesome.css @@ -0,0 +1,2026 @@ +/*! + * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.4.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.4.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; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.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: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + 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; +} +/* Deprecated as of 4.4.0 */ +.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 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + 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 { + 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: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.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: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-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-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"; +} diff --git a/novel-admin/src/main/resources/static/css/font-awesome.min.css b/novel-admin/src/main/resources/static/css/font-awesome.min.css new file mode 100644 index 0000000..540440c --- /dev/null +++ b/novel-admin/src/main/resources/static/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@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} diff --git a/novel-admin/src/main/resources/static/css/java2nb.css b/novel-admin/src/main/resources/static/css/java2nb.css new file mode 100644 index 0000000..7d03f9b --- /dev/null +++ b/novel-admin/src/main/resources/static/css/java2nb.css @@ -0,0 +1,212 @@ +@charset "utf-8"; +*{ + font-size: 14px; + font-family: "microsoft yahei"; + padding:0; + margin: 0; + +} +a{ + text-decoration: none !important; +} +ul{ + list-style: none !important; +} +.gg-font0{ + font-size: 0; +} +/*表单通用的样式*/ +.gg-star{ + color: red; + font-style: normal; +} +.gg-form{ + margin-top: 15px; + padding: 20px; + position: relative; +} +.gg-formGroup{ + width: 100%; + margin-bottom: 15px; + font-size: 0; +} +.gg-formGroup .gg-formTitle{ + width:30%; + display: inline-block; + text-align: right; + padding-right: 2%; + white-space: nowrap; +} +.gg-formGroup .gg-formTitle span{ + font-size: 14px; + color: #666666; + font-family: "microsoft yahei"; + line-height: 28px; + white-space: nowrap; +} +.gg-formGroup .gg-formDetail{ + width:60%; + display: inline-block; +} +.gg-area{ + width: 33.33%; + display: inline-block; + padding-right: 2%; +} +.gg-area:last-child{ + padding-right: 0; +} +.gg-btnGroup{ + text-align: center; +} +.gg-border0{ + border: 0; +} +.gg-dashed{ + border-bottom: 1px dashed #b3afaf; + width: 40% !important; + position: relative; +} +.error-mes{ + position: relative; + margin-left: 30%; +} +.gg-faeye{ + position: absolute; + top: 24%; + right: 10%; + padding: 10px; + color: #666; + +} +/*头像裁剪上传部分*/ +.avatar-view { + display: block; + margin: 12% auto 5%; + height: 220px; + width: 220px; + border: 3px solid #fff; + border-radius: 5px; + box-shadow: 0 0 5px rgba(0,0,0,.15); + cursor: pointer; + overflow: hidden; +} + +.avatar-view img { + width: 100%; +} +.avatar-body { + padding-right: 15px; + padding-left: 15px; +} + +.avatar-upload { + overflow: hidden; +} + +.avatar-upload label { + display: block; + float: left; + clear: left; + width: 100px; +} + +.avatar-upload input { + display: block; + margin-left: 110px; +} + +.avater-alert { + margin-top: 10px; + margin-bottom: 10px; +} + +.avatar-wrapper { + height: 364px; + width: 100%; + margin-top: 15px; + box-shadow: inset 0 0 5px rgba(0,0,0,.25); + background-color: #fcfcfc; + overflow: hidden; +} + +.avatar-wrapper img { + display: block; + height: auto; + max-width: 100%; +} + +.avatar-preview { + float: left; + margin-top: 15px; + margin-right: 15px; + border: 1px solid #eee; + border-radius: 4px; + background-color: #fff; + overflow: hidden; +} + +.avatar-preview:hover { + border-color: #ccf; + box-shadow: 0 0 5px rgba(0,0,0,.15); +} + +.avatar-preview img { + width: 100%; +} + +.preview-lg { + height: 184px; + width: 184px; + margin-top: 15px; +} + +.preview-md { + height: 100px; + width: 100px; +} + +.preview-sm { + height: 50px; + width: 50px; +} + +@media (min-width: 992px) { + .avatar-preview { + float: none; + } +} + +.avatar-btns { + margin-top: 30px; + margin-bottom: 15px; +} + +.avatar-btns .btn-group { + margin-right: 5px; +} + +.loading { + display: none; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: #fff url("/img/loading.gif") no-repeat center center; + opacity: .75; + filter: alpha(opacity=75); + z-index: 20140628; +} +.avatar-title{ + color:#999; + font-size: 12px; + text-align: center; +} +.modal-backdrop{ +} +.gg-avatarShow{ + position: relative; + margin-top: -10%; + margin-bottom: 12%; +} diff --git a/novel-admin/src/main/resources/static/css/layui.css b/novel-admin/src/main/resources/static/css/layui.css new file mode 100644 index 0000000..3df19d8 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/layui.css @@ -0,0 +1,949 @@ +/** + + @Name: layui + @Author: 贤心 + @Site: www.layui.com + + */ + + +/** 初始化 **/ +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,input,button,textarea,p,blockquote,th,td,form,pre{margin: 0; padding: 0; -webkit-tap-highlight-color:rgba(0,0,0,0);} +a:active,a:hover{outline:0} +img{display: inline-block; border: none; vertical-align: middle;} +li{list-style:none;} +table{border-collapse: collapse; border-spacing: 0;} +h1,h2,h3{font-size: 14px; font-weight: 400;} +h4, h5, h6{font-size: 100%; font-weight: 400;} +button,input,select,textarea{font-size: 100%; } +input,button,textarea,select,optgroup,option{font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; outline: 0;} +pre{white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;} + + +/** 图标字体 **/ +@font-face {font-family: 'layui-icon'; + src: url('../font/iconfont.eot?v=213'); + src: url('../font/iconfont.eot?v=213#iefix') format('embedded-opentype'), + url('../font/iconfont.svg?v=213#iconfont') format('svg'), + url('../font/iconfont.woff?v=213') format('woff'), + url('../font/iconfont.ttf?v=213') format('truetype'); +} + +.layui-icon{ + font-family:"layui-icon" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/** 初始化全局标签 **/ +body{line-height: 24px; font: 14px Helvetica Neue,Helvetica,PingFang SC,\5FAE\8F6F\96C5\9ED1,Tahoma,Arial,sans-serif;} +hr{height: 1px; margin: 10px 0; border: 0; background-color: #e2e2e2; clear: both;} +a{color: #333; text-decoration:none; } +a:hover{color: #777;} +a cite{font-style: normal; *cursor:pointer;} + +/** 基础通用 **/ +.layui-border-box, .layui-border-box *{box-sizing: border-box;} +/* 消除第三方ui可能造成的冲突 */.layui-box, .layui-box *{box-sizing: content-box;} +.layui-clear{clear: both; *zoom: 1;} +.layui-clear:after{content:'\20'; clear:both; *zoom:1; display:block; height:0;} +.layui-inline{position: relative; display: inline-block; *display:inline; *zoom:1; vertical-align: middle;} +/* 三角形 */.layui-edge{position: absolute; width: 0; height: 0; border-style: dashed; border-color: transparent; overflow: hidden;} +/* 单行溢出省略 */.layui-elip{text-overflow: ellipsis; overflow: hidden; white-space: nowrap;} +/* 屏蔽选中 */.layui-unselect,.layui-icon, .layui-disabled{-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;} +/* 禁用 */.layui-disabled,.layui-disabled:hover{color: #d2d2d2 !important; cursor: not-allowed !important;} +/* 纯圆角 */.layui-circle{border-radius: 100%;} +.layui-show{display: block !important;} +.layui-hide{display: none !important;} + + +/* 基本布局 */ +.layui-main{position: relative; width: 1140px; margin: 0 auto;} +.layui-header{position: relative; z-index: 1000; height: 60px;} +.layui-header a:hover{transition: all .5s; -webkit-transition: all .5s;} +.layui-side{position: fixed; top: 0; bottom: 0; z-index: 999; width: 200px; overflow-x: hidden;} +.layui-side-scroll{width: 220px; height: 100%; overflow-x: hidden;} +.layui-body{position: absolute; left: 200px; right: 0; top: 0; bottom: 0; z-index: 998; width: auto; overflow: hidden; overflow-y: auto; box-sizing: border-box;} + +/* 后台框架大布局 */.layui-layout-body{overflow: hidden;} +.layui-layout-admin .layui-header{background-color: #23262E;} +.layui-layout-admin .layui-side{top: 60px; width: 200px; overflow-x: hidden;} +.layui-layout-admin .layui-body{top: 60px; bottom: 44px;} +.layui-layout-admin .layui-main{width: auto; margin: 0 15px;} +.layui-layout-admin .layui-footer{position: fixed; left: 200px; right: 0; bottom: 0; height: 44px; line-height: 44px; padding: 0 15px; background-color: #eee;} +.layui-layout-admin .layui-logo{position: absolute; left: 0; top: 0; width: 200px; height: 100%; line-height: 60px; text-align: center; color: #009688; font-size: 16px;} +.layui-layout-admin .layui-header .layui-nav{background: none;} +.layui-layout-left{position: absolute !important; left: 200px; top: 0;} +.layui-layout-right{position: absolute !important; right: 0; top: 0;} + +/* 响应式类 */ + + +/* 栅格布局 */ +.layui-container{position: relative; margin: 0 auto; padding: 0 15px; box-sizing: border-box;} +.layui-fluid{position: relative; margin: 0 auto; padding: 0 15px;} + +.layui-row:before, .layui-row:after{content: ''; display: block; clear: both;} +.layui-col-xs1, .layui-col-xs2, .layui-col-xs3, .layui-col-xs4, .layui-col-xs5, .layui-col-xs6, .layui-col-xs7, .layui-col-xs8, .layui-col-xs9, .layui-col-xs10, .layui-col-xs11, .layui-col-xs12 +,.layui-col-sm1, .layui-col-sm2, .layui-col-sm3, .layui-col-sm4, .layui-col-sm5, .layui-col-sm6, .layui-col-sm7, .layui-col-sm8, .layui-col-sm9, .layui-col-sm10, .layui-col-sm11, .layui-col-sm12 +,.layui-col-md1, .layui-col-md2, .layui-col-md3, .layui-col-md4, .layui-col-md5, .layui-col-md6, .layui-col-md7, .layui-col-md8, .layui-col-md9, .layui-col-md10, .layui-col-md11, .layui-col-md12 +,.layui-col-lg1, .layui-col-lg2, .layui-col-lg3, .layui-col-lg4, .layui-col-lg5, .layui-col-lg6, .layui-col-lg7, .layui-col-lg8, .layui-col-lg9, .layui-col-lg10, .layui-col-lg11, .layui-col-lg12 +{position: relative; display: block; box-sizing: border-box;} + +.layui-col-xs1, .layui-col-xs2, .layui-col-xs3, .layui-col-xs4, .layui-col-xs5, .layui-col-xs6, .layui-col-xs7, .layui-col-xs8, .layui-col-xs9, .layui-col-xs10, .layui-col-xs11, .layui-col-xs12{float: left;} +.layui-col-xs1{width: 8.33333333%;} +.layui-col-xs2{width: 16.66666667%;} +.layui-col-xs3{width: 25%;} +.layui-col-xs4{width: 33.33333333%;} +.layui-col-xs5{width: 41.66666667%;} +.layui-col-xs6{width: 50%;} +.layui-col-xs7{width: 58.33333333%;} +.layui-col-xs8{width: 66.66666667%;} +.layui-col-xs9{width: 75%;} +.layui-col-xs10{width: 83.33333333%;} +.layui-col-xs11{width: 91.66666667%;} +.layui-col-xs12{width: 100%;} + +.layui-col-xs-offset1{margin-left: 8.33333333%;} +.layui-col-xs-offset2{margin-left: 16.66666667%;} +.layui-col-xs-offset3{margin-left: 25%;} +.layui-col-xs-offset4{margin-left: 33.33333333%;} +.layui-col-xs-offset5{margin-left: 41.66666667%;} +.layui-col-xs-offset6{margin-left: 50%;} +.layui-col-xs-offset7{margin-left: 58.33333333%;} +.layui-col-xs-offset8{margin-left: 66.66666667%;} +.layui-col-xs-offset9{margin-left: 75%;} +.layui-col-xs-offset10{margin-left: 83.33333333%;} +.layui-col-xs-offset11{margin-left: 91.66666667%;} +.layui-col-xs-offset12{margin-left: 100%;} + +/* 超小屏幕(手机) */@media screen and (max-width: 768px) { + .layui-hide-xs{display: none!important;} + .layui-show-xs-block{display: block!important;} + .layui-show-xs-inline{display: inline!important;} + .layui-show-xs-inline-block{display: inline-block!important;} +} + +/* 小型屏幕(平板) */@media screen and (min-width: 768px) { + .layui-container{width: 750px;} + .layui-hide-sm{display: none!important;} + .layui-show-sm-block{display: block!important;} + .layui-show-sm-inline{display: inline!important;} + .layui-show-sm-inline-block{display: inline-block!important;} + + .layui-col-sm1, .layui-col-sm2, .layui-col-sm3, .layui-col-sm4, .layui-col-sm5, .layui-col-sm6, .layui-col-sm7, .layui-col-sm8, .layui-col-sm9, .layui-col-sm10, .layui-col-sm11, .layui-col-sm12{float: left;} + .layui-col-sm1{width: 8.33333333%;} + .layui-col-sm2{width: 16.66666667%;} + .layui-col-sm3{width: 25%;} + .layui-col-sm4{width: 33.33333333%;} + .layui-col-sm5{width: 41.66666667%;} + .layui-col-sm6{width: 50%;} + .layui-col-sm7{width: 58.33333333%;} + .layui-col-sm8{width: 66.66666667%;} + .layui-col-sm9{width: 75%;} + .layui-col-sm10{width: 83.33333333%;} + .layui-col-sm11{width: 91.66666667%;} + .layui-col-sm12{width: 100%;} + /* 列偏移 */ + .layui-col-sm-offset1{margin-left: 8.33333333%;} + .layui-col-sm-offset2{margin-left: 16.66666667%;} + .layui-col-sm-offset3{margin-left: 25%;} + .layui-col-sm-offset4{margin-left: 33.33333333%;} + .layui-col-sm-offset5{margin-left: 41.66666667%;} + .layui-col-sm-offset6{margin-left: 50%;} + .layui-col-sm-offset7{margin-left: 58.33333333%;} + .layui-col-sm-offset8{margin-left: 66.66666667%;} + .layui-col-sm-offset9{margin-left: 75%;} + .layui-col-sm-offset10{margin-left: 83.33333333%;} + .layui-col-sm-offset11{margin-left: 91.66666667%;} + .layui-col-sm-offset12{margin-left: 100%;} +} +/* 中型屏幕(桌面) */@media screen and (min-width: 992px) { + .layui-container{width: 970px;} + .layui-hide-md{display: none!important;} + .layui-show-md-block{display: block!important;} + .layui-show-md-inline{display: inline!important;} + .layui-show-md-inline-block{display: inline-block!important;} + + .layui-col-md1, .layui-col-md2, .layui-col-md3, .layui-col-md4, .layui-col-md5, .layui-col-md6, .layui-col-md7, .layui-col-md8, .layui-col-md9, .layui-col-md10, .layui-col-md11, .layui-col-md12{float: left;} + .layui-col-md1{width: 8.33333333%;} + .layui-col-md2{width: 16.66666667%;} + .layui-col-md3{width: 25%;} + .layui-col-md4{width: 33.33333333%;} + .layui-col-md5{width: 41.66666667%;} + .layui-col-md6{width: 50%;} + .layui-col-md7{width: 58.33333333%;} + .layui-col-md8{width: 66.66666667%;} + .layui-col-md9{width: 75%;} + .layui-col-md10{width: 83.33333333%;} + .layui-col-md11{width: 91.66666667%;} + .layui-col-md12{width: 100%;} + /* 列偏移 */ + .layui-col-md-offset1{margin-left: 8.33333333%;} + .layui-col-md-offset2{margin-left: 16.66666667%;} + .layui-col-md-offset3{margin-left: 25%;} + .layui-col-md-offset4{margin-left: 33.33333333%;} + .layui-col-md-offset5{margin-left: 41.66666667%;} + .layui-col-md-offset6{margin-left: 50%;} + .layui-col-md-offset7{margin-left: 58.33333333%;} + .layui-col-md-offset8{margin-left: 66.66666667%;} + .layui-col-md-offset9{margin-left: 75%;} + .layui-col-md-offset10{margin-left: 83.33333333%;} + .layui-col-md-offset11{margin-left: 91.66666667%;} + .layui-col-md-offset12{margin-left: 100%;} +} +/* 大型屏幕(桌面) */@media screen and (min-width: 1200px) { + .layui-container{width: 1170px;} + .layui-hide-lg{display: none!important;} + .layui-show-lg-block{display: block!important;} + .layui-show-lg-inline{display: inline!important;} + .layui-show-lg-inline-block{display: inline-block!important;} + + .layui-col-lg1, .layui-col-lg2, .layui-col-lg3, .layui-col-lg4, .layui-col-lg5, .layui-col-lg6, .layui-col-lg7, .layui-col-lg8, .layui-col-lg9, .layui-col-lg10, .layui-col-lg11, .layui-col-lg12{float: left;} + .layui-col-lg1{width: 8.33333333%;} + .layui-col-lg2{width: 16.66666667%;} + .layui-col-lg3{width: 25%;} + .layui-col-lg4{width: 33.33333333%;} + .layui-col-lg5{width: 41.66666667%;} + .layui-col-lg6{width: 50%;} + .layui-col-lg7{width: 58.33333333%;} + .layui-col-lg8{width: 66.66666667%;} + .layui-col-lg9{width: 75%;} + .layui-col-lg10{width: 83.33333333%;} + .layui-col-lg11{width: 91.66666667%;} + .layui-col-lg12{width: 100%;} + /* 列偏移 */ + .layui-col-lg-offset1{margin-left: 8.33333333%;} + .layui-col-lg-offset2{margin-left: 16.66666667%;} + .layui-col-lg-offset3{margin-left: 25%;} + .layui-col-lg-offset4{margin-left: 33.33333333%;} + .layui-col-lg-offset5{margin-left: 41.66666667%;} + .layui-col-lg-offset6{margin-left: 50%;} + .layui-col-lg-offset7{margin-left: 58.33333333%;} + .layui-col-lg-offset8{margin-left: 66.66666667%;} + .layui-col-lg-offset9{margin-left: 75%;} + .layui-col-lg-offset10{margin-left: 83.33333333%;} + .layui-col-lg-offset11{margin-left: 91.66666667%;} + .layui-col-lg-offset12{margin-left: 100%;} +} + +/* 列间隔 */.layui-col-space1{margin: -0.5px;} +.layui-col-space1>*{padding: 0.5px;} +.layui-col-space3{margin: -1.5px;} +.layui-col-space3>*{padding: 1.5px;} +.layui-col-space5{margin: -2.5px;} +.layui-col-space5>*{padding: 2.5px;} +.layui-col-space8{margin: -3.5px;} +.layui-col-space8>*{padding: 3.5px;} +.layui-col-space10{margin: -5px;} +.layui-col-space10>*{padding: 5px;} +.layui-col-space12{margin: -6px;} +.layui-col-space12>*{padding: 6px;} +.layui-col-space15{margin: -7.5px;} +.layui-col-space15>*{padding: 7.5px;} +.layui-col-space18{margin: -9px;} +.layui-col-space18>*{padding: 9px;} +.layui-col-space20{margin: -10px;} +.layui-col-space20>*{padding: 10px;} +.layui-col-space22{margin: -11px;} +.layui-col-space22>*{padding: 11px;} +.layui-col-space25{margin: -12.5px;} +.layui-col-space25>*{padding: 12.5px;} +.layui-col-space30{margin: -15px;} +.layui-col-space30>*{padding: 15px;} + + +/** 页面元素 **/ +.layui-btn, .layui-input, .layui-textarea, .layui-upload-button, .layui-select{outline: none; -webkit-appearance: none; transition: all .3s; -webkit-transition: all .3s; box-sizing: border-box;} + +/* 引用 */.layui-elem-quote{margin-bottom: 10px; padding: 15px; line-height: 22px; border-left: 5px solid #009688; border-radius: 0 2px 2px 0; background-color: #f2f2f2;} +.layui-quote-nm{border-color: #e2e2e2; border-style: solid; border-width: 1px; border-left-width: 5px; background: none;} +/* 字段集合 */.layui-elem-field{margin-bottom: 10px; padding: 0; border: 1px solid #e2e2e2;} +.layui-elem-field legend{margin-left: 20px; padding: 0 10px; font-size: 20px; font-weight: 300;} +.layui-field-title{margin: 10px 0 20px; border: none; border-top: 1px solid #e2e2e2;} +.layui-field-box{padding: 10px 15px;} +.layui-field-title .layui-field-box{padding: 10px 0;} + +/* 进度条 */ +.layui-progress{position: relative; height: 6px; border-radius: 20px; background-color: #e2e2e2;} +.layui-progress-bar{position: absolute; width: 0; max-width: 100%; height: 6px; border-radius: 20px; text-align: right; background-color: #5FB878; transition: all .3s; -webkit-transition: all .3s;} +.layui-progress-big, +.layui-progress-big .layui-progress-bar{height: 18px; line-height: 18px;} +.layui-progress-text{position: relative; top: -18px; line-height: 18px; font-size: 12px; color: #666} +.layui-progress-big .layui-progress-text{position: static; padding: 0 10px; color: #fff;} + +/* 折叠面板 */ +.layui-collapse{border: 1px solid #e2e2e2; border-radius: 2px;} +.layui-colla-item{border-top: 1px solid #e2e2e2} +.layui-colla-item:first-child{border-top: none;} +.layui-colla-title{position: relative; height: 42px; line-height: 42px; padding: 0 15px 0 35px; color: #333; background-color: #f2f2f2; cursor: pointer;} +.layui-colla-content{display: none; padding: 10px 15px; line-height: 22px; border-top: 1px solid #e2e2e2; color: #666;} +.layui-colla-icon{position: absolute; left: 15px; top: 0; font-size: 14px;} + + +/* 背景颜色 */ +.layui-bg-red{background-color: #FF5722 !important; color: #fff!important;} /*赤*/ +.layui-bg-orange{background-color: #FFB800!important; color: #fff!important;} /*橙*/ +.layui-bg-green{background-color: #009688!important; color: #fff!important;} /*绿*/ +.layui-bg-cyan{background-color: #2F4056!important; color: #fff!important;} /*青*/ +.layui-bg-blue{background-color: #1E9FFF!important; color: #fff!important;} /*蓝*/ +.layui-bg-black{background-color: #393D49!important; color: #fff!important;} /*黑*/ +.layui-bg-gray{background-color: #eee!important; color: #666!important;} /*灰*/ + + +/* 文本区域 */ +.layui-text{line-height: 22px; font-size: 14px; color: #666;} +.layui-text h1, +.layui-text h2, +.layui-text h3{font-weight: 500; color: #333;} +.layui-text h1{font-size: 30px;} +.layui-text h2{font-size: 24px;} +.layui-text h3{font-size: 18px;} +.layui-text a{color: #01AAED;} +.layui-text a:hover{text-decoration: underline;} +.layui-text ul{padding: 5px 0 5px 15px;} +.layui-text ul li{margin-top: 5px; list-style-type: disc;} +.layui-text em, +.layui-word-aux{color: #999 !important; padding: 0 5px !important;} + +/* 按钮 */ +.layui-btn{display: inline-block; vertical-align: middle; height: 38px; line-height: 38px; padding: 0 18px; background-color: #009688; color: #fff; white-space: nowrap; text-align: center; font-size: 14px; border: none; border-radius: 2px; cursor: pointer; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;} +.layui-btn:hover{opacity: 0.8; filter:alpha(opacity=80); color: #fff;} +.layui-btn:active{opacity: 1; filter:alpha(opacity=100);} +.layui-btn+.layui-btn{margin-left: 10px;} +/* 圆角 */.layui-btn-radius{border-radius: 100px;} +.layui-btn .layui-icon{margin-right: 3px; font-size: 18px; vertical-align: bottom; vertical-align: middle\0;} + +/* 原始 */.layui-btn-primary{border: 1px solid #C9C9C9; background-color: #fff; color: #555;} +.layui-btn-primary:hover{border-color: #009688; color: #333} +/* 百搭 */.layui-btn-normal{background-color: #1E9FFF;} +/* 暖色 */.layui-btn-warm{background-color: #FFB800;} +/* 警告 */.layui-btn-danger{background-color: #FF5722;} +/* 禁用 */.layui-btn-disabled,.layui-btn-disabled:hover,.layui-btn-disabled:active{border: 1px solid #e6e6e6; background-color: #FBFBFB; color: #C9C9C9; cursor: not-allowed; opacity: 1;} + +/* 大型 */.layui-btn-big{height: 44px; line-height: 44px; padding: 0 25px; font-size: 16px;} +/* 小型 */.layui-btn-small{height: 30px; line-height: 30px; padding: 0 10px; font-size: 12px;} +.layui-btn-small i{font-size: 16px !important;} +/* 迷你 */.layui-btn-mini{height: 22px; line-height: 22px; padding: 0 5px; font-size: 12px;} +.layui-btn-mini i{font-size: 14px !important;} +/* 按钮组 */.layui-btn-group{display: inline-block; vertical-align: middle; font-size: 0;} +.layui-btn-group .layui-btn{margin-left: 0!important; margin-right: 0!important; border-left: 1px solid rgba(255,255,255,.5); border-radius: 0;} +.layui-btn-group .layui-btn-primary{border-left: none;} +.layui-btn-group .layui-btn-primary:hover{border-color: #C9C9C9; color: #009688;} +.layui-btn-group .layui-btn:first-child{border-left: none; border-radius: 2px 0 0 2px;} +.layui-btn-group .layui-btn-primary:first-child{border-left: 1px solid #c9c9c9;} +.layui-btn-group .layui-btn:last-child{border-radius: 0 2px 2px 0;} +.layui-btn-group .layui-btn+.layui-btn{margin-left: 0;} +.layui-btn-group+.layui-btn-group{margin-left: 10px;} + +/** 表单 **/ +.layui-input, .layui-textarea, .layui-select{height: 38px; line-height: 1.3; line-height: 38px\9; border: 1px solid #e6e6e6; background-color: #fff; border-radius: 2px;} +.layui-input::-webkit-input-placeholder, +.layui-textarea::-webkit-input-placeholder, +.layui-select::-webkit-input-placeholder{line-height: 1.3;} +.layui-input, .layui-textarea{display: block; width: 100%; padding-left: 10px;} +.layui-input:hover, .layui-textarea:hover{border-color: #D2D2D2 !important;} +.layui-input:focus, .layui-textarea:focus{border-color: #C9C9C9 !important;} +.layui-textarea{position: relative; min-height: 100px; height: auto; line-height: 20px; padding: 6px 10px; resize: vertical;} +.layui-select{padding: 0 10px;} +.layui-form select, +.layui-form input[type=checkbox], +.layui-form input[type=radio]{display: none;} + +.layui-form-item{margin-bottom: 15px; clear: both; *zoom: 1;} +.layui-form-item:after{content:'\20'; clear: both; *zoom: 1; display: block; height:0;} +.layui-form-label{position: relative; float: left; display: block; padding: 9px 15px; width: 80px; font-weight:normal;line-height: 20px; text-align: right;} +.layui-form-item .layui-inline{margin-bottom: 5px; margin-right: 10px;} +.layui-input-block, .layui-input-inline{position: relative;} +.layui-input-block{margin-left: 110px; min-height: 36px;} +.layui-input-inline{display: inline-block; vertical-align: middle;} +.layui-form-item .layui-input-inline{float: left; width: 190px; margin-right: 10px;} +.layui-form-text .layui-input-inline{width: auto;} + +/* 分割块 */.layui-form-mid{position: relative; float: left; display: block; padding: 8px 0 !important; line-height: 20px; margin-right: 10px;} +/* 警告域 */.layui-form-danger:focus +,.layui-form-danger+.layui-form-select .layui-input{border: 1px solid #FF5722 !important;} + + +/* 下拉选择 */.layui-form-select{position: relative;} +.layui-form-select .layui-input{padding-right: 30px; cursor: pointer;} +.layui-form-select .layui-edge{position: absolute; right: 10px; top: 50%; margin-top: -3px; cursor: pointer; border-width: 6px; border-top-color: #c2c2c2; border-top-style: solid; transition: all .3s; -webkit-transition: all .3s;} +.layui-form-select dl{display: none; position: absolute; left: 0; top: 42px; padding: 5px 0; z-index: 999; min-width: 100%; border: 1px solid #d2d2d2; max-height: 300px; overflow-y: auto; background-color: #fff; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.12); box-sizing: border-box;} +.layui-form-select dl dt, +.layui-form-select dl dd{padding: 0 10px; line-height: 36px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;} +.layui-form-select dl dt{font-size: 12px; color: #999;} +.layui-form-select dl dd{cursor: pointer;} +.layui-form-select dl dd:hover{background-color: #f2f2f2;} +.layui-form-select .layui-select-group dd{padding-left: 20px;} +.layui-form-select dl dd.layui-select-tips{padding-left: 10px !important; color: #999;} +.layui-form-select dl dd.layui-this{background-color: #5FB878; color: #fff;} +.layui-form-select dl dd.layui-disabled{background-color: #fff;} +.layui-form-selected dl{display: block;} +.layui-form-selected .layui-edge{margin-top: -9px; -webkit-transform:rotate(180deg); transform: rotate(180deg);} +.layui-form-selected .layui-edge{margin-top: -3px\0; } +:root .layui-form-selected .layui-edge{margin-top: -9px\0/IE9;} +.layui-form-selectup dl{top: auto; bottom: 42px;} +.layui-select-none{margin: 5px 0; text-align: center; color: #999;} + +.layui-select-disabled .layui-disabled{border-color: #eee !important;} +.layui-select-disabled .layui-edge{border-top-color: #d2d2d2} + +/* 复选框 */.layui-form-checkbox{position: relative; display: inline-block; vertical-align: middle; height: 30px; line-height: 28px; margin-right: 10px; padding-right: 30px; border: 1px solid #d2d2d2; background-color: #fff; cursor: pointer; font-size: 0; border-radius: 2px; -webkit-transition: .1s linear; transition: .1s linear; box-sizing: border-box;} +.layui-form-checkbox:hover{border: 1px solid #c2c2c2;} +.layui-form-checkbox *{display: inline-block; vertical-align: middle;} +.layui-form-checkbox span{padding: 0 10px; height: 100%; font-size: 14px; background-color: #d2d2d2; color: #fff; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;} +.layui-form-checkbox:hover span{background-color: #c2c2c2;} +.layui-form-checkbox i{position: absolute; right: 0; width: 30px; color: #fff; font-size: 20px; text-align: center;} +.layui-form-checkbox:hover i{color: #c2c2c2;} +.layui-form-checked, .layui-form-checked:hover{border-color: #5FB878;} +.layui-form-checked span, .layui-form-checked:hover span{background-color: #5FB878;} +.layui-form-checked i, .layui-form-checked:hover i{color: #5FB878;} +.layui-form-item .layui-form-checkbox{margin-top: 4px;} + +/* 复选框-原始风格 */.layui-form-checkbox[lay-skin="primary"]{height: auto!important; line-height: normal!important; border: none!important; margin-right: 0; padding-right: 0; background: none;} +.layui-form-checkbox[lay-skin="primary"] span{float: right; padding-right: 15px; line-height: 18px; background: none; color: #666;} +.layui-form-checkbox[lay-skin="primary"] i{position: relative; top: 0; width: 16px; height: 16px; line-height: 16px; border: 1px solid #d2d2d2; font-size: 12px; border-radius: 2px; background-color: #fff; -webkit-transition: .1s linear; transition: .1s linear;} +.layui-form-checkbox[lay-skin="primary"]:hover i{border-color: #5FB878; color: #fff;} +.layui-form-checked[lay-skin="primary"] i{border-color: #5FB878; background-color: #5FB878; color: #fff;} +.layui-checkbox-disbaled[lay-skin="primary"] span{background: none!important;} +.layui-checkbox-disbaled[lay-skin="primary"]:hover i{border-color: #d2d2d2;} +.layui-form-item .layui-form-checkbox[lay-skin="primary"]{margin-top: 10px;} + +/* 复选框-开关风格 */.layui-form-switch{position: relative; display: inline-block; vertical-align: middle; height: 22px; line-height: 22px; width: 42px; padding: 0 5px; margin-top: 8px; border: 1px solid #d2d2d2; border-radius: 20px; cursor: pointer; background-color: #fff; -webkit-transition: .1s linear; transition: .1s linear;} +.layui-form-switch i{position: absolute; left: 5px; top: 3px; width: 16px; height: 16px; border-radius: 20px; background-color: #d2d2d2; -webkit-transition: .1s linear; transition: .1s linear;} +.layui-form-switch em{position: absolute; right: 5px; top: 0; width: 25px; padding: 0!important; text-align: center!important; color: #999!important; font-style: normal!important; font-size: 12px;} +.layui-form-onswitch{border-color: #5FB878; background-color: #5FB878;} +.layui-form-onswitch i{left: 32px; background-color: #fff;} +.layui-form-onswitch em{left: 5px; right: auto; color: #fff!important;} + +.layui-checkbox-disbaled{border-color: #e2e2e2 !important;} +.layui-checkbox-disbaled span{background-color: #e2e2e2 !important;} +.layui-checkbox-disbaled:hover i{color: #fff !important;} + +/* 单选框 */ +.layui-form-radio{display: inline-block; vertical-align: middle; line-height: 28px; margin: 6px 10px 0 0; padding-right: 10px; cursor: pointer; font-size: 0;} +.layui-form-radio *{display: inline-block; vertical-align: middle;} +.layui-form-radio i{margin-right: 8px; font-size: 22px; color: #c2c2c2;} +.layui-form-radio span{font-size: 14px;} +.layui-form-radioed i,.layui-form-radio i:hover{color: #5FB878;} +.layui-radio-disbaled i{color: #e2e2e2 !important;} + +/* 表单方框风格 */.layui-form-pane .layui-form-label{width: 110px; padding: 8px 15px; height: 38px; line-height: 20px; border: 1px solid #e6e6e6; border-radius: 2px 0 0 2px; text-align: center; background-color: #FBFBFB; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; box-sizing: border-box;} +.layui-form-pane .layui-input-inline{margin-left: -1px;} +.layui-form-pane .layui-input-block{margin-left: 110px; left: -1px;} +.layui-form-pane .layui-input{border-radius: 0 2px 2px 0;} +.layui-form-pane .layui-form-text .layui-form-label{float: none; width: 100%; border-right: 1px solid #e6e6e6; border-radius: 2px; box-sizing: border-box; text-align: left;} +.layui-form-pane .layui-form-text .layui-input-inline{display: block; margin: 0; top: -1px; clear: both;} +.layui-form-pane .layui-form-text .layui-input-block{margin: 0; left: 0; top: -1px;} +.layui-form-pane .layui-form-text .layui-textarea{min-height: 100px; border-radius: 0 0 2px 2px;} +.layui-form-pane .layui-form-checkbox{margin: 4px 0 4px 10px;} +.layui-form-pane .layui-form-switch, +.layui-form-pane .layui-form-radio{margin-top: 6px; margin-left: 10px; } +.layui-form-pane .layui-form-item[pane]{position: relative; border: 1px solid #e6e6e6;} +.layui-form-pane .layui-form-item[pane] .layui-form-label{position: absolute; left: 0; top: 0; height: 100%; border-width: 0px; border-right-width: 1px;} +.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left: 110px;} + +/** 表单响应式 **/ +@media screen and (max-width: 450px) { + .layui-form-item .layui-form-label{text-overflow: ellipsis; overflow: hidden; white-space: nowrap;} + .layui-form-item .layui-inline{display: block; margin-right: 0; margin-bottom: 20px; clear: both;} + .layui-form-item .layui-inline:after{content:'\20'; clear:both; display:block; height:0;} + .layui-form-item .layui-input-inline{display: block; float: none; left: -3px; width: auto; margin: 0 0 10px 112px; } + .layui-form-item .layui-input-inline+.layui-form-mid{margin-left: 110px; top: -5px; padding: 0;} + .layui-form-item .layui-form-checkbox{margin-right: 5px; margin-bottom: 5px;} +} + +/** 富文本编辑器 **/ +.layui-layedit{border: 1px solid #d2d2d2; border-radius: 2px;} +.layui-layedit-tool{padding: 3px 5px; border-bottom: 1px solid #e2e2e2; font-size: 0;} +.layedit-tool-fixed{position: fixed; top: 0; border-top: 1px solid #e2e2e2;} +.layui-layedit-tool .layedit-tool-mid, +.layui-layedit-tool .layui-icon{display: inline-block; vertical-align: middle; text-align: center; font-size: 14px;} +.layui-layedit-tool .layui-icon{position: relative; width: 32px; height: 30px; line-height: 30px; margin: 3px 5px; border-radius: 2px; color: #777; cursor: pointer; border-radius: 2px;} +.layui-layedit-tool .layui-icon:hover{color: #393D49;} +.layui-layedit-tool .layui-icon:active{color: #000;} +.layui-layedit-tool .layedit-tool-active{background-color: #e2e2e2; color: #000;} +.layui-layedit-tool .layui-disabled, +.layui-layedit-tool .layui-disabled:hover{color: #d2d2d2; cursor: not-allowed;} +.layui-layedit-tool .layedit-tool-mid{width: 1px; height: 18px; margin: 0 10px; background-color: #d2d2d2;} + +.layedit-tool-html{width: 50px !important; font-size: 30px !important;} +.layedit-tool-b, +.layedit-tool-code, +.layedit-tool-help{font-size: 16px !important;} +.layedit-tool-d, +.layedit-tool-unlink, +.layedit-tool-face, +.layedit-tool-image{font-size: 18px !important;} +.layedit-tool-image input{position: absolute; font-size: 0; left: 0; top: 0; width: 100%; height: 100%; opacity: 0.01; filter: Alpha(opacity=1); cursor: pointer;} + +.layui-layedit-iframe iframe{display: block; width: 100%;} +#LAY_layedit_code{overflow: hidden;} + +/** 分页 **/ +.layui-laypage{display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; margin: 10px 0; font-size: 0;} +.layui-laypage>a:first-child, +.layui-laypage>a:first-child em{border-radius: 2px 0 0 2px;} +.layui-laypage>a:last-child, +.layui-laypage>a:last-child em{border-radius: 0 2px 2px 0;} +.layui-laypage>*:first-child{margin-left: 0!important;} +.layui-laypage>*:last-child{margin-right: 0!important;} +.layui-laypage a, +.layui-laypage span, +.layui-laypage input, +.layui-laypage button, +.layui-laypage select{border: 1px solid #e2e2e2;} +.layui-laypage a, +.layui-laypage span{display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; padding: 0 15px; height: 28px; line-height: 28px; margin: 0 -1px 5px 0; background-color: #fff; color: #333; font-size: 12px;} +.layui-laypage a:hover{color: #009688;} +.layui-laypage em{font-style: normal;} +.layui-laypage .layui-laypage-spr{color:#999; font-weight: 700;} +.layui-laypage a{ text-decoration: none;} +.layui-laypage .layui-laypage-curr{position: relative;} +.layui-laypage .layui-laypage-curr em{position: relative; color: #fff;} +.layui-laypage .layui-laypage-curr .layui-laypage-em{position: absolute; left: -1px; top: -1px; padding: 1px; width: 100%; height: 100%; background-color: #009688; } +.layui-laypage-em{border-radius: 2px;} +.layui-laypage-prev em, +.layui-laypage-next em{font-family: Sim sun; font-size: 16px;} + +.layui-laypage .layui-laypage-count, +.layui-laypage .layui-laypage-limits, +.layui-laypage .layui-laypage-skip{margin-left: 10px; margin-right: 10px; padding: 0; border: none;} +.layui-laypage .layui-laypage-limits{vertical-align: top;} +.layui-laypage select{height: 22px; padding: 3px; border-radius: 2px; cursor: pointer;} +.layui-laypage .layui-laypage-skip{height: 30px; line-height: 30px; color: #999;} +.layui-laypage input, .layui-laypage button{height: 30px; line-height: 30px; border:1px solid #e2e2e2; border-radius: 2px; vertical-align: top; background-color: #fff; box-sizing: border-box;} +.layui-laypage input{display: inline-block; width: 40px; margin: 0 10px; padding: 0 3px; text-align: center;} +.layui-laypage input:focus, +.layui-laypage select:focus{border-color: #009688!important;} +.layui-laypage button{margin-left: 10px; padding: 0 10px; cursor: pointer;} + +/** 流加载 **/ +.layui-flow-more{margin: 10px 0; text-align: center; color: #999; font-size: 14px;} +.layui-flow-more a{ height: 32px; line-height: 32px; } +.layui-flow-more a *{display: inline-block; vertical-align: top;} +.layui-flow-more a cite{padding: 0 20px; border-radius: 3px; background-color: #eee; color: #333; font-style: normal;} +.layui-flow-more a cite:hover{opacity: 0.8;} +.layui-flow-more a i{font-size: 30px; color: #737383;} + +/** 表格 **/ +.layui-table{width: 100%; margin: 10px 0; background-color: #fff;} +.layui-table tr{transition: all .3s; -webkit-transition: all .3s;} +.layui-table thead tr, +.layui-table-header, +.layui-table-fixed-l tr, +.layui-table-tool, +.layui-table-patch, +.layui-table-mend{background-color: #f2f2f2;} +.layui-table th{text-align: left; font-weight: 400;} + +.layui-table th, +.layui-table td, +.layui-table[lay-skin="line"], +.layui-table[lay-skin="row"], +.layui-table-view, +.layui-table-header, +.layui-table-tool{border: 1px solid #e2e2e2} + +.layui-table th, .layui-table td{position: relative; padding: 9px 15px; min-height: 20px; line-height: 20px; font-size: 14px;} +.layui-table[lay-even] tr:nth-child(even){background-color: #f8f8f8;} +.layui-table tbody tr:hover, +.layui-table-hover{background-color: #f2f2f2!important;} +.layui-table-click{background-color: #FFEEE8!important;} + +.layui-table[lay-skin="line"] th, .layui-table[lay-skin="line"] td{border-width: 0; border-bottom-width: 1px;} +.layui-table[lay-skin="row"] th, .layui-table[lay-skin="row"] td{border-width: 0;border-right-width: 1px;} +.layui-table[lay-skin="nob"] th, .layui-table[lay-skin="nob"] td{border: none;} + +.layui-table img{max-width:100px;} + +/* 大表格 */.layui-table[lay-size="lg"] th, +.layui-table[lay-size="lg"] td{padding-top: 15px; padding-right: 30px; padding-bottom: 15px; padding-left: 30px;} +.layui-table-view .layui-table[lay-size="lg"] .layui-table-cell{height: 40px; line-height: 40px;} +/* 小表格 */.layui-table[lay-size="sm"] th, +.layui-table[lay-size="sm"] td{padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; font-size: 12px;} +.layui-table-view .layui-table[lay-size="sm"] .layui-table-cell{height: 20px; line-height: 20px;} + +/* 数据表格 */ +.layui-table[lay-data]{display: none;} +.layui-table-view{position: relative; margin: 10px 0; overflow: hidden;} +.layui-table-view .layui-table{position: relative; width: auto; margin: 0;} +.layui-table-view .layui-table[lay-skin="line"]{border-width: 0; border-right-width: 1px;} +.layui-table-view .layui-table[lay-skin="row"]{border-width: 0; border-bottom-width: 1px;} +.layui-table-view .layui-table th, +.layui-table-view .layui-table td{padding: 5px 0; border-top: none; border-left: none;} +.layui-table-view .layui-table td{cursor: default;} +.layui-table-view .layui-form-checkbox[lay-skin="primary"] i{width: 18px; height: 18px;} +.layui-table-header{border-width: 0; border-bottom-width: 1px; overflow: hidden;} +.layui-table-header .layui-table{margin-bottom: -1px;} +.layui-table-sort{width: 20px; height: 20px; margin-left: 5px; cursor: pointer!important;} +.layui-table-sort .layui-edge{left: 5px; border-width: 5px;} +.layui-table-sort .layui-table-sort-asc{top: 4px; border-top: none; border-bottom-style: solid; border-bottom-color: #b2b2b2;} +.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color: #666;} +.layui-table-sort .layui-table-sort-desc{bottom: 4px; border-bottom: none; border-top-style: solid; border-top-color: #b2b2b2;} +.layui-table-sort .layui-table-sort-desc:hover{border-top-color: #666;} +.layui-table-sort[lay-sort="asc"] .layui-table-sort-asc{border-bottom-color: #000;} +.layui-table-sort[lay-sort="desc"] .layui-table-sort-desc{border-top-color: #000;} +.layui-table-cell{height: 28px; line-height: 28px; padding: 0 15px; position: relative; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; box-sizing: border-box;} +.layui-table-cell .layui-form-checkbox{top: -1px;} +.layui-table-cell .layui-table-link{color: #01AAED;} +.laytable-cell-space{width: 15px; padding: 0; text-align: center;} + +.layui-table-body{position: relative; overflow: auto; margin-right: -1px; margin-bottom: -1px;} +.layui-table-body .layui-none{line-height: 40px; text-align: center; color: #999;} +.layui-table-fixed{position: absolute; left: 0; top: 0;} +.layui-table-fixed .layui-table-body{overflow: hidden;} +.layui-table-fixed-r{left: auto; right: -1px; border-left: 1px solid #e2e2e2; box-shadow: -1px 0 8px rgba(0,0,0,.1);} +.layui-table-fixed-r .layui-table-header{position: relative; overflow: visible;} +.layui-table-mend{position: absolute; right: -49px; top: 0; height: 100%; width: 50px;} +.layui-table-tool{position: relative; width: 100%; padding: 7px 10px 0 0; border-width: 0; border-top-width: 1px; height: 41px; margin-bottom: -1px; font-size: 12px; white-space: nowrap;} +.layui-table-tool:hover{overflow-x: auto;} + +.layui-table-page{height: 26px;} +.layui-table-tool .layui-laypage{margin: 0;} +.layui-table-tool .layui-laypage span, +.layui-table-tool .layui-laypage a{height: 26px; line-height: 26px; border: none; background: none; padding: 0 12px} +.layui-table-tool .layui-laypage .layui-laypage-count, +.layui-table-tool .layui-laypage .layui-laypage-limits, +.layui-table-tool .layui-laypage .layui-laypage-skip{margin-left: 0; padding: 0;} +.layui-table-tool .layui-laypage .layui-laypage-total{padding: 0 10px;} +.layui-table-tool .layui-laypage .layui-laypage-spr{padding: 0;} +.layui-table-tool .layui-laypage input, +.layui-table-tool .layui-laypage button{height: 26px; line-height: 26px; } +.layui-table-tool .layui-laypage input{width: 40px;} +.layui-table-tool .layui-laypage button{padding: 0 10px;} +.layui-table-view select[lay-ignore]{display: inline-block;} +.layui-table-tool select{height: 18px;} +.layui-table-patch .layui-table-cell{padding: 0; width: 30px;} +.layui-table-edit{position: absolute; left: 0; top: 0; width: 100%; height: 100%; padding: 0 15px 1px; border: none;} +.layui-table-edit:focus{background-color: #F0F9F2;} + +body .layui-table-tips .layui-layer-content{background: none; padding: 0; box-shadow: 0 1px 6px rgba(0,0,0,.1);} +.layui-table-tips-main{margin: -44px 0 0 -1px; max-height: 150px; padding: 8px 15px; font-size: 14px; overflow-y: scroll; background-color: #fff; color: #333; border: 1px solid #e2e2e2} +.layui-table-tips-c{position: absolute; right: -3px; top: -12px; width: 18px; height: 18px; padding: 3px; text-align: center; font-weight: 700; border-radius: 100%; font-size: 14px; cursor: pointer; background-color: #666;} +.layui-table-tips-c:hover{background-color: #999;} + + +/** 文件上传 **/ +.layui-upload-file{display: none!important; opacity: .01; filter: Alpha(opacity=1);} +.layui-upload-list{margin: 10px 0;} +.layui-upload-choose{padding: 0 10px; color: #999;} +.layui-upload-drag{position: relative; display: inline-block; padding: 30px; border: 1px dashed #e2e2e2; background-color: #fff; text-align: center; cursor: pointer; color: #999;} +.layui-upload-drag .layui-icon{font-size: 50px; color: #009688;} +.layui-upload-drag[lay-over]{border-color: #009688} +.layui-upload-form{display: inline-block;} +.layui-upload-iframe{position: absolute; width: 0; height: 0; border: 0; visibility: hidden} +.layui-upload-wrap{position: relative; display: inline-block; vertical-align: middle;} +.layui-upload-wrap .layui-upload-file{display: block!important; position: absolute; left: 0; top: 0; z-index: 10; font-size: 100px; width: 100%; height: 100%; opacity: .01; filter: Alpha(opacity=1); cursor: pointer;} + + + +/** 代码修饰器 **/ +.layui-code{position: relative; margin: 10px 0; padding: 15px; line-height: 20px; border: 1px solid #ddd; border-left-width: 6px; background-color: #F2F2F2; color: #333; font-family: Courier New; font-size: 12px;} + + +/** 树组件 **/ +.layui-tree{line-height: 26px;} +.layui-tree li{text-overflow: ellipsis; overflow:hidden; white-space: nowrap;} +.layui-tree li a, +.layui-tree li .layui-tree-spread{display: inline-block; vertical-align: top; height: 26px; *display: inline; *zoom:1; cursor: pointer;} +.layui-tree li a{font-size: 0;} +.layui-tree li a i{font-size: 16px;} +.layui-tree li a cite{padding: 0 6px; font-size: 14px; font-style: normal;} +.layui-tree li i{padding-left: 6px; color: #333; -moz-user-select: none;} +.layui-tree li .layui-tree-check{font-size: 13px;} +.layui-tree li .layui-tree-check:hover{color: #009E94;} +.layui-tree li ul{display: none; margin-left: 20px;} +.layui-tree li .layui-tree-enter{line-height: 24px; border: 1px dotted #000;} +.layui-tree-drag{display: none; position: absolute; left: -666px; top: -666px; background-color: #f2f2f2; padding: 5px 10px; border: 1px dotted #000; white-space: nowrap} +.layui-tree-drag i{padding-right: 5px;} + +/** 导航菜单 **/ +.layui-nav{position: relative; padding: 0 20px; background-color: #393D49; color: #fff; border-radius: 2px; font-size: 0; box-sizing: border-box;} +.layui-nav *{font-size: 14px;} +.layui-nav .layui-nav-item{position: relative; display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; line-height: 60px;} +.layui-nav .layui-nav-item a{display: block; padding: 0 20px; color: #fff; color: rgba(255,255,255,.7); transition: all .3s; -webkit-transition: all .3s;} +.layui-nav-bar, +.layui-nav .layui-this:after, +.layui-nav-tree .layui-nav-itemed:after{position: absolute; left: 0; top: 0; width: 0; height: 5px; background-color: #5FB878; transition: all .2s; -webkit-transition: all .2s;} +.layui-nav-bar{z-index: 1000;} +.layui-nav .layui-this a +,.layui-nav .layui-nav-item a:hover{color: #fff;} +.layui-nav .layui-this:after{content: ''; top: auto; bottom: 0; width: 100%;} +.layui-nav-img{width: 30px; height: 30px; margin-right: 10px; border-radius: 50%;} + +.layui-nav .layui-nav-more{content:''; width: 0; height: 0; border-style: dashed; border-color: transparent; overflow: hidden; cursor: pointer; transition: all .2s; -webkit-transition: all .2s;} +.layui-nav .layui-nav-more{position: absolute; top: 28px; right: 3px; border-width: 6px; border-top-style: solid; border-top-color: #fff; border-top-color: rgba(255,255,255,.7);} +.layui-nav .layui-nav-mored, +.layui-nav-itemed .layui-nav-more{top: 22px; border-style: dashed; border-color: transparent; border-bottom-style: solid; border-bottom-color: #fff;} + +.layui-nav-child{display: none; position: absolute; left: 0; top: 65px; min-width: 100%; line-height: 36px; padding: 5px 0; box-shadow: 0 2px 4px rgba(0,0,0,.12); border: 1px solid #d2d2d2; background-color: #fff; z-index: 100; border-radius: 2px; white-space: nowrap;} +.layui-nav .layui-nav-child a{color: #333;} +.layui-nav .layui-nav-child a:hover{background-color: #f2f2f2; color: #000;} +.layui-nav-child dd{position: relative;} +.layui-nav-child dd.layui-this{background-color: #5FB878; color: #fff;} +.layui-nav .layui-nav-child dd.layui-this a{background-color: #5FB878; color: #fff;} +.layui-nav-child dd.layui-this:after{display: none;} + +/* 垂直导航菜单 */.layui-nav-tree{width: 200px; padding: 0;} +.layui-nav-tree .layui-nav-item{display: block; width: 100%; line-height: 45px;} +.layui-nav-tree .layui-nav-item a{height: 45px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;} +.layui-nav-tree .layui-nav-item a:hover{background-color: #4E5465;} +.layui-nav-tree .layui-nav-bar{width: 5px; height: 0;} +.layui-nav-tree .layui-this, +.layui-nav-tree .layui-this>a, +.layui-nav-tree .layui-this>a:hover, +.layui-nav-tree .layui-nav-child dd.layui-this, +.layui-nav-tree .layui-nav-child dd.layui-this a{background-color: #009688; color: #fff;} +.layui-nav-tree .layui-this:after{display: none;} +.layui-nav-tree .layui-nav-title a, +.layui-nav-tree .layui-nav-title a:hover, +.layui-nav-itemed>a{color: #fff !important;} +.layui-nav-tree .layui-nav-bar{background-color: #009688;} + +.layui-nav-tree .layui-nav-child{position: relative; z-index: 0; top: 0; border: none; box-shadow: none;} +.layui-nav-tree .layui-nav-child a{height: 40px; line-height: 40px;} +.layui-nav-tree .layui-nav-child a{color: #fff; color: rgba(255,255,255,.7);} +.layui-nav-tree .layui-nav-child a:hover, +.layui-nav-tree .layui-nav-child{background: none; color: #fff;} +.layui-nav-tree .layui-nav-more{top: 20px; right: 10px;} +.layui-nav-itemed .layui-nav-more{top: 14px;} +.layui-nav-itemed .layui-nav-child{display: block; padding: 0; background-color: rgba(0,0,0,.3) !important;} + +/* 侧边 */.layui-nav-side{position: fixed; top: 0; bottom: 0; left: 0; overflow-x: hidden; z-index: 999;} + +/* 导航主题色 */.layui-bg-blue .layui-nav-bar, +.layui-bg-blue .layui-this:after, +.layui-bg-blue .layui-nav-itemed:after{background-color: #93D1FF;} +.layui-bg-blue .layui-nav-child dd.layui-this{background-color: #1E9FFF;} +.layui-nav-tree.layui-bg-blue .layui-nav-title a, +.layui-nav-tree.layui-bg-blue .layui-nav-title a:hover, +.layui-bg-blue .layui-nav-itemed>a{background-color: #007DDB !important;} + + +/** 面包屑 **/ +.layui-breadcrumb{visibility: hidden; font-size: 0;} +.layui-breadcrumb a{padding-right: 8px; line-height: 22px; font-size: 14px; color: #333 !important;} +.layui-breadcrumb a:hover{color: #01AAED !important;} +.layui-breadcrumb a span, +.layui-breadcrumb a cite{ color: #666; cursor: text; font-style: normal;} +.layui-breadcrumb a span{padding-left: 8px; font-family: Sim sun;} + +/** Tab选项卡 **/ +.layui-tab{margin: 10px 0; text-align: left !important;} +.layui-tab[overflow]>.layui-tab-title{overflow: hidden;} +.layui-tab-title{position: relative; left: 0; height: 40px; white-space: nowrap; font-size: 0; border-bottom: 1px solid #e2e2e2; transition: all .2s; -webkit-transition: all .2s;} +.layui-tab-title li{display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; font-size: 14px; transition: all .2s; -webkit-transition: all .2s;} +.layui-tab-title li{position: relative; line-height: 40px; min-width: 65px; padding: 0 15px; text-align: center; cursor: pointer;} +.layui-tab-title li a{display: block;} +.layui-tab-title .layui-this{color: #000;} + +.layui-tab-title .layui-this:after{position: absolute; left:0; top: 0; content: ''; width:100%; height: 41px; border: 1px solid #e2e2e2; border-bottom-color: #fff; border-radius: 2px 2px 0 0; box-sizing: border-box; pointer-events: none;} +.layui-tab-bar{position: absolute; right: 0; top: 0; z-index: 10; width: 30px; height: 39px; line-height: 39px; border: 1px solid #e2e2e2; border-radius: 2px; text-align: center; background-color: #fff; cursor: pointer;} +.layui-tab-bar .layui-icon{position: relative; display: inline-block; top: 3px; transition: all .3s; -webkit-transition: all .3s;} +.layui-tab-item{display: none;} +.layui-tab-more{padding-right: 30px; height: auto !important; white-space: normal !important;} +.layui-tab-more li.layui-this:after{border-bottom-color: #e2e2e2; border-radius: 2px;} +.layui-tab-more .layui-tab-bar .layui-icon{top: -2px; top: 3px\0; -webkit-transform: rotate(180deg); transform: rotate(180deg);} +:root .layui-tab-more .layui-tab-bar .layui-icon{top: -2px\0/IE9;} + +.layui-tab-content{padding: 10px;} + +/* Tab关闭 */.layui-tab-title li .layui-tab-close{position: relative; display: inline-block; width: 18px; height: 18px; line-height: 20px; margin-left: 8px; top: 1px; text-align: center; font-size: 14px; color: #c2c2c2; transition: all .2s; -webkit-transition: all .2s;} +.layui-tab-title li .layui-tab-close:hover{border-radius: 2px; background-color: #FF5722; color: #fff;} + +/* Tab简洁风格 */.layui-tab-brief > .layui-tab-title .layui-this{color: #009688;} +.layui-tab-brief > .layui-tab-title .layui-this:after +,.layui-tab-brief > .layui-tab-more li.layui-this:after{border: none; border-radius: 0; border-bottom: 2px solid #5FB878;} +.layui-tab-brief[overflow] > .layui-tab-title .layui-this:after{top: -1px;} + +/* Tab卡片风格 */.layui-tab-card{border: 1px solid #e2e2e2; border-radius: 2px; box-shadow: 0 2px 5px 0 rgba(0,0,0,.1);} +.layui-tab-card > .layui-tab-title{ background-color: #f2f2f2;} +.layui-tab-card > .layui-tab-title li{margin-right: -1px; margin-left: -1px;} +.layui-tab-card > .layui-tab-title .layui-this{background-color: #fff; } +.layui-tab-card > .layui-tab-title .layui-this:after{border-top: none; border-width: 1px; border-bottom-color: #fff;} +.layui-tab-card > .layui-tab-title .layui-tab-bar{height: 40px; line-height: 40px; border-radius: 0; border-top: none; border-right: none;} +.layui-tab-card > .layui-tab-more .layui-this{background: none; color: #5FB878;} +.layui-tab-card > .layui-tab-more .layui-this:after{border: none;} + +/* 时间线 */ +.layui-timeline{padding-left: 5px;} +.layui-timeline-item{position: relative; padding-bottom: 20px;} +.layui-timeline-axis{position: absolute; left: -5px; top: 0; z-index: 10; width: 20px; height: 20px; line-height: 20px; background-color: #fff; color: #5FB878; border-radius: 50%; text-align: center; cursor: pointer;} +.layui-timeline-axis:hover{color: #FF5722;} +.layui-timeline-item:before{content: ''; position: absolute; left: 5px; top: 0; z-index: 0; width: 1px; height: 100%; background-color: #e2e2e2;} +.layui-timeline-item:last-child:before{display: none;} +.layui-timeline-item:first-child:before{display: block;} +.layui-timeline-content{padding-left: 25px;;} +.layui-timeline-title{position: relative; margin-bottom: 10px;} + +/* 小徽章 */ +.layui-badge, +.layui-badge-dot, +.layui-badge-rim{position:relative; display: inline-block; font-size: 12px; background-color: #FF5722; color: #fff;} +.layui-badge{min-width: 8px; height: 18px; line-height: 18px; padding: 0 5px; text-align: center; border-radius: 9px;} +.layui-badge-dot{width: 8px; height: 8px; border-radius: 50%;} +.layui-badge-rim{height: 18px; line-height: 18px; padding: 0 5px; border: 1px solid #e2e2e2; border-radius: 3px; background-color: #fff; color: #666;} + +.layui-btn .layui-badge, +.layui-btn .layui-badge-dot{margin-left: 5px;} +.layui-nav .layui-badge, +.layui-nav .layui-badge-dot{position: absolute; top: 50%; margin: -10px 6px 0;} +.layui-tab-title .layui-badge, +.layui-tab-title .layui-badge-dot{left: 5px; top: -2px;} + +/* carousel 轮播 */ +.layui-carousel{position: relative; left: 0; top: 0; background-color: #f2f2f2;} +.layui-carousel>*[carousel-item]{position: relative; width: 100%; height: 100%; overflow: hidden;} +.layui-carousel>*[carousel-item]:before{position: absolute; content: '\e63d'; left: 50%; top: 50%; width: 100px; line-height: 20px; margin: -10px 0 0 -50px; text-align: center; color: #999; font-family:"layui-icon" !important; font-size: 20px; font-style:normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;} +.layui-carousel>*[carousel-item] > *{display: none; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-color: #f2f2f2; transition-duration: .3s; -webkit-transition-duration: .3s;} +.layui-carousel-updown > *{-webkit-transition: .3s ease-in-out up; transition: .3s ease-in-out up;} +.layui-carousel-arrow{display: none\0; opacity: 0; position: absolute; left: 10px; top: 50%; margin-top: -18px; width: 36px; height: 36px; line-height: 36px; text-align: center; font-size: 20px; border: none 0; border-radius: 50%; background-color: rgba(0,0,0,.2); color: #fff; -webkit-transition-duration: .3s; transition-duration: .3s; cursor: pointer;} +.layui-carousel-arrow[lay-type="add"]{left: auto!important; right: 10px;} +.layui-carousel[lay-arrow="always"] .layui-carousel-arrow{opacity: 1; left: 20px;} +.layui-carousel[lay-arrow="always"] .layui-carousel-arrow[lay-type="add"]{right: 20px;} +.layui-carousel[lay-arrow="none"] .layui-carousel-arrow{display: none;} +.layui-carousel-arrow:hover, +.layui-carousel-ind ul:hover{background-color: rgba(0,0,0,.35);} +.layui-carousel:hover .layui-carousel-arrow{display: block\0; opacity: 1; left: 20px;} +.layui-carousel:hover .layui-carousel-arrow[lay-type="add"]{right: 20px;} +.layui-carousel-ind{position: relative; top: -35px; width: 100%; line-height: 0!important; text-align: center; font-size: 0;} +.layui-carousel[lay-indicator="outside"]{margin-bottom: 30px;} +.layui-carousel[lay-indicator="outside"] .layui-carousel-ind{top: 10px;} +.layui-carousel[lay-indicator="outside"] .layui-carousel-ind ul{background-color: rgba(0,0,0,.5);} +.layui-carousel[lay-indicator="none"] .layui-carousel-ind{display: none;} +.layui-carousel-ind ul{display: inline-block; padding: 5px; background-color: rgba(0,0,0,.2); border-radius: 10px; -webkit-transition-duration: .3s; transition-duration: .3s;} +.layui-carousel-ind li{display: inline-block; width: 10px; height: 10px; margin: 0 3px; font-size: 14px; background-color: #e2e2e2; background-color: rgba(255,255,255,.5); border-radius: 50%; cursor: pointer; -webkit-transition-duration: .3s; transition-duration: .3s;} +.layui-carousel-ind li:hover{background-color: rgba(255,255,255,.7);} +.layui-carousel-ind li.layui-this{background-color: #fff;} +.layui-carousel>*[carousel-item]>.layui-this, +.layui-carousel>*[carousel-item]>.layui-carousel-prev, +.layui-carousel>*[carousel-item]>.layui-carousel-next{display: block} +.layui-carousel>*[carousel-item]>.layui-this{left: 0;} +.layui-carousel>*[carousel-item]>.layui-carousel-prev{left: -100%;} +.layui-carousel>*[carousel-item]>.layui-carousel-next{left: 100%;} +.layui-carousel>*[carousel-item]>.layui-carousel-prev.layui-carousel-right, +.layui-carousel>*[carousel-item]>.layui-carousel-next.layui-carousel-left{left: 0;} +.layui-carousel>*[carousel-item]>.layui-this.layui-carousel-left{left: -100%;} +.layui-carousel>*[carousel-item]>.layui-this.layui-carousel-right{left: 100%;} + +/* 上下切换 */.layui-carousel[lay-anim="updown"] .layui-carousel-arrow{left: 50%!important; top: 20px; margin: 0 0 0 -18px;} +.layui-carousel[lay-anim="updown"] .layui-carousel-arrow[lay-type="add"]{top: auto!important; bottom: 20px;} +.layui-carousel[lay-anim="updown"] .layui-carousel-ind{position: absolute; top: 50%; right: 20px; width: auto; height: auto;} +.layui-carousel[lay-anim="updown"] .layui-carousel-ind ul{padding: 3px 5px;} +.layui-carousel[lay-anim="updown"] .layui-carousel-ind li{display: block; margin: 6px 0;} + +.layui-carousel[lay-anim="updown"]>*[carousel-item]>*{left: 0!important;} +.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-this{top: 0;} +.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-carousel-prev{top: -100%;} +.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-carousel-next{top: 100%;} +.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-carousel-prev.layui-carousel-right, +.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-carousel-next.layui-carousel-left{top: 0;} +.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-this.layui-carousel-left{top: -100%;} +.layui-carousel[lay-anim="updown"]>*[carousel-item]>.layui-this.layui-carousel-right{top: 100%;} + +/* 渐显切换 */.layui-carousel[lay-anim="fade"]>*[carousel-item]>*{left: 0!important;} +.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-carousel-prev, +.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-carousel-next{opacity: 0;} +.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-carousel-prev.layui-carousel-right, +.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-carousel-next.layui-carousel-left{opacity: 1;} +.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-this.layui-carousel-left, +.layui-carousel[lay-anim="fade"]>*[carousel-item]>.layui-this.layui-carousel-right{opacity: 0} + + +/** fixbar **/ +.layui-fixbar{position: fixed; right: 15px; bottom: 15px; z-index: 9999;} +.layui-fixbar li{width: 50px; height: 50px; line-height: 50px; margin-bottom: 1px; text-align:center; cursor: pointer; font-size:30px; background-color: #9F9F9F; color:#fff; border-radius: 2px; opacity: 0.95;} +.layui-fixbar li:hover{opacity: 0.85;} +.layui-fixbar li:active{opacity: 1;} +.layui-fixbar .layui-fixbar-top{display: none; font-size: 40px;} + +/** 表情面板 **/ +body .layui-util-face{border: none; background: none;} +body .layui-util-face .layui-layer-content{padding:0; background-color:#fff; color:#666; box-shadow:none} +.layui-util-face .layui-layer-TipsG{display:none;} +.layui-util-face ul{position:relative; width:372px; padding:10px; border:1px solid #D9D9D9; background-color:#fff; box-shadow: 0 0 20px rgba(0,0,0,.2);} +.layui-util-face ul li{cursor: pointer; float: left; border: 1px solid #e8e8e8; height: 22px; width: 26px; overflow: hidden; margin: -1px 0 0 -1px; padding: 4px 2px; text-align: center;} +.layui-util-face ul li:hover{position: relative; z-index: 2; border: 1px solid #eb7350; background: #fff9ec;} + +/** 动画 **/ +.layui-anim{-webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-fill-mode: both; animation-fill-mode: both;} +.layui-anim.layui-icon{display: inline-block;} +.layui-anim-loop{-webkit-animation-iteration-count: infinite; animation-iteration-count: infinite;} + +@-webkit-keyframes layui-rotate{ /* 循环旋转 */ + from {-webkit-transform: rotate(0deg);} + to {-webkit-transform: rotate(360deg);} +} +@keyframes layui-rotate{ + from {transform: rotate(0deg);} + to {transform: rotate(360deg);} +} +.layui-anim-rotate{-webkit-animation-name: layui-rotate; animation-name: layui-rotate; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: linear; animation-timing-function: linear;} + +@-webkit-keyframes layui-up{ /* 从最底部往上滑入 */ + from {-webkit-transform: translate3d(0, 100%, 0); opacity: 0.3;} + to {-webkit-transform: translate3d(0, 0, 0); opacity: 1;} +} +@keyframes layui-up{ + from {transform: translate3d(0, 100%, 0); opacity: 0.3;} + to {transform: translate3d(0, 0, 0); opacity: 1;} +} +.layui-anim-up{-webkit-animation-name: layui-up; animation-name: layui-up;} + +@-webkit-keyframes layui-upbit{ /* 微微往上滑入 */ + from {-webkit-transform: translate3d(0, 30px, 0); opacity: 0.3;} + to {-webkit-transform: translate3d(0, 0, 0); opacity: 1;} +} +@keyframes layui-upbit{ + from {transform: translate3d(0, 30px, 0); opacity: 0.3;} + to {transform: translate3d(0, 0, 0); opacity: 1;} +} +.layui-anim-upbit{-webkit-animation-name: layui-upbit; animation-name: layui-upbit;} + +@-webkit-keyframes layui-scale { /* 放大 */ + 0% {opacity: 0.3; -webkit-transform: scale(.5);} + 100% {opacity: 1; -webkit-transform: scale(1);} +} +@keyframes layui-scale { + 0% {opacity: 0.3; -ms-transform: scale(.5); transform: scale(.5);} + 100% {opacity: 1; -ms-transform: scale(1); transform: scale(1);} +} +.layui-anim-scale{-webkit-animation-name: layui-scale; animation-name: layui-scale} + +@-webkit-keyframes layui-scale-spring { /* 弹簧式放大 */ + 0% {opacity: 0.5; -webkit-transform: scale(.5);} + 80% {opacity: 0.8; -webkit-transform: scale(1.1);} + 100% {opacity: 1; -webkit-transform: scale(1);} +} +@keyframes layui-scale-spring { + 0% {opacity: 0.5; transform: scale(.5);} + 80% {opacity: 0.8; transform: scale(1.1);} + 100% {opacity: 1; transform: scale(1);} +} +.layui-anim-scaleSpring{-webkit-animation-name: layui-scale-spring; animation-name: layui-scale-spring} + +@-webkit-keyframes layui-fadein { /* 渐现 */ + 0% {opacity: 0;} + 100% {opacity: 1;} +} +@keyframes layui-fadein { + 0% {opacity: 0;} + 100% {opacity: 1;} +} +.layui-anim-fadein{-webkit-animation-name: layui-fadein; animation-name: layui-fadein} + +@-webkit-keyframes layui-fadeout { /* 渐隐 */ + 0% {opacity: 1;} + 100% {opacity: 0;} +} +@keyframes layui-fadeout { + 0% {opacity: 1;} + 100% {opacity: 0;} +} +.layui-anim-fadeout{-webkit-animation-name: layui-fadeout; animation-name: layui-fadeout} + + + diff --git a/novel-admin/src/main/resources/static/css/layui.mobile.css b/novel-admin/src/main/resources/static/css/layui.mobile.css new file mode 100644 index 0000000..a58b294 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/layui.mobile.css @@ -0,0 +1,191 @@ +/** + + @Name: layui mobile + @Author: 贤心 + @Site: http://www.layui.com/mobile/ + + */ + +/* reset */ +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,input,button,textarea,p,blockquote,th,td,form,legend{margin:0; padding:0; -webkit-tap-highlight-color:rgba(0,0,0,0)} +html{font:12px 'Helvetica Neue','PingFang SC',STHeitiSC-Light,Helvetica,Arial,sans-serif; -ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;} +a,button,input{-webkit-tap-highlight-color:rgba(255,0,0,0);} +a{text-decoration: none; background:transparent} +a:active,a:hover{outline:0} +table{border-collapse:collapse;border-spacing:0} +li{list-style:none;} +b,strong{font-weight:700;} +h1, h2, h3, h4, h5, h6{font-weight:500;} +address,cite,dfn,em,var{font-style:normal;} +dfn{font-style:italic} +sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} +img{border:0; vertical-align: bottom} +button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0; outline: 0;} +button,select{text-transform:none} +select{-webkit-appearance: none; border:none;} +input{line-height:normal; } +input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0} +input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto} +input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box} +input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none} +label,input{vertical-align: middle;} + + +/** 图标字体 **/ +@font-face {font-family: 'layui-icon'; + src: url('../font/iconfont.eot?v=1.0.7'); + src: url('../font/iconfont.eot?v=1.0.7#iefix') format('embedded-opentype'), + url('../font/iconfont.woff?v=1.0.7') format('woff'), + url('../font/iconfont.ttf?v=1.0.7') format('truetype'), + url('../font/iconfont.svg?v=1.0.7#iconfont') format('svg'); +} + +.layui-icon{ + font-family:"layui-icon" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + + +/** 基础通用 **/ +/* 消除第三方ui可能造成的冲突 */.layui-box, .layui-box *{-webkit-box-sizing: content-box !important; -moz-box-sizing: content-box !important; box-sizing: content-box !important;} +.layui-border-box, .layui-border-box *{-webkit-box-sizing: border-box !important; -moz-box-sizing: border-box !important; box-sizing: border-box !important;} +.layui-inline{position: relative; display: inline-block; *display:inline; *zoom:1; vertical-align: middle;} +/* 三角形 */.layui-edge{position: absolute; width: 0; height: 0; border-style: dashed; border-color: transparent; overflow: hidden;} +/* 单行溢出省略 */.layui-elip{text-overflow: ellipsis; overflow: hidden; white-space: nowrap;} +/* 屏蔽选中 */.layui-unselect{-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;} +.layui-disabled,.layui-disabled:active{background-color: #d2d2d2 !important; color: #fff !important; cursor: not-allowed !important;} +/* 纯圆角 */.layui-circle{border-radius: 100%;} +.layui-show{display: block !important;} +.layui-hide{display: none !important;} + + +.layui-upload-iframe{position: absolute; width: 0px; height: 0px; border: 0px; visibility: hidden;} +.layui-upload-enter{border: 1px solid #009E94; background-color: #009E94; color: #fff; -webkit-transform: scale(1.1); transform: scale(1.1);} + + +/* 弹出动画 */ +@-webkit-keyframes layui-m-anim-scale { /* 默认 */ + 0% {opacity: 0; -webkit-transform: scale(.5); transform: scale(.5)} + 100% {opacity: 1; -webkit-transform: scale(1); transform: scale(1)} +} +@keyframes layui-m-anim-scale { /* 由小到大 */ + 0% {opacity: 0; -webkit-transform: scale(.5); transform: scale(.5)} + 100% {opacity: 1; -webkit-transform: scale(1); transform: scale(1)} +} +.layui-m-anim-scale{animation-name: layui-m-anim-scale; -webkit-animation-name: layui-m-anim-scale;} + +@-webkit-keyframes layui-m-anim-up{ /* 从下往上 */ + 0%{opacity: 0; -webkit-transform: translateY(800px); transform: translateY(800px)} + 100%{opacity: 1; -webkit-transform: translateY(0); transform: translateY(0)} +} +@keyframes layui-m-anim-up{ + 0%{opacity: 0; -webkit-transform: translateY(800px); transform: translateY(800px)} + 100%{opacity: 1; -webkit-transform: translateY(0); transform: translateY(0)} +} +.layui-m-anim-up{-webkit-animation-name: layui-m-anim-up; animation-name: layui-m-anim-up} + +@-webkit-keyframes layui-m-anim-left{ /* 从右往左 */ + 0%{-webkit-transform: translateX(100%); transform: translateX(100%)} + 100%{-webkit-transform: translateX(0); transform: translateX(0)} +} +@keyframes layui-m-anim-left{ + 0%{-webkit-transform: translateX(100%); transform: translateX(100%)} + 100%{-webkit-transform: translateX(0); transform: translateX(0)} +} +.layui-m-anim-left{-webkit-animation-name: layui-m-anim-left; animation-name: layui-m-anim-left} + +@-webkit-keyframes layui-m-anim-right{ /* 从左往右 */ + 0%{-webkit-transform: translateX(-100%); transform: translateX(-100%)} + 100%{-webkit-transform: translateX(0); transform: translateX(0)} +} +@keyframes layui-m-anim-right{ + 0%{-webkit-transform: translateX(-100%); transform: translateX(-100%)} + 100%{-webkit-transform: translateX(0); transform: translateX(0)} +} +.layui-m-anim-right{-webkit-animation-name: layui-m-anim-right; animation-name: layui-m-anim-right} + +@-webkit-keyframes layui-m-anim-lout{ /* 往左收缩 */ + 0%{-webkit-transform: translateX(0); transform: translateX(0)} + 100%{-webkit-transform: translateX(-100%); transform: translateX(-100%)} +} +@keyframes layui-m-anim-lout{ + 0%{-webkit-transform: translateX(0); transform: translateX(0)} + 100%{-webkit-transform: translateX(-100%); transform: translateX(-100%)} +} +.layui-m-anim-lout{-webkit-animation-name: layui-m-anim-lout; animation-name: layui-m-anim-lout} + +@-webkit-keyframes layui-m-anim-rout{ /* 往右收缩 */ + 0%{-webkit-transform: translateX(0); transform: translateX(0)} + 100%{-webkit-transform: translateX(100%); transform: translateX(100%)} +} +@keyframes layui-m-anim-rout{ + 0%{-webkit-transform: translateX(0); transform: translateX(0)} + 100%{-webkit-transform: translateX(100%); transform: translateX(100%)} +} +.layui-m-anim-rout{-webkit-animation-name: layui-m-anim-rout; animation-name: layui-m-anim-rout} + + +/** layer mobile */ +.layui-m-layer{position:relative; z-index: 19891014;} +.layui-m-layer *{-webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box;} +.layui-m-layershade, +.layui-m-layermain{position:fixed; left:0; top:0; width:100%; height:100%;} +.layui-m-layershade{background-color:rgba(0,0,0, .7); pointer-events:auto;} +.layui-m-layermain{display:table; font-family: Helvetica, arial, sans-serif; pointer-events: none;} +.layui-m-layermain .layui-m-layersection{display:table-cell; vertical-align:middle; text-align:center;} +.layui-m-layerchild{position:relative; display:inline-block; text-align:left; background-color:#fff; font-size:14px; border-radius: 5px; box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); pointer-events:auto; -webkit-overflow-scrolling: touch;} +.layui-m-layerchild{-webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-duration: .2s; animation-duration: .2s;} + +.layui-m-layer0 .layui-m-layerchild{width: 90%; max-width: 640px;} +.layui-m-layer1 .layui-m-layerchild{border:none; border-radius:0;} +.layui-m-layer2 .layui-m-layerchild{width:auto; max-width:260px; min-width:40px; border:none; background: none; box-shadow: none; color:#fff;} +.layui-m-layerchild h3{padding: 0 10px; height: 60px; line-height: 60px; font-size:16px; font-weight: 400; border-radius: 5px 5px 0 0; text-align: center;} +.layui-m-layerchild h3, +.layui-m-layerbtn span{ text-overflow:ellipsis; overflow:hidden; white-space:nowrap;} +.layui-m-layercont{padding: 50px 30px; line-height: 22px; text-align:center;} +.layui-m-layer1 .layui-m-layercont{padding:0; text-align:left;} +.layui-m-layer2 .layui-m-layercont{text-align:center; padding: 0; line-height: 0;} +.layui-m-layer2 .layui-m-layercont i{width:25px; height:25px; margin-left:8px; display:inline-block; background-color:#fff; border-radius:100%;} +.layui-m-layer2 .layui-m-layercont p{margin-top: 20px;} + +/* loading */ +@-webkit-keyframes layui-m-anim-loading{ + 0%,80%,100%{transform:scale(0); -webkit-transform:scale(0)} + 40%{transform:scale(1); -webkit-transform:scale(1)} +} +@keyframes layui-m-anim-loading{ + 0%,80%,100%{transform:scale(0); -webkit-transform:scale(0)} + 40%{transform:scale(1); -webkit-transform:scale(1)} +} +.layui-m-layer2 .layui-m-layercont i{-webkit-animation: layui-m-anim-loading 1.4s infinite ease-in-out; animation: layui-m-anim-loading 1.4s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both;} + +.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0; -webkit-animation-delay: -.32s; animation-delay: -.32s;} +.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay: -.16s; animation-delay: -.16s;} +.layui-m-layer2 .layui-m-layercont>div{line-height:22px; padding-top:7px; margin-bottom:20px; font-size: 14px;} +.layui-m-layerbtn{display: box; display: -moz-box; display: -webkit-box; width: 100%; position:relative; height: 50px; line-height: 50px; font-size: 0; text-align:center; border-top:1px solid #D0D0D0; background-color: #F2F2F2; border-radius: 0 0 5px 5px;} +.layui-m-layerbtn span{position:relative; display: block; -moz-box-flex: 1; box-flex: 1; -webkit-box-flex: 1; text-align:center; font-size:14px; border-radius: 0 0 5px 5px; cursor:pointer;} +.layui-m-layerbtn span[yes]{color: #40AFFE;} +.layui-m-layerbtn span[no]{border-right: 1px solid #D0D0D0; border-radius: 0 0 0 5px;} +.layui-m-layerbtn span:active{background-color: #F6F6F6;} +.layui-m-layerend{position:absolute; right:7px; top:10px; width:30px; height:30px; border: 0; font-weight:400; background: transparent; cursor: pointer; -webkit-appearance: none; font-size:30px;} +.layui-m-layerend::before, .layui-m-layerend::after{position:absolute; left:5px; top:15px; content:''; width:18px; height:1px; background-color:#999; transform:rotate(45deg); -webkit-transform:rotate(45deg); border-radius: 3px;} +.layui-m-layerend::after{transform:rotate(-45deg); -webkit-transform:rotate(-45deg);} + +/* 底部对话框风格 */ +body .layui-m-layer .layui-m-layer-footer{position: fixed; width: 95%; max-width: 100%; margin: 0 auto; left:0; right: 0; bottom: 10px; background: none;} +.layui-m-layer-footer .layui-m-layercont{padding: 20px; border-radius: 5px 5px 0 0; background-color: rgba(255,255,255,.8);} +.layui-m-layer-footer .layui-m-layerbtn{display: block; height: auto; background: none; border-top: none;} +.layui-m-layer-footer .layui-m-layerbtn span{background-color: rgba(255,255,255,.8);} +.layui-m-layer-footer .layui-m-layerbtn span[no]{color: #FD482C; border-top: 1px solid #c2c2c2; border-radius: 0 0 5px 5px;} +.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top: 10px; border-radius: 5px;} + +/* 通用提示 */ +body .layui-m-layer .layui-m-layer-msg{width: auto; max-width: 90%; margin: 0 auto; bottom: -150px; background-color: rgba(0,0,0,.7); color: #fff;} +.layui-m-layer-msg .layui-m-layercont{padding: 10px 20px;} + + + + diff --git a/novel-admin/src/main/resources/static/css/login.css b/novel-admin/src/main/resources/static/css/login.css new file mode 100644 index 0000000..319d1e4 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/login.css @@ -0,0 +1,205 @@ +html{ + height: 100%; + font-family: PingFangSC-Light,'helvetica neue','hiragino sans gb',arial,'microsoft yahei ui','microsoft yahei',simsun,sans-serif; + font-size: 14px; +} +body.signin { + background: #18c8f6; + height: auto; + background:url("../img/backg02.jpg") no-repeat center fixed; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; + color: rgba(255,255,255,.95); +} +.logopanel h1{ + font-size: 40px; +} +.signin-info h3{ + font-size: 24px; +} + +.signinpanel { + width: 912px; + margin: 7% auto 0 auto; +} +.btn-login{ + border: 1px solid #00a3ff; + background-color: #00A3FF; + color: #fff; + border-radius: 2px; +} +.btn-login:hover{ + color: #fff; + background-color: #0097ee; + border: 1px solid #0097ee; +} +.signinpanel .logopanel { + float: none; + width: auto; + padding: 0; + background: none; +} + +.signinpanel .signin-info ul { + list-style: none; + padding: 0; + margin: 20px 0; + font-size: 20px; + +} + +.signinpanel .form-control { + display: block; + margin-top: 15px; +} + +.signinpanel .uname { + background: #fff url(../img/user.png) no-repeat 95% center;color:#333; +} + +.signinpanel .pword { + background: #fff url(../img/locked.png) no-repeat 95% center;color:#333; +} + +.signinpanel .btn { + margin-top: 15px; +} + +.signinpanel form { + background: #fff; + border: 1px solid rgba(255,255,255,.3); + -moz-box-shadow: 0 3px 0 rgba(12, 12, 12, 0.03); + -webkit-box-shadow: 0 3px 0 rgba(12, 12, 12, 0.03); + box-shadow: 0 3px 0 rgba(12, 12, 12, 0.03); + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + padding: 30px; + color:#666; +} +.signinpanel form >h3{ + color: #333333; + font-size: 24px; + font-family: "microsoft yahei"; + font-weight: 400; +} +.signup-footer{border-top: solid 1px rgba(255,255,255,.3);margin:20px 0;padding-top: 15px;} +.outside-login{ + border-top: #dcdee3 1px solid; + padding: 7% 0 0; + text-align: center; + position: relative; + margin: 9% 0% 0; + border-radius: 0 0 1% 1%; +} +.outside-login-tit{ + position: absolute; + top: -8px; + left: 50%; + margin: 0 0 0 -50px; + text-align: center; + width: 100px; + height: 14px; + line-height: 1; + color: #999; +} +.outside-login-tit span{ + position: relative; + z-index: 2; +} +.outside-login-tit:before { + top: 0; + left: 0; + background-color: #fff; +} +.outside-login-tit:after { + top: 7px; + left: 0; + background-color: #fff; +} +.outside-login-tit:after, .outside-login-tit:before { + content: ''; + display: block; + width: 100%; + height: 7px; + position: absolute; + z-index: 1; +} +.outside-login-con { + font-size: 0; + padding-top: 10px; +} +.outside-login-list { + width: 116%; + margin-left: -8%; +} +.outside-login-btn { + display: inline-block; + vertical-align: middle; + text-align: center; + width: 33.3333%; +} +.outside-login-list .actived { + display: inline-block; +} +.outside-login-btn em { + display: block; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + margin: 0 auto 5px; + white-space: normal; + font-size: 20px; + color: #fff; +} +.outside-login-btn:first-child, .outside-login-btn:last-child { + width: 30.3333%; +} +.outside-login-btn span { + font-size: 14px; + color: #333; +} +.oschina em{ + background-color: #4ec34d; +} +.git em{ + background-color: #211b1b; +} +.my em{ + background-color: #ff4700 +} +@media screen and (max-width: 768px) { + .signinpanel, + .signuppanel { + margin: 0 auto; + width: 413px!important; + padding: 20px; + } + .signinpanel form { + margin-top: 20px; + } + .signup-footer { + margin-bottom: 10px; + } + .signuppanel .form-control { + margin-bottom: 10px; + } + .signup-footer .pull-left, + .signup-footer .pull-right { + float: none !important; + text-align: center; + } + .signinpanel .signin-info ul { + display: none; + } +} +@media screen and (max-width: 320px) { + .signinpanel, + .signuppanel { + margin:0 20px; + width:auto; + } +} diff --git a/novel-admin/src/main/resources/static/css/patterns/header-profile-skin-1.png b/novel-admin/src/main/resources/static/css/patterns/header-profile-skin-1.png new file mode 100644 index 0000000000000000000000000000000000000000..41c5c089bbf7ea03e71b19fe86d590d9e5e9f471 GIT binary patch literal 26278 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/patterns/header-profile-skin-3.png b/novel-admin/src/main/resources/static/css/patterns/header-profile-skin-3.png new file mode 100644 index 0000000000000000000000000000000000000000..7a80132da83d9390a435359e8e02a6b28ef54996 GIT binary patch literal 33032 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 LNkvXXu0mjf-K0Pr literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/patterns/shattered.png b/novel-admin/src/main/resources/static/css/patterns/shattered.png new file mode 100644 index 0000000000000000000000000000000000000000..90ed42b85b7bdc8bd3147b9b21f53d3c57fdac26 GIT binary patch literal 137733 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

YWl9y`;K)zj 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

=Q8sO0wWEuL4*j_O7+qC@+(OC za%7h%t44Y!4&HDOr|B=HJntg`;_w@N4-Plsgn;XLaDHf+Iz)$@`R~RiFCBqBjYW@A z4O=0>8Lte%%+jH~;2x|dGimd|w=QG(0pWmr|M2eEm@8)TI$yRuo+jaRhHu!Wwd`c| z`;4Ym6o1kQxh(6)6lj(@q*Prn!a?yIQ_|lCwZfQ{eO?I{fqvp&?zmE3AzpagDm+_0 z`+2{-LJW`|^i=XE!ss1W-!2p6HDi}p5fp&@^3meua)MT^*bXVkY;@(|-K?<*v8b;` z5;PS=osbTUEP0~-60P6_7|kV*FQF*5h-M^?&bXciFGp#&`@|@eO4vD1%*aM;hrbZeo09!l|9j6+}bF7_DZP z$@fe}?Q@wt9G%Cu5s3$aHGZ+V{kJF_)?Scm(750J=O8R0j>`AbWoLHRz@YnTXqQAp z5Z5CrpNk0kfaeGWz}a()d~=pKE%H^S z7b$oO%~{p16D>pT%_a9?VH}JS2u{PP*zGtB^tw#20p}`&?@7OrheB`Nd#g>mcIz0qz8I+R+u6=*<0l% zd7^WjXAE|d0>By}U4=8MK8YMvs}kne_Ps4961`ZBqpT^pO7#T~y2;->;$)MUv-^w4 zprWcha~bUN>)kognt=W!cBOH^hofdtSf72d-JJa0W^6{i#~E6*X^7Qb=5)|}uXW|5 zkXhf|G|ovhVNti$)8WS&-Zj^QMqlh0DFPBkaLJk<9Zt{FhHF?zVrJ0cRA~<26Al&E z$eXUex-y;Dp}lv1B7n*YC-N|GHyG&O{&6u1vAj}E3vC~ zT-sr=BNN#waQ(V#?KV;3u|>?^bU9au!xB-dvOk>v9?R~jn#I+DT_}pV*u0JxKQmqA zMkj>4NocQ#TYk$i5|n4gRLGWyK0?0r&z}0niz3cPf0I0zxCdMlo6EPbWG4r9 z2y7S>%gpe8x+h>T0sY!RrLPeAb^MKGjSo`6iKWFtW*X;B5K7QK%M_q_+pP{!H_r*uY zp}+3Ty*^eNFvdj(Xlh!#p5Tni2~QnMD|P>0@Fnt+gB(;btS84U;dGcneVvtGE2dxt z@xNLYF4lF{{=3~osw_Oolri?R+Vq1L8~cS(XK&_Mb+2?N!^g_Fjq|d7-+{qI1#cca+-^@!9vp|G zXKWwxU6cAQUvqzI8IZ$2Ipe@Hi*uNM+$DU7c>oj;n#N|+ z;n$Sokx%N;cD76grMudWt6(^(TH!Pf;@Jn@}4<4GcIjQtL{nE+6y$KmWvfYYaeXepIS7Csa3S zVFt!IOy2dNbaBz(bLico(3fY;Y*Tw2f1SFIVtbYP^EB`;=*N%ykh%J}va~f6hR$`r zU*qDPC+7A^b#QCaIa}I5qDxq(m*vOdkuF=wpvyK*Xi>S3B8{aqhmBrCIZX+Etx-Y~ z_*MQDmA(SH&u$oZ_A0gMhx8BkE4qBPxC81CC?F-)_8F#Z#zCWMAxPxN>lI;>^gzgm zis-OGfA7RhgfNQ2d8AsJbBWUx3d+G{AYquCbr7&Ii|RDhGv44@8DY0aH*c+gvIekE$YcyH^A1P+V7RumPhu1JQK9rxMG!_Yl9i_(h0T6o_##82S; zH5om_do`)V&uJF=`F8uDT8{U~z2Hv|uCH0v44oQXdEGY6u4T(4kdV4|5WhcaoF^FS z#$>SP@7c2aC3hSd50}IF^4!IriR}_sY!*eJv(KWVm;#HBckVI%KUM(=UQ305x1F@xm$y&I;Pcn??_} za1fK{W&fM3L(oa=$~lGuaZpM8JItfy-_+H=>zUDecg9M+`fn=$xexD2rIN6T#-1IB zuUx#qsArB+G9PO#v}qlYR^qWTU5c@>(O=BuM1>cf9pCT*{I-+jrr7Rj^_fXr;(Q=M zWNM$tX##rL%0!v0uzA|byHI<(#gwyu4mlu!+NrDU+RKq{7opNiGrQgS5hCDd*oEv& zfXmuV{oJg0#A!iv#i0%>jz6B61OxNEK3NR;VZz!kG)H?3_v`K>L*=pFdZ|T@H0By~ zs9%!Se++6$!n3!oLA~CN5?n1mdQ> zZ(~4sm|-VlIIYI?VExo~yWKq69Dni4?Slv1St{o>xnTiC`f^cF99bSd>w_)O`gXzW zBwc+uo+GsxKUxkwA!eZX%pC5)^qTPP@{)Yf&S7nVKHNR?Ep-XaFRJ<@E%1xJz-qb` zbqgtNFnLdHcQiUW_Rd#TP6fa-5jX??Dz`(MpGcCr`jzDRt#P=qmBFJh4B{?XV0Tpv zINh-SZV)mdi}8+lN|zUqw2>tev~)6~Tdixwb!7EErVOKEdpULePpWSJZp&O4w*0vf z;rXV=#%U50!(2-8w%AafC)kav_;@WV`*^JFs`!Qwk-5`GbUO^}#f;Er2x_ys>59ZH z$K0c{V+knNlR?lwER#%MpP|fboY0xy&~j}IW-X6L0gdG4pzr#0**rLTK(Py}h;M)P z(>4C|?o8@d!}ln6=~$_#=fU#nGXpk@(Xfp1RHJg41v=jrc+eS*dF7qu zYBo{lxn^Qp4GXfkl-Pgt9DDn1{A#y!i{qHYNo&@u5?Cui_QsC|Hh&C}pfn?DV6*3F z;4tD|tS#8^w|iZeVv3RC#}((l$1m)50Efa{n;9+TC$#x#Vy7(NgHhm6-dMg@qY^~Y z_e}+|gYz^qH9U!k1Kfcc@Gl%$t&oOr2-;g=?(_#1V;Qln_C5>aDaJ_!pZ9s z+VFgF@{bRHz1=)`0K?YSPZ2D=FO`wrwzVChW-2A+@OC^Wv%5U2&(6wv7Lz8~5x;Hu z<&RC3XP4bv!Z+4z!+i>diQUA_d3-UDk;5W0h>~8vqZ-)~3EeD#mxN&8_+1*8Y0QPN z@KhFS*Rqmw-JQPs-h0vSR;xeW>z5GhW#f{J=4cY8SuLawcH-kbDX7er)>-ehyQ8Nk zi}yvySLr-X%S%QoTO-|Be8qoAqjA~SwUgpk+~H9;i|A`ix{DMIRC-TsN}OeOv@cW* zdf&YmdkJ5)dj9myZJGV518*CZb?bW?` z=Cq2pwp>gDH+XNBKNh{->ZvV9KB*8-H!P#KWZy;@WVB2}#V|!KoR8iAfUASPd#gV! ztrKQ11xx|nsHFd84?0MX(DqgqcL;jvJXWe=I5e!t?}7SI{^i*JptM&|6WyB$5$^qq zpRD*u+SBITFI2?yiH~~~hY>f%STqj%K?cus;7g6#RBd(CrQ#fU;;&nZk_=;|GIEow zZKs}9lVqosRo0t)(Rz#RzS_cxW!*=w=Q0g=Kr#~p%t{UO>*QOiaJQ~p@!pzj4*IGz z|1-(b-8uq-@K8bYTdPx2iAlyzME6A6n*^s<$>#H4ZZ;2odV;sUIeD->JTugqcQZx3 z?+*hjfmL6&^$UPGzv9CZjtnp+eD!~6I@=dHt}IVyWQ1;IN+Cs+RHbyPqO5dQO68KO ztLVgD`9rU5wN`~}W4EAg2E^|h;q zWhcUx^BCP#-h02&dQg1tJ!+J~5?zfOx7`c)mgV`e^Q4!+nmug42c^)mthS18!`2bd zDvkpCdd0@Rd2fH(G(bt56-XZT`bDOQ&KAW87d#DJI#W zLfTy{cji_r_1-$lO)YJop@=f4W=2jZv8hHOG2UwUc_|sy5@Av<6G>W$i;(_xKCKzn zP)MAoN&!9i$RuLrcT1bhk&iKsdQ zj;F6-@X3?%BL}6TrPP#)rJO?#_>Uh*4ih%<+xBcg7H%~(uI(-N%DSle==?@| zAAjq>RBY&r)u1{b?M2EnSP8M$Iq=6Dgt2c?*Brb@g+Rdo0+}lF&FIve zz|J*Kyw9_hx4Q&>C3Gn4ed2i5+g3S~NK}o*a{y03u)iSsDz7ggC_(b|#haI(zgnN4 zUtK&$sb8%7$BXBykf7&gri#?5-eTD-r6d3q=aXqf<(xEtX@4 zO7Gq__X~a@O5D&4O__O=Ckl8Cf+|pIX^JLMKJ{(<=S2B93AP&2B5TF!*n2z#<>}U4 zd^rgoFn;bCmkCWdG;Iji#3|pY4P8DD>vf<%!NG90t|6KooHuRE>y~JeT`BEkQL9}y z8wC3q^)H*#vo#L;`g6&jf{fNokO|lA!KwX%3(OoxoF_(zi<1y*EJz&?FTIG_Q zOEcx|L3|Bk4<0i;c)p0FdJRlUTDvtS#>4aCBE{4}abu|&Wia9NE*%VD+YUl#!yzDS zH`>JR_6LFy7dL*V_)gFcQmQ7D&ayL{o(MY89R-5wI}3vWrAB+tGZVP&qeCVCP9(-F!RdYy0hpqeHH#+S#4DparywrbYlR0mFn@`JxFg&z0oq5 z<7NA}eGNbMKRw%E$(_DgZ=S8rPR}=ID}?nA1XW*akHLi&(P@KEnFHmRW0nqu*G;p% zGgB@=#w>~oVMbvcB{&#%ATHdn)CJTO*tzc?G!mDJrI1+AdV(R)CPKd0fs!YodJH@< zkUTCELK=m)a#~{WOaeC0C(#^E>I|r~8nnDs-_0H@&nN18Y_R?ix(^BJ^OB~T4*O18 z@R7aTap^GgJPA9@zG=4pAD77;LIi(Tmj_kUsCOj;qzf{IJr_~jk`QsOWp+|Rd=ANz zhW5oS-3jSB5Gjn{aI5yA`1PtJR#6UlH=3n;^E#lGbjxa#!sb?YPwouV_hC5G-Hok7JgnFv9=;oJalk+ zNM|1WDP`2VP+nET+gufiEjB`Fzu~-8Rp3K4*t_m@0l0qVFgF-02^)D4kFmsNPX@Rz zf)}yc&(^OlHW!|}*sPyFUkwnNj)oI6=l%4P1w!5!Dmd$DJTVs0hvr7}CSc~uj2U3$ zj@OK|J-vS2(GijES?@ZL^F7L-eQc1Hb$A8{T?<>yc8h?wPK^S%&VG_fms+nBgp{Y8 z@Lj@Ua`g~~%>vwNT__}bKZ2dTRaJYW!T`0g$_t@%2^l+_kgOr~;V6?Krn@S`*bd)2 ziaX%DXahdZlUQ~D0q<6VyXK~+_h$`8jkw-yTK>Q?Qd59A7IPh9MM)TJj`4L={(<2}!xwP?Z%Wixt*&#KCXt*%4cN3-m*sX+2M!^T%lf8Uj47>Bz znA9ynfQ7}936Y6t{42Ti72^F&5x+vvug^|5=l5pF>Ne@M@$0@3`HIzMDJ)o4P5P`v z#D`8W#akfSPp@VCc9Iesl4sWxV2zjp6L8WnN0hwhj}+muwpms$kEERBaSB9Ehw$=nlX{0o1?E4{>XU~vS+v>Q zI8g-@)dPnF*Lm0?jtG8RYH{aiR&)&b+k^B+mmkCUOBoQai}Jm0Rj5UV`QOx*kRq#~_FdEn41gq?_M$5vK=v`TS zBdyN>$#E1S`6mJ{1kcM5zzk;leE+N7{t8)6bRWlyRCtZhw}h0V`p{bgo$ZV?9)1h>!RdQzgtyQ2dYxtmWq3r6P0-MR0o z+!pP@aS_5nys`lten8+KHNl3Q%0G1{lLvRD*pAT6i6OERfyr^<5_6BgmVK~NTQRUL z@B3;kv}nAfN~N$3@dDKtz8}CvLQu;IRMv_k zyZYZY>+jZQu>0qmb*-eMRGP4i)>~U!oHj<rW*iO_Yn$)v|3hu8i5 z^rXEeL`xdB{RG;&R3?0WC}KIQqF34$YZtZGx?=gM($VzT&28=4-`M*AIdR<_k!_PA z(#8#+DXV^ZiQf#*LxI|KPJ?|C6^$vtK-}|*JU=u(qK-IFU&MmbD{uLNfgNs^w9R9@ z(-FjV8IG9%SS%>@`%O7gpbU2~VE6D8wG`vzJ+h;P&`X)@BiM84#A)EqYG5KRVxZcP z1#$+`AT71qR}xSI+>5Af@A44`-8eeR(WtJq7E$}vKFlpeJ|htTZjPCHlg}4xuuZ8n z5}MOZp*A_THygGycO=^cQ!GuLz3V5&$)V^#94&Eou74cpSqP~GOL7;fVOa~4f@jJY zNA6qEGkwtj?4?OCG2o5T_kBpw8GdeM^1zjoQT6bl3ERWt+)T-G?D*2YHgd)YvVcR8 zn_)AvpV-p)Whi(^serf2y)Yr{GK>eGuVhImm^yN~D+g6x@ZyoDQc>ORBj#FL=K{l! zooQA&nf*Rey-#?yAng%6`#(T+=4_i--f-~V^>9k%z(`ziQZcdD5X@59FlbP9GOu?! z=Yix~#ci`SwXX=bN^PYHlSF({bA=Wt+JhgvkxO7U#fee9v@94KzE{+5Q(*yCguQOH z-3$mM1AlPUuVK0gx%oN$9ldD4QP4HT3=GRpH7(v5=$6;XjJNlS859_JH0SP=o;~49 z=}>E~rB*x4tgCD~Cxm~*zD6^Ii?Xh3+$Wos6|(W!K5(kx)()XDIzEkt6OiF>h_-~v z@_Pqijj@zT;7nb7vaP1Jv6O+u-6VT;!ZXnf%Z5tfbuD#eK^B5Dy@uiF4MfF}m-_0u z_6MvD8h4DUs{8Yz!ng;SIcU<68r~~>z4Uh*W`_|%o111Cs=L$;lSM^!he3rqjaCw> z)NMj2RZ|qLJZ4`*s?x@+Ts8WkI#l%b3TfXc++)=z)6OgL#~i8Azp4tt@nP+TIk2+~ z5fjz9uV~}GuI=g(= zVnpw6;`4mMeKEB6u)Lo;75VS(qPcV2G?JaP+SD1eFf7NX+nE`DLrW|=<0QK-MY;qw zC%;MnhC1bKBH>l_4yH;gtPOGxBlM}_xk?GfBiCca1`JK4S%y^k zLDgtitZjxFsc+-4T0zHhP_g3JU23ntSZm3>f%xB@0-k}}FaFQhz~L)00ui0`OZUZJ zt%g^vKcGL#XnE_fXwAkgfV}rV4xJPi{Wu;stVg81b(^gA9GjaVJEIzh&+>te*+rjW_g>HM1kf$pMCa&_QMhyc`V5KW92&DV=c!kj_x%k0o5 zi+o0X;~WO`s4MWWK3cpbqi^31aBzLo8D?~*x4E-d5Sj}fyd%>C**S{ksQKro4wOH& z98&UDUXDGLEL#FJI?lebTwD55iDkAW+$vF#-^sJo3XJeFvO&wMPlyY1Pw2YSg@t zxD56gG~C*y(d&(hU8XeyhlAJn#tm1TD1T!-RVq*3$5uzHdTq%|9JlJ76?j~^9+|%9 zQq5ae4N_7J6$~f%@hEC%uNmHRqsoyWpN0Q8FfjEE;4%A4c~XYE-9E-mf5+^SAR2v+ zfVpBPK;GoQmQksdwaYHorW9sma6n?Eq-M0nyh(c9p0)hez?_-!P<;n&l=RZPusM!0 z@zTOXFH%euG0z@-Q7an=y#~ti_x)#!s*XeP7J`|7r&z7v-8dWH`O;z)jA?LrBrsYOONbUN9)+q*&U~mLk@h zLh}NqF}?a-vC#=Jlw@9$S%oyUR!QOxN07^y3VF|iy%D%m>KygX4^`*#KU`crXEipO zJAqolH{<+BeZXuIQfUB(4{rHQmsu@3C)0nGl-X>2`SBNpLcLDX1L>WV+u(I;*#bE;bo( zHMO?`^AEv6)uINgO`$xdo;=(Z*|}uI01ZU0a0*>+ix$JjHi@nQQ}*~zk|^lOLkVYQ zG_0>iamRBa9Ho?ZxInu4g7_F84Ddq!NB7Pj?fG2>@Kp8JcnhOVI{>iuH$?1+(A_sS zH}Cl#lfiI&MNbp9QBM{z%J6UGPrk>I=8nK zXNkdw>bL_|JO!8M%g~#6Y!&nz@aIZQ#_{p=o=u3#)2txy&c=g698WhuV2!{Y6X&9DJjcF{|89^?&2Y&Kc!#(?jIaf5*ee9OchM=AHIq*f*I@~KYeO@p$iuz%* zmG8jK3?yEThUDOn_)2xu6b2ABDS8}$A%l&^JKOuheI>zEyL~#pJL8YS>Yc#l2(XBI z%Wv-^F9zb1jnqCmGFzCuK*#>!c(#_Cv*}xf;p$qSCSO8rYtE}Ro*uO&Riy%{@>sY! zYo-a1@tI5we;CSloOfNjTmH-_Ul?d~lWyx+g$=|zX9y>=1yHhxRs{qZlF(M)^`gn;zw>m4J== z=xY%dp&z#=N6@_@E+Tz1{GOTO5i7kKY_Y?-qH&0&-%PSrFTj69`P3<8Bo_MftF_NX z1=uuOH~Frp z(<)#ZN!@VCmMjhw^=&CEtv9;$3Uk#8pN}H&dr#~-OQY$f=~RixF^hwoy@1rKjSBtz z?EK|sbM^A#bn{c(xZiy}wqFDp(Y-G0k8M6~<@t{dc0Z>;pJ0C%B-%e-@I>>E{aikl zL?+WHNmHqJ7Lx*of?q@0x`L)ZK2+5FJOS_WtgS@GJdhp}1krsg;Tn!PL32u+Jpr^* zOeMREn-0>ji>VizEOMllChehb2gzE=>|7BqrITN6c%SCx-mpI(_7|TZ)%yc|$vd;* z;65gdUfOW~Kv_S)=M|2dD30IAUt!PmJ%Z#P0&PYuqtGQmXv&B`-B$B0K3grFbg=qn zDQ@vsG+o+~cZsm3MD8RQ_PFU<1Sw6cDm}>9UDbU;{M;J2+b>VP#jWPG&ZRjSLZKt! zPtQoGuKu{bI*p7!J72%~9H#$neg6IC{M1q<3zTN|qLJgjRI8^mVG|8M$J8?)2d;|Q zA$SndreHL^K)8tTHPD)_y_}{`431xDI1fXQHT!Isy`=B=T)O)WD-@?{ zVF)F&Z<|4|oXj1fagmgJ2AV7z$g{l9V}Z^F9m9TXBz|ERu2=E%RK9d%-mXxoWg-=C z{?2R?(K}bmH68iYnOeT*DJH`FfwRZy%3rC!ArWFjeTr@hMF5%!e+SDh_tFo_!>YWVg zlzJqdMg~sAottcGd-V0u!x36IJ19(41R0wzx^G2)o^b|5NkZL(aT4zN<^W-S4JRk# z;H}bCriS1mHADs=_~m){GH8rUnA_Av1w&tY{3y4LlK9u`C;+A@lkmTx6h zfmi`bcNORqeXwP}VyyTh0KTkumV0oNH7jpTY83|oUgd4XN6)lyiS~|YsV=`A<~w-w zUAKAm>3Ri;U2STGdf(V@2$nwwH01=K;rQ%v7cf+T))Y8!)<2%Se)^+@Nqk8gZ5}NHcu4R=lL@U`xLBk z)RlONyAanRn)d$IDdMc1s!wJy57h4NI14Jzez{5*CQyy^8!Vrf=+`Q;6C@8(nOlzO zfXUw#KO+e+j#Q`@F@BN(v6X*d+nO2pzLuovC@i)r*d16F?Qx8F21z3;33)@DMr+AK^h~eNX zcEQxt%e#^%d&xW)LU=CB4?VP&%E-jN%0$7Ni( zoui@F?SLqVevebnt6kRS#<}r zbr=CKbmZj zXk5}v8Gm*K62{!jF}c&M8Y&7Fb6{fTEyZld#|M*Jp@soD86=5&H9>6`Nh`HN+PWh1 zDj)Yl^1nJU8g6g*84k8ONZENS{ zsNmH5-UQWZK9#*68Tvt9f2m~d(H0Rv~0~;GG(AO&Wx!`Xi9JYCA;C|{0uynU4BTw&7 z{TGAUjuHkGCZgQ$;B+!@GYJ1}YmCr*+ulS8q%Xj17{uBS>n9Ld+uWRJCob{(Uhnjr6RI219$u4ha zGCRtJ&uhU0XX!K3*l|YbF#7H;`CitkcoH8Sk-mdT!Mc7U(V4_~p;Q*~Y6Y;h0+=Ls zf1DcezBQqSOsA-6Ln!veX~OULaNjY+gdo*+wQgAscv>LUEE(0s^x7(y){FfI?Z2l9 zyG~Y(o85MCzv6^*2WAd?SF^noEImW)SptN+&H-&U6Joo7n?zR@1ZY7>KKwOjR;6!z zTKX##y5OWL5^HZ8ss*7Di)?6*dBK6hz7qBB-%D+=a3+Qam8z^pl-%&4ZttLQvh@7@Z=lNf0)1mQg- ziYkIG^(>}VN6|K6)6ick$DxnQb`n5cT((-eTpD8RK9X#W#$7Ykw&oRtsYyur5-WLS znbuy1eUU{PZ5ZFK6Nottr@we3G)}bC^Ue3@^35jV{_5<1Ue9b3{5nvW3Ucl}_B{(f znENv5Vmc*pH^VMBO(k84Jq5Lp^`Ijn&5f=X-{MMUP5|#M)ug&=^04u@8$1NpWvgp# zYSwY-tjc!Nwh7)$EhtO5%h47ppjMJkm!-p^5WLQd_eY-9Dv2y1q;}V(H;7*TzEtcy zo2)CrIfKT{KBpbzJ-*vG^FVy+n%|wb$H^*}PYBJ|bX%t*FWO3zFgT8cdjiTi=tD@g zE~M;|0nb)K-#Q~kk8De}4o?ksRf7BQn0nV*6*0=?P*o`|w7N;p8-2Q(!_8H{Trc|0 zYIK{52dqeyS!eCSR|o)+am!}}WL~US=O+olpTAiHpE*C1&##yiK$3Kv; zQ-W}>rw`&5I9KxTaMa%MBz+=RLhtayGIyZ$&SFP_sO+CC z8xSp7-c4-V&)}T}#{JeO#DAfQ>D3E({eQ#RXT;w(&(2?+(~5)u%}da7xNQGy zSZPpv@7$1zQihS@|S*=8e?Tcou&k1;}09Xl01=e$X)G%ri9RG@Le^3nZ)n2wAs0x6?UUBG|5t4E{P1za4peABpWVi5>$6y1}+H% zgB`psLt7AG%r8KOpku9brDtMdzEH10a~sck-%JY z*W7D9okzOmlOa%-Wx#M>ELfi1#IW<=Nj$vi@(juT{qxPzTq+EHMgMx4o%AY)D=2?@ z_MdRyj-S59OK-5>en=@|f!Ec$he@kcsOwHwbJ3Chf`|;M#ih-y@F$2;!>CS+I$0Fp zsap)--8cC4QROcDVRWZsCg=>xTUlrqnIIK!5^6b8e)E9{Z+N(um7P=UCC@1m^Z&H?P(7?vqo`#@*z!};YdBvyyx!7(~bhIPh|lOj}} zXc5$mP0~Cm$j}8yfs|yg*oa*iHcng@T`Wc_VU}+FF*Rx$^-hpl$Fd%a_{op@>bt_! zdKmMWTGU>uchIw@-@sD6g=SwY@${xmXPEZ#i@&PTyRvzM^oHy!S(|tayiJIP<^=yN zIu`FuJPk5`Ion^1S}k8vtIDzj1zeN=nkhX*jd$V^Zw{fcgp@avQJYsfExTxYY5Ji{ zd~KI3cUi4luC&0p!@n9H+71cNkVh^>S2C`&t{Iyqe^QatAs$1uG+hA#lDQgGT}y>B zno1~mmrRtXk3_Ex_&QHrEUOYV1p|eP zC5BbW+a)Xz+U`AMrnqfuhYOz`o>qXc3De{%>JbUgia ztyPP2UOQM3&(X*mdg)tw&9_1;b_mVvWpF{E>T$t*U$38?ozh3_RGayQ)qAsqR^>cW5%Jp5TEX#5!Z~G>piptlS4G3Y5 z65bqJHck_cO|GZYrVk90V-?Mzww3FaB<8q6Lfy@zs=HTf)%vT`7ntrL z|M%x_&R<;?V>{9ZibODXa&PDWv5?M5iHEe!hue0dt1cL-1kWsWVr{#W?$C*%iE=Q< zVp=6CJkD9-_CsKCaSphU?X3e3?<-pvij;`T7-mcXHbtuDyG)A;Q z-X9$K_dJU0#!rm*ylL|80Z$T*nOVou^g06$AnWzln*GwCpYH}oYd1wN1EES%m-E&; z@zURGN=S5F#v}yQFob#mes7nj_+2NO+_iGuq6gqiV-jy4b-F#vDp81Y#&-T%Rs16D zaPU}Mf}{*Q&wUY6wMV=$I3~g3+bJX8e*q+Oldzj>p~Y9b9o!pH?REtWl9=F`O0=k)cUc(Z zx-obu8DJa(T}fCyE`9uS?=5*c==f^qSHG-A+>s!DWOb0r!|#dW(BQ2mwL%5DIYunxZfZvk$KSQ)^h7o}$IO3UNI(b8DOx zwfk|%4nE8_l8i3=-eIFt8gB1mO~kT`D0*nu;awlm5+bFOoZgV=mlA-DTx5Y>F!@CvoBZ&w8O5|Pp1GpX~qpN@~EJKW#D2BGTz(6^T@?4H(-s`nQ1X4_N< z^eMg?NpwuR+N1zZUtg_OzilqS&$TJ{Z58W5u68%E;h4UN%ZTTQZ=EaSu!+csi{yDu zB&hV$56kQ@B$o(XO~=lyTT_-#vR(^mMws)Up%E)=Tqt`6Xxl$>tTZeS>$- z9)56IH`SGA0De|T3yrxGb@4#@3W`Y4L$9Q7xu4Gz;LrEf zY~@G-Qj?-5#NgsqZ;UrgVpUht7$~ zH=HU4_K@=o+X@_e;8MPZzU)Y$7J@R6TU?~3T^%f(tX600aYa1;LEq;WCn--CD@k}p zA3iyk&%a~za`W?LI~fO)o)0FGzX3{U6puzZB_= zDU>LGb$4L!7OOenjIhAv*Wk(-F*zEPWTO*LE(a{eZM`LsCirGz`m=xfrW}NarKP$Z zWUH2Qy=c-2R+ZBs3H+Lzm*g7eXSneCfjP92hl^VLzV>PQU&^rw!Kubgv*@iY1i>r2 z7ewQ@cTH9fCrR_ow0v_UQj^=s+-|GQ8sZ1>5!{@+A)SBIaEkx(lQt8B;3;D=oXhsn z@zOfTD6P3pG2oEwJ{qO#`*%Sqa)xNqgiktkc5lJd`HbrmI*_C;9g5m_L=jJSsb|t0 z#;*7Yx(TA-|FvdaLCYP9w<>D496YpCY6~aE)v640EE))Rorat z1jN&O5A)C?y}9>XD~Qnra6F;QUs_FacHcnN9){kh^@#o{r+0ce8vX8El-ZAw{tiHD zQQZm8Z%N0dDMs+v!s``v6he14$$;y@Q;7+_OV4oGSt;G6vyhS-URv73&#x;0A|(|EIr+QVw(#&Zpqp zjGEYyT9>Mv*Xj#Db9F1`?WTA)4q0bNt_Eq^IJ&kX(mJbQxhl&CETcr}g-}QC^M~9D zveC#;cUU_Wzbp=8neP^7*mW3FZ!2Y#_DX9>Ekio~elND%@VFq;q35>!MGWK&%MHTw z__c<77baI_Teo~y;h+$>1HTcWrC-{?OzC}}hlWp@Mo*(A^5d4OLK34)@tqxwm}7JR zUY)@4K~G_a(dT#bQ@n1sKz) z_7a*eH!m*P$leXElXN@CfG{}ZV0R!%_0#4bSYbi3E6b~!UAdXLn$&s}0}@wMO;;dg zbp!SN^~|-;d@HH&sQfA>%)}=Y;^?7XUQO6TyA-N4HM9DDr{tT^NPx0!0!;?VaN7Xq zl-xcdh={EDfCx8tt_6QIyE749Q@E!u-rXlUTios(^hhF}zttg#rboLTYn<#m1a*mrqzOWm#-== znT-d$&VV!JsObbu+p6kch_yY4rybnQtog-$=2KOE;;)IuDZ+c7VT|)%CO~G<<*`@o zw_>KAo5$COb~{V3Eii<{_>?wYUS3_YZt3qAi_bLme}Bmu)h_0q0NmdN44VqW zuCA6PH_Fo-RKr;xF_#8Xb+)ca`KOQ;nf~njr#I9(#k8kC@X`lU-^j}I@VhILpRW<| zq<%2}(@zRg z*Myo&O~pO$%Kz`_?0Vz2wlpml>8&b>HXSDx!>D9SRM~PV0!uQI_Boy)&T){yb^xC= z5ClOt(7EVzBZEQGX!K1k8gtQeHn`9-a&RPE6fq}Pb{p+jK(W)o^`|HKkJj~r@hd$pR-+{{_ z@pm`V_Gb8D*!-{EIPCp%f_153QM@{Y(rkG91z zQ=q3^LCvzR_4Qdf@z%r{Tj-vwOq((aglht;#%Ad*hFUPKS=$2FIyDd!wKF&rG5Z~h zf*kB|Bi$j%x6oBVejpX8?`XxumV3(sEV`9aJ{CUlI=}_DE49tMY1e7pvkY*TzSH-Q zMiGRao|MA8v(}XOcsdM}MiN@cT!M4&s}}Xor*SeI1J&F8miDg!#HBq&fEZEw?!}Bc zQ0G%j%<@=Ns5%t);>I20U^N<$$gwXSa^rYLm0PoR8D6)jNf^c7Y|-x~*RHOfT%A9j zrl&~#IPnqp(|X>_*Si_|4k-3{I}VKD`>~rg^ZZY{Y3BPE_g^M@5=qVx;%U^CYJD>) z+xB+<_F+?aJv4@XYn87~9q+frH-G8l4c1W3Ge3#|FvRJ)Jm4y3;Z{yxafasmaTnccd@LN)ms;=iLZ-Oy^3Ia5xz zG3PjngA)hwJx|6=UFuvN#`o{DdF#ART&Ao)MFP|Q~QtGcd1QJ8Ixs#=B#gm z%(ZAi;e8r7Wb}MflX7YLtv;{a;W5^`<~K+x8m^;>uenrkk=W~pM>_d7f7Z5t)b;Zw zm>7*W9d*g<;5@S%9Jx1g_QOw8x(b$ti=p@dUY<7){cL7tm29cWquuTVpp0+;ARVAJwd4@4=zRDf#}*fBjH zpvAf-XME@H2*vZr_ig(B9e-80%bh>=36G%hZSl6BV6F~2tB-L*HpZe=$O#E=gMY#R_FlNV{bVin@V%?jAd_3Cy_R8=H24xD{{P2hAWkMJk zw2p6=AUxV&_;~GJTD{hCmG>w*tTu0_TE?7SV`8S-XR2~@G0ai&X8R}&fg#NrQBp!> z$fH5ycG;{I_G|e5_;ptfCHgoVT~6m$(?tMMQ2VdvASWRE6-7?jknefwSYdDlfhK+) zQ#*+&-ze6x+X>bT@^-xT`DVA%jh~r!fEM`EG=4G^xb-i6jmIQriw~C~Rk4yJWa$DO ztW7-}o1CND@aJNy1i;49!Pk zQY)t28%75!*)kZ|@?=f+rIcX~`z^c-pmg~lCR-6z-|=CARh$+|{KmabQ~(@mY<2pF zp7*s*G~kRvWlp|F)}#-bNS~F?ws<&u2c@TX%99PaClfOU1OKemt*pee|Rf9r_uLwIU4}Y#&F!n@)j1lxE8k(6T=vCO0D3Czu{X4skz1W#;BB(w;RjP1n2a+>Enp!}r=UAc9vf z|3Sw$QM4L)?a}FJLjj?KkZ&}$Fr3lZtBCY!=ZT9eeloft@9zbJS$?U}`y~FXq44%E z`G3-J$f5o-&-zOL$|pT zG1=|kra1{#5|ZGKjL+-gdl5CAMykW~o@ExMwu5||HuRoWMv{^Z*3Mhdh)8r}h%83V zX0ajfm|qU=>+P_)TQ|E2Hu08%fWh5jp=qQ1kC5GBnbB*vZ^CiOG)eG)ojQA1_{4 z4$;qGJIVHHgWbu^JmBVtg4LjvFTt@xQL`nZmYq7jg6YyD8rtjATZCLv)ne$fw6M4@ z#BOs5aEC5vW6?QNJV%RuA1qXYBT7<@dY2NGGs99{bMAgBF}zX-qgf}qn+aXFMvEVU zM0{hfud0z&2)-J)Su=Kl^i15TF0W=3>w0PZa6FhygWQ}j=7g_`i2Z?) zWrwL}TTE|=vVMKKdGlBRB!KsAtyeyojJT)1=~UZo)WF*j#DVDH+bjPL5LaTw5Z z94t+uel=gqB)x;1y^nrwQ}i4tF7A4|#)hq>-S;HdEN?IxCbOqvjk})`UN4OsYQm!5 zVxJ`|?y=Yl5V8?JA+5=*=#3kjS+I={+-xR>9wXK;m)o~*4KG{KRR|9I<;GRx2<=N^ z!!=@P6DlA2tlF60a)S|f5`x$4TaYlC^J6(}tzckIXtV~Nv)N&9{p;NHvxNTh(ePC{ zg4W{?L|@C76dRV4Q!#OvfgMmFw^S4h8$a#&)6G?CSfKrMp|F?q7er>0XaD=BaJ#)J z-frKyw+qA5>C0i*$iCtB#A74mXI(b0-5AAwgJ~I>d$Zw?k z%FjRR+5cQI@js^#u-Y5$&g0Uzk^fdd7e>Hx#N+vckRvDarFMHu z`2%CPDcJY*;iU!h>lHEAq*AN)7W)!>_Feq+(k(;ELQF23x702vI`Apq-S-I-MrZHn z+9yQwOyKnD&a$I^IZI4(YGFj3>v<#|`#@%YkQ7nmPA^t=?WU>i32?ccGYo{>Y} zoRkc+Zr^S^Y>xV0SN&ah-l|8O=3*Bb7+R|fk*#}I@sjo)s)$U_u>{f!zWHSpP*r@r zsQN%CH3o}TfIhk6Rf6{q{P;dtEoLiR_2+E$1F=eYx@fsO5y$(uX}xH+-2p)pZVrEQ zj__Z>JXt9gJ9cNf>Myme4lHNI5vUsoapfFYv?7GC^N4OYf6mYZ`dVSY!FlnePWc4r z75093{zMrrp|7C&`KdcGo>n`K^SB8V-sg}U|80<_1LPY+eZukA^KXa;Xd7P*-j>6~ zUb!mN@2_JCKy>ck@R9=z0HOKx_~r<0-LVO1h5!fy>=L;2##hH)V4R={qqGs5O=Fhs zzHMmMOveMj^%s!K=k?8#PP5rqB4gn)hPdz9V(->ZdtG8>OL2E9WpjJg zsM)*4e$;xGmO>%eJ#PG%$#<(98QJ~cXBZu4HTRxHr}%c>#>D#uUzvHZY68nl!T}g( zQ7*vG=Mp*)xcKVnCI#J1qNZbkXe#+P#@%s=aW=2JK;63~t~#tP?+;e8xqq7d6AruA zyzz)PB;hD6zlMFc=Ww#p{7T3(+?+eQ%0cev@zd$Ck(%wr$@X%3HT_wl!?i~96l)bcLR~S&5pyxz*D?=n4W3ozfeE?894?mNv4x?mPwoHoGG#;rSw#F zb0VzQd!vV@a<4FpMAl5bV*|$j!zw5rlg`j$hoO=2Y7H2^{XQ{wN{D5*5ALYUL%0Q6 zx@lGxEZugZ5P*N#Ri2IvcbE6Vweu8?4*>c=z~nMR4MBf&>m|3cq6aa;hrX9mtg zy9;GIYchLFJV;E!)yU&d#u}J|v_ZqC<%G0noDL-TzftJSe>^UFi5glJ$VY9BI5DkJj~1C7Yreeu$8M`Qdh65bYb+l-+W0YEot9D=jVz-NiQ-B}g?LqZL3v;*YTiuThtAQ+=tHAK=Iva9@w%fN?rw$qMU+qs| zx7bf@BlqR*w3ayfJ}#a^WdEOjNC4iYxSMX~2ytm|&K1^&(-j5N^*nG}ojZ(sW)Uv% ze{;i2Rm5ZE8|yK3({xC3Gp4~sH5zidYkEy?>=gwML&Da`1ukT$nQ9dbEw;N%UZq2^ z2`TyNG!)u@5Q|C;TI!z6C4IeN>;*yeyLOF9MdI>c)v2@lE(!8J-gGfnY0n+BIBz=D zm6!Ka3Mpn}IS7yh6PX@EE8g5^oQ(W?YI{wYo9V;v4KHz9%b3OA`_O+JE95^{M$;v3 z#lB9xzPZGA5u_{VuXG`ZvWJB~BkDpkKm+T913w2B8O~n_kL$av1J1|*PR-mMjc_qg zN9pNyT$2Z&8KyAgwCl5QHH^%Fc_gt9A_H&7Fni-Gd&6IDOl@A1$1XS7w+|am4=n9!h0YRy0H>vB4<#F%P zlU}gsen|iyI@dq65iy5|(LHRr^r^xA>o|atS2#`(PQo8j=gJ;jybQg(u$3lm|6MW7;M!jB;twWK_3wi}k>HAf38ajnO zf7we2ON9L*eT4pyksav5F+2T%{m!D;LG-PF*vmhR$M2@6DR^ToB%9i8AiWOR42$24 zgyAIpW*oVNvfE7qJ$Kuz0X?@lBhK6FY3^gtpJH>xur9Uks@Td(uuy_f9Q1i^y0 zQeDT!vtq8cA55^mm$D%>?}XB=wC@w&(|Auu0y8I^Dm<2Ssyg;VZUKi{2X{*WeRqWj z48|F~jjV^;mttTodQg$4>?I7$+_SdaiK4H~<-Azr%W z_)t?#ztVd*1DC)&^fUg(7BH6C=|Nmv{X+p=3`}lDZTVt^0vs5t6B5WvB z8>Y3hM&Tv(L+~Cg9SI(iat*YC1{C4g%G-5o)t#BsT@tKcKS>Apt<#8iek46XyC+P6 zp~^PA)ft2E@zgn)ZjpEfU>G0)RN>N}lW_UjW7Nyjz(ZDayL{4xGGrqe?mVt-gZg|o z0rQqkwa_4|v1Br|r7ZQS zbpcd&Ts>~Vl0shDEhz^c*m6R3?VF420GI&0*4uErw?NO=UD_7Nb&-wozAL7FKk};V zYpbJvB)SJHc;BFGn$5?kPv-_*6>gH zY|*^4M78ShlZl*vf!+jV2YXA+te_)0%1!nVQc2s&zh=)T2oB3v0F473l^+=z$`HOd=3qZaTg@4)0%CfhSSS!^zN)y%IO4QQx(hT$)a$E8V7(Mb>3@`23p3|lFAZ0HBAF=7vDgEC&zAJ)|T-}v_nNd_^})x z;M9m6x1?E%D!Va4#n4$Jw%VnxaLQ~~ZF0{+y%>*Edh z2WD9jSb9P#o?qy$lYQS1i+zs1KfSt;tYg4Z@^$m#Vji^O&(QLcZcuK^&jUh5$-UX~ zY$v8Fxwk>Ho}22?RS9w9V3(ji$0ch-5y0L0Y}niT=Y;8q%v&Az0WjmhYigxL3fodP zt2y6rT{(ih=?-yUhY9hn#!NjM{Mi&O?2k*S?X9e4kYc99Bkn_zyN(76)|1CnAxLgX z4bb zZoHPAmF;u%JrpOgdadn#J^C8+5S-6w_wy~XeG?_HiG`rmXTW|+VMUkk&_rzhl8ToK zvx4+uskx+n)eD_4{?0CRa8{|YTKQl6Ofk2K!L)C_YtOyc_JJ_p(H6t;q6I-|!r^$? zKi-4*wwbAH4YltuM3%P$xpS<&%*8YBh|t_2pISss1}DpdwVSKE%h9)1K@yV9X3ai| zx`y+)^`C|P&XTQ5uEOEp??sXQMiwX3uh(pP+Dn3{7{%p{xas#6zYmL1e%GTk7LHQ8^P-R@%UpxC5U?j($?J9lH8E}3<%#%P$v ziEkL70U)WK-q{FgUr2P`xR&A@KGHF8j5{$S;MPDFTDbY=`|HGSnm&ER)5Rj&wd%PQ zefIP{8NZGEOz2hILa(9xa#hj+vRT;q(FAP#w@S9?@`WK8!>XA%h7gN&+Q*gTWG!l5 z2rE9O4>)mJKjJ#TzT?aLBdt8&?nKL}cePTA(a%SMk*IKbz-e(dU|zredcT=Bi`MUd_%d!5sFSPET^0 z5$9i+&J})9%=$aW1JtdXurXNIz1Y<5M;&*zh%5fI3w|5^A07V2A}|DNyV1kZf8MCZ zFOLcd*u`0huK&F`k(o8wzrIXMp#)*MD!D;e*y;c392oQ#$)HHs)(ST@{OQTtO>8*@ zF+W_)pJJ@VhnqG~aI0m{Awf5r+37R14qOdq*XddPKU*p#%(7ExXdDX4Fl2+fm$)4- zOMM=oA)fQewcXwC?#YWmRM&psa=%&>lE>P^oR25uB)?5UV5;Z4K{G@9Fl4C_c1bHz zxRWm2O0;_33;Ty>1Fz_6&UFv-{wJAyJ*+BnveA+6EPaY4m;|t7^tbjllI()^_aU)( z_&lxlW&42dlK3oy`>X#fzslL^DAY=AEq6GWh1G(1R?@g%7VX1WA9asJA~qe3*w^a( z(gglIH0@w=^{W#>j%HO(rEN_1r*8$u3W-KGI|~B-Ri2!>m(Pk^YV&yIH@p|iO|Z?28nE{+i-Hk!53c$QYmt`| zs`FRzVT8{WWIbi4FE7SA`y-{TWJrylp50-b4SEW+9Di7iJrt}R%I!BGD@*c4@D6Z2 zvj<9hR7BO!JZd|pjn7DQyeksHsCC3DbdQu+H_vEpgYGt+&I?BA0EzIr$S6I#il87u z;EBg_wI$PBOJKmh2-yuh>8l%-#moCp+K(s6x~R#K^}V%g3qcbGW`IGaiN63i#K7RN zE27`mZEGxEu%rW&`y*8UNucby=T~veL;C5{^Ga-mz?-Lu&Tu&CpZH%BrmuBSO!28` zX~A&G%b4ex`OMN;f-dqjn~JjV8+nRf8oNXLuB7%XmWQN zqad!)@QR4oj5{hTb|8x4vsu_=O(@)s;?5%Y2Lx!F_HzEm}V9`y|XXP3EEZu^G zBUQ#|Az}G6XU#L%omv)gV5(}TG2pWBn#!BU zUTRsTh*+Mx|A=DAEdQ!i0GNrhN+)7LZv#}|$75Pmyc_pj+6!!@u#rUS6g-!FiB0 zECCP}Cl;(5yCcmi&9MQtZ=$bC}lAWms!<#AW8rQADt#}bG z<`YgE&}puD!1da%(k$eSt$DifY~-Y|$0hdN_#bOj+Dn}Fwsqgu1mpU`*;evm@JP8N z8`7%Qm-}*I$g0}C_g+aaN)$JpDWc+QLcJ3KD==b!hzHBN^q1n}qGQrAl*0mcg?aa5 zY(C~XCKxT!L%8GTj*OltEMJ*YYHBNW9|PM;<7viyqf|Fc#}*l)N4S0YVfiwxgl;`M zIZ3yQ@bBEO?cv@0ZjS*0evg_M>r(!8`#W_kMH_xml36_xNrQcGWu}D&LO`I1tG^m` z)cQJQp^8%nK=G-hFBNA=2*CTP_47IJi3ZQ{>*_Nqf9mueDMlnk7D-9&o z@G|2O_3kQx_<>Cvu1dmr_bOb@tUR!3jDtYt49ldcVK4d`V%v+z#rJ(QxcL`f2?{<@ z8p|H@vjYA4E>N1Z{GBo2FzReGLA9tP)s1}JDN%+2S#CsTIE2i_xlXA+TJ=IjlniTs znMw1^Z5^a~1xf7^j-|lu^8D2ClP&4B(?9YKFU7Kl_n-c4uPkbi)mITMc{SIIby! zx;k_XFW+3R=R%y^^60t)zv@1vGW}6st5!WhjAXz9iRiSq@zV{zPS|6hwJCwcfBPYgwV&VO{I;2i1x?}^x1yY9t2yW4qPj=Tsh9Ss>+4n%aNF9yE~;|9_bh0}1EH?4Ky4beH>^{8 zO1#E;XDQ7CUNZwXkH@r?R(jOPOrJJ2etKV1-(+B-g;Q*w=&z+wBW3(cu#`=L9v*ND7J5PgKIc85fUW0P;avq9)+ye7>@ zln2{raRzA;`^UMa-luerg&kwOag9lBEM_A)7-(zF524TqT4pnBLfiL{*cy42UOcWM z{sQjSpKq`U5a)T0Y})GknQzB;>v;cC-!O{+D^RIE{iEvL1(TO1t0;%V_Acrj-f^35 zpjLNlGb!7>e`B@r?Oan)FRu9O_B&RjVzvUZ;_ z9J)vIa>IkZ(*L#**=6r8>jdBrsITxynY8`E)A3FaU#zx>eXH+ydY^A}L4ezhTu{o} z7qWbV91{`&O`-7-zlSDFhvBov;$FEKn7I!WgQz4Y4J5Xb5hLe`R+o33)-EAx3W9lvZ;(oDruw4Dv+edKUkb+=n zSUqw_JiL{Tva_1~BQb(4!K2K2Esg|6`e$+>Ja-_nW- zr0hG@J0ZF+w{rTKv`BeF;w@@*ZfoL&pTK3X#gyU~(bUn3{f;2g&QR4sY@d8tnS?$%;|*+|d3 zaQYC+l!a`Z6u3lLM9P1gbd1Tk*m#}3nFgGQS6;3W9afA<6&@ecSS(<=(m>fj;}e~K zxw^xZM$+F&S4?y9k#!#c_`JRUp>}00Y_s1yhpS50!gD&033yMCYJJtacP#U67 zkDpMeTDRgneP=Zz)3Q0AHHfo)dJ&;5w4GanDuKR}Leaw#8Lj?(0UlO?jv$EQRmX3= z@GvpkS^`%Ud&49KWutbe@tgXsHH2?6c9#E}@zr$03b;^!REgno-~&4F9eJAhx|@jL zp|eg1$KU<0kbVhyQJGPhSn<}pT{@+^uHY|SQZVlU6}P!2PY$Q8JUU4IUX9mU zrV>Mr7+w8hrdb~qQn`rdZU`a%cZw~top*X#+ND&04d%R7UAE&EGg}I0j%xBX)~GFq zk$>4&ZgD-&C7p%j{58ZCHPiJh3V#<`b2B^XK5QPbA=l?8aGU`cDEX<|=SoBLIS}aN zO*dbwznLJPPWlC&OJw$alAT9c1F46YHh()_O|y>mi#gS867hN~fsD{_N(Dr0J(4<% z;9$(RaH)1bzv3v3vU1~#*QVU0zApt_AFg$AY+&K*?Yxn&*!sMX)#i6cVN6`P#1xES jAz)W+!Qf8=R^9&t5RCb|aP$Yx00000NkvXXu0mjfTqbw+ literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css b/novel-admin/src/main/resources/static/css/plugins/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css new file mode 100644 index 0000000..f4e6575 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css @@ -0,0 +1,251 @@ +.checkbox { + padding-left: 20px; +} +.checkbox label { + display: inline-block; + vertical-align: middle; + position: relative; + padding-left: 5px; +} +.checkbox label::before { + content: ""; + display: inline-block; + position: absolute; + width: 17px; + height: 17px; + left: 0; + margin-left: -20px; + border: 1px solid #cccccc; + border-radius: 3px; + background-color: #fff; + -webkit-transition: border 0.15s ease-in-out, color 0.15s ease-in-out; + -o-transition: border 0.15s ease-in-out, color 0.15s ease-in-out; + transition: border 0.15s ease-in-out, color 0.15s ease-in-out; +} +.checkbox label::after { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + left: 0; + top: 0; + margin-left: -20px; + padding-left: 3px; + padding-top: 1px; + font-size: 11px; + color: #555555; +} +.checkbox input[type="checkbox"], +.checkbox input[type="radio"] { + opacity: 0; + z-index: 1; +} +.checkbox input[type="checkbox"]:focus + label::before, +.checkbox input[type="radio"]:focus + label::before { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.checkbox input[type="checkbox"]:checked + label::after, +.checkbox input[type="radio"]:checked + label::after { + font-family: "FontAwesome"; + content: "\f00c"; +} +.checkbox input[type="checkbox"]:disabled + label, +.checkbox input[type="radio"]:disabled + label { + opacity: 0.65; +} +.checkbox input[type="checkbox"]:disabled + label::before, +.checkbox input[type="radio"]:disabled + label::before { + background-color: #eeeeee; + cursor: not-allowed; +} +.checkbox.checkbox-circle label::before { + border-radius: 50%; +} +.checkbox.checkbox-inline { + margin-top: 0; +} + +.checkbox-primary input[type="checkbox"]:checked + label::before, +.checkbox-primary input[type="radio"]:checked + label::before { + background-color: #337ab7; + border-color: #337ab7; +} +.checkbox-primary input[type="checkbox"]:checked + label::after, +.checkbox-primary input[type="radio"]:checked + label::after { + color: #fff; +} + +.checkbox-danger input[type="checkbox"]:checked + label::before, +.checkbox-danger input[type="radio"]:checked + label::before { + background-color: #d9534f; + border-color: #d9534f; +} +.checkbox-danger input[type="checkbox"]:checked + label::after, +.checkbox-danger input[type="radio"]:checked + label::after { + color: #fff; +} + +.checkbox-info input[type="checkbox"]:checked + label::before, +.checkbox-info input[type="radio"]:checked + label::before { + background-color: #5bc0de; + border-color: #5bc0de; +} +.checkbox-info input[type="checkbox"]:checked + label::after, +.checkbox-info input[type="radio"]:checked + label::after { + color: #fff; +} + +.checkbox-warning input[type="checkbox"]:checked + label::before, +.checkbox-warning input[type="radio"]:checked + label::before { + background-color: #f0ad4e; + border-color: #f0ad4e; +} +.checkbox-warning input[type="checkbox"]:checked + label::after, +.checkbox-warning input[type="radio"]:checked + label::after { + color: #fff; +} + +.checkbox-success input[type="checkbox"]:checked + label::before, +.checkbox-success input[type="radio"]:checked + label::before { + background-color: #5cb85c; + border-color: #5cb85c; +} +.checkbox-success input[type="checkbox"]:checked + label::after, +.checkbox-success input[type="radio"]:checked + label::after { + color: #fff; +} + +.radio { + padding-left: 20px; +} +.radio label { + display: inline-block; + vertical-align: middle; + position: relative; + padding-left: 5px; +} +.radio label::before { + content: ""; + display: inline-block; + position: absolute; + width: 17px; + height: 17px; + left: 0; + margin-left: -20px; + border: 1px solid #cccccc; + border-radius: 50%; + background-color: #fff; + -webkit-transition: border 0.15s ease-in-out; + -o-transition: border 0.15s ease-in-out; + transition: border 0.15s ease-in-out; +} +.radio label::after { + display: inline-block; + position: absolute; + content: " "; + width: 11px; + height: 11px; + left: 3px; + top: 3px; + margin-left: -20px; + border-radius: 50%; + background-color: #555555; + -webkit-transform: scale(0, 0); + -ms-transform: scale(0, 0); + -o-transform: scale(0, 0); + transform: scale(0, 0); + -webkit-transition: -webkit-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); + -moz-transition: -moz-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); + -o-transition: -o-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); + transition: transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); +} +.radio input[type="radio"] { + opacity: 0; + z-index: 1; +} +.radio input[type="radio"]:focus + label::before { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.radio input[type="radio"]:checked + label::after { + -webkit-transform: scale(1, 1); + -ms-transform: scale(1, 1); + -o-transform: scale(1, 1); + transform: scale(1, 1); +} +.radio input[type="radio"]:disabled + label { + opacity: 0.65; +} +.radio input[type="radio"]:disabled + label::before { + cursor: not-allowed; +} +.radio.radio-inline { + margin-top: 0; +} + +.radio-primary input[type="radio"] + label::after { + background-color: #337ab7; +} +.radio-primary input[type="radio"]:checked + label::before { + border-color: #337ab7; +} +.radio-primary input[type="radio"]:checked + label::after { + background-color: #337ab7; +} + +.radio-danger input[type="radio"] + label::after { + background-color: #d9534f; +} +.radio-danger input[type="radio"]:checked + label::before { + border-color: #d9534f; +} +.radio-danger input[type="radio"]:checked + label::after { + background-color: #d9534f; +} + +.radio-info input[type="radio"] + label::after { + background-color: #5bc0de; +} +.radio-info input[type="radio"]:checked + label::before { + border-color: #5bc0de; +} +.radio-info input[type="radio"]:checked + label::after { + background-color: #5bc0de; +} + +.radio-warning input[type="radio"] + label::after { + background-color: #f0ad4e; +} +.radio-warning input[type="radio"]:checked + label::before { + border-color: #f0ad4e; +} +.radio-warning input[type="radio"]:checked + label::after { + background-color: #f0ad4e; +} + +.radio-success input[type="radio"] + label::after { + background-color: #5cb85c; +} +.radio-success input[type="radio"]:checked + label::before { + border-color: #5cb85c; +} +.radio-success input[type="radio"]:checked + label::after { + background-color: #5cb85c; +} + +input[type="checkbox"].styled:checked + label:after, +input[type="radio"].styled:checked + label:after { + font-family: 'FontAwesome'; + content: "\f00c"; +} +input[type="checkbox"] .styled:checked + label::before, +input[type="radio"] .styled:checked + label::before { + color: #fff; +} +input[type="checkbox"] .styled:checked + label::after, +input[type="radio"] .styled:checked + label::after { + color: #fff; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery-indicator.css b/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery-indicator.css new file mode 100644 index 0000000..e47171a --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery-indicator.css @@ -0,0 +1,71 @@ +@charset "UTF-8"; +/* + * blueimp Gallery Indicator CSS 1.1.0 + * https://github.com/blueimp/Gallery + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.blueimp-gallery > .indicator { + position: absolute; + top: auto; + right: 15px; + bottom: 15px; + left: 15px; + margin: 0 40px; + padding: 0; + list-style: none; + text-align: center; + line-height: 10px; + display: none; +} +.blueimp-gallery > .indicator > li { + display: inline-block; + width: 9px; + height: 9px; + margin: 6px 3px 0 3px; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + border: 1px solid transparent; + background: #ccc; + background: rgba(255, 255, 255, 0.25) center no-repeat; + border-radius: 5px; + box-shadow: 0 0 2px #000; + opacity: 0.5; + cursor: pointer; +} +.blueimp-gallery > .indicator > li:hover, +.blueimp-gallery > .indicator > .active { + background-color: #fff; + border-color: #fff; + opacity: 1; +} +.blueimp-gallery-controls > .indicator { + display: block; + /* Fix z-index issues (controls behind slide element) on Android: */ + -webkit-transform: translateZ(0); + -moz-transform: translateZ(0); + -ms-transform: translateZ(0); + -o-transform: translateZ(0); + transform: translateZ(0); +} +.blueimp-gallery-single > .indicator { + display: none; +} +.blueimp-gallery > .indicator { + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +/* IE7 fixes */ +*+html .blueimp-gallery > .indicator > li { + display: inline; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery-video.css b/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery-video.css new file mode 100644 index 0000000..5969564 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery-video.css @@ -0,0 +1,87 @@ +@charset "UTF-8"; +/* + * blueimp Gallery Video Factory CSS 1.3.0 + * https://github.com/blueimp/Gallery + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.blueimp-gallery > .slides > .slide > .video-content > img { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: auto; + height: auto; + max-width: 100%; + max-height: 100%; + /* Prevent artifacts in Mozilla Firefox: */ + -moz-backface-visibility: hidden; +} +.blueimp-gallery > .slides > .slide > .video-content > video { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.blueimp-gallery > .slides > .slide > .video-content > iframe { + position: absolute; + top: 100%; + left: 0; + width: 100%; + height: 100%; + border: none; +} +.blueimp-gallery > .slides > .slide > .video-playing > iframe { + top: 0; +} +.blueimp-gallery > .slides > .slide > .video-content > a { + position: absolute; + top: 50%; + right: 0; + left: 0; + margin: -64px auto 0; + width: 128px; + height: 128px; + background: url(../img/video-play.png) center no-repeat; + opacity: 0.8; + cursor: pointer; +} +.blueimp-gallery > .slides > .slide > .video-content > a:hover { + opacity: 1; +} +.blueimp-gallery > .slides > .slide > .video-playing > a, +.blueimp-gallery > .slides > .slide > .video-playing > img { + display: none; +} +.blueimp-gallery > .slides > .slide > .video-content > video { + display: none; +} +.blueimp-gallery > .slides > .slide > .video-playing > video { + display: block; +} +.blueimp-gallery > .slides > .slide > .video-loading > a { + background: url(../img/loading.gif) center no-repeat; + background-size: 64px 64px; +} + +/* Replace PNGs with SVGs for capable browsers (excluding IE<9) */ +body:last-child .blueimp-gallery > .slides > .slide > .video-content:not(.video-loading) > a { + background-image: url(../img/video-play.svg); +} + +/* IE7 fixes */ +*+html .blueimp-gallery > .slides > .slide > .video-content { + height: 100%; +} +*+html .blueimp-gallery > .slides > .slide > .video-content > a { + left: 50%; + margin-left: -64px; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery.css b/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery.css new file mode 100644 index 0000000..7ce946b --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery.css @@ -0,0 +1,226 @@ +@charset "UTF-8"; +/* + * blueimp Gallery CSS 2.11.1 + * https://github.com/blueimp/Gallery + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.blueimp-gallery, +.blueimp-gallery > .slides > .slide > .slide-content { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + /* Prevent artifacts in Mozilla Firefox: */ + -moz-backface-visibility: hidden; +} +.blueimp-gallery > .slides > .slide > .slide-content { + margin: auto; + width: auto; + height: auto; + max-width: 100%; + max-height: 100%; + opacity: 1; +} +.blueimp-gallery { + position: fixed; + z-index: 999999; + overflow: hidden; + background: #000; + background: rgba(0, 0, 0, 0.9); + opacity: 0; + display: none; + direction: ltr; + -ms-touch-action: none; + touch-action: none; +} +.blueimp-gallery-carousel { + position: relative; + z-index: auto; + margin: 1em auto; + /* Set the carousel width/height ratio to 16/9: */ + padding-bottom: 56.25%; + box-shadow: 0 0 10px #000; + -ms-touch-action: pan-y; + touch-action: pan-y; +} +.blueimp-gallery-display { + display: block; + opacity: 1; +} +.blueimp-gallery > .slides { + position: relative; + height: 100%; + overflow: hidden; +} +.blueimp-gallery-carousel > .slides { + position: absolute; +} +.blueimp-gallery > .slides > .slide { + position: relative; + float: left; + height: 100%; + text-align: center; + -webkit-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000); + -moz-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000); + -ms-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000); + -o-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000); + transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000); +} +.blueimp-gallery, +.blueimp-gallery > .slides > .slide > .slide-content { + -webkit-transition: opacity 0.5s linear; + -moz-transition: opacity 0.5s linear; + -ms-transition: opacity 0.5s linear; + -o-transition: opacity 0.5s linear; + transition: opacity 0.5s linear; +} +.blueimp-gallery > .slides > .slide-loading { + background: url(../img/loading.gif) center no-repeat; + background-size: 64px 64px; +} +.blueimp-gallery > .slides > .slide-loading > .slide-content { + opacity: 0; +} +.blueimp-gallery > .slides > .slide-error { + background: url(../img/error.png) center no-repeat; +} +.blueimp-gallery > .slides > .slide-error > .slide-content { + display: none; +} +.blueimp-gallery > .prev, +.blueimp-gallery > .next { + position: absolute; + top: 50%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -23px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #fff; + text-decoration: none; + text-shadow: 0 0 2px #000; + text-align: center; + background: #222; + background: rgba(0, 0, 0, 0.5); + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + border: 3px solid #fff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + cursor: pointer; + display: none; +} +.blueimp-gallery > .next { + left: auto; + right: 15px; +} +.blueimp-gallery > .close, +.blueimp-gallery > .title { + position: absolute; + top: 15px; + left: 15px; + margin: 0 40px 0 0; + font-size: 20px; + line-height: 30px; + color: #fff; + text-shadow: 0 0 2px #000; + opacity: 0.8; + display: none; +} +.blueimp-gallery > .close { + padding: 15px; + right: 15px; + left: auto; + margin: -15px; + font-size: 30px; + text-decoration: none; + cursor: pointer; +} +.blueimp-gallery > .play-pause { + position: absolute; + right: 15px; + bottom: 15px; + width: 15px; + height: 15px; + background: url(../img/play-pause.png) 0 0 no-repeat; + cursor: pointer; + opacity: 0.5; + display: none; +} +.blueimp-gallery-playing > .play-pause { + background-position: -15px 0; +} +.blueimp-gallery > .prev:hover, +.blueimp-gallery > .next:hover, +.blueimp-gallery > .close:hover, +.blueimp-gallery > .title:hover, +.blueimp-gallery > .play-pause:hover { + color: #fff; + opacity: 1; +} +.blueimp-gallery-controls > .prev, +.blueimp-gallery-controls > .next, +.blueimp-gallery-controls > .close, +.blueimp-gallery-controls > .title, +.blueimp-gallery-controls > .play-pause { + display: block; + /* Fix z-index issues (controls behind slide element) on Android: */ + -webkit-transform: translateZ(0); + -moz-transform: translateZ(0); + -ms-transform: translateZ(0); + -o-transform: translateZ(0); + transform: translateZ(0); +} +.blueimp-gallery-single > .prev, +.blueimp-gallery-left > .prev, +.blueimp-gallery-single > .next, +.blueimp-gallery-right > .next, +.blueimp-gallery-single > .play-pause { + display: none; +} +.blueimp-gallery > .slides > .slide > .slide-content, +.blueimp-gallery > .prev, +.blueimp-gallery > .next, +.blueimp-gallery > .close, +.blueimp-gallery > .play-pause { + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +/* Replace PNGs with SVGs for capable browsers (excluding IE<9) */ +body:last-child .blueimp-gallery > .slides > .slide-error { + background-image: url(../img/error.svg); +} +body:last-child .blueimp-gallery > .play-pause { + width: 20px; + height: 20px; + background-size: 40px 20px; + background-image: url(../img/play-pause.svg); +} +body:last-child .blueimp-gallery-playing > .play-pause { + background-position: -20px 0; +} + +/* IE7 fixes */ +*+html .blueimp-gallery > .slides > .slide { + min-height: 300px; +} +*+html .blueimp-gallery > .slides > .slide > .slide-content { + position: relative; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery.min.css b/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery.min.css new file mode 100644 index 0000000..0e95be3 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/blueimp/css/blueimp-gallery.min.css @@ -0,0 +1 @@ +@charset "UTF-8";.blueimp-gallery,.blueimp-gallery>.slides>.slide>.slide-content{position:absolute;top:0;right:0;bottom:0;left:0;-moz-backface-visibility:hidden}.blueimp-gallery>.slides>.slide>.slide-content{margin:auto;width:auto;height:auto;max-width:100%;max-height:100%;opacity:1}.blueimp-gallery{position:fixed;z-index:999999;overflow:hidden;background:#000;background:rgba(0,0,0,.9);opacity:0;display:none;direction:ltr;-ms-touch-action:none;touch-action:none}.blueimp-gallery-carousel{position:relative;z-index:auto;margin:1em auto;padding-bottom:56.25%;box-shadow:0 0 10px #000;-ms-touch-action:pan-y;touch-action:pan-y}.blueimp-gallery-display{display:block;opacity:1}.blueimp-gallery>.slides{position:relative;height:100%;overflow:hidden}.blueimp-gallery-carousel>.slides{position:absolute}.blueimp-gallery>.slides>.slide{position:relative;float:left;height:100%;text-align:center;-webkit-transition-timing-function:cubic-bezier(0.645,.045,.355,1);-moz-transition-timing-function:cubic-bezier(0.645,.045,.355,1);-ms-transition-timing-function:cubic-bezier(0.645,.045,.355,1);-o-transition-timing-function:cubic-bezier(0.645,.045,.355,1);transition-timing-function:cubic-bezier(0.645,.045,.355,1)}.blueimp-gallery,.blueimp-gallery>.slides>.slide>.slide-content{-webkit-transition:opacity .5s linear;-moz-transition:opacity .5s linear;-ms-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear}.blueimp-gallery>.slides>.slide-loading{background:url(../img/loading.gif) center no-repeat;background-size:64px 64px}.blueimp-gallery>.slides>.slide-loading>.slide-content{opacity:0}.blueimp-gallery>.slides>.slide-error{background:url(../img/error.png) center no-repeat}.blueimp-gallery>.slides>.slide-error>.slide-content{display:none}.blueimp-gallery>.prev,.blueimp-gallery>.next{position:absolute;top:50%;left:15px;width:40px;height:40px;margin-top:-23px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-decoration:none;text-shadow:0 0 2px #000;text-align:center;background:#222;background:rgba(0,0,0,.5);-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;cursor:pointer;display:none}.blueimp-gallery>.next{left:auto;right:15px}.blueimp-gallery>.close,.blueimp-gallery>.title{position:absolute;top:15px;left:15px;margin:0 40px 0 0;font-size:20px;line-height:30px;color:#fff;text-shadow:0 0 2px #000;opacity:.8;display:none}.blueimp-gallery>.close{padding:15px;right:15px;left:auto;margin:-15px;font-size:30px;text-decoration:none;cursor:pointer}.blueimp-gallery>.play-pause{position:absolute;right:15px;bottom:15px;width:15px;height:15px;background:url(../img/play-pause.png) 0 0 no-repeat;cursor:pointer;opacity:.5;display:none}.blueimp-gallery-playing>.play-pause{background-position:-15px 0}.blueimp-gallery>.prev:hover,.blueimp-gallery>.next:hover,.blueimp-gallery>.close:hover,.blueimp-gallery>.title:hover,.blueimp-gallery>.play-pause:hover{color:#fff;opacity:1}.blueimp-gallery-controls>.prev,.blueimp-gallery-controls>.next,.blueimp-gallery-controls>.close,.blueimp-gallery-controls>.title,.blueimp-gallery-controls>.play-pause{display:block;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.blueimp-gallery-single>.prev,.blueimp-gallery-left>.prev,.blueimp-gallery-single>.next,.blueimp-gallery-right>.next,.blueimp-gallery-single>.play-pause{display:none}.blueimp-gallery>.slides>.slide>.slide-content,.blueimp-gallery>.prev,.blueimp-gallery>.next,.blueimp-gallery>.close,.blueimp-gallery>.play-pause{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body:last-child .blueimp-gallery>.slides>.slide-error{background-image:url(../img/error.svg)}body:last-child .blueimp-gallery>.play-pause{width:20px;height:20px;background-size:40px 20px;background-image:url(../img/play-pause.svg)}body:last-child .blueimp-gallery-playing>.play-pause{background-position:-20px 0}*+html .blueimp-gallery>.slides>.slide{min-height:300px}*+html .blueimp-gallery>.slides>.slide>.slide-content{position:relative}@charset "UTF-8";.blueimp-gallery>.indicator{position:absolute;top:auto;right:15px;bottom:15px;left:15px;margin:0 40px;padding:0;list-style:none;text-align:center;line-height:10px;display:none}.blueimp-gallery>.indicator>li{display:inline-block;width:9px;height:9px;margin:6px 3px 0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;border:1px solid transparent;background:#ccc;background:rgba(255,255,255,.25)center no-repeat;border-radius:5px;box-shadow:0 0 2px #000;opacity:.5;cursor:pointer}.blueimp-gallery>.indicator>li:hover,.blueimp-gallery>.indicator>.active{background-color:#fff;border-color:#fff;opacity:1}.blueimp-gallery-controls>.indicator{display:block;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.blueimp-gallery-single>.indicator{display:none}.blueimp-gallery>.indicator{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}*+html .blueimp-gallery>.indicator>li{display:inline}@charset "UTF-8";.blueimp-gallery>.slides>.slide>.video-content>img{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:auto;height:auto;max-width:100%;max-height:100%;-moz-backface-visibility:hidden}.blueimp-gallery>.slides>.slide>.video-content>video{position:absolute;top:0;left:0;width:100%;height:100%}.blueimp-gallery>.slides>.slide>.video-content>iframe{position:absolute;top:100%;left:0;width:100%;height:100%;border:none}.blueimp-gallery>.slides>.slide>.video-playing>iframe{top:0}.blueimp-gallery>.slides>.slide>.video-content>a{position:absolute;top:50%;right:0;left:0;margin:-64px auto 0;width:128px;height:128px;background:url(../img/video-play.png) center no-repeat;opacity:.8;cursor:pointer}.blueimp-gallery>.slides>.slide>.video-content>a:hover{opacity:1}.blueimp-gallery>.slides>.slide>.video-playing>a,.blueimp-gallery>.slides>.slide>.video-playing>img{display:none}.blueimp-gallery>.slides>.slide>.video-content>video{display:none}.blueimp-gallery>.slides>.slide>.video-playing>video{display:block}.blueimp-gallery>.slides>.slide>.video-loading>a{background:url(../img/loading.gif) center no-repeat;background-size:64px 64px}body:last-child .blueimp-gallery>.slides>.slide>.video-content:not(.video-loading)>a{background-image:url(../img/video-play.svg)}*+html .blueimp-gallery>.slides>.slide>.video-content{height:100%}*+html .blueimp-gallery>.slides>.slide>.video-content>a{left:50%;margin-left:-64px} diff --git a/novel-admin/src/main/resources/static/css/plugins/blueimp/css/demo.css b/novel-admin/src/main/resources/static/css/plugins/blueimp/css/demo.css new file mode 100644 index 0000000..7ed6bcc --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/blueimp/css/demo.css @@ -0,0 +1,51 @@ +/* + * blueimp Gallery Demo CSS 2.0.0 + * https://github.com/blueimp/Gallery + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +body { + max-width: 750px; + margin: 0 auto; + padding: 1em; + font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, sans-serif; + font-size: 1em; + line-height: 1.4em; + background: #222; + color: #fff; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a { + color: orange; + text-decoration: none; +} +img { + border: 0; + vertical-align: middle; +} +h1 { + line-height: 1em; +} +h2, +.links { + text-align: center; +} + +@media (min-width: 481px) { + .navigation { + list-style: none; + padding: 0; + } + .navigation li { + display: inline-block; + } + .navigation li:not(:first-child):before { + content: '| '; + } +} diff --git a/novel-admin/src/main/resources/static/css/plugins/blueimp/img/error.png b/novel-admin/src/main/resources/static/css/plugins/blueimp/img/error.png new file mode 100644 index 0000000000000000000000000000000000000000..a5577c33ab5a2723bdbd933c63c818851dd3af76 GIT binary patch literal 2216 zcmV;Z2v_%sP)NlRHRA~T703*AhixLFhGJ7nwZ|8 zq=eOaX9hZY;V6JmvAxbBnB%@*i-c*7uvCI{v9iP*;6cSylqLeD@LT>>+VWSK#_4M{ zfFPhrK&AI=gv*uwCaa>2i>>H3106{?%M(KcA*+bGl7Kl$9~~GG0VY7P`*WvN%O*tA zR!L~f(xgoAh4=eXD0OYD#YG+-xQs5Pxe|UPp@KmN2}hN6|6`!R*_3HO5H^b~1=0XV z;GJ{e2PVzylc@V3?Y9&Ap*!Ia@jQSSumuU-0HfiXCgeWY?jfh4-NiXq<)8%MF!cE$ ztDXb+752I^>;$+5oqgyu90y57`ReEk!5&;fZIYdU~r1^T$phPGGVpW56vRm-2vPu z;MZ0LBwPgSRp$}Pb`AroC0igZ;EWSofpnM|AbuF$jzYW-w!5}gs-DeWY@!S;ld#8h zq;vsi26=-p5}Sg8C*ZO>V7=dTk?_E6p<`}545IQ{Y*TrBN&yh#3A6A zz64FcHMS+lm+&sQ`x3Q*F8s@6z=Ord_NW2-UFUj@;t8xmA`k*TbS4A{S?+7#c zf`ldVdRlK!L3>!@o1of@WHsUm-4O+y0W}f*zv)TEbs&wA&=!*Dy_|;sOOVd)e%Z3_ zpG(EQ<0iZ=;?D1qFg^~#GxIdTz4?S>n}Ay_-mUX9c((%%l)&(@a77th=tHMiKyQ?g z>^0zOy?s60u^9g8C(&Vebd))eDHVno(^NWJtrOo38wFGb5eGO2YPY~LLsxg82BZ_K zeWA9kg+=#3TiAWm0F^bc&eGj3oVe44!-jXlzHL!4nlfX1+XJAqk7af&2z^4|W5;{kPAP(@Q z=3jIMJ`O{?5vp<_4lokV_hVq2+E`)8^BbXRkz0<6N*rJe%(5~d;J<2PlUCQsm$*wv ztxWyJdKdvrhVREoeDjH?W1T5IzYqA8vf1uTKq6n_dbL=u>4_-y>RgELgk_W9cBSdJ z0+!pB;HQ3*{T^%rJx(<(4YUe)^>p@pDuNhHV(!+N0!+Y3!pe@v;iQ25 z?shtOD%ViPN~nuaPYd(3x=vv9P!xECgvTZH#VByl^QDA`WrWi)ZlMzrekLI^h(g<* zjLS=+;6A|B_;Y$1=?7`}a5ucX4VqWOu9P9pQDGt!*TLi&P z;!}XD-L1g95P{gfKfwLB!~1dWx=m0$A66QIJQHjMZV>^>wnd}5@K@m+^22On`XTiK z{A3=yStzsXhyD`yO32|i0pF1@TfpA}az$U^*8qRD37>&uzkr*E!K^|F|2vqPf!Awb zUBI_!)8f7<;g`AAs2>NG*!tVx$tlj5fJ>l`J6x?Xa=uYN}doThLpTSE-FxE2U9sz3uLtzR32BumZ%zJ0UokK}*#ke<= z!#6D59|*$^wkcpdun&t+DcJV{to<%LI1~gQ2gwg%i%+VY1}+rvNt9%00?xPX(p(uU zwBP{G!p!+l?~~c4fk^^Bid+zJug~m2xkfQm1b+f9`ySK}gAqQ%+JULU{ku#)6(Or* z)W&r`3`>6KbDZY8)wjd4iOyBBAl_FBr=Af{P0;;Y!Arp0FyoKFJI}+0Ft@yHPy}Kf zTrm$8j|_jG{?EXTwmWh;D?n4kdMp?E0&sh~;iFF2pN7wS+~Q>k3@?MT%i)4j=R#Le zZb2uD!wMb?xYsK8oy3y(Uhkj3CmkeINT_!&trkk)E(vR6xfGkL2}D#%wVQrkiF2*s qtndjPZ{wu3+k|${ + + + + diff --git a/novel-admin/src/main/resources/static/css/plugins/blueimp/img/loading.gif b/novel-admin/src/main/resources/static/css/plugins/blueimp/img/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..90f28cbdbb390b095e0d619cbe8d91208798e58f GIT binary patch literal 3897 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 D^>?LD literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/blueimp/img/play-pause.png b/novel-admin/src/main/resources/static/css/plugins/blueimp/img/play-pause.png new file mode 100644 index 0000000000000000000000000000000000000000..ece6cfb9b709d8a86f80ad19d29657079ee68d07 GIT binary patch literal 606 zcmV-k0-^nhP){L(+9jry_+72zybnK8(d;Q;#D!=j0P)08mwR;JWT@zlvp98&x0SZ{VDh<2VFB z3+RK0C&TTsm~3;=*(7;Du~P@+&M{E9}S=c!amnoK5laU>q#L}X7* z3<0=Tuh)Mw#y;*N1RJ#7JOB{np;#=skx1n2_K>~73ZLuSZ=+%5aydGm&tIm~=_!E6 z$6R{@l}d%$?e-f0?++!*{${aQ;Oy+|!gXB+fR1e#vf1n+9*;k9T{pg+Xj#^!6+OcQ zpGEG}QTc`!vMj$=6s2j~_6q=?{-K89t&IzN>#Er0!yzJCE|*lTR)1=mHe-y{0o*wt zyv_|+KpcwgOgS75BcIR9 + + + + + diff --git a/novel-admin/src/main/resources/static/css/plugins/blueimp/img/video-play.png b/novel-admin/src/main/resources/static/css/plugins/blueimp/img/video-play.png new file mode 100644 index 0000000000000000000000000000000000000000..353e3a592d1006bf509ebfd76fe11a2513e745c0 GIT binary patch literal 2811 zcmVpURhaYRhxe@3HmvY`7oQ_xasBc(As8!EZUylUBOHj|V_5mBZ} zi9YD{`enlB@#Dvba(^2FW

  • jF*zb;b`SIed5H4GekQQq12M+64Bd4GzNwoi0Gbx zY&LUL zRMZNwwy|tvkTC%Ow6(QelvCX!M~-ANw~>g*{9?Bfix5VoUDGE&1UZI?!M}DI(ws|qo0Y5 zjh%&v8piNSL|mzu00~W@`1tr~9UUDmrBb_g?OMLUU|1n)eg_fXXA(d}2>@_i(BwhH zj6k+;&z?QgmMmHFk6+Q+XJ9g~5 ztZ|Kvjcj#8EMLHKMAZPWOcc(vL_|a^R)Vy;x;kUovSlAj9pH#azS!;x3LNagI*?+C z=&C}bZ^2XezXT%6Afls;eZNaY>mL^4VjnfXmxx9O1M!RiP4IdkA=v}YNZ{RUot>SZ z_4M?#hJ}R)si1T;0JI8Dzv~eZ5ibX7N!)f^WJSe7%FYQV z${}C7cI_x%wxhedTS$PG4@j9osl(y8rPJva$pxhY0|S>&07;B@*#vr7MjYGiDwU)s~l+Pmvqf+uPe9 zc#ISikQk`4<>cg)x!vxw27@6~s^4OrJ0easZh!h zy#oNhyq#>tF`C!S`{Pa@z@BI8si1pvka zfDQn(d>jq{b^y4^sZ-mNTtkT?qCy|)X-dG%If0nRk>MyJDj^~_4IT6o(eH^U@=-CZ zBBEatk&7NZxHwu=58VfF60Z@bk#gX0IBqmGH61;9^5n%08#XlB?RJmcc!R+ZT3A?^ zJZ;*vw1k9&d0MS@ybmNE1As+{*c(&`0B4BkJ%4M|B>=F7)qnNs)v}b7l#<8cBx-1A$V*I2TrD%?4~STxSOd5+HIw;@ zii$Ol3-bT~Nl8f`@7%dFPi9Cy5&c4u0Ej39L}hZ3GkVRR_qRk;>+yIlHa9oFHGTT@ zh+qq0`SRtLOeT|@5Z))ERIesLL?-}X4nytBQ&LijgHf6R0I=C?^+u!dgZ%vb`d|sd zY&Ne=PEKYO){Y_Ki%bC!(KrCO#qjiw(W6Iy-dLaRvi@SVT0Q;> zK(E(_w6(Q;B6TH?uY3w~4Y3JivKH>>==juM=9Pe2t&U1hPk*zgr{@w8)mki;t!vh- ziT8D#j*bqO#bS{=k><$x0OtEutJONB8CpzC%&d}u@*@)YR0>Ryz0Iy?d=P z-DAaP_X3dI?jh#FcOxtX> z`W-uVY$_-yF#EekTwL5#neKWy6F3C`l5cW`4I7qNR#p~tArO(LrKM$0R#sLfBBn(} zMg2Gs=8Z;Us!pdfu;dE>pL#n63jtu0)NH5I**;>#h?l%&bly$@r_*`o=+UFU3wHP% z6&0oG?CdV8#iv;vU&67FCUiq zSgqEI$jHcVF}nYah?5oN0^GHMW&j9hrM%K7UfIg{yolcj~+1Ytv_wL=_ebmhF-@kuGdwctNFU%)OG4Hh=z+IoI2Y_$N zMR291r9aEd%ey?3jF*;{etY%m)mznSb(GAo766!ph>k!jLQKaf9M;s-R5^S0?Ba(N zG3xdDkh5pczHTrWmMNfp9U^`hw3;CIS;1idn5$%bcX#)N0|yRNG8~XXi#oM=QO||91d*N$DLqpI?k{g4hm>3w>VZ4)pc)eQC4VZaN%}yH2OGmy6tn zX|>wnk&%(lhKGlbmH8e+4yphk*Qd*YK?q`I5K;3ZEQw#|zx;jVKtyARXe)PV^ + + + + diff --git a/novel-admin/src/main/resources/static/css/plugins/bootstrap-table/bootstrap-table.min.css b/novel-admin/src/main/resources/static/css/plugins/bootstrap-table/bootstrap-table.min.css new file mode 100644 index 0000000..35a4278 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/bootstrap-table/bootstrap-table.min.css @@ -0,0 +1 @@ +.bootstrap-table .table{margin-bottom:0!important;border-bottom:1px solid #e4eaec;border-collapse:collapse!important}.bootstrap-table .table,.bootstrap-table .table>tbody>tr>td,.bootstrap-table .table>tbody>tr>th,.bootstrap-table .table>tfoot>tr>td,.bootstrap-table .table>tfoot>tr>th,.bootstrap-table .table>thead>tr>td{padding:8px!important}.bootstrap-table .table.table-no-bordered>tbody>tr>td,.bootstrap-table .table.table-no-bordered>thead>tr>th{border-right:2px solid transparent}.fixed-table-container{position:relative;clear:both;border:1px solid #e4eaec}.fixed-table-container.table-no-bordered{border:1px solid transparent}.fixed-table-footer,.fixed-table-header{height:37px;overflow:hidden}.fixed-table-header{border-bottom:1px solid #e4eaec}.fixed-table-footer{border-top:1px solid #e4eaec}.fixed-table-body{overflow-x:auto;overflow-y:auto;height:100%}.fixed-table-container table{width:100%}.fixed-table-container thead th{height:0;padding:0;margin:0;border-left:1px solid #e4eaec}.fixed-table-container thead th:first-child{border-left:none}.fixed-table-container tbody td .th-inner,.fixed-table-container thead th .th-inner{padding:8px;line-height:20px;vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixed-table-container thead th .sortable{cursor:pointer;background-position:right;background-repeat:no-repeat;padding-right:30px}.fixed-table-container th.detail{width:30px}.fixed-table-container tbody td{border-left:1px solid #e4eaec}.fixed-table-container tbody tr:first-child td{border-top:none}.fixed-table-container tbody td:first-child{border-left:none}.fixed-table-container .table .icon,.fixed-table-container table .icon{top:auto;margin:0 5px}.fixed-table-container tbody .selected td{background-color:#f3f7f9}.fixed-table-container .bs-checkbox{text-align:center}.fixed-table-container .bs-checkbox .th-inner{padding:8px 0}.fixed-table-container input[type=radio],.fixed-table-container input[type=checkbox]{margin:0 auto!important}.fixed-table-container .no-records-found{text-align:center}.fixed-table-pagination .pagination-detail,.fixed-table-pagination div.pagination{margin-top:10px;margin-bottom:10px}.fixed-table-pagination div.pagination .pagination{margin:0}.fixed-table-pagination .pagination a{padding:6px 12px;line-height:1.428571429}.fixed-table-pagination .pagination-info{line-height:34px;margin-right:5px}.fixed-table-pagination .btn-group{position:relative;display:inline-block;vertical-align:middle}.fixed-table-pagination .dropup .dropdown-menu{margin-bottom:0}.fixed-table-pagination .page-list{display:inline-block}.fixed-table-toolbar .columns-left{margin-right:5px}.fixed-table-toolbar .columns-right{margin-left:5px}.fixed-table-toolbar .columns label{display:block;padding:3px 20px;clear:both;font-weight:300;line-height:1.428571429}.fixed-table-toolbar .bars,.fixed-table-toolbar .columns,.fixed-table-toolbar .search{position:relative;margin-top:10px;margin-bottom:10px;line-height:34px}.fixed-table-pagination li.disabled a{pointer-events:none;cursor:default}.fixed-table-loading{display:none;position:absolute;top:42px;right:0;bottom:0;left:0;z-index:6;background-color:#fff;text-align:center}.fixed-table-body .card-view .title{font-weight:400;display:inline-block;min-width:30%;text-align:left!important}.fixed-table-body thead th .th-inner{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.table td,.table th{vertical-align:middle;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.fixed-table-toolbar .dropdown-menu{text-align:left;max-height:300px;overflow:auto}.fixed-table-toolbar .btn-group>.btn-group{display:inline-block;margin-left:-1px!important}.fixed-table-toolbar .btn-group>.btn-group>.btn{border-radius:0}.fixed-table-toolbar .btn-group>.btn-group:first-child>.btn{border-top-left-radius:3px;border-bottom-left-radius:3px}.fixed-table-toolbar .btn-group>.btn-group:last-child>.btn{border-top-right-radius:3px;border-bottom-right-radius:3px}.bootstrap-table .table>thead>tr>th{vertical-align:bottom;border-bottom:1px solid #e4eaec}.bootstrap-table .table thead>tr>th{padding:0;margin:0}.bootstrap-table .fixed-table-footer tbody>tr>td{padding:0!important}.bootstrap-table .fixed-table-footer .table{border-bottom:none;border-radius:0}.pull-right .dropdown-menu{right:0;left:auto}p.fixed-table-scroll-inner{width:100%;height:200px}div.fixed-table-scroll-outer{top:0;left:0;visibility:hidden;width:200px;height:150px;overflow:hidden} diff --git a/novel-admin/src/main/resources/static/css/plugins/chosen/chosen-sprite.png b/novel-admin/src/main/resources/static/css/plugins/chosen/chosen-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..3611ae4ace1c4b1cbeacd6145b5a79cbc72e0bdc GIT binary patch literal 646 zcmV;10(t$3P)0006_Nkl&pbAC0n?)s%2x5M$#UgGxI1~gymp~v; zh<`zGaTJP5BybQY4tlRo;SIcmE0t>ueW3>*u6N;@_u;;|BoL8PuhZ#FWY9$(flan1oVvxDBL8~}0Q5z;^2p>Ov z7}Q$E7=l>$BZLUt1*uKMCaQwKYf$lsJCyerWMd+%BeGH6f_f&Vpy%=$BN%uK%Ahxi zF+%Jj=Pc-WXF;djSiJw|m4>cN%^Fi|FBZ!E{_yJLS?RI<3U696XLkQSs z{{&kQJ$K(#5CgC1;GbA>mjm56zJZ^-Hg2_ASKI_K@CybPh7Rq}8ud``)NM~eZx}qT z)oK?Lf>t!B;%Uh}*P+)Ef?jbx#w|BNEVb(l{2LK}m#fw4xx>ddF;&j}!S{N-e!<&Q z?kvzyI_AT@H-u4tUz1h&GCh8>?TnA~?BZ7WGP<9`r gQ6DuZO!_~60ju@{TzXF%TmS$707*qoM6N<$g2#CqL;wH) literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/chosen/chosen-sprite@2x.png b/novel-admin/src/main/resources/static/css/plugins/chosen/chosen-sprite@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe4d7d1121ca45cd35783696940050c690a8676 GIT binary patch literal 872 zcmeAS@N?(olHy`uVBq!ia0vp^89?mC!3-o5mOWetq|OBRgt-3y{~yTgfB`oc01C8& zL0el}Lqh|Q1oD8A5J8A6G6@lfkU;ftMr&&;+$f+RkloVK0wm!8C|FWb0x`e2xj8g6 z6i7l;BAWwL4-tfu5G@ccP!{MmqnYOy06pVW666=m!0_*bfx(A_gav;C1PU5HKT!C5 z;g7@l4POuZ{>hQBP{j4uqq`I2WP9&Sn{}I8xJi*&v*QL&+Dw-Bf-CQLyLk0Ht2-;T zynum$iPO`?F{C2y?bYjfj|~J`6Xz~`vM4Ef+U{Vpli%)D%kKSey_RG0Bi9Xw4jtOb z@!)?~_%DVelO793W#Pl3vjdNCDTnGGb(^YY+BbF2;mJK!nq}@nBGoHxCn#7X*gdxr z+~ZQF6rpL6;MDP)JzehcJBL53AM-QU?@65Plc4-}1EW@`H@EEGrnFmTubZ~5iUzVn zrZYyBIm|RmW$3F@+wkq2)c>|mGh5Rv3%(p~zjStyruBl(TP2_51LpTH2noN*e&}J; z1;$+4EpJ(Mb+^1}Fv>ms%b`r}+KYy~zf5x(4?8l28%eNnEHzx({;NGP)_hX&tEw9t zSKv=Qjt(d#~b;F7hbDdUu$OUK8iumkkl&-=~$APCd2zdqHg6@=Z#Pt*5RY_s@Hw*YS9+ z^u)7AmzM6Ux!dus_!gJY)Vtf?+t>a3wO2S)_Vct=T}#@RuG(h!d8WYZS9Tst+VfKv zt~zntPsvfyqLY`klZSPslCz_dlcSRJLa$Px)_+W2Y&u!?oJrIMCNTz2S3j3^P6 .arrow { + left: 25px; +} +.clockpicker-align-top.popover > .arrow { + top: 17px; +} +.clockpicker-align-right.popover > .arrow { + left: auto; + right: 25px; +} +.clockpicker-align-bottom.popover > .arrow { + top: auto; + bottom: 6px; +} +.clockpicker-popover .popover-title { + background-color: #fff; + color: #999; + font-size: 24px; + font-weight: bold; + line-height: 30px; + text-align: center; +} +.clockpicker-popover .popover-title span { + cursor: pointer; +} +.clockpicker-popover .popover-content { + background-color: #f8f8f8; + padding: 12px; +} +.popover-content:last-child { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; +} +.clockpicker-plate { + background-color: #fff; + border: 1px solid #ccc; + border-radius: 50%; + width: 200px; + height: 200px; + overflow: visible; + position: relative; + /* Disable text selection highlighting. Thanks to Hermanya */ + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.clockpicker-canvas, +.clockpicker-dial { + width: 200px; + height: 200px; + position: absolute; + left: -1px; + top: -1px; +} +.clockpicker-minutes { + visibility: hidden; +} +.clockpicker-tick { + border-radius: 50%; + color: #666; + line-height: 26px; + text-align: center; + width: 26px; + height: 26px; + position: absolute; + cursor: pointer; +} +.clockpicker-tick.active, +.clockpicker-tick:hover { + background-color: rgb(192, 229, 247); + background-color: rgba(0, 149, 221, .25); +} +.clockpicker-button { + background-image: none; + background-color: #fff; + border-width: 1px 0 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + margin: 0; + padding: 10px 0; +} +.clockpicker-button:hover { + background-image: none; + background-color: #ebebeb; +} +.clockpicker-button:focus { + outline: none!important; +} +.clockpicker-dial { + -webkit-transition: -webkit-transform 350ms, opacity 350ms; + -moz-transition: -moz-transform 350ms, opacity 350ms; + -ms-transition: -ms-transform 350ms, opacity 350ms; + -o-transition: -o-transform 350ms, opacity 350ms; + transition: transform 350ms, opacity 350ms; +} +.clockpicker-dial-out { + opacity: 0; +} +.clockpicker-hours.clockpicker-dial-out { + -webkit-transform: scale(1.2, 1.2); + -moz-transform: scale(1.2, 1.2); + -ms-transform: scale(1.2, 1.2); + -o-transform: scale(1.2, 1.2); + transform: scale(1.2, 1.2); +} +.clockpicker-minutes.clockpicker-dial-out { + -webkit-transform: scale(.8, .8); + -moz-transform: scale(.8, .8); + -ms-transform: scale(.8, .8); + -o-transform: scale(.8, .8); + transform: scale(.8, .8); +} +.clockpicker-canvas { + -webkit-transition: opacity 175ms; + -moz-transition: opacity 175ms; + -ms-transition: opacity 175ms; + -o-transition: opacity 175ms; + transition: opacity 175ms; +} +.clockpicker-canvas-out { + opacity: 0.25; +} +.clockpicker-canvas-bearing, +.clockpicker-canvas-fg { + stroke: none; + fill: rgb(0, 149, 221); +} +.clockpicker-canvas-bg { + stroke: none; + fill: rgb(192, 229, 247); +} +.clockpicker-canvas-bg-trans { + fill: rgba(0, 149, 221, .25); +} +.clockpicker-canvas line { + stroke: rgb(0, 149, 221); + stroke-width: 1; + stroke-linecap: round; + /*shape-rendering: crispEdges;*/ +} +.clockpicker-button.am-button { + margin: 1px; + padding: 5px; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 4px; + +} +.clockpicker-button.pm-button { + margin: 1px 1px 1px 136px; + padding: 5px; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 4px; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/codemirror/ambiance.css b/novel-admin/src/main/resources/static/css/plugins/codemirror/ambiance.css new file mode 100644 index 0000000..c844566 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/codemirror/ambiance.css @@ -0,0 +1,77 @@ +/* ambiance theme for codemirror */ + +/* Color scheme */ + +.cm-s-ambiance .cm-keyword { color: #cda869; } +.cm-s-ambiance .cm-atom { color: #CF7EA9; } +.cm-s-ambiance .cm-number { color: #78CF8A; } +.cm-s-ambiance .cm-def { color: #aac6e3; } +.cm-s-ambiance .cm-variable { color: #ffb795; } +.cm-s-ambiance .cm-variable-2 { color: #eed1b3; } +.cm-s-ambiance .cm-variable-3 { color: #faded3; } +.cm-s-ambiance .cm-property { color: #eed1b3; } +.cm-s-ambiance .cm-operator {color: #fa8d6a;} +.cm-s-ambiance .cm-comment { color: #555; font-style:italic; } +.cm-s-ambiance .cm-string { color: #8f9d6a; } +.cm-s-ambiance .cm-string-2 { color: #9d937c; } +.cm-s-ambiance .cm-meta { color: #D2A8A1; } +.cm-s-ambiance .cm-qualifier { color: yellow; } +.cm-s-ambiance .cm-builtin { color: #9999cc; } +.cm-s-ambiance .cm-bracket { color: #24C2C7; } +.cm-s-ambiance .cm-tag { color: #fee4ff } +.cm-s-ambiance .cm-attribute { color: #9B859D; } +.cm-s-ambiance .cm-header {color: blue;} +.cm-s-ambiance .cm-quote { color: #24C2C7; } +.cm-s-ambiance .cm-hr { color: pink; } +.cm-s-ambiance .cm-link { color: #F4C20B; } +.cm-s-ambiance .cm-special { color: #FF9D00; } +.cm-s-ambiance .cm-error { color: #AF2018; } + +.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; } +.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; } + +.cm-s-ambiance .CodeMirror-selected { + background: rgba(255, 255, 255, 0.15); +} +.cm-s-ambiance.CodeMirror-focused .CodeMirror-selected { + background: rgba(255, 255, 255, 0.10); +} + +/* Editor styling */ + +.cm-s-ambiance.CodeMirror { + line-height: 1.40em; + color: #E6E1DC; + background-color: #202020; + -webkit-box-shadow: inset 0 0 10px black; + -moz-box-shadow: inset 0 0 10px black; + box-shadow: inset 0 0 10px black; +} + +.cm-s-ambiance .CodeMirror-gutters { + background: #3D3D3D; + border-right: 1px solid #4D4D4D; + box-shadow: 0 10px 20px black; +} + +.cm-s-ambiance .CodeMirror-linenumber { + text-shadow: 0px 1px 1px #4d4d4d; + color: #111; + padding: 0 5px; +} + +.cm-s-ambiance .CodeMirror-guttermarker { color: #aaa; } +.cm-s-ambiance .CodeMirror-guttermarker-subtle { color: #111; } + +.cm-s-ambiance .CodeMirror-lines .CodeMirror-cursor { + border-left: 1px solid #7991E8; +} + +.cm-s-ambiance .CodeMirror-activeline-background { + background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031); +} + +.cm-s-ambiance.CodeMirror, +.cm-s-ambiance .CodeMirror-gutters { + background-image: url("data:image/png;base64,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"); +} diff --git a/novel-admin/src/main/resources/static/css/plugins/codemirror/codemirror.css b/novel-admin/src/main/resources/static/css/plugins/codemirror/codemirror.css new file mode 100644 index 0000000..68c67b1 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/codemirror/codemirror.css @@ -0,0 +1,309 @@ +/* BASICS */ + +.CodeMirror { + /* Set height, width, borders, and global font properties here */ + font-family: monospace; + height: 300px; +} +.CodeMirror-scroll { + /* Set scrolling behaviour here */ + overflow: auto; +} + +/* PADDING */ + +.CodeMirror-lines { + padding: 4px 0; /* Vertical padding around content */ +} +.CodeMirror pre { + padding: 0 4px; /* Horizontal padding of content */ +} + +.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + background-color: white; /* The little square between H and V scrollbars */ +} + +/* GUTTER */ + +.CodeMirror-gutters { + border-right: 1px solid #ddd; + background-color: #f7f7f7; + white-space: nowrap; +} +.CodeMirror-linenumbers {} +.CodeMirror-linenumber { + padding: 0 3px 0 5px; + min-width: 20px; + text-align: right; + color: #999; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +.CodeMirror-guttermarker { color: black; } +.CodeMirror-guttermarker-subtle { color: #999; } + +/* CURSOR */ + +.CodeMirror div.CodeMirror-cursor { + border-left: 1px solid black; +} +/* Shown when moving in bi-directional text */ +.CodeMirror div.CodeMirror-secondarycursor { + border-left: 1px solid silver; +} +.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor { + width: auto; + border: 0; + background: #7e7; +} +.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursors { + z-index: 1; +} + +.cm-animate-fat-cursor { + width: auto; + border: 0; + -webkit-animation: blink 1.06s steps(1) infinite; + -moz-animation: blink 1.06s steps(1) infinite; + animation: blink 1.06s steps(1) infinite; +} +@-moz-keyframes blink { + 0% { background: #7e7; } + 50% { background: none; } + 100% { background: #7e7; } +} +@-webkit-keyframes blink { + 0% { background: #7e7; } + 50% { background: none; } + 100% { background: #7e7; } +} +@keyframes blink { + 0% { background: #7e7; } + 50% { background: none; } + 100% { background: #7e7; } +} + +/* Can style cursor different in overwrite (non-insert) mode */ +div.CodeMirror-overwrite div.CodeMirror-cursor {} + +.cm-tab { display: inline-block; text-decoration: inherit; } + +.CodeMirror-ruler { + border-left: 1px solid #ccc; + position: absolute; +} + +/* DEFAULT THEME */ + +.cm-s-default .cm-keyword {color: #708;} +.cm-s-default .cm-atom {color: #219;} +.cm-s-default .cm-number {color: #164;} +.cm-s-default .cm-def {color: #00f;} +.cm-s-default .cm-variable, +.cm-s-default .cm-punctuation, +.cm-s-default .cm-property, +.cm-s-default .cm-operator {} +.cm-s-default .cm-variable-2 {color: #05a;} +.cm-s-default .cm-variable-3 {color: #085;} +.cm-s-default .cm-comment {color: #a50;} +.cm-s-default .cm-string {color: #a11;} +.cm-s-default .cm-string-2 {color: #f50;} +.cm-s-default .cm-meta {color: #555;} +.cm-s-default .cm-qualifier {color: #555;} +.cm-s-default .cm-builtin {color: #30a;} +.cm-s-default .cm-bracket {color: #997;} +.cm-s-default .cm-tag {color: #170;} +.cm-s-default .cm-attribute {color: #00c;} +.cm-s-default .cm-header {color: blue;} +.cm-s-default .cm-quote {color: #090;} +.cm-s-default .cm-hr {color: #999;} +.cm-s-default .cm-link {color: #00c;} + +.cm-negative {color: #d44;} +.cm-positive {color: #292;} +.cm-header, .cm-strong {font-weight: bold;} +.cm-em {font-style: italic;} +.cm-link {text-decoration: underline;} + +.cm-s-default .cm-error {color: #f00;} +.cm-invalidchar {color: #f00;} + +/* Default styles for common addons */ + +div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} +.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } +.CodeMirror-activeline-background {background: #e8f2ff;} + +/* STOP */ + +/* The rest of this file contains styles related to the mechanics of + the editor. You probably shouldn't touch them. */ + +.CodeMirror { + line-height: 1; + position: relative; + overflow: hidden; + background: white; + color: black; +} + +.CodeMirror-scroll { + /* 30px is the magic margin used to hide the element's real scrollbars */ + /* See overflow: hidden in .CodeMirror */ + margin-bottom: -30px; margin-right: -30px; + padding-bottom: 30px; + height: 100%; + outline: none; /* Prevent dragging from highlighting the element */ + position: relative; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +.CodeMirror-sizer { + position: relative; + border-right: 30px solid transparent; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +/* The fake, visible scrollbars. Used to force redraw during scrolling + before actuall scrolling happens, thus preventing shaking and + flickering artifacts. */ +.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + position: absolute; + z-index: 6; + display: none; +} +.CodeMirror-vscrollbar { + right: 0; top: 0; + overflow-x: hidden; + overflow-y: scroll; +} +.CodeMirror-hscrollbar { + bottom: 0; left: 0; + overflow-y: hidden; + overflow-x: scroll; +} +.CodeMirror-scrollbar-filler { + right: 0; bottom: 0; +} +.CodeMirror-gutter-filler { + left: 0; bottom: 0; +} + +.CodeMirror-gutters { + position: absolute; left: 0; top: 0; + padding-bottom: 30px; + z-index: 3; +} +.CodeMirror-gutter { + white-space: normal; + height: 100%; + -moz-box-sizing: content-box; + box-sizing: content-box; + padding-bottom: 30px; + margin-bottom: -32px; + display: inline-block; + /* Hack to make IE7 behave */ + *zoom:1; + *display:inline; +} +.CodeMirror-gutter-elt { + position: absolute; + cursor: default; + z-index: 4; +} + +.CodeMirror-lines { + cursor: text; + min-height: 1px; /* prevents collapsing before first draw */ +} +.CodeMirror pre { + /* Reset some styles that the rest of the page might have set */ + -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; + border-width: 0; + background: transparent; + font-family: inherit; + font-size: inherit; + margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; + z-index: 2; + position: relative; + overflow: visible; +} +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; +} + +.CodeMirror-linebackground { + position: absolute; + left: 0; right: 0; top: 0; bottom: 0; + z-index: 0; +} + +.CodeMirror-linewidget { + position: relative; + z-index: 2; + overflow: auto; +} + +.CodeMirror-widget {} + +.CodeMirror-wrap .CodeMirror-scroll { + overflow-x: hidden; +} + +.CodeMirror-measure { + position: absolute; + width: 100%; + height: 0; + overflow: hidden; + visibility: hidden; +} +.CodeMirror-measure pre { position: static; } + +.CodeMirror div.CodeMirror-cursor { + position: absolute; + border-right: none; + width: 0; +} + +div.CodeMirror-cursors { + visibility: hidden; + position: relative; + z-index: 3; +} +.CodeMirror-focused div.CodeMirror-cursors { + visibility: visible; +} + +.CodeMirror-selected { background: #d9d9d9; } +.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } +.CodeMirror-crosshair { cursor: crosshair; } + +.cm-searching { + background: #ffa; + background: rgba(255, 255, 0, .4); +} + +/* IE7 hack to prevent it from returning funny offsetTops on the spans */ +.CodeMirror span { *vertical-align: text-bottom; } + +/* Used to force a border model for a node */ +.cm-force-border { padding-right: .1px; } + +@media print { + /* Hide the cursor when printing */ + .CodeMirror div.CodeMirror-cursors { + visibility: hidden; + } +} + +/* Help users use markselection to safely style text background */ +span.CodeMirror-selectedtext { background: none; } diff --git a/novel-admin/src/main/resources/static/css/plugins/colorpicker/css/bootstrap-colorpicker.min.css b/novel-admin/src/main/resources/static/css/plugins/colorpicker/css/bootstrap-colorpicker.min.css new file mode 100644 index 0000000..b057500 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/colorpicker/css/bootstrap-colorpicker.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Colorpicker + * http://mjolnic.github.io/bootstrap-colorpicker/ + * + * Originally written by (c) 2012 Stefan Petre + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0.txt + * + */.colorpicker-saturation{float:left;width:100px;height:100px;cursor:crosshair;background-image:url("../img/bootstrap-colorpicker/saturation.png")}.colorpicker-saturation i{position:absolute;top:0;left:0;display:block;width:5px;height:5px;margin:-4px 0 0 -4px;border:1px solid #000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-saturation i b{display:block;width:5px;height:5px;border:1px solid #fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-hue,.colorpicker-alpha{float:left;width:15px;height:100px;margin-bottom:4px;margin-left:4px;cursor:row-resize}.colorpicker-hue i,.colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:100%;height:1px;margin-top:-1px;background:#000;border-top:1px solid #fff}.colorpicker-hue{background-image:url("../img/bootstrap-colorpicker/hue.png")}.colorpicker-alpha{display:none;background-image:url("../img/bootstrap-colorpicker/alpha.png")}.colorpicker{top:0;left:0;z-index:25000!important;min-width:130px;padding:4px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1}.colorpicker:before,.colorpicker:after{display:table;line-height:0;content:""}.colorpicker:after{clear:both}.colorpicker:before{position:absolute;top:-7px;left:6px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.colorpicker:after{position:absolute;top:-6px;left:7px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.colorpicker div{position:relative}.colorpicker.colorpicker-with-alpha{min-width:140px}.colorpicker.colorpicker-with-alpha .colorpicker-alpha{display:block}.colorpicker-color{height:10px;margin-top:5px;clear:both;background-image:url("../img/bootstrap-colorpicker/alpha.png");background-position:0 100%}.colorpicker-color div{height:10px}.colorpicker-element .input-group-addon i,.colorpicker-element .add-on i{display:inline-block;width:16px;height:16px;vertical-align:text-top;cursor:pointer}.colorpicker.colorpicker-inline{position:relative;z-index:auto;display:inline-block;float:none}.colorpicker.colorpicker-horizontal{width:110px;height:auto;min-width:110px}.colorpicker.colorpicker-horizontal .colorpicker-saturation{margin-bottom:4px}.colorpicker.colorpicker-horizontal .colorpicker-color{width:100px}.colorpicker.colorpicker-horizontal .colorpicker-hue,.colorpicker.colorpicker-horizontal .colorpicker-alpha{float:left;width:100px;height:15px;margin-bottom:4px;margin-left:0;cursor:col-resize}.colorpicker.colorpicker-horizontal .colorpicker-hue i,.colorpicker.colorpicker-horizontal .colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:1px;height:15px;margin-top:0;background:#fff;border:0}.colorpicker.colorpicker-horizontal .colorpicker-hue{background-image:url("../img/bootstrap-colorpicker/hue-horizontal.png")}.colorpicker.colorpicker-horizontal .colorpicker-alpha{background-image:url("../img/bootstrap-colorpicker/alpha-horizontal.png")}.colorpicker.colorpicker-hidden{display:none}.colorpicker.colorpicker-visible{display:block}.colorpicker-inline.colorpicker-visible{display:inline-block} diff --git a/novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png b/novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..d0a65c08b0ed34d969cb0e93165a2e8b0ef9dbd7 GIT binary patch literal 3635 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 FV1h0U4od(4 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/alpha.png b/novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..38043f1c85f20fe8ce37ad380bebe2d42d14fb29 GIT binary patch literal 3271 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/hue.png b/novel-admin/src/main/resources/static/css/plugins/colorpicker/img/bootstrap-colorpicker/hue.png new file mode 100644 index 0000000000000000000000000000000000000000..d89560e999f86c349ddc78c298b0328293f13e1e GIT binary patch literal 2972 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 >YjDHRkjMe3FzWUPlrRR$Vj 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/cropper/cropper.css b/novel-admin/src/main/resources/static/css/plugins/cropper/cropper.css new file mode 100644 index 0000000..6707912 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/cropper/cropper.css @@ -0,0 +1,248 @@ +/*! + * Cropper v0.9.2 + * https://github.com/fengyuanchen/cropper + * + * Copyright (c) 2014-2015 Fengyuan Chen and contributors + * Released under the MIT license + * + * Date: 2015-04-18T04:35:01.500Z + */ +.cropper-container { + position: relative; + overflow: hidden; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; +} +.cropper-container img { + display: block; + width: 100%; + min-width: 0 !important; + max-width: none !important; + height: 100%; + min-height: 0 !important; + max-height: none !important; + + image-orientation: 0deg !important; +} +.cropper-canvas, +.cropper-drag-box, +.cropper-crop-box, +.cropper-modal { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} +.cropper-drag-box { + background-color: #fff; + filter: alpha(opacity=0); + opacity: 0; +} +.cropper-modal { + background-color: #000; + filter: alpha(opacity=50); + opacity: .5; +} +.cropper-view-box { + display: block; + width: 100%; + height: 100%; + overflow: hidden; + outline: 1px solid #69f; + outline-color: rgba(102, 153, 255, .75); +} +.cropper-dashed { + position: absolute; + display: block; + filter: alpha(opacity=50); + border: 0 dashed #fff; + opacity: .5; +} +.cropper-dashed.dashed-h { + top: 33.33333333%; + left: 0; + width: 100%; + height: 33.33333333%; + border-top-width: 1px; + border-bottom-width: 1px; +} +.cropper-dashed.dashed-v { + top: 0; + left: 33.33333333%; + width: 33.33333333%; + height: 100%; + border-right-width: 1px; + border-left-width: 1px; +} +.cropper-face, +.cropper-line, +.cropper-point { + position: absolute; + display: block; + width: 100%; + height: 100%; + filter: alpha(opacity=10); + opacity: .1; +} +.cropper-face { + top: 0; + left: 0; + cursor: move; + background-color: #fff; +} +.cropper-line { + background-color: #69f; +} +.cropper-line.line-e { + top: 0; + right: -3px; + width: 5px; + cursor: e-resize; +} +.cropper-line.line-n { + top: -3px; + left: 0; + height: 5px; + cursor: n-resize; +} +.cropper-line.line-w { + top: 0; + left: -3px; + width: 5px; + cursor: w-resize; +} +.cropper-line.line-s { + bottom: -3px; + left: 0; + height: 5px; + cursor: s-resize; +} +.cropper-point { + width: 5px; + height: 5px; + background-color: #69f; + filter: alpha(opacity=75); + opacity: .75; +} +.cropper-point.point-e { + top: 50%; + right: -3px; + margin-top: -3px; + cursor: e-resize; +} +.cropper-point.point-n { + top: -3px; + left: 50%; + margin-left: -3px; + cursor: n-resize; +} +.cropper-point.point-w { + top: 50%; + left: -3px; + margin-top: -3px; + cursor: w-resize; +} +.cropper-point.point-s { + bottom: -3px; + left: 50%; + margin-left: -3px; + cursor: s-resize; +} +.cropper-point.point-ne { + top: -3px; + right: -3px; + cursor: ne-resize; +} +.cropper-point.point-nw { + top: -3px; + left: -3px; + cursor: nw-resize; +} +.cropper-point.point-sw { + bottom: -3px; + left: -3px; + cursor: sw-resize; +} +.cropper-point.point-se { + right: -3px; + bottom: -3px; + width: 20px; + height: 20px; + cursor: se-resize; + filter: alpha(opacity=100); + opacity: 1; +} +.cropper-point.point-se:before { + position: absolute; + right: -50%; + bottom: -50%; + display: block; + width: 200%; + height: 200%; + content: " "; + background-color: #69f; + filter: alpha(opacity=0); + opacity: 0; +} +@media (min-width: 768px) { + .cropper-point.point-se { + width: 15px; + height: 15px; + } +} +@media (min-width: 992px) { + .cropper-point.point-se { + width: 10px; + height: 10px; + } +} +@media (min-width: 1200px) { + .cropper-point.point-se { + width: 5px; + height: 5px; + filter: alpha(opacity=75); + opacity: .75; + } +} +.cropper-bg { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC"); +} +.cropper-invisible { + filter: alpha(opacity=0); + opacity: 0; +} +.cropper-hide { + position: fixed; + top: 0; + left: 0; + z-index: -1; + width: auto!important; + min-width: 0!important; + max-width: none!important; + height: auto!important; + min-height: 0!important; + max-height: none!important; + filter: alpha(opacity=0); + opacity: 0; +} +.cropper-hidden { + display: none !important; +} +.cropper-move { + cursor: move; +} +.cropper-crop { + cursor: crosshair; +} +.cropper-disabled .cropper-drag-box, +.cropper-disabled .cropper-face, +.cropper-disabled .cropper-line, +.cropper-disabled .cropper-point { + cursor: not-allowed; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/dataTables/dataTables.bootstrap.css b/novel-admin/src/main/resources/static/css/plugins/dataTables/dataTables.bootstrap.css new file mode 100644 index 0000000..0704682 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/dataTables/dataTables.bootstrap.css @@ -0,0 +1,231 @@ +div.dataTables_length label { + float: left; + text-align: left; + font-weight: normal; +} + +div.dataTables_length select { + width: 75px; +} + +div.dataTables_filter label { + float: right; + font-weight: normal; +} + +div.dataTables_filter input { + width: 16em; +} + +div.dataTables_info { + padding-top: 8px; +} + +div.dataTables_paginate { + float: right; + margin: 0; +} + +div.dataTables_paginate ul.pagination { + margin: 2px 0; + white-space: nowrap; +} + +table.dataTable, +table.dataTable td, +table.dataTable th { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +table.dataTable { + clear: both; + margin-top: 6px !important; + margin-bottom: 6px !important; + max-width: none !important; +} + +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { + cursor: pointer; +} + +table.dataTable thead .sorting { + +} + +table.dataTable thead .sorting_asc { + background: url('../images/sort_asc.png') no-repeat center right; +} + +table.dataTable thead .sorting_desc { + background: url('../images/sort_desc.png') no-repeat center right; +} + +table.dataTable thead .sorting_asc_disabled { +} + +table.dataTable thead .sorting_desc_disabled { +} + +table.dataTable th:active { + outline: none; +} + +/* Scrolling */ + +div.dataTables_scrollHead table { + margin-bottom: 0 !important; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +div.dataTables_scrollHead table thead tr:last-child th:first-child, +div.dataTables_scrollHead table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.dataTables_scrollBody table { + margin-top: 0 !important; + margin-bottom: 0 !important; + border-top: none; +} + +div.dataTables_scrollBody tbody tr:first-child th, +div.dataTables_scrollBody tbody tr:first-child td { + border-top: none; +} + +div.dataTables_scrollFoot table { + margin-top: 0 !important; + border-top: none; +} + +/* + * TableTools styles + */ + +.table tbody tr.active td, +.table tbody tr.active th { + color: white; + background-color: #08C; +} + +.table tbody tr.active:hover td, +.table tbody tr.active:hover th { + background-color: #0075b0 !important; +} + +.table tbody tr.active a { + color: white; +} + +.table-striped tbody tr.active:nth-child(odd) td, +.table-striped tbody tr.active:nth-child(odd) th { + background-color: #017ebc; +} + +table.DTTT_selectable tbody tr { + cursor: pointer; +} + +div.DTTT .btn { + font-size: 12px; + color: #333 !important; +} + +div.DTTT .btn:hover { + text-decoration: none !important; +} + +ul.DTTT_dropdown.dropdown-menu { + z-index: 2003; +} + +ul.DTTT_dropdown.dropdown-menu a { + color: #333 !important; /* needed only when demo_page.css is included */ +} + +ul.DTTT_dropdown.dropdown-menu li { + position: relative; +} + +ul.DTTT_dropdown.dropdown-menu li:hover a { + color: white !important; + background-color: #0088cc; +} + +div.DTTT_collection_background { + z-index: 2002; +} + +/* TableTools information display */ + +div.DTTT_print_info.modal { + height: 150px; + margin-top: -75px; + text-align: center; +} + +div.DTTT_print_info h6 { + margin: 1em; + font-size: 28px; + font-weight: normal; + line-height: 28px; +} + +div.DTTT_print_info p { + font-size: 14px; + line-height: 20px; +} + +/* + * FixedColumns styles + */ + +div.DTFC_LeftHeadWrapper table, +div.DTFC_LeftFootWrapper table, +div.DTFC_RightHeadWrapper table, +div.DTFC_RightFootWrapper table, +table.DTFC_Cloned tr.even { + background-color: white; +} + +div.DTFC_RightHeadWrapper table, +div.DTFC_LeftHeadWrapper table { + margin-bottom: 0 !important; + border-top-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child, +div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child, +div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child, +div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +div.DTFC_RightBodyWrapper table, +div.DTFC_LeftBodyWrapper table { + margin-bottom: 0 !important; + border-top: none; +} + +div.DTFC_RightBodyWrapper tbody tr:first-child th, +div.DTFC_RightBodyWrapper tbody tr:first-child td, +div.DTFC_LeftBodyWrapper tbody tr:first-child th, +div.DTFC_LeftBodyWrapper tbody tr:first-child td { + border-top: none; +} + +div.DTFC_RightFootWrapper table, +div.DTFC_LeftFootWrapper table { + border-top: none; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/datapicker/datepicker3.css b/novel-admin/src/main/resources/static/css/plugins/datapicker/datepicker3.css new file mode 100644 index 0000000..d5203af --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/datapicker/datepicker3.css @@ -0,0 +1,789 @@ +/*! + * Datepicker for Bootstrap + * + * Copyright 2012 Stefan Petre + * Improvements by Andrew Rowls + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + */ +.datepicker { + padding: 4px; + border-radius: 4px; + direction: ltr; + /*.dow { + border-top: 1px solid #ddd !important; + }*/ +} +.datepicker-inline { + width: 220px; +} +.datepicker.datepicker-rtl { + direction: rtl; +} +.datepicker.datepicker-rtl table tr td span { + float: right; +} +.datepicker-dropdown { + top: 0; + left: 0; +} +.datepicker-dropdown:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-top: 0; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; +} +.datepicker-dropdown:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-top: 0; + position: absolute; +} +.datepicker-dropdown.datepicker-orient-left:before { + left: 6px; +} +.datepicker-dropdown.datepicker-orient-left:after { + left: 7px; +} +.datepicker-dropdown.datepicker-orient-right:before { + right: 6px; +} +.datepicker-dropdown.datepicker-orient-right:after { + right: 7px; +} +.datepicker-dropdown.datepicker-orient-top:before { + top: -7px; +} +.datepicker-dropdown.datepicker-orient-top:after { + top: -6px; +} +.datepicker-dropdown.datepicker-orient-bottom:before { + bottom: -7px; + border-bottom: 0; + border-top: 7px solid #999; +} +.datepicker-dropdown.datepicker-orient-bottom:after { + bottom: -6px; + border-bottom: 0; + border-top: 6px solid #fff; +} +.datepicker > div { + display: none; +} +.datepicker.days div.datepicker-days { + display: block; +} +.datepicker.months div.datepicker-months { + display: block; +} +.datepicker.years div.datepicker-years { + display: block; +} +.datepicker table { + margin: 0; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.datepicker table tr td, +.datepicker table tr th { + text-align: center; + width: 30px; + height: 30px; + border-radius: 4px; + border: none; +} +.table-striped .datepicker table tr td, +.table-striped .datepicker table tr th { + background-color: transparent; +} +.datepicker table tr td.day:hover, +.datepicker table tr td.day.focused { + background: #eeeeee; + cursor: pointer; +} +.datepicker table tr td.old, +.datepicker table tr td.new { + color: #999999; +} +.datepicker table tr td.disabled, +.datepicker table tr td.disabled:hover { + background: none; + color: #999999; + cursor: default; +} +.datepicker table tr td.today, +.datepicker table tr td.today:hover, +.datepicker table tr td.today.disabled, +.datepicker table tr td.today.disabled:hover { + color: #000000; + background-color: #ffdb99; + border-color: #ffb733; +} +.datepicker table tr td.today:hover, +.datepicker table tr td.today:hover:hover, +.datepicker table tr td.today.disabled:hover, +.datepicker table tr td.today.disabled:hover:hover, +.datepicker table tr td.today:focus, +.datepicker table tr td.today:hover:focus, +.datepicker table tr td.today.disabled:focus, +.datepicker table tr td.today.disabled:hover:focus, +.datepicker table tr td.today:active, +.datepicker table tr td.today:hover:active, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.active, +.datepicker table tr td.today:hover.active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.today, +.open .dropdown-toggle.datepicker table tr td.today:hover, +.open .dropdown-toggle.datepicker table tr td.today.disabled, +.open .dropdown-toggle.datepicker table tr td.today.disabled:hover { + color: #000000; + background-color: #ffcd70; + border-color: #f59e00; +} +.datepicker table tr td.today:active, +.datepicker table tr td.today:hover:active, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.active, +.datepicker table tr td.today:hover.active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.today, +.open .dropdown-toggle.datepicker table tr td.today:hover, +.open .dropdown-toggle.datepicker table tr td.today.disabled, +.open .dropdown-toggle.datepicker table tr td.today.disabled:hover { + background-image: none; +} +.datepicker table tr td.today.disabled, +.datepicker table tr td.today:hover.disabled, +.datepicker table tr td.today.disabled.disabled, +.datepicker table tr td.today.disabled:hover.disabled, +.datepicker table tr td.today[disabled], +.datepicker table tr td.today:hover[disabled], +.datepicker table tr td.today.disabled[disabled], +.datepicker table tr td.today.disabled:hover[disabled], +fieldset[disabled] .datepicker table tr td.today, +fieldset[disabled] .datepicker table tr td.today:hover, +fieldset[disabled] .datepicker table tr td.today.disabled, +fieldset[disabled] .datepicker table tr td.today.disabled:hover, +.datepicker table tr td.today.disabled:hover, +.datepicker table tr td.today:hover.disabled:hover, +.datepicker table tr td.today.disabled.disabled:hover, +.datepicker table tr td.today.disabled:hover.disabled:hover, +.datepicker table tr td.today[disabled]:hover, +.datepicker table tr td.today:hover[disabled]:hover, +.datepicker table tr td.today.disabled[disabled]:hover, +.datepicker table tr td.today.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td.today:hover, +fieldset[disabled] .datepicker table tr td.today:hover:hover, +fieldset[disabled] .datepicker table tr td.today.disabled:hover, +fieldset[disabled] .datepicker table tr td.today.disabled:hover:hover, +.datepicker table tr td.today.disabled:focus, +.datepicker table tr td.today:hover.disabled:focus, +.datepicker table tr td.today.disabled.disabled:focus, +.datepicker table tr td.today.disabled:hover.disabled:focus, +.datepicker table tr td.today[disabled]:focus, +.datepicker table tr td.today:hover[disabled]:focus, +.datepicker table tr td.today.disabled[disabled]:focus, +.datepicker table tr td.today.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td.today:focus, +fieldset[disabled] .datepicker table tr td.today:hover:focus, +fieldset[disabled] .datepicker table tr td.today.disabled:focus, +fieldset[disabled] .datepicker table tr td.today.disabled:hover:focus, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today:hover.disabled:active, +.datepicker table tr td.today.disabled.disabled:active, +.datepicker table tr td.today.disabled:hover.disabled:active, +.datepicker table tr td.today[disabled]:active, +.datepicker table tr td.today:hover[disabled]:active, +.datepicker table tr td.today.disabled[disabled]:active, +.datepicker table tr td.today.disabled:hover[disabled]:active, +fieldset[disabled] .datepicker table tr td.today:active, +fieldset[disabled] .datepicker table tr td.today:hover:active, +fieldset[disabled] .datepicker table tr td.today.disabled:active, +fieldset[disabled] .datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today:hover.disabled.active, +.datepicker table tr td.today.disabled.disabled.active, +.datepicker table tr td.today.disabled:hover.disabled.active, +.datepicker table tr td.today[disabled].active, +.datepicker table tr td.today:hover[disabled].active, +.datepicker table tr td.today.disabled[disabled].active, +.datepicker table tr td.today.disabled:hover[disabled].active, +fieldset[disabled] .datepicker table tr td.today.active, +fieldset[disabled] .datepicker table tr td.today:hover.active, +fieldset[disabled] .datepicker table tr td.today.disabled.active, +fieldset[disabled] .datepicker table tr td.today.disabled:hover.active { + background-color: #ffdb99; + border-color: #ffb733; +} +.datepicker table tr td.today:hover:hover { + color: #000; +} +.datepicker table tr td.today.active:hover { + color: #fff; +} +.datepicker table tr td.range, +.datepicker table tr td.range:hover, +.datepicker table tr td.range.disabled, +.datepicker table tr td.range.disabled:hover { + background: #eeeeee; + border-radius: 0; +} +.datepicker table tr td.range.today, +.datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today.disabled:hover { + color: #000000; + background-color: #f7ca77; + border-color: #f1a417; + border-radius: 0; +} +.datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today:hover:hover, +.datepicker table tr td.range.today.disabled:hover, +.datepicker table tr td.range.today.disabled:hover:hover, +.datepicker table tr td.range.today:focus, +.datepicker table tr td.range.today:hover:focus, +.datepicker table tr td.range.today.disabled:focus, +.datepicker table tr td.range.today.disabled:hover:focus, +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today:hover:active, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.active, +.datepicker table tr td.range.today:hover.active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.range.today, +.open .dropdown-toggle.datepicker table tr td.range.today:hover, +.open .dropdown-toggle.datepicker table tr td.range.today.disabled, +.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover { + color: #000000; + background-color: #f4bb51; + border-color: #bf800c; +} +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today:hover:active, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.active, +.datepicker table tr td.range.today:hover.active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.range.today, +.open .dropdown-toggle.datepicker table tr td.range.today:hover, +.open .dropdown-toggle.datepicker table tr td.range.today.disabled, +.open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover { + background-image: none; +} +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today:hover.disabled, +.datepicker table tr td.range.today.disabled.disabled, +.datepicker table tr td.range.today.disabled:hover.disabled, +.datepicker table tr td.range.today[disabled], +.datepicker table tr td.range.today:hover[disabled], +.datepicker table tr td.range.today.disabled[disabled], +.datepicker table tr td.range.today.disabled:hover[disabled], +fieldset[disabled] .datepicker table tr td.range.today, +fieldset[disabled] .datepicker table tr td.range.today:hover, +fieldset[disabled] .datepicker table tr td.range.today.disabled, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover, +.datepicker table tr td.range.today.disabled:hover, +.datepicker table tr td.range.today:hover.disabled:hover, +.datepicker table tr td.range.today.disabled.disabled:hover, +.datepicker table tr td.range.today.disabled:hover.disabled:hover, +.datepicker table tr td.range.today[disabled]:hover, +.datepicker table tr td.range.today:hover[disabled]:hover, +.datepicker table tr td.range.today.disabled[disabled]:hover, +.datepicker table tr td.range.today.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td.range.today:hover, +fieldset[disabled] .datepicker table tr td.range.today:hover:hover, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:hover, +.datepicker table tr td.range.today.disabled:focus, +.datepicker table tr td.range.today:hover.disabled:focus, +.datepicker table tr td.range.today.disabled.disabled:focus, +.datepicker table tr td.range.today.disabled:hover.disabled:focus, +.datepicker table tr td.range.today[disabled]:focus, +.datepicker table tr td.range.today:hover[disabled]:focus, +.datepicker table tr td.range.today.disabled[disabled]:focus, +.datepicker table tr td.range.today.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td.range.today:focus, +fieldset[disabled] .datepicker table tr td.range.today:hover:focus, +fieldset[disabled] .datepicker table tr td.range.today.disabled:focus, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:focus, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today:hover.disabled:active, +.datepicker table tr td.range.today.disabled.disabled:active, +.datepicker table tr td.range.today.disabled:hover.disabled:active, +.datepicker table tr td.range.today[disabled]:active, +.datepicker table tr td.range.today:hover[disabled]:active, +.datepicker table tr td.range.today.disabled[disabled]:active, +.datepicker table tr td.range.today.disabled:hover[disabled]:active, +fieldset[disabled] .datepicker table tr td.range.today:active, +fieldset[disabled] .datepicker table tr td.range.today:hover:active, +fieldset[disabled] .datepicker table tr td.range.today.disabled:active, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today:hover.disabled.active, +.datepicker table tr td.range.today.disabled.disabled.active, +.datepicker table tr td.range.today.disabled:hover.disabled.active, +.datepicker table tr td.range.today[disabled].active, +.datepicker table tr td.range.today:hover[disabled].active, +.datepicker table tr td.range.today.disabled[disabled].active, +.datepicker table tr td.range.today.disabled:hover[disabled].active, +fieldset[disabled] .datepicker table tr td.range.today.active, +fieldset[disabled] .datepicker table tr td.range.today:hover.active, +fieldset[disabled] .datepicker table tr td.range.today.disabled.active, +fieldset[disabled] .datepicker table tr td.range.today.disabled:hover.active { + background-color: #f7ca77; + border-color: #f1a417; +} +.datepicker table tr td.selected, +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected.disabled, +.datepicker table tr td.selected.disabled:hover { + color: #ffffff; + background-color: #999999; + border-color: #555555; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected:hover:hover, +.datepicker table tr td.selected.disabled:hover, +.datepicker table tr td.selected.disabled:hover:hover, +.datepicker table tr td.selected:focus, +.datepicker table tr td.selected:hover:focus, +.datepicker table tr td.selected.disabled:focus, +.datepicker table tr td.selected.disabled:hover:focus, +.datepicker table tr td.selected:active, +.datepicker table tr td.selected:hover:active, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected:hover.active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.selected, +.open .dropdown-toggle.datepicker table tr td.selected:hover, +.open .dropdown-toggle.datepicker table tr td.selected.disabled, +.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover { + color: #ffffff; + background-color: #858585; + border-color: #373737; +} +.datepicker table tr td.selected:active, +.datepicker table tr td.selected:hover:active, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected:hover.active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.selected, +.open .dropdown-toggle.datepicker table tr td.selected:hover, +.open .dropdown-toggle.datepicker table tr td.selected.disabled, +.open .dropdown-toggle.datepicker table tr td.selected.disabled:hover { + background-image: none; +} +.datepicker table tr td.selected.disabled, +.datepicker table tr td.selected:hover.disabled, +.datepicker table tr td.selected.disabled.disabled, +.datepicker table tr td.selected.disabled:hover.disabled, +.datepicker table tr td.selected[disabled], +.datepicker table tr td.selected:hover[disabled], +.datepicker table tr td.selected.disabled[disabled], +.datepicker table tr td.selected.disabled:hover[disabled], +fieldset[disabled] .datepicker table tr td.selected, +fieldset[disabled] .datepicker table tr td.selected:hover, +fieldset[disabled] .datepicker table tr td.selected.disabled, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover, +.datepicker table tr td.selected.disabled:hover, +.datepicker table tr td.selected:hover.disabled:hover, +.datepicker table tr td.selected.disabled.disabled:hover, +.datepicker table tr td.selected.disabled:hover.disabled:hover, +.datepicker table tr td.selected[disabled]:hover, +.datepicker table tr td.selected:hover[disabled]:hover, +.datepicker table tr td.selected.disabled[disabled]:hover, +.datepicker table tr td.selected.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td.selected:hover, +fieldset[disabled] .datepicker table tr td.selected:hover:hover, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover:hover, +.datepicker table tr td.selected.disabled:focus, +.datepicker table tr td.selected:hover.disabled:focus, +.datepicker table tr td.selected.disabled.disabled:focus, +.datepicker table tr td.selected.disabled:hover.disabled:focus, +.datepicker table tr td.selected[disabled]:focus, +.datepicker table tr td.selected:hover[disabled]:focus, +.datepicker table tr td.selected.disabled[disabled]:focus, +.datepicker table tr td.selected.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td.selected:focus, +fieldset[disabled] .datepicker table tr td.selected:hover:focus, +fieldset[disabled] .datepicker table tr td.selected.disabled:focus, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover:focus, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected:hover.disabled:active, +.datepicker table tr td.selected.disabled.disabled:active, +.datepicker table tr td.selected.disabled:hover.disabled:active, +.datepicker table tr td.selected[disabled]:active, +.datepicker table tr td.selected:hover[disabled]:active, +.datepicker table tr td.selected.disabled[disabled]:active, +.datepicker table tr td.selected.disabled:hover[disabled]:active, +fieldset[disabled] .datepicker table tr td.selected:active, +fieldset[disabled] .datepicker table tr td.selected:hover:active, +fieldset[disabled] .datepicker table tr td.selected.disabled:active, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected:hover.disabled.active, +.datepicker table tr td.selected.disabled.disabled.active, +.datepicker table tr td.selected.disabled:hover.disabled.active, +.datepicker table tr td.selected[disabled].active, +.datepicker table tr td.selected:hover[disabled].active, +.datepicker table tr td.selected.disabled[disabled].active, +.datepicker table tr td.selected.disabled:hover[disabled].active, +fieldset[disabled] .datepicker table tr td.selected.active, +fieldset[disabled] .datepicker table tr td.selected:hover.active, +fieldset[disabled] .datepicker table tr td.selected.disabled.active, +fieldset[disabled] .datepicker table tr td.selected.disabled:hover.active { + background-color: #999999; + border-color: #555555; +} +.datepicker table tr td.active, +.datepicker table tr td.active:hover, +.datepicker table tr td.active.disabled, +.datepicker table tr td.active.disabled:hover { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td.active:hover, +.datepicker table tr td.active:hover:hover, +.datepicker table tr td.active.disabled:hover, +.datepicker table tr td.active.disabled:hover:hover, +.datepicker table tr td.active:focus, +.datepicker table tr td.active:hover:focus, +.datepicker table tr td.active.disabled:focus, +.datepicker table tr td.active.disabled:hover:focus, +.datepicker table tr td.active:active, +.datepicker table tr td.active:hover:active, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active:hover.active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.active, +.open .dropdown-toggle.datepicker table tr td.active:hover, +.open .dropdown-toggle.datepicker table tr td.active.disabled, +.open .dropdown-toggle.datepicker table tr td.active.disabled:hover { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} +.datepicker table tr td.active:active, +.datepicker table tr td.active:hover:active, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active:hover.active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td.active, +.open .dropdown-toggle.datepicker table tr td.active:hover, +.open .dropdown-toggle.datepicker table tr td.active.disabled, +.open .dropdown-toggle.datepicker table tr td.active.disabled:hover { + background-image: none; +} +.datepicker table tr td.active.disabled, +.datepicker table tr td.active:hover.disabled, +.datepicker table tr td.active.disabled.disabled, +.datepicker table tr td.active.disabled:hover.disabled, +.datepicker table tr td.active[disabled], +.datepicker table tr td.active:hover[disabled], +.datepicker table tr td.active.disabled[disabled], +.datepicker table tr td.active.disabled:hover[disabled], +fieldset[disabled] .datepicker table tr td.active, +fieldset[disabled] .datepicker table tr td.active:hover, +fieldset[disabled] .datepicker table tr td.active.disabled, +fieldset[disabled] .datepicker table tr td.active.disabled:hover, +.datepicker table tr td.active.disabled:hover, +.datepicker table tr td.active:hover.disabled:hover, +.datepicker table tr td.active.disabled.disabled:hover, +.datepicker table tr td.active.disabled:hover.disabled:hover, +.datepicker table tr td.active[disabled]:hover, +.datepicker table tr td.active:hover[disabled]:hover, +.datepicker table tr td.active.disabled[disabled]:hover, +.datepicker table tr td.active.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td.active:hover, +fieldset[disabled] .datepicker table tr td.active:hover:hover, +fieldset[disabled] .datepicker table tr td.active.disabled:hover, +fieldset[disabled] .datepicker table tr td.active.disabled:hover:hover, +.datepicker table tr td.active.disabled:focus, +.datepicker table tr td.active:hover.disabled:focus, +.datepicker table tr td.active.disabled.disabled:focus, +.datepicker table tr td.active.disabled:hover.disabled:focus, +.datepicker table tr td.active[disabled]:focus, +.datepicker table tr td.active:hover[disabled]:focus, +.datepicker table tr td.active.disabled[disabled]:focus, +.datepicker table tr td.active.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td.active:focus, +fieldset[disabled] .datepicker table tr td.active:hover:focus, +fieldset[disabled] .datepicker table tr td.active.disabled:focus, +fieldset[disabled] .datepicker table tr td.active.disabled:hover:focus, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active:hover.disabled:active, +.datepicker table tr td.active.disabled.disabled:active, +.datepicker table tr td.active.disabled:hover.disabled:active, +.datepicker table tr td.active[disabled]:active, +.datepicker table tr td.active:hover[disabled]:active, +.datepicker table tr td.active.disabled[disabled]:active, +.datepicker table tr td.active.disabled:hover[disabled]:active, +fieldset[disabled] .datepicker table tr td.active:active, +fieldset[disabled] .datepicker table tr td.active:hover:active, +fieldset[disabled] .datepicker table tr td.active.disabled:active, +fieldset[disabled] .datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active:hover.disabled.active, +.datepicker table tr td.active.disabled.disabled.active, +.datepicker table tr td.active.disabled:hover.disabled.active, +.datepicker table tr td.active[disabled].active, +.datepicker table tr td.active:hover[disabled].active, +.datepicker table tr td.active.disabled[disabled].active, +.datepicker table tr td.active.disabled:hover[disabled].active, +fieldset[disabled] .datepicker table tr td.active.active, +fieldset[disabled] .datepicker table tr td.active:hover.active, +fieldset[disabled] .datepicker table tr td.active.disabled.active, +fieldset[disabled] .datepicker table tr td.active.disabled:hover.active { + background-color: #428bca; + border-color: #357ebd; +} +.datepicker table tr td span { + display: block; + width: 23%; + height: 54px; + line-height: 54px; + float: left; + margin: 1%; + cursor: pointer; + border-radius: 4px; +} +.datepicker table tr td span:hover { + background: #eeeeee; +} +.datepicker table tr td span.disabled, +.datepicker table tr td span.disabled:hover { + background: none; + color: #999999; + cursor: default; +} +.datepicker table tr td span.active, +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active.disabled:hover { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active:hover:hover, +.datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active.disabled:hover:hover, +.datepicker table tr td span.active:focus, +.datepicker table tr td span.active:hover:focus, +.datepicker table tr td span.active.disabled:focus, +.datepicker table tr td span.active.disabled:hover:focus, +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td span.active, +.open .dropdown-toggle.datepicker table tr td span.active:hover, +.open .dropdown-toggle.datepicker table tr td span.active.disabled, +.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active, +.open .dropdown-toggle.datepicker table tr td span.active, +.open .dropdown-toggle.datepicker table tr td span.active:hover, +.open .dropdown-toggle.datepicker table tr td span.active.disabled, +.open .dropdown-toggle.datepicker table tr td span.active.disabled:hover { + background-image: none; +} +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active:hover.disabled, +.datepicker table tr td span.active.disabled.disabled, +.datepicker table tr td span.active.disabled:hover.disabled, +.datepicker table tr td span.active[disabled], +.datepicker table tr td span.active:hover[disabled], +.datepicker table tr td span.active.disabled[disabled], +.datepicker table tr td span.active.disabled:hover[disabled], +fieldset[disabled] .datepicker table tr td span.active, +fieldset[disabled] .datepicker table tr td span.active:hover, +fieldset[disabled] .datepicker table tr td span.active.disabled, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active:hover.disabled:hover, +.datepicker table tr td span.active.disabled.disabled:hover, +.datepicker table tr td span.active.disabled:hover.disabled:hover, +.datepicker table tr td span.active[disabled]:hover, +.datepicker table tr td span.active:hover[disabled]:hover, +.datepicker table tr td span.active.disabled[disabled]:hover, +.datepicker table tr td span.active.disabled:hover[disabled]:hover, +fieldset[disabled] .datepicker table tr td span.active:hover, +fieldset[disabled] .datepicker table tr td span.active:hover:hover, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover, +.datepicker table tr td span.active.disabled:focus, +.datepicker table tr td span.active:hover.disabled:focus, +.datepicker table tr td span.active.disabled.disabled:focus, +.datepicker table tr td span.active.disabled:hover.disabled:focus, +.datepicker table tr td span.active[disabled]:focus, +.datepicker table tr td span.active:hover[disabled]:focus, +.datepicker table tr td span.active.disabled[disabled]:focus, +.datepicker table tr td span.active.disabled:hover[disabled]:focus, +fieldset[disabled] .datepicker table tr td span.active:focus, +fieldset[disabled] .datepicker table tr td span.active:hover:focus, +fieldset[disabled] .datepicker table tr td span.active.disabled:focus, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active:hover.disabled:active, +.datepicker table tr td span.active.disabled.disabled:active, +.datepicker table tr td span.active.disabled:hover.disabled:active, +.datepicker table tr td span.active[disabled]:active, +.datepicker table tr td span.active:hover[disabled]:active, +.datepicker table tr td span.active.disabled[disabled]:active, +.datepicker table tr td span.active.disabled:hover[disabled]:active, +fieldset[disabled] .datepicker table tr td span.active:active, +fieldset[disabled] .datepicker table tr td span.active:hover:active, +fieldset[disabled] .datepicker table tr td span.active.disabled:active, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active:hover.disabled.active, +.datepicker table tr td span.active.disabled.disabled.active, +.datepicker table tr td span.active.disabled:hover.disabled.active, +.datepicker table tr td span.active[disabled].active, +.datepicker table tr td span.active:hover[disabled].active, +.datepicker table tr td span.active.disabled[disabled].active, +.datepicker table tr td span.active.disabled:hover[disabled].active, +fieldset[disabled] .datepicker table tr td span.active.active, +fieldset[disabled] .datepicker table tr td span.active:hover.active, +fieldset[disabled] .datepicker table tr td span.active.disabled.active, +fieldset[disabled] .datepicker table tr td span.active.disabled:hover.active { + background-color: #428bca; + border-color: #357ebd; +} +.datepicker table tr td span.old, +.datepicker table tr td span.new { + color: #999999; +} +.datepicker th.datepicker-switch { + width: 145px; +} +.datepicker thead tr:first-child th, +.datepicker tfoot tr th { + cursor: pointer; +} +.datepicker thead tr:first-child th:hover, +.datepicker tfoot tr th:hover { + background: #eeeeee; +} +.datepicker .cw { + font-size: 10px; + width: 12px; + padding: 0 2px 0 5px; + vertical-align: middle; +} +.datepicker thead tr:first-child th.cw { + cursor: default; + background-color: transparent; +} +.input-group.date .input-group-addon i { + cursor: pointer; + width: 16px; + height: 16px; +} +.input-daterange input { + text-align: center; +} +.input-daterange input:first-child { + border-radius: 3px 0 0 3px; +} +.input-daterange input:last-child { + border-radius: 0 3px 3px 0; +} +.input-daterange .input-group-addon { + width: auto; + min-width: 16px; + padding: 4px 5px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + text-shadow: 0 1px 0 #fff; + vertical-align: middle; + background-color: #eeeeee; + border-width: 1px 0; + margin-left: -5px; + margin-right: -5px; +} +.datepicker.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + float: left; + display: none; + min-width: 160px; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 5px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + *border-right-width: 2px; + *border-bottom-width: 2px; + color: #333333; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 1.428571429; +} +.datepicker.dropdown-menu th, +.datepicker.dropdown-menu td { + padding: 4px 5px; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/dropzone/basic.css b/novel-admin/src/main/resources/static/css/plugins/dropzone/basic.css new file mode 100644 index 0000000..83084db --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/dropzone/basic.css @@ -0,0 +1,155 @@ +/* The MIT License */ +.dropzone, +.dropzone *, +.dropzone-previews, +.dropzone-previews * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.dropzone { + position: relative; + border: 1px solid rgba(0,0,0,0.08); + background: rgba(0,0,0,0.02); + padding: 1em; +} +.dropzone.dz-clickable { + cursor: pointer; +} +.dropzone.dz-clickable .dz-message, +.dropzone.dz-clickable .dz-message span { + cursor: pointer; +} +.dropzone.dz-clickable * { + cursor: default; +} +.dropzone .dz-message { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone.dz-drag-hover { + border-color: rgba(0,0,0,0.15); + background: rgba(0,0,0,0.04); +} +.dropzone.dz-started .dz-message { + display: none; +} +.dropzone .dz-preview, +.dropzone-previews .dz-preview { + background: rgba(255,255,255,0.8); + position: relative; + display: inline-block; + margin: 17px; + vertical-align: top; + border: 1px solid #acacac; + padding: 6px 6px 6px 6px; +} +.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail], +.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail] { + display: none; +} +.dropzone .dz-preview .dz-details, +.dropzone-previews .dz-preview .dz-details { + width: 100px; + height: 100px; + position: relative; + background: #ebebeb; + padding: 5px; + margin-bottom: 22px; +} +.dropzone .dz-preview .dz-details .dz-filename, +.dropzone-previews .dz-preview .dz-details .dz-filename { + overflow: hidden; + height: 100%; +} +.dropzone .dz-preview .dz-details img, +.dropzone-previews .dz-preview .dz-details img { + position: absolute; + top: 0; + left: 0; + width: 100px; + height: 100px; +} +.dropzone .dz-preview .dz-details .dz-size, +.dropzone-previews .dz-preview .dz-details .dz-size { + position: absolute; + bottom: -28px; + left: 3px; + height: 28px; + line-height: 28px; +} +.dropzone .dz-preview.dz-error .dz-error-mark, +.dropzone-previews .dz-preview.dz-error .dz-error-mark { + display: block; +} +.dropzone .dz-preview.dz-success .dz-success-mark, +.dropzone-previews .dz-preview.dz-success .dz-success-mark { + display: block; +} +.dropzone .dz-preview:hover .dz-details img, +.dropzone-previews .dz-preview:hover .dz-details img { + display: none; +} +.dropzone .dz-preview .dz-success-mark, +.dropzone-previews .dz-preview .dz-success-mark, +.dropzone .dz-preview .dz-error-mark, +.dropzone-previews .dz-preview .dz-error-mark { + display: none; + position: absolute; + width: 40px; + height: 40px; + font-size: 30px; + text-align: center; + right: -10px; + top: -10px; +} +.dropzone .dz-preview .dz-success-mark, +.dropzone-previews .dz-preview .dz-success-mark { + color: #8cc657; +} +.dropzone .dz-preview .dz-error-mark, +.dropzone-previews .dz-preview .dz-error-mark { + color: #ee162d; +} +.dropzone .dz-preview .dz-progress, +.dropzone-previews .dz-preview .dz-progress { + position: absolute; + top: 100px; + left: 6px; + right: 6px; + height: 6px; + background: #d7d7d7; + display: none; +} +.dropzone .dz-preview .dz-progress .dz-upload, +.dropzone-previews .dz-preview .dz-progress .dz-upload { + display: block; + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 0%; + background-color: #8cc657; +} +.dropzone .dz-preview.dz-processing .dz-progress, +.dropzone-previews .dz-preview.dz-processing .dz-progress { + display: block; +} +.dropzone .dz-preview .dz-error-message, +.dropzone-previews .dz-preview .dz-error-message { + display: none; + position: absolute; + top: -5px; + left: -20px; + background: rgba(245,245,245,0.8); + padding: 8px 10px; + color: #800; + min-width: 140px; + max-width: 500px; + z-index: 500; +} +.dropzone .dz-preview:hover.dz-error .dz-error-message, +.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { + display: block; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/dropzone/dropzone.css b/novel-admin/src/main/resources/static/css/plugins/dropzone/dropzone.css new file mode 100644 index 0000000..fc18729 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/dropzone/dropzone.css @@ -0,0 +1,410 @@ +/* The MIT License */ +.dropzone, +.dropzone *, +.dropzone-previews, +.dropzone-previews * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.dropzone { + position: relative; + border: 1px solid rgba(0,0,0,0.08); + background: rgba(0,0,0,0.02); + padding: 1em; +} +.dropzone.dz-clickable { + cursor: pointer; +} +.dropzone.dz-clickable .dz-message, +.dropzone.dz-clickable .dz-message span { + cursor: pointer; +} +.dropzone.dz-clickable * { + cursor: default; +} +.dropzone .dz-message { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone.dz-drag-hover { + border-color: rgba(0,0,0,0.15); + background: rgba(0,0,0,0.04); +} +.dropzone.dz-started .dz-message { + display: none; +} +.dropzone .dz-preview, +.dropzone-previews .dz-preview { + background: rgba(255,255,255,0.8); + position: relative; + display: inline-block; + margin: 17px; + vertical-align: top; + border: 1px solid #acacac; + padding: 6px 6px 6px 6px; +} +.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail], +.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail] { + display: none; +} +.dropzone .dz-preview .dz-details, +.dropzone-previews .dz-preview .dz-details { + width: 100px; + height: 100px; + position: relative; + background: #ebebeb; + padding: 5px; + margin-bottom: 22px; +} +.dropzone .dz-preview .dz-details .dz-filename, +.dropzone-previews .dz-preview .dz-details .dz-filename { + overflow: hidden; + height: 100%; +} +.dropzone .dz-preview .dz-details img, +.dropzone-previews .dz-preview .dz-details img { + position: absolute; + top: 0; + left: 0; + width: 100px; + height: 100px; +} +.dropzone .dz-preview .dz-details .dz-size, +.dropzone-previews .dz-preview .dz-details .dz-size { + position: absolute; + bottom: -28px; + left: 3px; + height: 28px; + line-height: 28px; +} +.dropzone .dz-preview.dz-error .dz-error-mark, +.dropzone-previews .dz-preview.dz-error .dz-error-mark { + display: block; +} +.dropzone .dz-preview.dz-success .dz-success-mark, +.dropzone-previews .dz-preview.dz-success .dz-success-mark { + display: block; +} +.dropzone .dz-preview:hover .dz-details img, +.dropzone-previews .dz-preview:hover .dz-details img { + display: none; +} +.dropzone .dz-preview .dz-success-mark, +.dropzone-previews .dz-preview .dz-success-mark, +.dropzone .dz-preview .dz-error-mark, +.dropzone-previews .dz-preview .dz-error-mark { + display: none; + position: absolute; + width: 40px; + height: 40px; + font-size: 30px; + text-align: center; + right: -10px; + top: -10px; +} +.dropzone .dz-preview .dz-success-mark, +.dropzone-previews .dz-preview .dz-success-mark { + color: #8cc657; +} +.dropzone .dz-preview .dz-error-mark, +.dropzone-previews .dz-preview .dz-error-mark { + color: #ee162d; +} +.dropzone .dz-preview .dz-progress, +.dropzone-previews .dz-preview .dz-progress { + position: absolute; + top: 100px; + left: 6px; + right: 6px; + height: 6px; + background: #d7d7d7; + display: none; +} +.dropzone .dz-preview .dz-progress .dz-upload, +.dropzone-previews .dz-preview .dz-progress .dz-upload { + display: block; + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 0%; + background-color: #8cc657; +} +.dropzone .dz-preview.dz-processing .dz-progress, +.dropzone-previews .dz-preview.dz-processing .dz-progress { + display: block; +} +.dropzone .dz-preview .dz-error-message, +.dropzone-previews .dz-preview .dz-error-message { + display: none; + position: absolute; + top: -5px; + left: -20px; + background: rgba(245,245,245,0.8); + padding: 8px 10px; + color: #800; + min-width: 140px; + max-width: 500px; + z-index: 500; +} +.dropzone .dz-preview:hover.dz-error .dz-error-message, +.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { + display: block; +} +.dropzone { + border: 1px solid rgba(0,0,0,0.03); + min-height: 360px; + -webkit-border-radius: 3px; + border-radius: 3px; + background: rgba(0,0,0,0.03); + padding: 23px; +} +.dropzone .dz-default.dz-message { + opacity: 1; + -ms-filter: none; + filter: none; + -webkit-transition: opacity 0.3s ease-in-out; + -moz-transition: opacity 0.3s ease-in-out; + -o-transition: opacity 0.3s ease-in-out; + -ms-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; + background-image: url("../images/spritemap.png"); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + width: 428px; + height: 123px; + margin-left: -214px; + margin-top: -61.5px; + top: 50%; + left: 50%; +} +@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { + .dropzone .dz-default.dz-message { + background-image: url("../images/spritemap@2x.png"); + -webkit-background-size: 428px 406px; + -moz-background-size: 428px 406px; + background-size: 428px 406px; + } +} +.dropzone .dz-default.dz-message span { + display: none; +} +.dropzone.dz-square .dz-default.dz-message { + background-position: 0 -123px; + width: 268px; + margin-left: -134px; + height: 174px; + margin-top: -87px; +} +.dropzone.dz-drag-hover .dz-message { + opacity: 0.15; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)"; + filter: alpha(opacity=15); +} +.dropzone.dz-started .dz-message { + display: block; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); +} +.dropzone .dz-preview, +.dropzone-previews .dz-preview { + -webkit-box-shadow: 1px 1px 4px rgba(0,0,0,0.16); + box-shadow: 1px 1px 4px rgba(0,0,0,0.16); + font-size: 14px; +} +.dropzone .dz-preview.dz-image-preview:hover .dz-details img, +.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img { + display: block; + opacity: 0.1; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; + filter: alpha(opacity=10); +} +.dropzone .dz-preview.dz-success .dz-success-mark, +.dropzone-previews .dz-preview.dz-success .dz-success-mark { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone .dz-preview.dz-error .dz-error-mark, +.dropzone-previews .dz-preview.dz-error .dz-error-mark { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone .dz-preview.dz-error .dz-progress .dz-upload, +.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload { + background: #ee1e2d; +} +.dropzone .dz-preview .dz-error-mark, +.dropzone-previews .dz-preview .dz-error-mark, +.dropzone .dz-preview .dz-success-mark, +.dropzone-previews .dz-preview .dz-success-mark { + display: block; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transition: opacity 0.4s ease-in-out; + -moz-transition: opacity 0.4s ease-in-out; + -o-transition: opacity 0.4s ease-in-out; + -ms-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; + background-image: url("../images/spritemap.png"); + background-repeat: no-repeat; +} +@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { + .dropzone .dz-preview .dz-error-mark, + .dropzone-previews .dz-preview .dz-error-mark, + .dropzone .dz-preview .dz-success-mark, + .dropzone-previews .dz-preview .dz-success-mark { + background-image: url("../images/spritemap@2x.png"); + -webkit-background-size: 428px 406px; + -moz-background-size: 428px 406px; + background-size: 428px 406px; + } +} +.dropzone .dz-preview .dz-error-mark span, +.dropzone-previews .dz-preview .dz-error-mark span, +.dropzone .dz-preview .dz-success-mark span, +.dropzone-previews .dz-preview .dz-success-mark span { + display: none; +} +.dropzone .dz-preview .dz-error-mark, +.dropzone-previews .dz-preview .dz-error-mark { + background-position: -268px -123px; +} +.dropzone .dz-preview .dz-success-mark, +.dropzone-previews .dz-preview .dz-success-mark { + background-position: -268px -163px; +} +.dropzone .dz-preview .dz-progress .dz-upload, +.dropzone-previews .dz-preview .dz-progress .dz-upload { + -webkit-animation: loading 0.4s linear infinite; + -moz-animation: loading 0.4s linear infinite; + -o-animation: loading 0.4s linear infinite; + -ms-animation: loading 0.4s linear infinite; + animation: loading 0.4s linear infinite; + -webkit-transition: width 0.3s ease-in-out; + -moz-transition: width 0.3s ease-in-out; + -o-transition: width 0.3s ease-in-out; + -ms-transition: width 0.3s ease-in-out; + transition: width 0.3s ease-in-out; + -webkit-border-radius: 2px; + border-radius: 2px; + position: absolute; + top: 0; + left: 0; + width: 0%; + height: 100%; + background-image: url("../images/spritemap.png"); + background-repeat: repeat-x; + background-position: 0px -400px; +} +@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { + .dropzone .dz-preview .dz-progress .dz-upload, + .dropzone-previews .dz-preview .dz-progress .dz-upload { + background-image: url("../images/spritemap@2x.png"); + -webkit-background-size: 428px 406px; + -moz-background-size: 428px 406px; + background-size: 428px 406px; + } +} +.dropzone .dz-preview.dz-success .dz-progress, +.dropzone-previews .dz-preview.dz-success .dz-progress { + display: block; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transition: opacity 0.4s ease-in-out; + -moz-transition: opacity 0.4s ease-in-out; + -o-transition: opacity 0.4s ease-in-out; + -ms-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; +} +.dropzone .dz-preview .dz-error-message, +.dropzone-previews .dz-preview .dz-error-message { + display: block; + opacity: 0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + filter: alpha(opacity=0); + -webkit-transition: opacity 0.3s ease-in-out; + -moz-transition: opacity 0.3s ease-in-out; + -o-transition: opacity 0.3s ease-in-out; + -ms-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; +} +.dropzone .dz-preview:hover.dz-error .dz-error-message, +.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { + opacity: 1; + -ms-filter: none; + filter: none; +} +.dropzone a.dz-remove, +.dropzone-previews a.dz-remove { + background-image: -webkit-linear-gradient(top, #fafafa, #eee); + background-image: -moz-linear-gradient(top, #fafafa, #eee); + background-image: -o-linear-gradient(top, #fafafa, #eee); + background-image: -ms-linear-gradient(top, #fafafa, #eee); + background-image: linear-gradient(to bottom, #fafafa, #eee); + -webkit-border-radius: 2px; + border-radius: 2px; + border: 1px solid #eee; + text-decoration: none; + display: block; + padding: 4px 5px; + text-align: center; + color: #aaa; + margin-top: 26px; +} +.dropzone a.dz-remove:hover, +.dropzone-previews a.dz-remove:hover { + color: #666; +} +@-moz-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@-webkit-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@-o-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@-ms-keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} +@keyframes loading { + 0% { + background-position: 0 -400px; + } + + 100% { + background-position: -7px -400px; + } +} diff --git a/novel-admin/src/main/resources/static/css/plugins/duallistbox/bootstrap-duallistbox.css b/novel-admin/src/main/resources/static/css/plugins/duallistbox/bootstrap-duallistbox.css new file mode 100644 index 0000000..d7627c1 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/duallistbox/bootstrap-duallistbox.css @@ -0,0 +1,78 @@ +.bootstrap-duallistbox-container .buttons { + width:calc(100% + 1px); + margin-bottom: -6px; + box-sizing: border-box; +} + +.bootstrap-duallistbox-container label { + display: block; +} + +.bootstrap-duallistbox-container .info { + display: inline-block; + margin-bottom: 5px; +} + +.bootstrap-duallistbox-container .clear1, +.bootstrap-duallistbox-container .clear2 { + display: none; + font-size: 10px; +} + +.bootstrap-duallistbox-container .box1.filtered .clear1, +.bootstrap-duallistbox-container .box2.filtered .clear2 { + display: inline-block; +} + +.bootstrap-duallistbox-container .move, +.bootstrap-duallistbox-container .remove { + width: 50%;box-sizing: border-box; +} + +.bootstrap-duallistbox-container .btn-group .btn { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} +.bootstrap-duallistbox-container select { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.bootstrap-duallistbox-container .moveall, +.bootstrap-duallistbox-container .removeall { + width: 50%;box-sizing: border-box; +} + +.bootstrap-duallistbox-container.bs2compatible .btn-group > .btn + .btn { + margin-left: 0; +} + +.bootstrap-duallistbox-container select { + height: 300px; + box-sizing: border-box; +} +.bootstrap-duallistbox-container select:focus{ + border-color: #e5e6e7!important; +} + +.bootstrap-duallistbox-container .filter { + display: inline-block; + width: 100%; + height: 31px;margin-bottom:-1px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; +} + +.bootstrap-duallistbox-container .filter.placeholder { + color: #aaa; +} + +.bootstrap-duallistbox-container.moveonselect .move, +.bootstrap-duallistbox-container.moveonselect .remove { + display:none; +} + +.bootstrap-duallistbox-container.moveonselect .moveall, +.bootstrap-duallistbox-container.moveonselect .removeall { + width: 100%; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.eot b/novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.eot new file mode 100644 index 0000000000000000000000000000000000000000..37229798b1b7a7929fc288fc36129700a42a3636 GIT binary patch literal 4824 zcmds5YiL~85uUmC?%rLktX=I&yNP5+tJOY89ou_X`*4!F-Zr)z8=DF@n1bC_vLio& zEUjhPIHpavAujas!!1ESN`HtXhT??c;1EM;!Q@AY3N;jzHjw_<{^;XJYYcg`6uR4Q z&N-{MQcC~zO6SZub7tn7^O!mJ?)y=qJPMOV@>t}vRRf&sEUm+%x=#^9F+z1|#}lvL zZ}XOEgig~m{$^>MPSPYzV5p0Zf}WvE=#SHk=+ZH8X6PcFgX|O~$)lZ=$H+$dV2dwX zfNRs}$jCECCO&!XWuj;gxLXhG+do3jke{ggBlMGB{L-$%uAhDIYbbpg{bQ%jkJlRI z4;L}J!{8k~Gk&qwYQYk9{}tnbGn3Ds9(eSV=ZWkGL>=#+ofv=iU*EetfU)1Bl+S|U zL?{4V!AqY#KYL}*3%mpUTj>9Ia{AP`H(NXj{dx39&yQcJVWI~xz8n4I)cE;{7v8%% zigkDwydT!4FV24Ot1BhU^#uCY)!Z<@`>!YBUkiWsV+!fLxL5wso6skrtyZgH5jW5c zn5}{;{u`|Z?X;-XY6@FcY2}ksoE+_w+2Rqytaw%F;$i+NJn&I~5A$jC4;cC}JxnjH zJP#rqk;*)yr}sZg)doEu?pq0rkD zMG>1xQ#P|7hy6HYJ5g+DO=TA;Eq=q9mo)pRv!53XYV-*&pFN+;;+G)M2yU%1LI^1J*`>oM!A)^+P0Ytj0X^$)wl zPTN)cgnilmw*9jGihawz?>y!_=lsOE=X~Vr^L@@YDNAZjJl3?E2Q6yipf%OHEsqUh z?T1Rm>~>E1xABlvJ@F^GSE@pJ4-ZRK%<_X|y;|o6nsbZam3F-#!uhr&j)v@Xr{*ATfZ^5d~=Y=)4&hCoYwC!dFd)r=VdvJ|f*e5k7W3E<( zDHUyx@*%!RLo`fJ5oLON{M)fps8ZQI*gI6k@{?SWsu16Xy^AN7wpMRwWl3BMG5MUT z&xtv{s^eSH%tSgDLXk*lp)-=s^e^;hRQ0>48<6x{WcCe!_7OZ#l@gWsp=g^D=58d7p zi*31mNQCOaRq+XobTO+U6!s7)19JLgA1e|yz}+0<^5zh0F`}>~GZ|p*Ig*lOtP1Ls z%uUT=ZX<6^Ag!O_`n587Mtsf|_ewZPh~)IF;yotn|2q)LfmP(ddAuJ`DN#vOcx--t ztVQ!eWK`$LBxLF$!#OwS;u6%uoYd0DrPWr0=kbOB8DAw=$uU>;SX%@#W01M4Wnyl^ zP4Hb~rlBd!;|$Jlh7))bq_jThn5*m?XF>rvZ@#)e?5lr2914N>{dJ}D5_CQzI;8eg z?KKW9XZ&?v7)2dYegqmm{D&p&!k;J|p*zS|(2F6eQlchc@jJ#gBpHjLK)b|@(u0pj z=!VuSD?Am9@bQMgDaZb-#1R^zD_BX)9ed*u3mlP{AR&-Q%0{ozEKE@r>n8sQJ7Y@l|O}LR~?fUB`SfVwix?{>qoMELa#!$sH1dq+wDtlvvt7=ubX%K?Vx?1N>-DZBDKqf=jyyy zE}H25U%(mfz?Zqm+X&wIlZo;HItsGYm1riIxpnf#4%s>=>o+Dn;XBiwbXNXe@^A6%PIdqQ literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.svg b/novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.svg new file mode 100644 index 0000000..a0fba7e --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.svg @@ -0,0 +1,78 @@ + + + + +This is a custom SVG font generated by IcoMoon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.ttf b/novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2d5c84ab167ac1569175744e0e0a2b25caa51132 GIT binary patch literal 4656 zcmds5YiwLs5uUmC?%rLm<6V30-PTF!^?DyFX_CF`eYhtu2q^~aq|T%A zV`Do}8bMjA28qXyf-3(&{ICjl{iuwc9NJK(%0jd00e(?AKQKUXVNbK^> zIcL}JBE&!L`kXmu&dhvs9y8}&6BE%6s*z16M@OGMG5OICUnT141$WnxLx)G{S@IKg ze}I1Cv!C0a-~ZG1enrHeNB`8>>4|E+^!^HwbsW5B&QHu&n@w1v?!RI@aDM8Aa|4fl z^a7FnfT-hl7bYj3``5Rw3}Ec{D5VQvI1vg!SMX97rWdXrc#-#_e+&KZPtBg4@D>VZ zpudFv$?1u!RhptB7#~4DF*7ke`Qp3RP7-y!1KxM5v-1n@{qky&C^ClrD`UQKen=q;45E9b@4eBY&1SQ15!cZVkRDb#TyNHCpGD1PL)cNErk6#*r!|#uMAf=FdG7FYRH@SgcqKl-w?wV&LCZzD zsimdARpFyhk@A)$W;JgtZ?k7BYJ{>EF#mQuW53u4^nd{f%B%6k3K8vViI zpwSy|+{L;YHE5`l+{O&k&Q&cdnJJX=vEJ;^D!j3BYpGgYs#eA;v z_$Iq+X4A5p9_(v*rR~8rYGR+%oQ%0@1*TNAJ<7*;o`z_co+3*3_4@Zj--JV0PV+t5T9D!7D~g>4ZdYJjC0Vyrg#2v)t!Cf z=MAZN4o(@s#^2jcyySy#e&rxp$Ttq(;h(8BqqIV7!)|%n%iX}ZI zoDR8ZH#FvkLhhJqo(_bL=8}!SC3CqXN0YgGsX*wo44)1KR+~R)+*blUsBtdazQ}qg zUnCMF-Xt=%!fle+WZD8v;e^&BtUvp5`}X?P`3DJh29Mp|5smJ+eN2RE!FBNoj8q|`A{6!zDFbr)WFN~C zHNf2-udOJ*{_+H)i&$yjC7Ntv6P#o|`pnn2n-!_8}D@{IVLDIAn=k`T%2 zS;cxy)cA-(3# z$U@LWo1^ZlOcJM6O&TdzQnRbiRVi z-gfJP72Y)O*4shrK9#H{Gev5b3(wVguT(J6`@euQ-hr=hfp-(WVNxazu&J$6jSw2P zyKL94UP9Gn+t)#^e@8W|Ra*^R2N%=8nTyd^VJjoHR%1#>B2uTarS!GlrK*_ZZWz>d z!1lD(3bfq>jP}cht()4Gjy-J# zX;3?NQ%wuAYn%MFa;nP?SlUaOqTF>c9$2(@L9KQdK&Lqy6r&bHPiNC|9)=Te(?W5=V%tc1)88U_;Q^jIyXDJFmYxIt!L0Z zPnW@-pgD9W&tIOJKw}gNGf)va2Z>2aP@eYT^C>}3plmd$xgL$sURCmt^xz(i&dw~1 z&d!~mOyu|F5>F&r&}e!idq?)>a~`BNnp@-HDPYghJY7^CC16#&pi`4`^A~4l65c*^ zK1N;LrLr;GK9U`oEVkHYhkfj4mjfK+4i0fA@8B*DbA-FOhojufeH`OBKg17nKkwvS zyqh240Z#BBCwYidoOUnITpZ2iazYQUQqT1Bh7KEAFtliB$7 mFRP6R#Knb{1olHH>LSCL&4BBup72D1mcKFU30?dDl79oCPds%1 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.woff b/novel-admin/src/main/resources/static/css/plugins/footable/fonts/footable.woff new file mode 100644 index 0000000000000000000000000000000000000000..4864dbb5cc52f22eae9dfa910364d56aa04020d5 GIT binary patch literal 4016 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 E0QxaItpET3 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/footable/footable.core.css b/novel-admin/src/main/resources/static/css/plugins/footable/footable.core.css new file mode 100644 index 0000000..d8accfb --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/footable/footable.core.css @@ -0,0 +1,178 @@ +@font-face { + font-family: 'footable'; + src: url('fonts/footable.eot'); + src: url('fonts/footable.eot?#iefix') format('embedded-opentype'), url('fonts/footable.woff') format('woff'), url('fonts/footable.ttf') format('truetype'), url('fonts/footable.svg#footable') format('svg'); + font-weight: normal; + font-style: normal; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + @font-face { + font-family: 'footable'; + src: url('fonts/footable.svg#footable') format('svg'); + font-weight: normal; + font-style: normal; + } +} +.footable { + width: 100%; + /** SORTING **/ + + /** PAGINATION **/ + +} +.footable.breakpoint > tbody > tr.footable-detail-show > td { + border-bottom: none; +} +.footable.breakpoint > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e001"; +} +.footable.breakpoint > tbody > tr:hover:not(.footable-row-detail) { + cursor: pointer; +} +.footable.breakpoint > tbody > tr > td.footable-cell-detail { + background: #eee; + border-top: none; +} +.footable.breakpoint > tbody > tr > td > span.footable-toggle { + display: inline-block; + font-family: 'footable'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + -webkit-font-smoothing: antialiased; + padding-right: 5px; + font-size: 14px; + color: #888888; +} +.footable.breakpoint > tbody > tr > td > span.footable-toggle:before { + content: "\e000"; +} +.footable.breakpoint.toggle-circle > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e005"; +} +.footable.breakpoint.toggle-circle > tbody > tr > td > span.footable-toggle:before { + content: "\e004"; +} +.footable.breakpoint.toggle-circle-filled > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e003"; +} +.footable.breakpoint.toggle-circle-filled > tbody > tr > td > span.footable-toggle:before { + content: "\e002"; +} +.footable.breakpoint.toggle-square > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e007"; +} +.footable.breakpoint.toggle-square > tbody > tr > td > span.footable-toggle:before { + content: "\e006"; +} +.footable.breakpoint.toggle-square-filled > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e009"; +} +.footable.breakpoint.toggle-square-filled > tbody > tr > td > span.footable-toggle:before { + content: "\e008"; +} +.footable.breakpoint.toggle-arrow > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e00f"; +} +.footable.breakpoint.toggle-arrow > tbody > tr > td > span.footable-toggle:before { + content: "\e011"; +} +.footable.breakpoint.toggle-arrow-small > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e013"; +} +.footable.breakpoint.toggle-arrow-small > tbody > tr > td > span.footable-toggle:before { + content: "\e015"; +} +.footable.breakpoint.toggle-arrow-circle > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e01b"; +} +.footable.breakpoint.toggle-arrow-circle > tbody > tr > td > span.footable-toggle:before { + content: "\e01d"; +} +.footable.breakpoint.toggle-arrow-circle-filled > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e00b"; +} +.footable.breakpoint.toggle-arrow-circle-filled > tbody > tr > td > span.footable-toggle:before { + content: "\e00d"; +} +.footable.breakpoint.toggle-arrow-tiny > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e01f"; +} +.footable.breakpoint.toggle-arrow-tiny > tbody > tr > td > span.footable-toggle:before { + content: "\e021"; +} +.footable.breakpoint.toggle-arrow-alt > tbody > tr.footable-detail-show > td > span.footable-toggle:before { + content: "\e017"; +} +.footable.breakpoint.toggle-arrow-alt > tbody > tr > td > span.footable-toggle:before { + content: "\e019"; +} +.footable.breakpoint.toggle-medium > tbody > tr > td > span.footable-toggle { + font-size: 18px; +} +.footable.breakpoint.toggle-large > tbody > tr > td > span.footable-toggle { + font-size: 24px; +} +.footable > thead > tr > th { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: -moz-none; + -ms-user-select: none; + user-select: none; +} +.footable > thead > tr > th.footable-sortable:hover { + cursor: pointer; +} +.footable > thead > tr > th.footable-sorted > span.footable-sort-indicator:before { + content: "\e013"; +} +.footable > thead > tr > th.footable-sorted-desc > span.footable-sort-indicator:before { + content: "\e012"; +} +.footable > thead > tr > th > span.footable-sort-indicator { + display: inline-block; + font-family: 'footable'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + -webkit-font-smoothing: antialiased; + padding-left: 5px; +} +.footable > thead > tr > th > span.footable-sort-indicator:before { + content: "\e022"; +} +.footable > tfoot .pagination { + margin: 0; +} +.footable.no-paging .hide-if-no-paging { + display: none; +} +.footable-row-detail-inner { + display: table; +} +.footable-row-detail-row { + display: table-row; + line-height: 1.5em; +} +.footable-row-detail-group { + display: block; + line-height: 2em; + font-size: 1.2em; + font-weight: bold; +} +.footable-row-detail-name { + display: table-cell; + font-weight: bold; + padding-right: 0.5em; +} +.footable-row-detail-value { + display: table-cell; +} +.footable-odd { + background-color: #f7f7f7; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/fullcalendar/fullcalendar.css b/novel-admin/src/main/resources/static/css/plugins/fullcalendar/fullcalendar.css new file mode 100644 index 0000000..404552a --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/fullcalendar/fullcalendar.css @@ -0,0 +1,589 @@ +/*! + * FullCalendar v1.6.4 Stylesheet + * Docs & License: http://arshaw.com/fullcalendar/ + * (c) 2013 Adam Shaw + */ + + +.fc { + direction: ltr; + text-align: left; + } + +.fc table { + border-collapse: collapse; + border-spacing: 0; + } + +html .fc, +.fc table { + font-size: 1em; + } + +.fc td, +.fc th { + padding: 0; + vertical-align: top; + } + + + +/* Header +------------------------------------------------------------------------*/ + +.fc-header td { + white-space: nowrap; + } + +.fc-header-left { + width: 25%; + text-align: left; + } + +.fc-header-center { + text-align: center; + } + +.fc-header-right { + width: 25%; + text-align: right; + } + +.fc-header-title { + display: inline-block; + vertical-align: top; + } + +.fc-header-title h2 { + margin-top: 0; + white-space: nowrap; + } + +.fc .fc-header-space { + padding-left: 10px; + } + +.fc-header .fc-button { + margin-bottom: 1em; + vertical-align: top; + } + +/* buttons edges butting together */ + +.fc-header .fc-button { + margin-right: -1px; + } + +.fc-header .fc-corner-right, /* non-theme */ +.fc-header .ui-corner-right { /* theme */ + margin-right: 0; /* back to normal */ + } + +/* button layering (for border precedence) */ + +.fc-header .fc-state-hover, +.fc-header .ui-state-hover { + z-index: 2; + } + +.fc-header .fc-state-down { + z-index: 3; + } + +.fc-header .fc-state-active, +.fc-header .ui-state-active { + z-index: 4; + } + + + +/* Content +------------------------------------------------------------------------*/ + +.fc-content { + clear: both; + zoom: 1; /* for IE7, gives accurate coordinates for [un]freezeContentHeight */ + } + +.fc-view { + width: 100%; + overflow: hidden; + } + + + +/* Cell Styles +------------------------------------------------------------------------*/ + +.fc-widget-header, /* , usually */ +.fc-widget-content { /* , usually */ + border: 1px solid #ddd; + } + +.fc-state-highlight { /* today cell */ /* TODO: add .fc-today to */ + background: #fcf8e3; + } + +.fc-cell-overlay { /* semi-transparent rectangle while dragging */ + background: #bce8f1; + opacity: .3; + filter: alpha(opacity=30); /* for IE */ + } + + + +/* Buttons +------------------------------------------------------------------------*/ + +.fc-button { + position: relative; + display: inline-block; + padding: 0 .6em; + overflow: hidden; + height: 1.9em; + line-height: 1.9em; + white-space: nowrap; + cursor: pointer; + } + +.fc-state-default { /* non-theme */ + border: 1px solid; + } + +.fc-state-default.fc-corner-left { /* non-theme */ + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + } + +.fc-state-default.fc-corner-right { /* non-theme */ + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + } + +/* + Our default prev/next buttons use HTML entities like ‹ › « » + and we'll try to make them look good cross-browser. +*/ + +.fc-text-arrow { + margin: 0 .1em; + font-size: 2em; + font-family: "Courier New", Courier, monospace; + vertical-align: baseline; /* for IE7 */ + } + +.fc-button-prev .fc-text-arrow, +.fc-button-next .fc-text-arrow { /* for ‹ › */ + font-weight: bold; + } + +/* icon (for jquery ui) */ + +.fc-button .fc-icon-wrap { + position: relative; + float: left; + top: 50%; + } + +.fc-button .ui-icon { + position: relative; + float: left; + margin-top: -50%; + *margin-top: 0; + *top: -50%; + } + +/* + button states + borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/) +*/ + +.fc-state-default { + background-color: #f5f5f5; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + color: #333; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + } + +.fc-state-hover, +.fc-state-down, +.fc-state-active, +.fc-state-disabled { + color: #333333; + background-color: #e6e6e6; + } + +.fc-state-hover { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; + } + +.fc-state-down, +.fc-state-active { + background-color: #cccccc; + background-image: none; + outline: 0; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + } + +.fc-state-disabled { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + box-shadow: none; + } + + + +/* Global Event Styles +------------------------------------------------------------------------*/ + +.fc-event-container > * { + z-index: 8; + } + +.fc-event-container > .ui-draggable-dragging, +.fc-event-container > .ui-resizable-resizing { + z-index: 9; + } + +.fc-event { + border: 1px solid #3a87ad; /* default BORDER color */ + background-color: #3a87ad; /* default BACKGROUND color */ + color: #fff; /* default TEXT color */ + font-size: .85em; + cursor: default; + } + +a.fc-event { + text-decoration: none; + } + +a.fc-event, +.fc-event-draggable { + cursor: pointer; + } + +.fc-rtl .fc-event { + text-align: right; + } + +.fc-event-inner { + width: 100%; + height: 100%; + overflow: hidden; + } + +.fc-event-time, +.fc-event-title { + padding: 0 1px; + } + +.fc .ui-resizable-handle { + display: block; + position: absolute; + z-index: 99999; + overflow: hidden; /* hacky spaces (IE6/7) */ + font-size: 300%; /* */ + line-height: 50%; /* */ + } + + + +/* Horizontal Events +------------------------------------------------------------------------*/ + +.fc-event-hori { + border-width: 1px 0; + margin-bottom: 1px; + } + +.fc-ltr .fc-event-hori.fc-event-start, +.fc-rtl .fc-event-hori.fc-event-end { + border-left-width: 1px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + } + +.fc-ltr .fc-event-hori.fc-event-end, +.fc-rtl .fc-event-hori.fc-event-start { + border-right-width: 1px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + } + +/* resizable */ + +.fc-event-hori .ui-resizable-e { + top: 0 !important; /* importants override pre jquery ui 1.7 styles */ + right: -3px !important; + width: 7px !important; + height: 100% !important; + cursor: e-resize; + } + +.fc-event-hori .ui-resizable-w { + top: 0 !important; + left: -3px !important; + width: 7px !important; + height: 100% !important; + cursor: w-resize; + } + +.fc-event-hori .ui-resizable-handle { + _padding-bottom: 14px; /* IE6 had 0 height */ + } + + + +/* Reusable Separate-border Table +------------------------------------------------------------*/ + +table.fc-border-separate { + border-collapse: separate; + } + +.fc-border-separate th, +.fc-border-separate td { + border-width: 1px 0 0 1px; + } + +.fc-border-separate th.fc-last, +.fc-border-separate td.fc-last { + border-right-width: 1px; + } + +.fc-border-separate tr.fc-last th, +.fc-border-separate tr.fc-last td { + border-bottom-width: 1px; + } + +.fc-border-separate tbody tr.fc-first td, +.fc-border-separate tbody tr.fc-first th { + border-top-width: 0; + } + + + +/* Month View, Basic Week View, Basic Day View +------------------------------------------------------------------------*/ + +.fc-grid th { + text-align: center; + } + +.fc .fc-week-number { + width: 22px; + text-align: center; + } + +.fc .fc-week-number div { + padding: 0 2px; + } + +.fc-grid .fc-day-number { + float: right; + padding: 0 2px; + } + +.fc-grid .fc-other-month .fc-day-number { + opacity: 0.3; + filter: alpha(opacity=30); /* for IE */ + /* opacity with small font can sometimes look too faded + might want to set the 'color' property instead + making day-numbers bold also fixes the problem */ + } + +.fc-grid .fc-day-content { + clear: both; + padding: 2px 2px 1px; /* distance between events and day edges */ + } + +/* event styles */ + +.fc-grid .fc-event-time { + font-weight: bold; + } + +/* right-to-left */ + +.fc-rtl .fc-grid .fc-day-number { + float: left; + } + +.fc-rtl .fc-grid .fc-event-time { + float: right; + } + + + +/* Agenda Week View, Agenda Day View +------------------------------------------------------------------------*/ + +.fc-agenda table { + border-collapse: separate; + } + +.fc-agenda-days th { + text-align: center; + } + +.fc-agenda .fc-agenda-axis { + width: 50px; + padding: 0 4px; + vertical-align: middle; + text-align: right; + white-space: nowrap; + font-weight: normal; + } + +.fc-agenda .fc-week-number { + font-weight: bold; + } + +.fc-agenda .fc-day-content { + padding: 2px 2px 1px; + } + +/* make axis border take precedence */ + +.fc-agenda-days .fc-agenda-axis { + border-right-width: 1px; + } + +.fc-agenda-days .fc-col0 { + border-left-width: 0; + } + +/* all-day area */ + +.fc-agenda-allday th { + border-width: 0 1px; + } + +.fc-agenda-allday .fc-day-content { + min-height: 34px; /* TODO: doesnt work well in quirksmode */ + _height: 34px; + } + +/* divider (between all-day and slots) */ + +.fc-agenda-divider-inner { + height: 2px; + overflow: hidden; + } + +.fc-widget-header .fc-agenda-divider-inner { + background: #eee; + } + +/* slot rows */ + +.fc-agenda-slots th { + border-width: 1px 1px 0; + } + +.fc-agenda-slots td { + border-width: 1px 0 0; + background: none; + } + +.fc-agenda-slots td div { + height: 20px; + } + +.fc-agenda-slots tr.fc-slot0 th, +.fc-agenda-slots tr.fc-slot0 td { + border-top-width: 0; + } + +.fc-agenda-slots tr.fc-minor th, +.fc-agenda-slots tr.fc-minor td { + border-top-style: dotted; + } + +.fc-agenda-slots tr.fc-minor th.ui-widget-header { + *border-top-style: solid; /* doesn't work with background in IE6/7 */ + } + + + +/* Vertical Events +------------------------------------------------------------------------*/ + +.fc-event-vert { + border-width: 0 1px; + } + +.fc-event-vert.fc-event-start { + border-top-width: 1px; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + } + +.fc-event-vert.fc-event-end { + border-bottom-width: 1px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + } + +.fc-event-vert .fc-event-time { + white-space: nowrap; + font-size: 10px; + } + +.fc-event-vert .fc-event-inner { + position: relative; + z-index: 2; + } + +.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */ + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #fff; + opacity: .25; + filter: alpha(opacity=25); + } + +.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */ +.fc-select-helper .fc-event-bg { + display: none\9; /* for IE6/7/8. nested opacity filters while dragging don't work */ + } + +/* resizable */ + +.fc-event-vert .ui-resizable-s { + bottom: 0 !important; /* importants override pre jquery ui 1.7 styles */ + width: 100% !important; + height: 8px !important; + overflow: hidden !important; + line-height: 8px !important; + font-size: 11px !important; + font-family: monospace; + text-align: center; + cursor: s-resize; + } + +.fc-agenda .ui-resizable-resizing { /* TODO: better selector */ + _overflow: hidden; + } + + diff --git a/novel-admin/src/main/resources/static/css/plugins/fullcalendar/fullcalendar.print.css b/novel-admin/src/main/resources/static/css/plugins/fullcalendar/fullcalendar.print.css new file mode 100644 index 0000000..d4e3451 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/fullcalendar/fullcalendar.print.css @@ -0,0 +1,32 @@ +/*! + * FullCalendar v1.6.4 Print Stylesheet + * Docs & License: http://arshaw.com/fullcalendar/ + * (c) 2013 Adam Shaw + */ + +/* + * Include this stylesheet on your page to get a more printer-friendly calendar. + * When including this stylesheet, use the media='print' attribute of the tag. + * Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css. + */ + + + /* Events +-----------------------------------------------------*/ + +.fc-event { + background: #fff !important; + color: #000 !important; + } + +/* for vertical events */ + +.fc-event-bg { + display: none !important; + } + +.fc-event .ui-resizable-handle { + display: none !important; + } + + diff --git a/novel-admin/src/main/resources/static/css/plugins/iCheck/custom.css b/novel-admin/src/main/resources/static/css/plugins/iCheck/custom.css new file mode 100644 index 0000000..84e950b --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/iCheck/custom.css @@ -0,0 +1,59 @@ +/* iCheck plugin Square skin, green +----------------------------------- */ +.icheckbox_square-green, +.iradio_square-green { + display: inline-block; + *display: inline; + vertical-align: middle; + margin: 0; + padding: 0; + width: 22px; + height: 22px; + background: url(green.png) no-repeat; + border: none; + cursor: pointer; +} + +.icheckbox_square-green { + background-position: 0 0; +} +.icheckbox_square-green.hover { + background-position: -24px 0; +} +.icheckbox_square-green.checked { + background-position: -48px 0; +} +.icheckbox_square-green.disabled { + background-position: -72px 0; + cursor: default; +} +.icheckbox_square-green.checked.disabled { + background-position: -96px 0; +} + +.iradio_square-green { + background-position: -120px 0; +} +.iradio_square-green.hover { + background-position: -144px 0; +} +.iradio_square-green.checked { + background-position: -168px 0; +} +.iradio_square-green.disabled { + background-position: -192px 0; + cursor: default; +} +.iradio_square-green.checked.disabled { + background-position: -216px 0; +} + +/* HiDPI support */ +@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { + .icheckbox_square-green, + .iradio_square-green { + background-image: url(green@2x.png); + -webkit-background-size: 240px 24px; + background-size: 240px 24px; + } +} diff --git a/novel-admin/src/main/resources/static/css/plugins/iCheck/green.png b/novel-admin/src/main/resources/static/css/plugins/iCheck/green.png new file mode 100644 index 0000000000000000000000000000000000000000..cf6230053230c6b4ff3f04b8cf2f048e496b3f82 GIT binary patch literal 20818 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/images/sort_asc.png b/novel-admin/src/main/resources/static/css/plugins/images/sort_asc.png new file mode 100644 index 0000000000000000000000000000000000000000..4a912e4e7a4fc57b27237560b69a25fd77e49899 GIT binary patch literal 1022 zcmaJ=PiWIn9L|`3=A=;AhHQFxW{3(l|JtT&Tr4%&)`A_QE3Dp@Ca-JQl9wfKHXDe{ zgLW_wLA-Bx*g?FAhvC6`5T-crC_8!e&v7|NffX~e=EB*v z>4Ltts3#3NbqkF95)rT<)_`v<*`DOfbW>L%^I)5$K@)-(W%@X&Vr~W~$b}%zL?b%K z^FS0CJ{A{6{ss^@USK)$iV;30#YIU-fYw8kXs%I~^6F$O7Fo%31!G5I*=n`QRHF=X z7g#=-Oa>Z)5Fv<&w`ya}kJ#R5TS0}M?wSrZkqrVxt%O#vOp{EHk6<|+S=(!si4=_W zHHYOHE;v#fn9KbiYFQn$hx70x-+u~wg;fW#dFY`PS0{}tj|QO}NpYcuky}7$sa?gH z3c|>%AO|S3BDgkZ+6Jn6*PHlUPRiOI)@&VSRhcFVjA(* zDoQe@PAX&RxEOD9Riv+2(8g`9al%b>ZDu6Yj{lPz(pukP*y OH!?dht-iWF|L_m~ zH$YKTqByCQ$#{l*L-Bs{|GgtzB*R&pui_b0$4$eB)P#j<5ELC_4wj)|EiZnAV-yvm z?Mf9_^(omz4r4?ZCUiW)rl_&;&@;?=h(Qg`*{(wWeEW_Dwx!Us8J*KT6*lb26(7#5 zOjpd6c~i3J@ylQ=l!<@?u>nG7!42e4pl_ZE{uDwN*kqaV4qlT8SLX%7nj^KD*SvP2xi4=?t z4Ugp+E;>>NsO$fSI!+fI;4(bS_n*Q+W!Zyl83t&{H%a5_!%-+tR()t-OYsSZ~|=8^+l+~Hb>+-y&7WCh0~ku~Vsx1d$Fz) zGoD>P_H=7|JO1M3-6zM_p090g-+uU|Qu?vQ4SBKMYmc}KdqX!)iVxh8_|YS~?D_sX zR4woaKS1v575wdSZRE{+FE*MvUH_$8u~mM3QFwMDq4pgaq^{rpL@D1lxacw#^V8a^ I+|7G`0IGFBUjP6A literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/images/sprite-skin-flat.png b/novel-admin/src/main/resources/static/css/plugins/images/sprite-skin-flat.png new file mode 100644 index 0000000000000000000000000000000000000000..8356fc5dfbcb79d73a25dfc6749bb7e284d138b3 GIT binary patch literal 3376 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 Bm{9-# literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/images/spritemap@2x.png b/novel-admin/src/main/resources/static/css/plugins/images/spritemap@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ed29b88b6e2154cb6d1b88ab5bf9a3b7eac87d0c GIT binary patch literal 35675 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/ionRangeSlider/ion.rangeSlider.css b/novel-admin/src/main/resources/static/css/plugins/ionRangeSlider/ion.rangeSlider.css new file mode 100644 index 0000000..b1a7a77 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/ionRangeSlider/ion.rangeSlider.css @@ -0,0 +1,126 @@ +/* Ion.RangeSlider +// css version 1.8.5 +// by Denis Ineshin | ionden.com +// ===================================================================================================================*/ + +/* ===================================================================================================================== +// RangeSlider */ + +.irs { + position: relative; display: block; +} + .irs-line { + position: relative; display: block; + overflow: hidden; + } + .irs-line-left, .irs-line-mid, .irs-line-right { + position: absolute; display: block; + top: 0; + } + .irs-line-left { + left: 0; width: 10%; + } + .irs-line-mid { + left: 10%; width: 80%; + } + .irs-line-right { + right: 0; width: 10%; + } + + .irs-diapason { + position: absolute; display: block; + left: 0; width: 100%; + } + .irs-slider { + position: absolute; display: block; + cursor: default; + z-index: 1; + } + .irs-slider.single { + left: 10px; + } + .irs-slider.single:before { + position: absolute; display: block; content: ""; + top: -30%; left: -30%; + width: 160%; height: 160%; + background: rgba(0,0,0,0.0); + } + .irs-slider.from { + left: 100px; + } + .irs-slider.from:before { + position: absolute; display: block; content: ""; + top: -30%; left: -30%; + width: 130%; height: 160%; + background: rgba(0,0,0,0.0); + } + .irs-slider.to { + left: 300px; + } + .irs-slider.to:before { + position: absolute; display: block; content: ""; + top: -30%; left: 0; + width: 130%; height: 160%; + background: rgba(0,0,0,0.0); + } + .irs-slider.last { + z-index: 2; + } + + .irs-min { + position: absolute; display: block; + left: 0; + cursor: default; + } + .irs-max { + position: absolute; display: block; + right: 0; + cursor: default; + } + + .irs-from, .irs-to, .irs-single { + position: absolute; display: block; + top: 0; left: 0; + cursor: default; + white-space: nowrap; + } + + +.irs-grid { + position: absolute; display: none; + bottom: 0; left: 0; + width: 100%; height: 20px; +} +.irs-with-grid .irs-grid { + display: block; +} + .irs-grid-pol { + position: absolute; + top: 0; left: 0; + width: 1px; height: 8px; + background: #000; + } + .irs-grid-pol.small { + height: 4px; + } + .irs-grid-text { + position: absolute; + bottom: 0; left: 0; + width: 100px; + white-space: nowrap; + text-align: center; + font-size: 9px; line-height: 9px; + color: #000; + } + +.irs-disable-mask { + position: absolute; display: block; + top: 0; left: 0; + width: 100%; height: 100%; + cursor: default; + background: rgba(0,0,0,0.0); + z-index: 2; +} +.irs-disabled { + opacity: 0.4; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/ionRangeSlider/ion.rangeSlider.skinFlat.css b/novel-admin/src/main/resources/static/css/plugins/ionRangeSlider/ion.rangeSlider.skinFlat.css new file mode 100644 index 0000000..4960862 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/ionRangeSlider/ion.rangeSlider.skinFlat.css @@ -0,0 +1,89 @@ +/* Ion.RangeSlider, Flat UI Skin +// css version 1.8.5 +// by Denis Ineshin | ionden.com +// ===================================================================================================================*/ + +/* ===================================================================================================================== +// Skin details */ + +.irs-line-mid, +.irs-line-left, +.irs-line-right, +.irs-diapason, +.irs-slider { + background: url(../images/sprite-skin-flat.png) repeat-x; +} + +.irs { + height: 40px; +} +.irs-with-grid { + height: 60px; +} +.irs-line { + height: 12px; top: 25px; +} + .irs-line-left { + height: 12px; + background-position: 0 -30px; + } + .irs-line-mid { + height: 12px; + background-position: 0 0; + } + .irs-line-right { + height: 12px; + background-position: 100% -30px; + } + +.irs-diapason { + height: 12px; top: 25px; + background-position: 0 -60px; +} + +.irs-slider { + width: 16px; height: 18px; + top: 22px; + background-position: 0 -90px; +} +#irs-active-slider, .irs-slider:hover { + background-position: 0 -120px; +} + +.irs-min, .irs-max { + color: #999; + font-size: 10px; line-height: 1.333; + text-shadow: none; + top: 0; padding: 1px 3px; + background: #e1e4e9; + border-radius: 4px; +} + +.irs-from, .irs-to, .irs-single { + color: #fff; + font-size: 10px; line-height: 1.333; + text-shadow: none; + padding: 1px 5px; + background: #ed5565; + border-radius: 4px; +} +.irs-from:after, .irs-to:after, .irs-single:after { + position: absolute; display: block; content: ""; + bottom: -6px; left: 50%; + width: 0; height: 0; + margin-left: -3px; + overflow: hidden; + border: 3px solid transparent; + border-top-color: #ed5565; +} + + +.irs-grid-pol { + background: #e1e4e9; +} +.irs-grid-text { + color: #999; +} + +.irs-disabled { +} diff --git a/novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-bg_flat_0_aaaaaa_40x100.png b/novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..fa61af9b12101f6d68d4e981382136a89666b4da GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F1SA+{?>A)!QcOwS?k)_>#w|r1Kptm-M`SUO z_5fqIli7AahM1>|V~EA+ zRdP`(kYX@0Ff`FMG}JY)3^BB@GBvd_G|)A$ure?>Cj7h(MMG|WN@iLmZVlW0;tv5e OFnGH9xvX?)F zK#IZ0z|ch3&`{UFGQ`lr%GA`#&_LI~!pgwlnDFyD6b-rgDVb@NxHW9|i$4U^z~JfX K=d#Wzp$P!=F*M)+ literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-icons_222222_256x240.png b/novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..c1cb1170c8b3795835b8831ab81fa9ae63b606b1 GIT binary patch literal 6922 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 QJ~;stWz}Trq%1=J3#jBGg8%>k literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-icons_454545_256x240.png b/novel-admin/src/main/resources/static/css/plugins/jQueryUI/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..b6db1acdd433be80a472b045018f25c7f2cf7e08 GIT binary patch literal 6992 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/jQueryUI/jquery-ui-1.10.4.custom.min.css b/novel-admin/src/main/resources/static/css/plugins/jQueryUI/jquery-ui-1.10.4.custom.min.css new file mode 100644 index 0000000..9cd5b70 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/jQueryUI/jquery-ui-1.10.4.custom.min.css @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.10.4 - 2014-11-12 +* http://jqueryui.com +* Includes: jquery.ui.theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/ +* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ + +.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} diff --git a/novel-admin/src/main/resources/static/css/plugins/jasny/jasny-bootstrap.min.css b/novel-admin/src/main/resources/static/css/plugins/jasny/jasny-bootstrap.min.css new file mode 100644 index 0000000..0b01634 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/jasny/jasny-bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Jasny Bootstrap v3.1.2 (http://jasny.github.io/bootstrap) + * Copyright 2012-2014 Arnold Daniels + * Licensed under Apache-2.0 (https://github.com/jasny/bootstrap/blob/master/LICENSE) + */ + +.container-smooth{max-width:1170px}@media (min-width:1px){.container-smooth{width:auto}}.btn-labeled{padding-top:0;padding-bottom:0}.btn-label{position:relative;background:0 0;background:rgba(0,0,0,.15);display:inline-block;padding:6px 12px;left:-12px;border-radius:3px 0 0 3px}.btn-label.btn-label-right{left:auto;right:-12px;border-radius:0 3px 3px 0}.btn-lg .btn-label{padding:10px 16px;left:-16px;border-radius:5px 0 0 5px}.btn-lg .btn-label.btn-label-right{left:auto;right:-16px;border-radius:0 5px 5px 0}.btn-sm .btn-label{padding:5px 10px;left:-10px;border-radius:2px 0 0 2px}.btn-sm .btn-label.btn-label-right{left:auto;right:-10px;border-radius:0 2px 2px 0}.btn-xs .btn-label{padding:1px 5px;left:-5px;border-radius:2px 0 0 2px}.btn-xs .btn-label.btn-label-right{left:auto;right:-5px;border-radius:0 2px 2px 0}.nav-tabs-bottom{border-bottom:0;border-top:1px solid #ddd}.nav-tabs-bottom>li{margin-bottom:0;margin-top:-1px}.nav-tabs-bottom>li>a{border-radius:0 0 4px 4px}.nav-tabs-bottom>li>a:hover,.nav-tabs-bottom>li>a:focus,.nav-tabs-bottom>li.active>a,.nav-tabs-bottom>li.active>a:hover,.nav-tabs-bottom>li.active>a:focus{border:1px solid #ddd;border-top-color:transparent}.nav-tabs-left{border-bottom:0;border-right:1px solid #ddd}.nav-tabs-left>li{margin-bottom:0;margin-right:-1px;float:none}.nav-tabs-left>li>a{border-radius:4px 0 0 4px;margin-right:0;margin-bottom:2px}.nav-tabs-left>li>a:hover,.nav-tabs-left>li>a:focus,.nav-tabs-left>li.active>a,.nav-tabs-left>li.active>a:hover,.nav-tabs-left>li.active>a:focus{border:1px solid #ddd;border-right-color:transparent}.row>.nav-tabs-left{padding-right:0;padding-left:15px;margin-right:-1px;position:relative;z-index:1}.row>.nav-tabs-left+.tab-content{border-left:1px solid #ddd}.nav-tabs-right{border-bottom:0;border-left:1px solid #ddd}.nav-tabs-right>li{margin-bottom:0;margin-left:-1px;float:none}.nav-tabs-right>li>a{border-radius:0 4px 4px 0;margin-left:0;margin-bottom:2px}.nav-tabs-right>li>a:hover,.nav-tabs-right>li>a:focus,.nav-tabs-right>li.active>a,.nav-tabs-right>li.active>a:hover,.nav-tabs-right>li.active>a:focus{border:1px solid #ddd;border-left-color:transparent}.row>.nav-tabs-right{padding-left:0;padding-right:15px}.navmenu,.navbar-offcanvas{width:300px;height:100%;border-width:1px;border-style:solid;border-radius:4px}.navmenu-fixed-left,.navmenu-fixed-right,.navbar-offcanvas{position:fixed;z-index:1030;top:0;border-radius:0}.navmenu-fixed-left,.navbar-offcanvas.navmenu-fixed-left{left:0;right:auto;border-width:0 1px 0 0;bottom:0;overflow-y:auto}.navmenu-fixed-right,.navbar-offcanvas{left:auto;right:0;border-width:0 0 0 1px}.navmenu-nav{margin-bottom:10px}.navmenu-nav.dropdown-menu{position:static;margin:0;padding-top:0;float:none;border:none;-webkit-box-shadow:none;box-shadow:none;border-radius:0}.navbar-offcanvas .navbar-nav{margin:0}@media (min-width:768px){.navbar-offcanvas{width:auto;border-top:0;box-shadow:none}.navbar-offcanvas.offcanvas{position:static;display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-offcanvas .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-offcanvas .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-offcanvas .navmenu-brand{display:none}}.navmenu-brand{display:block;font-size:18px;line-height:20px;padding:10px 15px;margin:10px 0}.navmenu-brand:hover,.navmenu-brand:focus{text-decoration:none}.navmenu-default,.navbar-default .navbar-offcanvas{background-color:#f8f8f8;border-color:#e7e7e7}.navmenu-default .navmenu-brand,.navbar-default .navbar-offcanvas .navmenu-brand{color:#777}.navmenu-default .navmenu-brand:hover,.navbar-default .navbar-offcanvas .navmenu-brand:hover,.navmenu-default .navmenu-brand:focus,.navbar-default .navbar-offcanvas .navmenu-brand:focus{color:#5e5e5e;background-color:transparent}.navmenu-default .navmenu-text,.navbar-default .navbar-offcanvas .navmenu-text{color:#777}.navmenu-default .navmenu-nav>.dropdown>a:hover .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.dropdown>a:hover .caret,.navmenu-default .navmenu-nav>.dropdown>a:focus .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navmenu-default .navmenu-nav>.open>a,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a,.navmenu-default .navmenu-nav>.open>a:hover,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a:hover,.navmenu-default .navmenu-nav>.open>a:focus,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a:focus{background-color:#e7e7e7;color:#555}.navmenu-default .navmenu-nav>.open>a .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a .caret,.navmenu-default .navmenu-nav>.open>a:hover .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a:hover .caret,.navmenu-default .navmenu-nav>.open>a:focus .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navmenu-default .navmenu-nav>.dropdown>a .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}.navmenu-default .navmenu-nav.dropdown-menu,.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu{background-color:#e7e7e7}.navmenu-default .navmenu-nav.dropdown-menu>.divider,.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu>.divider{background-color:#f8f8f8}.navmenu-default .navmenu-nav.dropdown-menu>.active>a,.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a,.navmenu-default .navmenu-nav.dropdown-menu>.active>a:hover,.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a:hover,.navmenu-default .navmenu-nav.dropdown-menu>.active>a:focus,.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a:focus{background-color:#d7d7d7}.navmenu-default .navmenu-nav>li>a,.navbar-default .navbar-offcanvas .navmenu-nav>li>a{color:#777}.navmenu-default .navmenu-nav>li>a:hover,.navbar-default .navbar-offcanvas .navmenu-nav>li>a:hover,.navmenu-default .navmenu-nav>li>a:focus,.navbar-default .navbar-offcanvas .navmenu-nav>li>a:focus{color:#333;background-color:transparent}.navmenu-default .navmenu-nav>.active>a,.navbar-default .navbar-offcanvas .navmenu-nav>.active>a,.navmenu-default .navmenu-nav>.active>a:hover,.navbar-default .navbar-offcanvas .navmenu-nav>.active>a:hover,.navmenu-default .navmenu-nav>.active>a:focus,.navbar-default .navbar-offcanvas .navmenu-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navmenu-default .navmenu-nav>.disabled>a,.navbar-default .navbar-offcanvas .navmenu-nav>.disabled>a,.navmenu-default .navmenu-nav>.disabled>a:hover,.navbar-default .navbar-offcanvas .navmenu-nav>.disabled>a:hover,.navmenu-default .navmenu-nav>.disabled>a:focus,.navbar-default .navbar-offcanvas .navmenu-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navmenu-inverse,.navbar-inverse .navbar-offcanvas{background-color:#222;border-color:#080808}.navmenu-inverse .navmenu-brand,.navbar-inverse .navbar-offcanvas .navmenu-brand{color:#999}.navmenu-inverse .navmenu-brand:hover,.navbar-inverse .navbar-offcanvas .navmenu-brand:hover,.navmenu-inverse .navmenu-brand:focus,.navbar-inverse .navbar-offcanvas .navmenu-brand:focus{color:#fff;background-color:transparent}.navmenu-inverse .navmenu-text,.navbar-inverse .navbar-offcanvas .navmenu-text{color:#999}.navmenu-inverse .navmenu-nav>.dropdown>a:hover .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.dropdown>a:hover .caret,.navmenu-inverse .navmenu-nav>.dropdown>a:focus .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navmenu-inverse .navmenu-nav>.open>a,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a,.navmenu-inverse .navmenu-nav>.open>a:hover,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a:hover,.navmenu-inverse .navmenu-nav>.open>a:focus,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a:focus{background-color:#080808;color:#fff}.navmenu-inverse .navmenu-nav>.open>a .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a .caret,.navmenu-inverse .navmenu-nav>.open>a:hover .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a:hover .caret,.navmenu-inverse .navmenu-nav>.open>a:focus .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navmenu-inverse .navmenu-nav>.dropdown>a .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navmenu-inverse .navmenu-nav.dropdown-menu,.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu{background-color:#080808}.navmenu-inverse .navmenu-nav.dropdown-menu>.divider,.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu>.divider{background-color:#222}.navmenu-inverse .navmenu-nav.dropdown-menu>.active>a,.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a,.navmenu-inverse .navmenu-nav.dropdown-menu>.active>a:hover,.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a:hover,.navmenu-inverse .navmenu-nav.dropdown-menu>.active>a:focus,.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a:focus{background-color:#000}.navmenu-inverse .navmenu-nav>li>a,.navbar-inverse .navbar-offcanvas .navmenu-nav>li>a{color:#999}.navmenu-inverse .navmenu-nav>li>a:hover,.navbar-inverse .navbar-offcanvas .navmenu-nav>li>a:hover,.navmenu-inverse .navmenu-nav>li>a:focus,.navbar-inverse .navbar-offcanvas .navmenu-nav>li>a:focus{color:#fff;background-color:transparent}.navmenu-inverse .navmenu-nav>.active>a,.navbar-inverse .navbar-offcanvas .navmenu-nav>.active>a,.navmenu-inverse .navmenu-nav>.active>a:hover,.navbar-inverse .navbar-offcanvas .navmenu-nav>.active>a:hover,.navmenu-inverse .navmenu-nav>.active>a:focus,.navbar-inverse .navbar-offcanvas .navmenu-nav>.active>a:focus{color:#fff;background-color:#080808}.navmenu-inverse .navmenu-nav>.disabled>a,.navbar-inverse .navbar-offcanvas .navmenu-nav>.disabled>a,.navmenu-inverse .navmenu-nav>.disabled>a:hover,.navbar-inverse .navbar-offcanvas .navmenu-nav>.disabled>a:hover,.navmenu-inverse .navmenu-nav>.disabled>a:focus,.navbar-inverse .navbar-offcanvas .navmenu-nav>.disabled>a:focus{color:#444;background-color:transparent}.alert-fixed-top,.alert-fixed-bottom{position:fixed;width:100%;z-index:1035;border-radius:0;margin:0;left:0}@media (min-width:992px){.alert-fixed-top,.alert-fixed-bottom{width:992px;left:50%;margin-left:-496px}}.alert-fixed-top{top:0;border-width:0 0 1px}@media (min-width:992px){.alert-fixed-top{border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-width:0 1px 1px}}.alert-fixed-bottom{bottom:0;border-width:1px 0 0}@media (min-width:992px){.alert-fixed-bottom{border-top-right-radius:4px;border-top-left-radius:4px;border-width:1px 1px 0}}.offcanvas{display:none}.offcanvas.in{display:block}@media (max-width:767px){.offcanvas-xs{display:none}.offcanvas-xs.in{display:block}}@media (max-width:991px){.offcanvas-sm{display:none}.offcanvas-sm.in{display:block}}@media (max-width:1199px){.offcanvas-md{display:none}.offcanvas-md.in{display:block}}.offcanvas-lg{display:none}.offcanvas-lg.in{display:block}.canvas-sliding{-webkit-transition:top .35s,left .35s,bottom .35s,right .35s;transition:top .35s,left .35s,bottom .35s,right .35s}.offcanvas-clone{height:0!important;width:0!important;overflow:hidden!important;border:none!important;margin:0!important;padding:0!important;position:absolute!important;top:auto!important;left:auto!important;bottom:0!important;right:0!important;opacity:0!important}.table.rowlink td:not(.rowlink-skip),.table .rowlink td:not(.rowlink-skip){cursor:pointer}.table.rowlink td:not(.rowlink-skip) a,.table .rowlink td:not(.rowlink-skip) a{color:inherit;font:inherit;text-decoration:inherit}.table-hover.rowlink tr:hover td,.table-hover .rowlink tr:hover td{background-color:#cfcfcf}.btn-file{overflow:hidden;position:relative;vertical-align:middle}.btn-file>input{position:absolute;top:0;right:0;margin:0;opacity:0;filter:alpha(opacity=0);font-size:23px;height:100%;width:100%;direction:ltr;cursor:pointer}.fileinput{margin-bottom:9px;display:inline-block}.fileinput .form-control{padding-top:7px;padding-bottom:5px;display:inline-block;margin-bottom:0;vertical-align:middle;cursor:text}.fileinput .thumbnail{overflow:hidden;display:inline-block;margin-bottom:5px;vertical-align:middle;text-align:center}.fileinput .thumbnail>img{max-height:100%}.fileinput .btn{vertical-align:middle}.fileinput-exists .fileinput-new,.fileinput-new .fileinput-exists{display:none}.fileinput-inline .fileinput-controls{display:inline}.fileinput-filename{vertical-align:middle;display:inline-block;overflow:hidden}.form-control .fileinput-filename{vertical-align:bottom}.fileinput.input-group{display:table}.fileinput.input-group>*{position:relative;z-index:2}.fileinput.input-group>.btn-file{z-index:1}.fileinput-new.input-group .btn-file,.fileinput-new .input-group .btn-file{border-radius:0 4px 4px 0}.fileinput-new.input-group .btn-file.btn-xs,.fileinput-new .input-group .btn-file.btn-xs,.fileinput-new.input-group .btn-file.btn-sm,.fileinput-new .input-group .btn-file.btn-sm{border-radius:0 3px 3px 0}.fileinput-new.input-group .btn-file.btn-lg,.fileinput-new .input-group .btn-file.btn-lg{border-radius:0 6px 6px 0}.form-group.has-warning .fileinput .fileinput-preview{color:#8a6d3b}.form-group.has-warning .fileinput .thumbnail{border-color:#faebcc}.form-group.has-error .fileinput .fileinput-preview{color:#a94442}.form-group.has-error .fileinput .thumbnail{border-color:#ebccd1}.form-group.has-success .fileinput .fileinput-preview{color:#3c763d}.form-group.has-success .fileinput .thumbnail{border-color:#d6e9c6}.input-group-addon:not(:first-child){border-left:0} diff --git a/novel-admin/src/main/resources/static/css/plugins/jqTreeGrid/jquery.treegrid.css b/novel-admin/src/main/resources/static/css/plugins/jqTreeGrid/jquery.treegrid.css new file mode 100644 index 0000000..a1b9c7a --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/jqTreeGrid/jquery.treegrid.css @@ -0,0 +1,6 @@ +.treegrid-indent {width:16px; height: 16px; display: inline-block; position: relative;} + +.treegrid-expander {width:16px; height: 16px; display: inline-block; position: relative; cursor: pointer;} + +.treegrid-expander-expanded{background-image: url(../img/collapse.png); } +.treegrid-expander-collapsed{background-image: url(../img/expand.png);} diff --git a/novel-admin/src/main/resources/static/css/plugins/jqgrid/ui.jqgrid.css b/novel-admin/src/main/resources/static/css/plugins/jqgrid/ui.jqgrid.css new file mode 100644 index 0000000..3ee306a --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/jqgrid/ui.jqgrid.css @@ -0,0 +1,851 @@ +/*Grid*/ +.ui-jqgrid { + position: relative; + border: 1px solid #ddd; + overflow: hidden; +} +.ui-jqgrid .ui-jqgrid-view { + position: relative; + left:0; + top: 0; + padding: 0; +} +.ui-jqgrid .ui-common-table {} + +/* Caption*/ +.ui-jqgrid .ui-jqgrid-titlebar { + font-weight: normal; + min-height:37px; + padding: 4px 8px; + position: relative; + margin-right: 2px; + border-bottom: 1px solid #ddd; //default + +} +.ui-jqgrid .ui-jqgrid-caption { + text-align: left; +} +.ui-jqgrid .ui-jqgrid-title { + padding-top: 5px; + vertical-align: middle; +} +.ui-jqgrid .ui-jqgrid-titlebar-close { + color: inherit; + position: absolute; + top: 50%; + margin: -10px 7px 0 0; + padding: 1px; + cursor:pointer; +} +.ui-jqgrid .ui-jqgrid-titlebar-close span { + display: block; + margin: 1px; +} +.ui-jqgrid .ui-jqgrid-titlebar-close:hover { } + +/* Header*/ +.ui-jqgrid .ui-jqgrid-hdiv { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; +} +.ui-jqgrid .ui-jqgrid-hbox { + float: left; + padding-right: 20px; +} +.ui-jqgrid .ui-jqgrid-htable { + margin-bottom: 0; + table-layout: fixed; + border-top:none; +} +.ui-jqgrid .ui-jqgrid-htable thead th { + overflow : hidden; + border-bottom : none; + padding-right: 2px; +} +.ui-jqgrid .ui-jqgrid-htable thead th div { + overflow: hidden; + position:relative; +} +.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column { + overflow: hidden; + white-space: nowrap; +} +.ui-th-column-header, +.ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header { + overflow: hidden; + white-space: nowrap; +} +.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {} +.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {text-align: center; } +.ui-first-th-ltr { } +.ui-first-th-rtl { } +.ui-jqgrid tr.jqg-first-row-header th { + height:auto; + border-top:none; + padding-bottom: 0; + padding-top: 0; + border-bottom: none; + padding-right: 2px; + text-align: center; +} +.ui-jqgrid tr.jqg-second-row-header th, +.ui-jqgrid tr.jqg-third--row-header th +{ + border-top:none; + text-align: center; +} + +.ui-jqgrid .ui-th-div-ie { + white-space: nowrap; + zoom :1; + height:17px; +} +.ui-jqgrid .ui-jqgrid-resize { + height:20px !important; + position: relative; + cursor :e-resize; + display: inline; + overflow: hidden; +} +.ui-jqgrid .ui-grid-ico-sort { + margin-left:5px; + overflow:hidden; + position:absolute; + right: 3px; + font-size:12px; +} +.ui-jqgrid .ui-icon-asc { + margin-top:-3px; +} +.ui-jqgrid .ui-icon-desc { + margin-top:4px; +} +.ui-jqgrid .ui-i-asc { + margin-top:0; +} +.ui-jqgrid .ui-i-desc { + margin-top:0; + margin-right:13px; +} +.ui-jqgrid .ui-single-sort-asc { + margin-top:0; +} +.ui-jqgrid .ui-single-sort-desc {} +.ui-jqgrid .ui-jqgrid-sortable { + cursor:pointer; +} +.ui-jqgrid tr.ui-search-toolbar th { } +.ui-jqgrid .ui-search-table td.ui-search-clear { } +.ui-jqgrid tr.ui-search-toolbar td > input { } +.ui-jqgrid tr.ui-search-toolbar select {} + +/* Body */ +.ui-jqgrid .table-bordered, +.ui-jqgrid .table-bordered td, +.ui-jqgrid .table-bordered th.ui-th-ltr +{ + border-left:0px none !important; +} +.ui-jqgrid .table-bordered th.ui-th-rtl +{ + border-right:0px none !important; +} +.ui-jqgrid .table-bordered tr.ui-row-rtl td +{ + border-right:0px none !important; + border-left: 1px solid #ddd !important; +} +div.tablediv > .table-bordered { + border-left : 1px solid #ddd !important; +} +.ui-jqgrid .ui-jqgrid-bdiv table.table-bordered td { + border-top: 0px none; +} +.ui-jqgrid .ui-jqgrid-bdiv { + position: relative; + margin: 0; + padding:0; + overflow-x:hidden; + text-align:left; +} +.ui-jqgrid .ui-jqgrid-btable { + table-layout: fixed; + border-left:none ; + border-top:none; + margin-bottom: 0px +} +.ui-jqgrid tr.jqgrow { + outline-style: none; +} +.ui-jqgrid tr.jqgroup { + outline-style: none; +} +.ui-jqgrid tr.jqgrow td { + overflow: hidden; + white-space: pre; + padding-right: 2px; +} +.ui-jqgrid tr.jqgfirstrow td { + height:auto; + border-top:none; + padding-bottom: 0; + padding-top: 0; + border-bottom: none; + padding-right: 2px; +} +.ui-jqgrid tr.jqgroup td { } +.ui-jqgrid tr.jqfoot td {} +.ui-jqgrid tr.ui-row-ltr td {} +.ui-jqgrid tr.ui-row-rtl td {} +.ui-jqgrid td.jqgrid-rownum { } +.ui-jqgrid .ui-jqgrid-resize-mark { + width:2px; + left:0; + background-color:#777; + cursor: e-resize; + cursor: col-resize; + position:absolute; + top:0; + height:100px; + overflow:hidden; + display:none; + border:0 none; + z-index: 99999; + +} +/* Footer */ +.ui-jqgrid .ui-jqgrid-sdiv { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + border-left: 0 none !important; + border-top : 0 none !important; + border-right : 0 none !important; +} +.ui-jqgrid .ui-jqgrid-ftable { + table-layout:fixed; + margin-bottom:0; +} + +.ui-jqgrid tr.footrow td { + font-weight: bold; + overflow: hidden; + white-space:nowrap; + padding-right: 2px; + border-bottom: 0px none; +} +.ui-jqgrid tr.footrow-ltr td { + text-align:left; +} +.ui-jqgrid tr.footrow-rtl td { + text-align:right; +} + +/* Pager*/ +.ui-jqgrid .ui-jqgrid-pager, +.ui-jqgrid .ui-jqgrid-toppager +{ + border-left-width: 0px; + border-top: 1px solid #ddd; + padding : 4px 0px; + position: relative; + height: auto; + white-space: nowrap; + overflow: hidden; +} +.ui-jqgrid .ui-jqgrid-toppager { + border-top-width :0; + border-bottom : 1px solid #ddd; +} +.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, +.ui-jqgrid .ui-jqgrid-pager .ui-pager-control { + position: relative; + border-left: 0; + border-bottom: 0; + border-top: 0; + height: 30px; +} +.ui-jqgrid .ui-pg-table { + position: relative; + padding: 1px 0; + width:auto; + margin: 0; +} +.ui-jqgrid .ui-pg-table td { + font-weight:normal; + vertical-align:middle; + padding:0px 6px; +} +.ui-jqgrid .ui-pg-button { + height:auto; +} +.ui-jqgrid .ui-pg-button span { + display: block; + margin: 2px; + float:left; +} +.ui-jqgrid .ui-pg-button:hover { } +.ui-jqgrid .ui-disabled:hover {} +.ui-jqgrid .ui-pg-input, +.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { + display: inline; + height:auto; + width: auto; + font-size:.9em; + margin:0; + line-height: inherit; + padding: 0px 5px +} +.ui-jqgrid .ui-pg-selbox, +.ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox { + font-size:.9em; + line-height:inherit; + display:block; + height:22px; + margin: 0; + padding: 3px 0px 3px 3px; + border:none; +} +.ui-jqgrid .ui-separator { + height: 18px; + border : none; + border-left: 2px solid #ccc ; //default +} +.ui-separator-li { + height: 2px; + border : none; + border-top: 2px solid #ccc ; //default + margin: 0; padding: 0; width:100% +} +.ui-jqgrid .ui-jqgrid-pager .ui-pg-div, +.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div +{ + float:left; + position:relative; +} +.ui-jqgrid .ui-jqgrid-pager .ui-pg-button, +.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button +{ + cursor:pointer; +} +.ui-jqgrid .ui-jqgrid-pager .ui-pg-div span, +.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div span +{ + float:left; +} +.ui-jqgrid td input, +.ui-jqgrid td select, +.ui-jqgrid td textarea { + margin: 0; +} +.ui-jqgrid td textarea { + width:auto; + height:auto; +} +.ui-jqgrid .ui-jqgrid-pager .ui-pager-table, +.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table +{ + width:100%; + table-layout:fixed; + height:100%; +} +.ui-jqgrid .ui-jqgrid-pager .ui-paging-info, +.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info +{ + font-weight: normal; + height:auto; + margin-top:3px; + margin-right:4px; + display: inline; +} +.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager, +.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager +{ + table-layout:auto; + height:100%; +} +.ui-jqgrid .ui-jqgrid-pager .navtable, +.ui-jqgrid .ui-jqgrid-toppager .navtable +{ + float:left; + table-layout:auto; + height:100%; +} + +/*Subgrid*/ + +.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span { + display: block; +} +.ui-jqgrid .ui-subgrid { + margin:0; + padding:0; + width:100%; +} +.ui-jqgrid .ui-subgrid table { + table-layout: fixed; +} +.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {} +.ui-jqgrid .ui-subgrid td.subgrid-data { + border-top: 0 none !important; +} +.ui-jqgrid .ui-subgrid td.subgrid-cell { + vertical-align: middle +} +.ui-jqgrid a.ui-sghref { + text-decoration: none; + color : #010101; //default +} +.ui-jqgrid .ui-th-subgrid {height:20px;} +.tablediv > .row { margin: 0 0} +/* loading */ +.ui-jqgrid .loading { + position: absolute; + top: 45%; + left: 45%; + width: auto; + z-index:101; + padding: 6px; + margin: 5px; + text-align: center; + display: none; + border: 1px solid #ddd; //default + font-size: 14px; + background-color: #d9edf7; +} +.ui-jqgrid .jqgrid-overlay { + display:none; + z-index:100; +} +/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */ +* .jqgrid-overlay iframe { + position:absolute; + top:0; + left:0; + z-index:-1; +} +/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/ +/* end loading div */ + +/* Toolbar */ +.ui-jqgrid .ui-userdata { + padding: 4px 0px; + overflow: hidden; + min-height: 32px; +} +.ui-jqgrid .ui-userdata-top { + border-left-width: 0px; //default + border-bottom: 1px solid #ddd; +} +.ui-jqgrid .ui-userdata-bottom { + border-left-width: 0px; //default + border-top: 1px solid #ddd; +} +/*Modal Window */ +.ui-jqdialog { } +.ui-jqdialog { + display: none; + width: 500px; + position: absolute; + //padding: 5px; + overflow:visible; +} +.ui-jqdialog .ui-jqdialog-titlebar { + padding: .1em .1em; + min-height: 35px; +} +.ui-jqdialog .ui-jqdialog-title { + margin: .3em 0 .2em; + font-weight: bold; + padding-left :6px; + padding-right:6px; +} +.ui-jqdialog .ui-jqdialog-titlebar-close { + position: absolute; + top: 0%; + margin: 3px 5px 0 0; + padding: 8px; + cursor:pointer; +} + +.ui-jqdialog .ui-jqdialog-titlebar-close span { } +.ui-jqdialog .ui-jqdialog-titlebar-close:hover, +.ui-jqdialog .ui-jqdialog-titlebar-close:focus { + padding: 8px; +} +.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { + border: 0; + padding: .3em .2em; + background: none; + height:auto; +} +.ui-jqdialog .ui-jqconfirm { + padding: .4em 1em; + border-width:3px; + position:absolute; + bottom:10px; + right:10px; + overflow:visible; + display:none; + height:120px; + width:220px; + text-align:center; + background-color: #fff; + border-radius: 4px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; +} +.ui-jqdialog>.ui-resizable-se { } +.ui-jqgrid>.ui-resizable-se { } +/* end Modal window*/ +/* Form edit */ +.ui-jqdialog-content .FormGrid { + margin: 0 8px 0 8px; + overflow:auto; + position:relative; +} +.ui-jqdialog-content .EditTable { + width: 100%; + margin-bottom:0; +} +.ui-jqdialog-content .DelTable { + width: 100%; + margin-bottom:0; +} +.EditTable td input, +.EditTable td select, +.EditTable td textarea { + width: 98%; + display: inline-block; +} +.EditTable td textarea { + width:auto; + height:auto; +} +.EditTable .FormData td { + height:37px !important; +} +.ui-jqdialog-content td.EditButton { + text-align: right; + padding: 5px 5px 5px 0; +} +.ui-jqdialog-content td.navButton { + text-align: center; + border-left: 0 none; + border-top: 0 none; + border-right: 0 none; + padding-bottom:5px; + padding-top:5px; +} +.ui-jqdialog-content input.FormElement { + padding: .5em .3em; + margin-bottom: 5px +} +.ui-jqdialog-content select.FormElement { + padding:.3em; + margin-bottom: 3px; +} +.ui-jqdialog-content .data-line { + padding-top:.1em; + border: 0 none; +} + +.ui-jqdialog-content .CaptionTD { + vertical-align: middle; + border: 0 none; + padding: 2px; + white-space: nowrap; +} +.ui-jqdialog-content .DataTD { + padding: 2px; + border: 0 none; + vertical-align: top; +} +.ui-jqdialog-content .form-view-data { + white-space:pre +} +.fm-button { } +.fm-button-icon-left { + margin-left: 4px; + margin-right: 4px; +} +.fm-button-icon-right { + margin-left: 4px; + margin-right: 4px; +} +.fm-button-icon-left { } +.fm-button-icon-right { } +#nData, #pData { + margin-left: 4px; + margin-right: 4px; +} +#sData span, #cData span { + margin-left: 5px; +} +/* End Eorm edit */ +/*.ui-jqgrid .edit-cell {}*/ +.ui-jqgrid .selected-row, +div.ui-jqgrid .selected-row td { + font-style : normal; +} +/* inline edit actions button*/ +.ui-inline-del, .ui-inline-cancel { + margin-left: 14px; +} +.ui-jqgrid .inline-edit-cell {} +/* Tree Grid */ +.ui-jqgrid .tree-wrap { + float: left; + position: relative; + height: 18px; + white-space: nowrap; + overflow: hidden; +} +.ui-jqgrid .tree-minus { + position: absolute; + height: 18px; + width: 18px; + overflow: hidden; +} +.ui-jqgrid .tree-plus { + position: absolute; + height: 18px; + width: 18px; + overflow: hidden; +} +.ui-jqgrid .tree-leaf { + position: absolute; + height: 18px; + width: 18px; + overflow: hidden; +} +.ui-jqgrid .treeclick { + cursor: pointer; +} +/* moda dialog */ +* iframe.jqm { + position:absolute; + top:0; + left:0; + z-index:-1; +} +/* width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/ +.ui-jqgrid-dnd tr td { + border-right-width: 1px; + border-right-color: inherit; + border-right-style: solid; + height:20px +} +/* RTL Support */ +.ui-jqgrid .ui-jqgrid-caption-rtl { + text-align: right; +} +.ui-jqgrid .ui-jqgrid-hbox-rtl { + float: right; + padding-left: 20px; +} +.ui-jqgrid .ui-jqgrid-resize-ltr { + float: right; + margin: -2px -2px -2px 0; + height:100%; +} +.ui-jqgrid .ui-jqgrid-resize-rtl { + float: left; + margin: -2px -2px -2px -0px; +} +.ui-jqgrid .ui-sort-rtl { + +} +.ui-jqgrid .tree-wrap-ltr { + float: left; +} +.ui-jqgrid .tree-wrap-rtl { + float: right; +} +.ui-jqgrid .ui-ellipsis { + -moz-text-overflow:ellipsis; + text-overflow:ellipsis; +} +/* Toolbar Search Menu. Nav menu */ +.ui-search-menu, +.ui-nav-menu { + position: absolute; + padding: 2px 5px; + z-index:99999; +} +.ui-search-menu.ui-menu .ui-menu-item, +.ui-nav-menu.ui-menu .ui-menu-item +{ + list-style-image: none; + padding-right: 0; + padding-left: 0; +} +.ui-search-menu.ui-menu .ui-menu-item a, +.ui-nav-menu.ui-menu .ui-menu-item a +{ + display: block; +} +.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover, +.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover +{ + margin: -1px; + font-weight: normal; +} +.ui-jqgrid .ui-search-table { + padding: 0; + border: 0 none; + height:20px; + width:100%; +} +.ui-jqgrid .ui-search-table .ui-search-oper { + width:20px; +} +a.g-menu-item, a.soptclass, a.clearsearchclass { + cursor: pointer; +} +.ui-jqgrid .ui-jqgrid-view input, +.ui-jqgrid .ui-jqgrid-view select, +.ui-jqgrid .ui-jqgrid-view textarea, +.ui-jqgrid .ui-jqgrid-view button { + //font-size: 11px +} +.ui-jqgrid .ui-scroll-popup { + width: 100px; +} +.ui-search-table select, +.ui-search-table input +{ + padding: 4px 3px; +} + +.ui-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0,0,0,0.5); + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ +} + +.ui-jqgrid-pager .ui-pg-table .ui-pg-button:hover, +.ui-jqgrid-toppager .ui-pg-table .ui-pg-button:hover +{ + background-color: #ddd; +} +.ui-jqgrid-corner { + border-radius: 5px +} +.ui-resizable-handle { + //position: absolute; + display: block; + left :97%; +} +.ui-jqdialog .ui-resizable-se { + width: 12px; + height: 12px; + right: -5px; + bottom: -5px; + background-position: 16px 16px; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-top-corner { + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} +.ui-bottom-corner { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; +} + +.ui-search-table { + margin-bottom: 0; +} +.ui-search-table .columns, .ui-search-table .operators { + padding-right: 5px; +} +.opsel { + float :left; + width : 100px; + margin-right : 5px; +} +.add-group, .add-rule, .delete-group { + width: 14%; + margin-right : 5px; +} +.delete-rule { + width : 15px; +} +ul.ui-search-menu, ul.ui-nav-menu { + list-style-type: none; +} +ul.ui-search-menu li a, +ul.ui-nav-menu li a, +.soptclass, +.clearsearchclass { + text-decoration: none; + color : #010101; +} +ul.ui-search-menu li a:hover, ul.ui-nav-menu li a:hover, a.soptclass:hover, a.clearsearchclass:hover { + background-color: #ddd; + padding: 1px 1px; + text-decoration: none; +} +ul.ui-search-menu li, ul.ui-nav-menu li { + padding : 5px 5px; +} +.ui-menu-item hr { + margin-bottom: 0px; + margin-top:0px; +} + +.searchFilter .ui-search-table td, +.searchFilter .ui-search-table th +{ + border-top: 0px none !important; +} + +.searchFilter .queryresult { + margin-bottom: 5px; +} +.searchFilter .queryresult tr td{ + border-top: 0px none; +} +.ui-search-label { + padding-left: 5px; +} + +.frozen-div, .frozen-bdiv { + background-color: #fff; +} +/* +.ui-jqgrid .ui-jqgrid-caption, +.ui-jqgrid .ui-jqgrid-pager, +.ui-jqgrid .ui-jqgrid-toppager, +.ui-jqgrid .ui-jqgrid-htable thead th, +.ui-jqgrid .ui-userdata-top, +.ui-jqgrid .ui-userdata-bottom, +.ui-jqgrid .ui-jqgrid-hdiv, +.ui-jqdialog .ui-jqdialog-titlebar +{ + background-image: none, linear-gradient(to bottom, #fff 0px, #e0e0e0 100%); + background-repeat: repeat-x; + border-color: #ccc; + text-shadow: 0 1px 0 #fff; +} +*/ diff --git a/novel-admin/src/main/resources/static/css/plugins/jsTree/32px.png b/novel-admin/src/main/resources/static/css/plugins/jsTree/32px.png new file mode 100644 index 0000000000000000000000000000000000000000..5195b5b1ced9ed3e43a98522932b890b616006c3 GIT binary patch literal 15906 zcmeI3Z)_9i9mmg*woWp(q>yc8DI8{$uwviYj^p@h2WN58q=`dFOi6$!xt!1O5&O>d zU22EDAZBbD(i*z0-B>||X=8M%Xo}WNAS#if2HL6=v#G2FHc%^|X+acN*?=zDbGBnY zaU7m@>bpHB=lt{Ye80cvc|Omd+?(6l(){S0g82mmLCk5WceN6P#tGtX?QC#g_w2g) z;442=-ysu3;av4kLp-fR}UT5k%HHuTVrw4?obWy7wR{L`L>PC9&TeFXY=Y-R2A5x3`h{<6_$(!1ES1C z9lAtb2E=MHr6Us(rO%X#&3~x{@-{ zdfLWV%nWTJQQc>tUk;sLQ9=wwMIsSH#B7kly_C^rvr)8(GMV&1 zp_d0lg^lV(d2uqyWF8kUb73K*2$D#udD$MRUvcPkYD4KOHLhSN-H<4!*a3=Elnqfv z15M>JdAYPF)E^Ecy5{95KEMZgQIUbqn9~>XONu1>r5Tz`SI^imm=m`<-FD9Y27@`9 zmX+Ek0fH3LoKD#@5aOv;UY7d99AEn+7|P;YqgMo9W^$%vQfp@HJ0BHhu&FgkTVg3B zXUGo5%G88;R*}LUNeWaYS6Ry>Lb9eNv8u?jHG=4sBJwgjm2Jt)cP1O}Vimp$tVfHU zuGG^OkI}}Mj7+)tVY-r`X(&ljnU%vWc?I9VlpMwikI~AQK^iNZ15#$^0Q<+wD(n}^ z0&Af>UXJle;UKG22|>1(r$S<{oyrtK%JiyYYNUV^2HgU~w^O-_Ay;ChF%6=uup-Ad zxT-*bK@hx*xzft|th7zfmzVqW72a}A&sr=!daJS0#u>d8X0y$gfarF^_GzhI64$Tp zmQ-r*mrM=Wr=?yQ7Qjiz1|W^v`!Cx>jx^JnsuyIiJ_n$63s!I9ENkPRm|8kn5fBn* zQiu)9yt?BYy2&kzlGLnTusR5K@$C7%*u!+dowSQB4luP3ukwPmNbQ|jp-5T;H{NDfwxdOe@_}}j0QRq}u1d2B3@l;FuF2`_$T)2k zuo0?A8IyAb{Xb7kWwI1JEr16VD*dD~b(YgR;VTX@Bl?OH!|8A%Fb!mkaUl`G0*ni$ zfs8ROBqCUValtf@F~)^N1Pd@OmK*kss5)mxGxL_K{7~?`Bf&~~C zOamEXTu4N)0ONvbAY+URi3k>8Trdq}jBz0m!2*m6rh$wxE+isYfN{YzkTJ%EL<9>k zE|>-~#<-A(U;)Mj(?G@;7ZMRHz_?%<$Qa{7B7y}N7fb^gV_Zl?umIzNX&_^a3yBC8 zU|cW_WQ=hk5y1kC3#NgLF)kz`Sb%ZCG>|dIg+v4kFfNz|GQKOWg3P;rya-e`SHKzScwSTMq7sF?M#2vfr z9Dk;>eP7Ak_Vq)19z1fR@nGq!-mZH)n@6s%J)qqF)jy8@uBd+b;cuLEkVUf=sUMAc zk9X|rJo_9mIkv!Wb=~J4DOwtT zV>qlSDULrBH+5~fb>rgj&HElI_8(f)lXv^Znme;)ZR!4%_aw`IU-Z%S`)=xE(v`J<9BB7-4}bYbo0C8Bg+njjxLMuIDC3x<%QDizdiqKRel?cfIXgU0-` gi(r(It-CbDXT?30^?Odes_wIf+Gf{F-|yc1U$#EL00000 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/jsTree/style.min.css b/novel-admin/src/main/resources/static/css/plugins/jsTree/style.min.css new file mode 100644 index 0000000..8962f35 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/jsTree/style.min.css @@ -0,0 +1 @@ +.jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#000;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;-moz-box-shadow:5px 5px 4px -4px #666;-webkit-box-shadow:2px 2px 2px #999;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none;display:inline}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;-moz-text-shadow:1px 1px 0 #fff;-webkit-text-shadow:1px 1px 0 #fff;text-shadow:1px 1px 0 #fff;-moz-border-radius:1px;-webkit-border-radius:1px;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;-moz-box-shadow:0 0 2px #0a6aa1;-webkit-box-shadow:0 0 2px #0a6aa1;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;-moz-box-shadow:0 0 2px #0a6aa1;-webkit-box-shadow:0 0 2px #0a6aa1;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;-moz-text-shadow:0 0 0 transparent;-webkit-text-shadow:0 0 0 transparent;text-shadow:0 0 0 transparent;-moz-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-default .jstree-anchor,.jstree-default .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-default .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default .jstree-disabled{background:0 0;color:#666}.jstree-default .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default .jstree-search{font-style:italic;color:#8b0000;font-weight:700}.jstree-default .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}.jstree-default>.jstree-striped{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-default>.jstree-wholerow-ul .jstree-hovered,.jstree-default>.jstree-wholerow-ul .jstree-clicked{background:0 0;box-shadow:none;border-radius:0}.jstree-default .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default .jstree-wholerow-clicked{background:#beebff;background:-moz-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#beebff),color-stop(100%,#a8e4ff));background:-webkit-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:-o-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:-ms-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:linear-gradient(to bottom,#beebff 0,#a8e4ff 100%)}.jstree-default .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default .jstree-anchor{line-height:24px;height:24px}.jstree-default .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default.jstree-rtl .jstree-node{margin-right:24px}.jstree-default .jstree-wholerow{height:24px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-image:url(32px.png)}.jstree-default .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default .jstree-last{background:0 0}.jstree-default .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default .jstree-themeicon{background-position:-260px -4px}.jstree-default>.jstree-no-dots .jstree-node,.jstree-default>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default .jstree-disabled{background:0 0}.jstree-default .jstree-disabled.jstree-hovered{background:0 0}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-checkbox{background-position:-164px -4px}.jstree-default .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default>.jstree-striped{background-size:auto 48px}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default .jstree-file{background:url(32px.png) -100px -68px no-repeat}.jstree-default .jstree-folder{background:url(32px.png) -260px -4px no-repeat}.jstree-default>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default .jstree-ok,#jstree-dnd.jstree-default .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default .jstree-er{background-position:-36px -68px}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-small .jstree-wholerow{height:18px}.jstree-default-small .jstree-node,.jstree-default-small .jstree-icon{background-image:url(32px.png)}.jstree-default-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-small .jstree-last{background:0 0}.jstree-default-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-small>.jstree-no-dots .jstree-node,.jstree-default-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-small .jstree-disabled{background:0 0}.jstree-default-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-small>.jstree-striped{background-size:auto 36px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-default-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-default-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-small .jstree-ok,#jstree-dnd.jstree-default-small .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-default-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-small .jstree-er{background-position:-39px -71px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-large .jstree-wholerow{height:32px}.jstree-default-large .jstree-node,.jstree-default-large .jstree-icon{background-image:url(32px.png)}.jstree-default-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-large .jstree-last{background:0 0}.jstree-default-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-large .jstree-themeicon{background-position:-256px 0}.jstree-default-large>.jstree-no-dots .jstree-node,.jstree-default-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-large .jstree-disabled{background:0 0}.jstree-default-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-large .jstree-checkbox{background-position:-160px 0}.jstree-default-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-large>.jstree-striped{background-size:auto 64px}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}.jstree-default-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-default-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-default-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-large .jstree-ok,#jstree-dnd.jstree-default-large .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-default-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-large .jstree-er{background-position:-32px -64px}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-responsive .jstree-icon{background-image:url(40px.png)}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px}.jstree-default-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-responsive .jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-size:120px 240px}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-default-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-default-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-default-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-responsive .jstree-checked>.jstree-checkbox,.jstree-default-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-responsive .jstree-anchor{font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-default-responsive>.jstree-striped{background:0 0}.jstree-default-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(64,64,64,.2);background:#ebebeb;height:40px}.jstree-default-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-default-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-default-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-default-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-node>.jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-image:url(40px.png);background-size:120px 240px}.jstree-default-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-responsive .jstree-last{background:0 0}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-responsive .jstree-file{background:url(40px.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-default-responsive .jstree-folder{background:url(40px.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}} diff --git a/novel-admin/src/main/resources/static/css/plugins/jsTree/throbber.gif b/novel-admin/src/main/resources/static/css/plugins/jsTree/throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b5b2fde42f8ea14e6981339196a9d62b681d79e GIT binary patch literal 1720 zcmZ|OYfMvT7zgm4p2O+ea@rnBg#)OxTPX)YQxLES+gfgxVz~&+f}$;m6s%Hi3W%nq zP@z^qrV}=TNF%FL8K5q@MN>cp#S0pVI*qHSli{|&j8i`-D~lhy5AU}p`Tz2N-e*-( zqBu&8Q*g>F3T19?Zf0i2Y&JU_j>N>onwlC4g`!j{1p>jzlP51;yvXHpJ32ZL1c{7{ z)MzyPIro%=%#1i`T0+<|5ezw}`5%1a$_msK1)F#~iYhcbb+NiiTcX~ytZ3Wj5(@tv zLT5OqLY&VTiBl*@DK5jOqAQC<V}_H8&J8*d!6F|8^P+>r!@8gG==_FR|TOFO5N ztmi!uPli+Ln$x?H-gK%V=cf&)%tK3Ubl`;)j){YK#AZm_($yDbHN+iIVb4-MA(|Tn z%Y=0Su-m75IE?%N1|!SEl|tuKXsXZNj2Z=vp;+=jlJSZD2EODW0H`sM#)b0zgDU0)5!Grr5zO1 zNgN^!L7)EBFUC+Zhm%Mr7yC91@!CieHdPd#!o7Jn^!!TMrU0vgH)|h-!|2wozJKmj z`G&1Z^{+00Fi|SEx@=o?UTI)xo@>T@7i7MZAqTYCMc0JP{oZJEdWye2L~bM45otrq zk@}$q6%b*2<$_YGZVC^6PBqU&pG6rtOM!WN;+E;i3EB*=+K0j60WC&J{7x}V=Ak(w<1X>er- zV`_bHI~Y%5hQkS?_Lf?1C-Yh;suT(z!ZdS6NOH8>FGetNtnE-ngIxI9OKM9M!nq|ao z@ByV)WU%+EiuxlBZ=#rs_ZnY%+O^bXr2P8_g2l~7Z8221w?Uyx%!zc@?f!tWxz6{`xAWPUyeq1Vbvuj7m$3Dh(PTY04bw^_A zwRr|LuoC34N#A1;?zXdaId|wW$kzq2e~Uqdrq=@A0^DlGO4UM zzCO9@&t7@ohLX-t)ftJ| z)q;&?w?;l@^4Pc`;x3vPJ8(itFdKg3;$nap8V7O~;L775>pjUjnIyS=0%4f;&$i;^ q^<`2=x-x(uk2YUU2h;2jemskO_4rHker(f.md-header{display:block;padding:6px 4px;background:#f5f5f5}.md-editor>.md-header{margin:0}.md-editor>.md-preview{background:#fff;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd;min-height:10px;overflow:auto}.md-editor>textarea{font-family:Menlo, Monaco, Consolas, "Courier New", monospace;font-size:14px;outline:0;margin:0;display:block;padding:15px;width:100%;border:0;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd;border-radius:0;box-shadow:none;background:#fafafa}.md-editor>textarea:focus{box-shadow:none;background:#fff}.md-editor.active{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6)}.md-editor .md-controls{float:right;padding:3px}.md-editor .md-controls .md-control{right:5px;color:#bebebe;padding:3px 3px 3px 10px}.md-editor .md-controls .md-control:hover{color:#333}.md-editor.md-fullscreen-mode{width:100%;height:100%;position:fixed;top:0;left:0;z-index:99999;padding:60px 30px 15px;background:#fff!important;border:0!important}.md-editor.md-fullscreen-mode .md-footer{display:none}.md-editor.md-fullscreen-mode .md-input,.md-editor.md-fullscreen-mode .md-preview{margin:0 auto!important;height:100%!important;font-size:20px!important;padding:20px!important;color:#999;line-height:1.6em!important;resize:none!important;box-shadow:none!important;background:#fff!important;border:0!important}.md-editor.md-fullscreen-mode .md-preview{color:#333;overflow:auto}.md-editor.md-fullscreen-mode .md-input:focus,.md-editor.md-fullscreen-mode .md-input:hover{color:#333;background:#fff!important}.md-editor.md-fullscreen-mode .md-header{background:0 0;text-align:center;position:fixed;width:100%;top:20px}.md-editor.md-fullscreen-mode .btn-group{float:none}.md-editor.md-fullscreen-mode .btn{border:0;background:0 0;color:#b3b3b3}.md-editor.md-fullscreen-mode .btn.active,.md-editor.md-fullscreen-mode .btn:active,.md-editor.md-fullscreen-mode .btn:focus,.md-editor.md-fullscreen-mode .btn:hover{box-shadow:none;color:#333}.md-editor.md-fullscreen-mode .md-fullscreen-controls{position:absolute;top:20px;right:20px;text-align:right;z-index:1002;display:block}.md-editor.md-fullscreen-mode .md-fullscreen-controls a{color:#b3b3b3;clear:right;margin:10px;width:30px;height:30px;text-align:center}.md-editor.md-fullscreen-mode .md-fullscreen-controls a:hover{color:#333;text-decoration:none}.md-editor.md-fullscreen-mode .md-editor{height:100%!important;position:relative}.md-editor .md-fullscreen-controls{display:none}.md-nooverflow{overflow:hidden;position:fixed;width:100%} diff --git a/novel-admin/src/main/resources/static/css/plugins/morris/morris-0.4.3.min.css b/novel-admin/src/main/resources/static/css/plugins/morris/morris-0.4.3.min.css new file mode 100644 index 0000000..bc68724 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/morris/morris-0.4.3.min.css @@ -0,0 +1,2 @@ +.morris-hover{position:absolute;z-index:1000;}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255, 255, 255, 0.8);border:solid 2px rgba(230, 230, 230, 0.8);font-family:sans-serif;font-size:12px;text-align:center;}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0;} +.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0;} diff --git a/novel-admin/src/main/resources/static/css/plugins/multiselect/bootstrap-multiselect.css b/novel-admin/src/main/resources/static/css/plugins/multiselect/bootstrap-multiselect.css new file mode 100644 index 0000000..fe86b8d --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/multiselect/bootstrap-multiselect.css @@ -0,0 +1 @@ +.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0}.multiselect-container .input-group{margin:5px}.multiselect-container>li{padding:0}.multiselect-container>li>a.multiselect-all label{font-weight:700}.multiselect-container>li.multiselect-group label{margin:0;padding:3px 20px 3px 20px;height:100%;font-weight:700}.multiselect-container>li.multiselect-group-clickable label{cursor:pointer}.multiselect-container>li>a{padding:0}.multiselect-container>li>a>label{margin:0;height:100%;cursor:pointer;font-weight:400;padding:3px 20px 3px 40px}.multiselect-container>li>a>label.radio,.multiselect-container>li>a>label.checkbox{margin:0}.multiselect-container>li>a>label>input[type=checkbox]{margin-bottom:5px}.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.form-inline .multiselect-container label.checkbox,.form-inline .multiselect-container label.radio{padding:3px 20px 3px 40px}.form-inline .multiselect-container li a label.checkbox input[type=checkbox],.form-inline .multiselect-container li a label.radio input[type=radio]{margin-left:-20px;margin-right:0} diff --git a/novel-admin/src/main/resources/static/css/plugins/nouslider/jquery.nouislider.css b/novel-admin/src/main/resources/static/css/plugins/nouslider/jquery.nouislider.css new file mode 100644 index 0000000..8bcf94c --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/nouslider/jquery.nouislider.css @@ -0,0 +1,165 @@ + +/* Functional styling; + * These styles are required for noUiSlider to function. + * You don't need to change these rules to apply your design. + */ +.noUi-target, +.noUi-target * { +-webkit-touch-callout: none; +-webkit-user-select: none; +-ms-touch-action: none; +-ms-user-select: none; +-moz-user-select: none; +-moz-box-sizing: border-box; + box-sizing: border-box; +} +.noUi-base { + width: 100%; + height: 100%; + position: relative; +} +.noUi-origin { + position: absolute; + right: 0; + top: 0; + left: 0; + bottom: 0; +} +.noUi-handle { + position: relative; + z-index: 1; +} +.noUi-stacking .noUi-handle { +/* This class is applied to the lower origin when + its values is > 50%. */ + z-index: 10; +} +.noUi-stacking + .noUi-origin { +/* Fix stacking order in IE7, which incorrectly + creates a new context for the origins. */ + *z-index: -1; +} +.noUi-state-tap .noUi-origin { +-webkit-transition: left 0.3s, top 0.3s; + transition: left 0.3s, top 0.3s; +} +.noUi-state-drag * { + cursor: inherit !important; +} + +/* Slider size and handle placement; + */ +.noUi-horizontal { + height: 18px; +} +.noUi-horizontal .noUi-handle { + width: 34px; + height: 28px; + left: -17px; + top: -6px; +} +.noUi-horizontal.noUi-extended { + padding: 0 15px; +} +.noUi-horizontal.noUi-extended .noUi-origin { + right: -15px; +} +.noUi-vertical { + width: 18px; +} +.noUi-vertical .noUi-handle { + width: 28px; + height: 34px; + left: -6px; + top: -17px; +} +.noUi-vertical.noUi-extended { + padding: 15px 0; +} +.noUi-vertical.noUi-extended .noUi-origin { + bottom: -15px; +} + +/* Styling; + */ +.noUi-background { + background: #FAFAFA; + box-shadow: inset 0 1px 1px #f0f0f0; +} +.noUi-connect { + background: #3FB8AF; + box-shadow: inset 0 0 3px rgba(51,51,51,0.45); +-webkit-transition: background 450ms; + transition: background 450ms; +} +.noUi-origin { + border-radius: 2px; +} +.noUi-target { + border-radius: 4px; + border: 1px solid #D3D3D3; + box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB; +} +.noUi-target.noUi-connect { + box-shadow: inset 0 0 3px rgba(51,51,51,0.45), 0 3px 6px -5px #BBB; +} + +/* Handles and cursors; + */ +.noUi-dragable { + cursor: w-resize; +} +.noUi-vertical .noUi-dragable { + cursor: n-resize; +} +.noUi-handle { + border: 1px solid #D9D9D9; + border-radius: 3px; + background: #FFF; + cursor: default; + box-shadow: inset 0 0 1px #FFF, + inset 0 1px 7px #EBEBEB, + 0 3px 6px -3px #BBB; +} +.noUi-active { + box-shadow: inset 0 0 1px #FFF, + inset 0 1px 7px #DDD, + 0 3px 6px -3px #BBB; +} + +/* Handle stripes; + */ +.noUi-handle:before, +.noUi-handle:after { + content: ""; + display: block; + position: absolute; + height: 14px; + width: 1px; + background: #E8E7E6; + left: 14px; + top: 6px; +} +.noUi-handle:after { + left: 17px; +} +.noUi-vertical .noUi-handle:before, +.noUi-vertical .noUi-handle:after { + width: 14px; + height: 1px; + left: 6px; + top: 14px; +} +.noUi-vertical .noUi-handle:after { + top: 17px; +} + +/* Disabled state; + */ +[disabled].noUi-connect, +[disabled] .noUi-connect { + background: #B8B8B8; +} +[disabled] .noUi-handle { + cursor: not-allowed; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/plyr/plyr.css b/novel-admin/src/main/resources/static/css/plugins/plyr/plyr.css new file mode 100644 index 0000000..7fa0f39 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/plyr/plyr.css @@ -0,0 +1 @@ +@-webkit-keyframes progress{to{background-position:40px 0}}@keyframes progress{to{background-position:40px 0}}.sr-only{position:absolute!important;clip:rect(1px,1px,1px,1px);padding:0!important;border:0!important;height:1px!important;width:1px!important;overflow:hidden}.player{position:relative;max-width:100%;min-width:290px}.player,.player *,.player ::after,.player ::before{box-sizing:border-box}.player-video-wrapper{position:relative}.player audio,.player video{width:100%;height:auto;vertical-align:middle}.player-video-embed{padding-bottom:56.25%;height:0}.player-video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.player-captions{display:none;position:absolute;bottom:0;left:0;width:100%;padding:20px 20px 30px;color:#fff;font-size:20px;text-align:center;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.player-captions span{border-radius:2px;padding:3px 10px;background:rgba(0,0,0,.9)}.player-captions span:empty{display:none}@media (min-width:768px){.player-captions{font-size:24px}}.player.captions-active .player-captions{display:block}.player.fullscreen-active .player-captions{font-size:32px}.player-controls{zoom:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;position:relative;padding:10px;background:#fff;line-height:1;text-align:center;box-shadow:0 1px 1px rgba(52,63,74,.2)}.player-controls:after,.player-controls:before{content:"";display:table}.player-controls:after{clear:both}.player-controls-right{display:block;margin:10px auto 0}@media (min-width:560px){.player-controls-left{float:left}.player-controls-right{float:right;margin-top:0}}.player-controls button{display:inline-block;vertical-align:middle;margin:0 2px;padding:5px 10px;overflow:hidden;border:0;background:0 0;border-radius:3px;cursor:pointer;color:#6b7d86;transition:background .3s ease,color .3s ease,opacity .3s ease}.player-controls button svg{width:18px;height:18px;display:block;fill:currentColor;transition:fill .3s ease}.player-controls button.tab-focus,.player-controls button:hover{background:#3498db;color:#fff}.player-controls button:focus{outline:0}.player-controls .icon-captions-on,.player-controls .icon-exit-fullscreen,.player-controls .icon-muted{display:none}.player-controls .player-time{display:inline-block;vertical-align:middle;margin-left:10px;color:#6b7d86;font-weight:600;font-size:14px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.player-controls .player-time+.player-time{display:none}@media (min-width:560px){.player-controls .player-time+.player-time{display:inline-block}}.player-controls .player-time+.player-time::before{content:'\2044';margin-right:10px}.player-tooltip{position:absolute;z-index:2;bottom:100%;margin-bottom:10px;padding:10px 15px;opacity:0;background:#fff;border:1px solid #d6dadd;border-radius:3px;color:#6b7d86;font-size:14px;line-height:1.5;font-weight:600;-webkit-transform:translate(-50%,30px) scale(0);transform:translate(-50%,30px) scale(0);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;transition:-webkit-transform .2s .1s ease,opacity .2s .1s ease;transition:transform .2s .1s ease,opacity .2s .1s ease}.player-tooltip::after{content:'';position:absolute;z-index:1;top:100%;left:50%;display:block;width:10px;height:10px;background:#fff;-webkit-transform:translate(-50%,-50%) rotate(45deg) translateY(1px);transform:translate(-50%,-50%) rotate(45deg) translateY(1px);border:1px solid #d6dadd;border-width:0 1px 1px 0}.player button.tab-focus:focus .player-tooltip,.player button:hover .player-tooltip{opacity:1;-webkit-transform:translate(-50%,0) scale(1);transform:translate(-50%,0) scale(1)}.player button:hover .player-tooltip{z-index:3}.player-progress{position:absolute;bottom:100%;left:0;right:0;width:100%;height:10px;background:rgba(86,93,100,.2)}.player-progress-buffer[value],.player-progress-played[value],.player-progress-seek[type=range]{position:absolute;left:0;top:0;width:100%;height:10px;margin:0;padding:0;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;border:none;background:0 0}.player-progress-buffer[value]::-webkit-progress-bar,.player-progress-played[value]::-webkit-progress-bar{background:0 0}.player-progress-buffer[value]::-webkit-progress-value,.player-progress-played[value]::-webkit-progress-value{background:currentColor}.player-progress-buffer[value]::-moz-progress-bar,.player-progress-played[value]::-moz-progress-bar{background:currentColor}.player-progress-played[value]{z-index:2;color:#3498db}.player-progress-buffer[value]{color:rgba(86,93,100,.25)}.player-progress-seek[type=range]{z-index:4;cursor:pointer;outline:0}.player-progress-seek[type=range]::-webkit-slider-runnable-track{background:0 0;border:0}.player-progress-seek[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:0 0;border:0;width:20px;height:10px}.player-progress-seek[type=range]::-moz-range-track{background:0 0;border:0}.player-progress-seek[type=range]::-moz-range-thumb{-moz-appearance:none;background:0 0;border:0;width:20px;height:10px}.player-progress-seek[type=range]::-ms-track{color:transparent;background:0 0;border:0}.player-progress-seek[type=range]::-ms-fill-lower,.player-progress-seek[type=range]::-ms-fill-upper{background:0 0;border:0}.player-progress-seek[type=range]::-ms-thumb{background:0 0;border:0;width:20px;height:10px}.player-progress-seek[type=range]:focus{outline:0}.player-progress-seek[type=range]::-moz-focus-outer{border:0}.player.loading .player-progress-buffer{-webkit-animation:progress 1s linear infinite;animation:progress 1s linear infinite;background-size:40px 40px;background-repeat:repeat-x;background-color:rgba(86,93,100,.25);background-image:linear-gradient(-45deg,rgba(0,0,0,.15) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.15) 50%,rgba(0,0,0,.15) 75%,transparent 75%,transparent);color:transparent}.player-controls [data-player=pause],.player.playing .player-controls [data-player=play]{display:none}.player.playing .player-controls [data-player=pause]{display:inline-block}.player-volume[type=range]{display:inline-block;vertical-align:middle;-webkit-appearance:none;-moz-appearance:none;width:100px;margin:0 10px 0 0;padding:0;cursor:pointer;background:0 0;border:none}.player-volume[type=range]::-webkit-slider-runnable-track{height:6px;background:#e6e6e6;border:0;border-radius:3px}.player-volume[type=range]::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-3px;height:12px;width:12px;background:#6b7d86;border:0;border-radius:6px;transition:background .3s ease;cursor:ew-resize}.player-volume[type=range]::-moz-range-track{height:6px;background:#e6e6e6;border:0;border-radius:3px}.player-volume[type=range]::-moz-range-thumb{height:12px;width:12px;background:#6b7d86;border:0;border-radius:6px;transition:background .3s ease;cursor:ew-resize}.player-volume[type=range]::-ms-track{height:6px;background:0 0;border-color:transparent;border-width:3px 0;color:transparent}.player-volume[type=range]::-ms-fill-lower,.player-volume[type=range]::-ms-fill-upper{height:6px;background:#e6e6e6;border:0;border-radius:3px}.player-volume[type=range]::-ms-thumb{height:12px;width:12px;background:#6b7d86;border:0;border-radius:6px;transition:background .3s ease;cursor:ew-resize}.player-volume[type=range]:focus{outline:0}.player-volume[type=range]:focus::-webkit-slider-thumb{background:#3498db}.player-volume[type=range]:focus::-moz-range-thumb{background:#3498db}.player-volume[type=range]:focus::-ms-thumb{background:#3498db}.player-audio.ios .player-controls-right,.player.ios .player-volume,.player.ios [data-player=mute]{display:none}.player-audio.ios .player-controls-left{float:none}.player-audio .player-controls{padding-top:20px}.player-audio .player-progress{bottom:auto;top:0;background:#d6dadd}.player-fullscreen,.player.fullscreen-active{position:fixed;top:0;left:0;right:0;bottom:0;height:100%;width:100%;z-index:10000000;background:#000}.player-fullscreen video,.player.fullscreen-active video{height:100%}.player-fullscreen .player-video-wrapper,.player.fullscreen-active .player-video-wrapper{height:100%;width:100%}.player-fullscreen .player-controls,.player.fullscreen-active .player-controls{position:absolute;bottom:0;left:0;right:0}.player-fullscreen.fullscreen-hide-controls.playing .player-controls,.player.fullscreen-active.fullscreen-hide-controls.playing .player-controls{-webkit-transform:translateY(100%) translateY(5px);transform:translateY(100%) translateY(5px);transition:-webkit-transform .3s .2s ease;transition:transform .3s .2s ease}.player-fullscreen.fullscreen-hide-controls.playing.player-hover .player-controls,.player.fullscreen-active.fullscreen-hide-controls.playing.player-hover .player-controls{-webkit-transform:translateY(0);transform:translateY(0)}.player-fullscreen.fullscreen-hide-controls.playing .player-captions,.player.fullscreen-active.fullscreen-hide-controls.playing .player-captions{bottom:5px;transition:bottom .3s .2s ease}.player-fullscreen .player-captions,.player-fullscreen.fullscreen-hide-controls.playing.player-hover .player-captions,.player.fullscreen-active .player-captions,.player.fullscreen-active.fullscreen-hide-controls.playing.player-hover .player-captions{top:auto;bottom:90px}@media (min-width:560px){.player-fullscreen .player-captions,.player-fullscreen.fullscreen-hide-controls.playing.player-hover .player-captions,.player.fullscreen-active .player-captions,.player.fullscreen-active.fullscreen-hide-controls.playing.player-hover .player-captions{bottom:60px}}.player.captions-active .player-controls .icon-captions-on,.player.fullscreen-active .icon-exit-fullscreen,.player.muted .player-controls .icon-muted{display:block}.player [data-player=captions],.player [data-player=fullscreen],.player.captions-active .player-controls .icon-captions-on+svg,.player.fullscreen-active .icon-exit-fullscreen+svg,.player.muted .player-controls .icon-muted+svg{display:none}.player.captions-enabled [data-player=captions],.player.fullscreen-enabled [data-player=fullscreen]{display:inline-block} diff --git a/novel-admin/src/main/resources/static/css/plugins/plyr/sprite.svg b/novel-admin/src/main/resources/static/css/plugins/plyr/sprite.svg new file mode 100644 index 0000000..aede311 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/plyr/sprite.svg @@ -0,0 +1 @@ + diff --git a/novel-admin/src/main/resources/static/css/plugins/simditor/simditor.css b/novel-admin/src/main/resources/static/css/plugins/simditor/simditor.css new file mode 100644 index 0000000..943ec24 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/simditor/simditor.css @@ -0,0 +1,620 @@ +.simditor { + position: relative; + border: 1px solid #c9d8db; +} +.simditor .simditor-wrapper { + position: relative; + background: #ffffff; + overflow: hidden; +} +.simditor .simditor-wrapper .simditor-placeholder { + display: none; + position: absolute; + left: 0; + z-index: 0; + padding: 22px 15px; + font-size: 16px; + font-family: arial, sans-serif; + line-height: 1.5; + color: #999999; + background: transparent; +} +.simditor .simditor-wrapper.toolbar-floating .simditor-toolbar { + position: fixed; + top: 0; + z-index: 10; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.1); +} +.simditor .simditor-wrapper .simditor-image-loading { + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.4); + position: absolute; + top: 0; + left: 0; + z-index: 2; +} +.simditor .simditor-wrapper .simditor-image-loading span { + width: 30px; + height: 30px; + background: #ffffff url(../../../img/loading-upload.gif) no-repeat center center; + border-radius: 30px; + position: absolute; + top: 50%; + left: 50%; + margin: -15px 0 0 -15px; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.4); +} +.simditor .simditor-wrapper .simditor-image-loading.uploading span { + background: #ffffff; + color: #333333; + font-size: 14px; + line-height: 30px; + text-align: center; +} +.simditor .simditor-body { + padding: 22px 15px 40px; + min-height: 300px; + outline: none; + cursor: text; + position: relative; + z-index: 1; + background: transparent; +} +.simditor .simditor-body a.selected { + background: #b3d4fd; +} +.simditor .simditor-body a.simditor-mention { + cursor: pointer; +} +.simditor .simditor-body .simditor-table { + position: relative; +} +.simditor .simditor-body .simditor-table.resizing { + cursor: col-resize; +} +.simditor .simditor-body .simditor-table .simditor-resize-handle { + position: absolute; + left: 0; + top: 0; + width: 10px; + height: 100%; + cursor: col-resize; +} +.simditor .simditor-body pre { + /*min-height: 28px;*/ + box-sizing: border-box; + -moz-box-sizing: border-box; + word-wrap: break-word !important; + white-space: pre-wrap !important; +} +.simditor .simditor-body img { + cursor: pointer; +} +.simditor .simditor-body img.selected { + box-shadow: 0 0 0 4px #cccccc; +} +.simditor .simditor-paste-area, +.simditor .simditor-clean-paste-area { + background: transparent; + border: none; + outline: none; + resize: none; + padding: 0; + margin: 0; +} +.simditor .simditor-toolbar { + border-bottom: 1px solid #eeeeee; + background: #ffffff; + width: 100%; +} +.simditor .simditor-toolbar > ul { + margin: 0; + padding: 0 0 0 6px; + list-style: none; +} +.simditor .simditor-toolbar > ul:after { + content: ""; + display: table; + clear: both; +} +.simditor .simditor-toolbar > ul > li { + position: relative; + float: left; +} +.simditor .simditor-toolbar > ul > li > span.separator { + display: block; + float: left; + background: #cfcfcf; + width: 1px; + height: 18px; + margin: 11px 15px; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item { + display: block; + float: left; + width: 50px; + height: 40px; + outline: none; + color: #333333; + font-size: 15px; + line-height: 40px; + text-align: center; + text-decoration: none; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item span { + opacity: 0.6; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item span.fa { + display: inline; + line-height: normal; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item:hover span { + opacity: 1; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.active { + background: #eeeeee; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.active span { + opacity: 1; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.disabled { + cursor: default; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.disabled span { + opacity: 0.3; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title span:before { + content: "T"; + font-size: 19px; + font-weight: bold; + font-family: 'Times New Roman'; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title.active-h1 span:before { + content: 'H1'; + font-size: 18px; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title.active-h2 span:before { + content: 'H2'; + font-size: 18px; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title.active-h3 span:before { + content: 'H3'; + font-size: 18px; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-color { + font-size: 14px; + position: relative; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-color span:before { + position: relative; + top: -2px; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-color:after { + content: ''; + display: block; + width: 14px; + height: 4px; + background: #cccccc; + position: absolute; + top: 26px; + left: 50%; + margin: 0 0 0 -7px; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-color:hover:after { + background: #999999; +} +.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-color.disabled:after { + background: #dfdfdf; +} +.simditor .simditor-toolbar > ul > li.menu-on .toolbar-item { + position: relative; + z-index: 21; + background: #ffffff; + box-shadow: 0 -3px 3px rgba(0, 0, 0, 0.2); +} +.simditor .simditor-toolbar > ul > li.menu-on .toolbar-item span { + opacity: 1; +} +.simditor .simditor-toolbar > ul > li.menu-on .toolbar-item.toolbar-item-color:after { + background: #999999; +} +.simditor .simditor-toolbar > ul > li.menu-on .toolbar-menu { + display: block; +} +.simditor .simditor-toolbar .toolbar-menu { + display: none; + position: absolute; + top: 40px; + left: 0; + z-index: 20; + background: #ffffff; + text-align: left; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); +} +.simditor .simditor-toolbar .toolbar-menu ul { + min-width: 160px; + list-style: none; + margin: 0; + padding: 10px 1px; +} +.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item { + display: block; + font-size: 16px; + line-height: 2em; + padding: 0 10px; + text-decoration: none; + color: #666666; +} +.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item:hover { + background: #f6f6f6; +} +.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h1 { + font-size: 24px; + color: #333333; +} +.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h2 { + font-size: 22px; + color: #333333; +} +.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h3 { + font-size: 20px; + color: #333333; +} +.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h4 { + font-size: 18px; + color: #333333; +} +.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h5 { + font-size: 16px; + color: #333333; +} +.simditor .simditor-toolbar .toolbar-menu ul > li .separator { + display: block; + border-top: 1px solid #cccccc; + height: 0; + line-height: 0; + font-size: 0; + margin: 6px 0; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color { + width: 96px; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list { + height: 40px; + margin: 10px 6px 6px 10px; + padding: 0; + min-width: 0; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li { + float: left; + margin: 0 4px 4px 0; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color { + display: block; + width: 16px; + height: 16px; + background: #dfdfdf; + border-radius: 2px; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color:hover { + opacity: 0.8; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color.font-color-default { + background: #333333; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-1 { + background: #E33737; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-2 { + background: #e28b41; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-3 { + background: #c8a732; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-4 { + background: #209361; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-5 { + background: #418caf; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-6 { + background: #aa8773; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-7 { + background: #999999; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table { + background: #ffffff; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table { + border: none; + border-collapse: collapse; + border-spacing: 0; + table-layout: fixed; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table td { + height: 16px; + padding: 0; + border: 2px solid #ffffff; + background: #f3f3f3; + cursor: pointer; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table td:before { + width: 16px; + display: block; + content: ""; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table td.selected { + background: #cfcfcf; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-edit-table { + display: none; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-edit-table ul { + min-width: 240px; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-image .menu-item-upload-image { + position: relative; + overflow: hidden; +} +.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-image .menu-item-upload-image input[type=file] { + position: absolute; + right: 0px; + top: 0px; + opacity: 0; + font-size: 100px; + cursor: pointer; +} +.simditor .simditor-popover { + display: none; + padding: 5px 8px 0; + background: #ffffff; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + border-radius: 2px; + position: absolute; + z-index: 2; +} +.simditor .simditor-popover .settings-field { + margin: 0 0 5px 0; + font-size: 12px; + height: 25px; + line-height: 25px; +} +.simditor .simditor-popover .settings-field label { + margin: 0 8px 0 0; + float: left; +} +.simditor .simditor-popover .settings-field input[type=text] { + float: left; + width: 200px; + box-sizing: border-box; + font-size: 12px; +} +.simditor .simditor-popover .settings-field input[type=text].image-size { + width: 87px; +} +.simditor .simditor-popover .settings-field .times { + float: left; + width: 26px; + font-size: 12px; + text-align: center; +} +.simditor .simditor-popover.link-popover .btn-unlink, .simditor .simditor-popover.image-popover .btn-upload, .simditor .simditor-popover.image-popover .btn-restore { + float: left; + margin: 0 0 0 8px; + color: #333333; + font-size: 14px; + outline: 0; +} +.simditor .simditor-popover.link-popover .btn-unlink span, .simditor .simditor-popover.image-popover .btn-upload span, .simditor .simditor-popover.image-popover .btn-restore span { + opacity: 0.6; +} +.simditor .simditor-popover.link-popover .btn-unlink:hover span, .simditor .simditor-popover.image-popover .btn-upload:hover span, .simditor .simditor-popover.image-popover .btn-restore:hover span { + opacity: 1; +} +.simditor .simditor-popover.image-popover .btn-upload { + position: relative; + display: inline-block; + overflow: hidden; +} +.simditor .simditor-popover.image-popover .btn-upload input[type=file] { + position: absolute; + right: 0px; + top: 0px; + opacity: 0; + height: 100%; + width: 28px; +} +.simditor.simditor-mobile .simditor-toolbar > ul > li > .toolbar-item { + width: 46px; +} +.simditor.simditor-mobile .simditor-wrapper.toolbar-floating .simditor-toolbar { + position: absolute; + top: 0; + z-index: 10; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.1); +} + +.simditor .simditor-body, .editor-style { + font-size: 16px; + font-family: arial, sans-serif; + line-height: 1.6; + color: #333; + outline: none; + word-wrap: break-word; +} +.simditor .simditor-body > :first-child, .editor-style > :first-child { + margin-top: 0 !important; +} +.simditor .simditor-body a, .editor-style a { + color: #4298BA; + text-decoration: none; + word-break: break-all; +} +.simditor .simditor-body a:visited, .editor-style a:visited { + color: #4298BA; +} +.simditor .simditor-body a:hover, .editor-style a:hover { + color: #0F769F; +} +.simditor .simditor-body a:active, .editor-style a:active { + color: #9E792E; +} +.simditor .simditor-body a:hover, .simditor .simditor-body a:active, .editor-style a:hover, .editor-style a:active { + outline: 0; +} +.simditor .simditor-body h1, .simditor .simditor-body h2, .simditor .simditor-body h3, .simditor .simditor-body h4, .simditor .simditor-body h5, .simditor .simditor-body h6, .editor-style h1, .editor-style h2, .editor-style h3, .editor-style h4, .editor-style h5, .editor-style h6 { + font-weight: normal; + margin: 40px 0 20px; + color: #000000; +} +.simditor .simditor-body h1, .editor-style h1 { + font-size: 24px; +} +.simditor .simditor-body h2, .editor-style h2 { + font-size: 22px; +} +.simditor .simditor-body h3, .editor-style h3 { + font-size: 20px; +} +.simditor .simditor-body h4, .editor-style h4 { + font-size: 18px; +} +.simditor .simditor-body h5, .editor-style h5 { + font-size: 16px; +} +.simditor .simditor-body h6, .editor-style h6 { + font-size: 16px; +} +.simditor .simditor-body p, .simditor .simditor-body div, .editor-style p, .editor-style div { + word-wrap: break-word; + margin: 0 0 15px 0; + color: #333; + word-wrap: break-word; +} +.simditor .simditor-body b, .simditor .simditor-body strong, .editor-style b, .editor-style strong { + font-weight: bold; +} +.simditor .simditor-body i, .simditor .simditor-body em, .editor-style i, .editor-style em { + font-style: italic; +} +.simditor .simditor-body u, .editor-style u { + text-decoration: underline; +} +.simditor .simditor-body strike, .simditor .simditor-body del, .editor-style strike, .editor-style del { + text-decoration: line-through; +} +.simditor .simditor-body ul, .simditor .simditor-body ol, .editor-style ul, .editor-style ol { + list-style: disc outside none; + margin: 15px 0; + padding: 0 0 0 40px; + line-height: 1.6; +} +.simditor .simditor-body ul ul, .simditor .simditor-body ul ol, .simditor .simditor-body ol ul, .simditor .simditor-body ol ol, .editor-style ul ul, .editor-style ul ol, .editor-style ol ul, .editor-style ol ol { + padding-left: 30px; +} +.simditor .simditor-body ul ul, .simditor .simditor-body ol ul, .editor-style ul ul, .editor-style ol ul { + list-style: circle outside none; +} +.simditor .simditor-body ul ul ul, .simditor .simditor-body ol ul ul, .editor-style ul ul ul, .editor-style ol ul ul { + list-style: square outside none; +} +.simditor .simditor-body ol, .editor-style ol { + list-style: decimal; +} +.simditor .simditor-body blockquote, .editor-style blockquote { + border-left: 6px solid #ddd; + padding: 5px 0 5px 10px; + margin: 15px 0 15px 15px; +} +.simditor .simditor-body blockquote > :first-child, .editor-style blockquote > :first-child { + margin-top: 0; +} +.simditor .simditor-body pre, .editor-style pre { + padding: 10px 5px 10px 10px; + margin: 15px 0; + display: block; + line-height: 18px; + background: #F0F0F0; + border-radius: 3px; + font-size: 13px; + font-family: 'monaco', 'Consolas', "Liberation Mono", Courier, monospace; + overflow-x: auto; + white-space: nowrap; +} +.simditor .simditor-body code, .editor-style code { + display: inline-block; + padding: 0 4px; + margin: 0 5px; + background: #eeeeee; + border-radius: 3px; + font-size: 13px; + font-family: 'monaco', 'Consolas', "Liberation Mono", Courier, monospace; +} +.simditor .simditor-body hr, .editor-style hr { + display: block; + height: 0px; + border: 0; + border-top: 1px solid #ccc; + margin: 15px 0; + padding: 0; +} +.simditor .simditor-body table, .editor-style table { + width: 100%; + table-layout: fixed; + border-collapse: collapse; + border-spacing: 0; + margin: 15px 0; +} +.simditor .simditor-body table thead, .editor-style table thead { + background-color: #f9f9f9; +} +.simditor .simditor-body table td, .editor-style table td { + min-width: 40px; + height: 30px; + border: 1px solid #ccc; + vertical-align: top; + padding: 2px 4px; + box-sizing: border-box; +} +.simditor .simditor-body table td.active, .editor-style table td.active { + background-color: #ffffee; +} +.simditor .simditor-body img, .editor-style img { + margin: 0 5px; + vertical-align: middle; +} +.simditor .simditor-body *[data-indent="0"], .editor-style *[data-indent="0"] { + margin-left: 0px; +} +.simditor .simditor-body *[data-indent="1"], .editor-style *[data-indent="1"] { + margin-left: 40px; +} +.simditor .simditor-body *[data-indent="2"], .editor-style *[data-indent="2"] { + margin-left: 80px; +} +.simditor .simditor-body *[data-indent="3"], .editor-style *[data-indent="3"] { + margin-left: 120px; +} +.simditor .simditor-body *[data-indent="4"], .editor-style *[data-indent="4"] { + margin-left: 160px; +} +.simditor .simditor-body *[data-indent="5"], .editor-style *[data-indent="5"] { + margin-left: 200px; +} +.simditor .simditor-body *[data-indent="6"], .editor-style *[data-indent="6"] { + margin-left: 240px; +} +.simditor .simditor-body *[data-indent="7"], .editor-style *[data-indent="7"] { + margin-left: 280px; +} +.simditor .simditor-body *[data-indent="8"], .editor-style *[data-indent="8"] { + margin-left: 320px; +} +.simditor .simditor-body *[data-indent="9"], .editor-style *[data-indent="9"] { + margin-left: 360px; +} +.simditor .simditor-body *[data-indent="10"], .editor-style *[data-indent="10"] { + margin-left: 400px; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/steps/jquery.steps.css b/novel-admin/src/main/resources/static/css/plugins/steps/jquery.steps.css new file mode 100644 index 0000000..39987db --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/steps/jquery.steps.css @@ -0,0 +1,380 @@ +/* + Common +*/ + +.wizard, +.tabcontrol +{ + display: block; + width: 100%; + overflow: hidden; +} + +.wizard a, +.tabcontrol a +{ + outline: 0; +} + +.wizard ul, +.tabcontrol ul +{ + list-style: none !important; + padding: 0; + margin: 0; +} + +.wizard ul > li, +.tabcontrol ul > li +{ + display: block; + padding: 0; +} + +/* Accessibility */ +.wizard > .steps .current-info, +.tabcontrol > .steps .current-info +{ + position: absolute; + left: -999em; +} + +.wizard > .content > .title, +.tabcontrol > .content > .title +{ + position: absolute; + left: -999em; +} + + + +/* + Wizard +*/ + +.wizard > .steps +{ + position: relative; + display: block; + width: 100%; +} + +.wizard.vertical > .steps +{ + display: inline; + float: left; + width: 30%; +} + +.wizard > .steps > ul > li +{ + width: 25%; +} + +.wizard > .steps > ul > li, +.wizard > .actions > ul > li +{ + float: left; +} + +.wizard.vertical > .steps > ul > li +{ + float: none; + width: 100%; +} + +.wizard > .steps a, +.wizard > .steps a:hover, +.wizard > .steps a:active +{ + display: block; + width: auto; + margin: 0 0.5em 0.5em; + padding: 8px; + text-decoration: none; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.wizard > .steps .disabled a, +.wizard > .steps .disabled a:hover, +.wizard > .steps .disabled a:active +{ + background: #eee; + color: #aaa; + cursor: default; +} + +.wizard > .steps .current a, +.wizard > .steps .current a:hover, +.wizard > .steps .current a:active +{ + background: #1AB394; + color: #fff; + cursor: default; +} + +.wizard > .steps .done a, +.wizard > .steps .done a:hover, +.wizard > .steps .done a:active +{ + background: #6fd1bd; + color: #fff; +} + +.wizard > .steps .error a, +.wizard > .steps .error a:hover, +.wizard > .steps .error a:active +{ + background: #ED5565 ; + color: #fff; +} + +.wizard > .content +{ + background: #eee; + display: block; + margin: 5px 5px 10px 5px; + min-height: 120px; + overflow: hidden; + position: relative; + width: auto; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.wizard-big.wizard > .content { + min-height: 320px; +} +.wizard.vertical > .content +{ + display: inline; + float: left; + margin: 0 2.5% 0.5em 2.5%; + width: 65%; +} + +.wizard > .content > .body +{ + float: left; + position: absolute; + width: 95%; + height: 95%; + padding: 2.5%; +} + +.wizard > .content > .body ul +{ + list-style: disc !important; +} + +.wizard > .content > .body ul > li +{ + display: list-item; +} + +.wizard > .content > .body > iframe +{ + border: 0 none; + width: 100%; + height: 100%; +} + +.wizard > .content > .body input +{ + display: block; + border: 1px solid #ccc; +} + +.wizard > .content > .body input[type="checkbox"] +{ + display: inline-block; +} + +.wizard > .content > .body input.error +{ + background: rgb(251, 227, 228); + border: 1px solid #fbc2c4; + color: #8a1f11; +} + +.wizard > .content > .body label +{ + display: inline-block; + margin-bottom: 0.5em; +} + +.wizard > .content > .body label.error +{ + color: #8a1f11; + display: inline-block; + margin-left: 1.5em; +} + +.wizard > .actions +{ + position: relative; + display: block; + text-align: right; + width: 100%; +} + +.wizard.vertical > .actions +{ + display: inline; + float: right; + margin: 0 2.5%; + width: 95%; +} + +.wizard > .actions > ul +{ + display: inline-block; + text-align: right; +} + +.wizard > .actions > ul > li +{ + margin: 0 0.5em; +} + +.wizard.vertical > .actions > ul > li +{ + margin: 0 0 0 1em; +} + +.wizard > .actions a, +.wizard > .actions a:hover, +.wizard > .actions a:active +{ + background: #1AB394; + color: #fff; + display: block; + padding: 0.5em 1em; + text-decoration: none; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.wizard > .actions .disabled a, +.wizard > .actions .disabled a:hover, +.wizard > .actions .disabled a:active +{ + background: #eee; + color: #aaa; +} + +.wizard > .loading +{ +} + +.wizard > .loading .spinner +{ +} + + + +/* + Tabcontrol +*/ + +.tabcontrol > .steps +{ + position: relative; + display: block; + width: 100%; +} + +.tabcontrol > .steps > ul +{ + position: relative; + margin: 6px 0 0 0; + top: 1px; + z-index: 1; +} + +.tabcontrol > .steps > ul > li +{ + float: left; + margin: 5px 2px 0 0; + padding: 1px; + + -webkit-border-top-left-radius: 5px; + -webkit-border-top-right-radius: 5px; + -moz-border-radius-topleft: 5px; + -moz-border-radius-topright: 5px; + border-top-left-radius: 5px; + border-top-right-radius: 5px; +} + +.tabcontrol > .steps > ul > li:hover +{ + background: #edecec; + border: 1px solid #bbb; + padding: 0; +} + +.tabcontrol > .steps > ul > li.current +{ + background: #fff; + border: 1px solid #bbb; + border-bottom: 0 none; + padding: 0 0 1px 0; + margin-top: 0; +} + +.tabcontrol > .steps > ul > li > a +{ + color: #5f5f5f; + display: inline-block; + border: 0 none; + margin: 0; + padding: 10px 30px; + text-decoration: none; +} + +.tabcontrol > .steps > ul > li > a:hover +{ + text-decoration: none; +} + +.tabcontrol > .steps > ul > li.current > a +{ + padding: 15px 30px 10px 30px; +} + +.tabcontrol > .content +{ + position: relative; + display: inline-block; + width: 100%; + height: 35em; + overflow: hidden; + border-top: 1px solid #bbb; + padding-top: 20px; +} + +.tabcontrol > .content > .body +{ + float: left; + position: absolute; + width: 95%; + height: 95%; + padding: 2.5%; +} + +.tabcontrol > .content > .body ul +{ + list-style: disc !important; +} + +.tabcontrol > .content > .body ul > li +{ + display: list-item; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/summernote/font/summernote.woff b/novel-admin/src/main/resources/static/css/plugins/summernote/font/summernote.woff new file mode 100644 index 0000000000000000000000000000000000000000..2b21d9d89435b271686872ebd03f3acaf7ad1ed0 GIT binary patch literal 10196 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 Ae*gdg literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/summernote/summernote-0.8.8.css b/novel-admin/src/main/resources/static/css/plugins/summernote/summernote-0.8.8.css new file mode 100644 index 0000000..4971a21 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/summernote/summernote-0.8.8.css @@ -0,0 +1 @@ +@font-face{font-family:"summernote";font-style:normal;font-weight:normal;src:url("./font/summernote.eot?0d0d5fac99cc8774d89eb08b1a8323c4");src:url("./font/summernote.eot?#iefix") format("embedded-opentype"),url("./font/summernote.woff?0d0d5fac99cc8774d89eb08b1a8323c4") format("woff"),url("./font/summernote.ttf?0d0d5fac99cc8774d89eb08b1a8323c4") format("truetype")}[class^="note-icon-"]:before,[class*=" note-icon-"]:before{display:inline-block;font:normal normal normal 14px summernote;font-size:inherit;-webkit-font-smoothing:antialiased;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;speak:none;-moz-osx-font-smoothing:grayscale}.note-icon-align-center:before,.note-icon-align-indent:before,.note-icon-align-justify:before,.note-icon-align-left:before,.note-icon-align-outdent:before,.note-icon-align-right:before,.note-icon-align:before,.note-icon-arrow-circle-down:before,.note-icon-arrow-circle-left:before,.note-icon-arrow-circle-right:before,.note-icon-arrow-circle-up:before,.note-icon-arrows-alt:before,.note-icon-arrows-h:before,.note-icon-arrows-v:before,.note-icon-bold:before,.note-icon-caret:before,.note-icon-chain-broken:before,.note-icon-circle:before,.note-icon-close:before,.note-icon-code:before,.note-icon-col-after:before,.note-icon-col-before:before,.note-icon-col-remove:before,.note-icon-eraser:before,.note-icon-font:before,.note-icon-frame:before,.note-icon-italic:before,.note-icon-link:before,.note-icon-magic:before,.note-icon-menu-check:before,.note-icon-minus:before,.note-icon-orderedlist:before,.note-icon-pencil:before,.note-icon-picture:before,.note-icon-question:before,.note-icon-redo:before,.note-icon-row-above:before,.note-icon-row-below:before,.note-icon-row-remove:before,.note-icon-special-character:before,.note-icon-square:before,.note-icon-strikethrough:before,.note-icon-subscript:before,.note-icon-summernote:before,.note-icon-superscript:before,.note-icon-table:before,.note-icon-text-height:before,.note-icon-trash:before,.note-icon-underline:before,.note-icon-undo:before,.note-icon-unorderedlist:before,.note-icon-video:before{display:inline-block;font-family:"summernote";font-style:normal;font-weight:normal;text-decoration:inherit}.note-icon-align-center:before{content:"\f101"}.note-icon-align-indent:before{content:"\f102"}.note-icon-align-justify:before{content:"\f103"}.note-icon-align-left:before{content:"\f104"}.note-icon-align-outdent:before{content:"\f105"}.note-icon-align-right:before{content:"\f106"}.note-icon-align:before{content:"\f107"}.note-icon-arrow-circle-down:before{content:"\f108"}.note-icon-arrow-circle-left:before{content:"\f109"}.note-icon-arrow-circle-right:before{content:"\f10a"}.note-icon-arrow-circle-up:before{content:"\f10b"}.note-icon-arrows-alt:before{content:"\f10c"}.note-icon-arrows-h:before{content:"\f10d"}.note-icon-arrows-v:before{content:"\f10e"}.note-icon-bold:before{content:"\f10f"}.note-icon-caret:before{content:"\f110"}.note-icon-chain-broken:before{content:"\f111"}.note-icon-circle:before{content:"\f112"}.note-icon-close:before{content:"\f113"}.note-icon-code:before{content:"\f114"}.note-icon-col-after:before{content:"\f115"}.note-icon-col-before:before{content:"\f116"}.note-icon-col-remove:before{content:"\f117"}.note-icon-eraser:before{content:"\f118"}.note-icon-font:before{content:"\f119"}.note-icon-frame:before{content:"\f11a"}.note-icon-italic:before{content:"\f11b"}.note-icon-link:before{content:"\f11c"}.note-icon-magic:before{content:"\f11d"}.note-icon-menu-check:before{content:"\f11e"}.note-icon-minus:before{content:"\f11f"}.note-icon-orderedlist:before{content:"\f120"}.note-icon-pencil:before{content:"\f121"}.note-icon-picture:before{content:"\f122"}.note-icon-question:before{content:"\f123"}.note-icon-redo:before{content:"\f124"}.note-icon-row-above:before{content:"\f125"}.note-icon-row-below:before{content:"\f126"}.note-icon-row-remove:before{content:"\f127"}.note-icon-special-character:before{content:"\f128"}.note-icon-square:before{content:"\f129"}.note-icon-strikethrough:before{content:"\f12a"}.note-icon-subscript:before{content:"\f12b"}.note-icon-summernote:before{content:"\f12c"}.note-icon-superscript:before{content:"\f12d"}.note-icon-table:before{content:"\f12e"}.note-icon-text-height:before{content:"\f12f"}.note-icon-trash:before{content:"\f130"}.note-icon-underline:before{content:"\f131"}.note-icon-undo:before{content:"\f132"}.note-icon-unorderedlist:before{content:"\f133"}.note-icon-video:before{content:"\f134"}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:white;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:bold;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:0}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area img.note-float-left{margin-right:10px}.note-editor .note-editing-area img.note-float-right{margin-left:10px}.note-editor.note-frame{border:1px solid #a9a9a9}.note-editor.note-frame.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable{padding:10px;overflow:auto;color:#000;background-color:#fff}.note-editor.note-frame .note-editing-area .note-editable[contenteditable="false"]{background-color:#e5e5e5}.note-editor.note-frame .note-editing-area .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-editor.note-frame.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%!important}.note-editor.note-frame.fullscreen .note-editable{background-color:white}.note-editor.note-frame.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-statusbar{background-color:#f5f5f5;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.note-editor.note-frame .note-statusbar .note-resizebar{width:100%;height:8px;padding-top:1px;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-editor.note-frame .note-placeholder{padding:10px}.note-popover.popover{max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px!important}.note-popover .popover-content,.panel-heading.note-toolbar{padding:0 0 5px 5px;margin:0}.note-popover .popover-content>.btn-group,.panel-heading.note-toolbar>.btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .popover-content .btn-group .note-table,.panel-heading.note-toolbar .btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute!important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative!important;z-index:1;width:5em;height:5em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute!important;z-index:2;width:1em;height:1em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .note-style h1,.panel-heading.note-toolbar .note-style h1,.note-popover .popover-content .note-style h2,.panel-heading.note-toolbar .note-style h2,.note-popover .popover-content .note-style h3,.panel-heading.note-toolbar .note-style h3,.note-popover .popover-content .note-style h4,.panel-heading.note-toolbar .note-style h4,.note-popover .popover-content .note-style h5,.panel-heading.note-toolbar .note-style h5,.note-popover .popover-content .note-style h6,.panel-heading.note-toolbar .note-style h6,.note-popover .popover-content .note-style blockquote,.panel-heading.note-toolbar .note-style blockquote{margin:0}.note-popover .popover-content .note-color .dropdown-toggle,.panel-heading.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .dropdown-menu,.panel-heading.note-toolbar .note-color .dropdown-menu{min-width:337px}.note-popover .popover-content .note-color .dropdown-menu .note-palette,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette{display:inline-block;width:160px;margin:0}.note-popover .popover-content .note-color .dropdown-menu .note-palette:first-child,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette:first-child{margin:0 5px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-palette-title,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset{width:100%;padding:0 3px;margin:3px;font-size:11px;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-row,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset:hover,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset:hover{background:#eee}.note-popover .popover-content .note-para .dropdown-menu,.panel-heading.note-toolbar .note-para .dropdown-menu{min-width:216px;padding:5px}.note-popover .popover-content .note-para .dropdown-menu>div:first-child,.panel-heading.note-toolbar .note-para .dropdown-menu>div:first-child{margin-right:5px}.note-popover .popover-content .dropdown-menu,.panel-heading.note-toolbar .dropdown-menu{min-width:90px}.note-popover .popover-content .dropdown-menu.right,.panel-heading.note-toolbar .dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .dropdown-menu.right::before,.panel-heading.note-toolbar .dropdown-menu.right::before{right:9px;left:auto!important}.note-popover .popover-content .dropdown-menu.right::after,.panel-heading.note-toolbar .dropdown-menu.right::after{right:10px;left:auto!important}.note-popover .popover-content .dropdown-menu.note-check li a i,.panel-heading.note-toolbar .dropdown-menu.note-check li a i{color:deepskyblue;visibility:hidden}.note-popover .popover-content .dropdown-menu.note-check li a.checked i,.panel-heading.note-toolbar .dropdown-menu.note-check li a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.panel-heading.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.panel-heading.note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.panel-heading.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #fff}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.panel-heading.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #000}.note-dialog>div{display:none}.note-dialog .form-group{margin-right:0;margin-left:0}.note-dialog .note-modal-form{margin:0}.note-dialog .note-image-dialog .note-dropzone{min-height:100px;margin-bottom:10px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed lightgray}@-moz-document url-prefix(){.note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid black}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:black;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:white;border:1px solid black}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:white;background-color:black;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{max-height:150px;padding:3px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block!important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:white;text-decoration:none;white-space:nowrap;cursor:pointer;background-color:#428bca;outline:0} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/css/plugins/summernote/summernote-bs3.css b/novel-admin/src/main/resources/static/css/plugins/summernote/summernote-bs3.css new file mode 100644 index 0000000..8bf772b --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/summernote/summernote-bs3.css @@ -0,0 +1,5972 @@ +.note-editor { + /*! normalize.css v2.1.3 | MIT License | git.io/normalize */ + +} +.note-editor article, +.note-editor aside, +.note-editor details, +.note-editor figcaption, +.note-editor figure, +.note-editor footer, +.note-editor header, +.note-editor hgroup, +.note-editor main, +.note-editor nav, +.note-editor section, +.note-editor summary { + display: block; +} +.note-editor audio, +.note-editor canvas, +.note-editor video { + display: inline-block; +} +.note-editor audio:not([controls]) { + display: none; + height: 0; +} +.note-editor [hidden], +.note-editor template { + display: none; +} +.note-editor html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +.note-editor body { + margin: 0; +} +.note-editor a { + background: transparent; +} +.note-editor a:focus { + outline: thin dotted; +} +.note-editor a:active, +.note-editor a:hover { + outline: 0; +} +.note-editor h1 { + font-size: 2em; + margin: 0.67em 0; +} +.note-editor abbr[title] { + border-bottom: 1px dotted; +} +.note-editor b, +.note-editor strong { + font-weight: bold; +} +.note-editor dfn { + font-style: italic; +} +.note-editor hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +.note-editor mark { + background: #ff0; + color: #000; +} +.note-editor code, +.note-editor kbd, +.note-editor pre, +.note-editor samp { + font-family: monospace, serif; + font-size: 1em; +} +.note-editor pre { + white-space: pre-wrap; +} +.note-editor q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} +.note-editor small { + font-size: 80%; +} +.note-editor sub, +.note-editor sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +.note-editor sup { + top: -0.5em; +} +.note-editor sub { + bottom: -0.25em; +} +.note-editor img { + border: 0; +} +.note-editor svg:not(:root) { + overflow: hidden; +} +.note-editor figure { + margin: 0; +} +.note-editor fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +.note-editor legend { + border: 0; + padding: 0; +} +.note-editor button, +.note-editor input, +.note-editor select, +.note-editor textarea { + font-family: inherit; + font-size: 100%; + margin: 0; +} +.note-editor button, +.note-editor input { + line-height: normal; +} +.note-editor button, +.note-editor select { + text-transform: none; +} +.note-editor button, +.note-editor html input[type="button"], +.note-editor input[type="reset"], +.note-editor input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +.note-editor button[disabled], +.note-editor html input[disabled] { + cursor: default; +} +.note-editor input[type="checkbox"], +.note-editor input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +.note-editor input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +.note-editor input[type="search"]::-webkit-search-cancel-button, +.note-editor input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +.note-editor button::-moz-focus-inner, +.note-editor input::-moz-focus-inner { + border: 0; + padding: 0; +} +.note-editor textarea { + overflow: auto; + vertical-align: top; +} +.note-editor table { + border-collapse: collapse; + border-spacing: 0; +} +@media print { + .note-editor * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + .note-editor a, + .note-editor a:visited { + text-decoration: underline; + } + .note-editor a[href]:after { + content: " (" attr(href) ")"; + } + .note-editor abbr[title]:after { + content: " (" attr(title) ")"; + } + .note-editor .ir a:after, + .note-editor a[href^="javascript:"]:after, + .note-editor a[href^="#"]:after { + content: ""; + } + .note-editor pre, + .note-editor blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + .note-editor thead { + display: table-header-group; + } + .note-editor tr, + .note-editor img { + page-break-inside: avoid; + } + .note-editor img { + max-width: 100% !important; + } + @page { + margin: 2cm .5cm; + } + .note-editor p, + .note-editor h2, + .note-editor h3 { + orphans: 3; + widows: 3; + } + .note-editor h2, + .note-editor h3 { + page-break-after: avoid; + } + .note-editor .navbar { + display: none; + } + .note-editor .table td, + .note-editor .table th { + background-color: #fff !important; + } + .note-editor .btn > .caret, + .note-editor .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .note-editor .label { + border: 1px solid #000; + } + .note-editor .table { + border-collapse: collapse !important; + } + .note-editor .table-bordered th, + .note-editor .table-bordered td { + border: 1px solid #ddd !important; + } +} +.note-editor *, +.note-editor *:before, +.note-editor *:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.note-editor html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +.note-editor body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.428571429; + color: #333333; + background-color: #ffffff; +} +.note-editor input, +.note-editor button, +.note-editor select, +.note-editor textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +.note-editor a { + color: #428bca; + text-decoration: none; +} +.note-editor a:hover, +.note-editor a:focus { + color: #2a6496; + text-decoration: underline; +} +.note-editor a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.note-editor img { + vertical-align: middle; +} +.note-editor .img-responsive { + display: block; + max-width: 100%; + height: auto; +} +.note-editor .img-rounded { + border-radius: 6px; +} +.note-editor .img-thumbnail { + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; +} +.note-editor .img-circle { + border-radius: 50%; +} +.note-editor hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} +.note-editor .sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.note-editor p { + margin: 0 0 10px; +} +.note-editor .lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 200; + line-height: 1.4; +} +@media (min-width: 768px) { + .note-editor .lead { + font-size: 21px; + } +} +.note-editor small, +.note-editor .small { + font-size: 85%; +} +.note-editor cite { + font-style: normal; +} +.note-editor .text-muted { + color: #999999; +} +.note-editor .text-primary { + color: #428bca; +} +.note-editor .text-primary:hover { + color: #3071a9; +} +.note-editor .text-warning { + color: #c09853; +} +.note-editor .text-warning:hover { + color: #a47e3c; +} +.note-editor .text-danger { + color: #b94a48; +} +.note-editor .text-danger:hover { + color: #953b39; +} +.note-editor .text-success { + color: #468847; +} +.note-editor .text-success:hover { + color: #356635; +} +.note-editor .text-info { + color: #3a87ad; +} +.note-editor .text-info:hover { + color: #2d6987; +} +.note-editor .text-left { + text-align: left; +} +.note-editor .text-right { + text-align: right; +} +.note-editor .text-center { + text-align: center; +} +.note-editor h1, +.note-editor h2, +.note-editor h3, +.note-editor h4, +.note-editor h5, +.note-editor h6, +.note-editor .h1, +.note-editor .h2, +.note-editor .h3, +.note-editor .h4, +.note-editor .h5, +.note-editor .h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 500; + line-height: 1.1; + color: inherit; +} +.note-editor h1 small, +.note-editor h2 small, +.note-editor h3 small, +.note-editor h4 small, +.note-editor h5 small, +.note-editor h6 small, +.note-editor .h1 small, +.note-editor .h2 small, +.note-editor .h3 small, +.note-editor .h4 small, +.note-editor .h5 small, +.note-editor .h6 small, +.note-editor h1 .small, +.note-editor h2 .small, +.note-editor h3 .small, +.note-editor h4 .small, +.note-editor h5 .small, +.note-editor h6 .small, +.note-editor .h1 .small, +.note-editor .h2 .small, +.note-editor .h3 .small, +.note-editor .h4 .small, +.note-editor .h5 .small, +.note-editor .h6 .small { + font-weight: normal; + line-height: 1; + color: #999999; +} +.note-editor h1, +.note-editor h2, +.note-editor h3 { + margin-top: 20px; + margin-bottom: 10px; +} +.note-editor h1 small, +.note-editor h2 small, +.note-editor h3 small, +.note-editor h1 .small, +.note-editor h2 .small, +.note-editor h3 .small { + font-size: 65%; +} +.note-editor h4, +.note-editor h5, +.note-editor h6 { + margin-top: 10px; + margin-bottom: 10px; +} +.note-editor h4 small, +.note-editor h5 small, +.note-editor h6 small, +.note-editor h4 .small, +.note-editor h5 .small, +.note-editor h6 .small { + font-size: 75%; +} +.note-editor h1, +.note-editor .h1 { + font-size: 36px; +} +.note-editor h2, +.note-editor .h2 { + font-size: 30px; +} +.note-editor h3, +.note-editor .h3 { + font-size: 24px; +} +.note-editor h4, +.note-editor .h4 { + font-size: 18px; +} +.note-editor h5, +.note-editor .h5 { + font-size: 14px; +} +.note-editor h6, +.note-editor .h6 { + font-size: 12px; +} +.note-editor .page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eeeeee; +} +.note-editor ul, +.note-editor ol { + margin-top: 0; + margin-bottom: 10px; +} +.note-editor ul ul, +.note-editor ol ul, +.note-editor ul ol, +.note-editor ol ol { + margin-bottom: 0; +} +.note-editor .list-unstyled { + padding-left: 0; + list-style: none; +} +.note-editor .list-inline { + padding-left: 0; + list-style: none; +} +.note-editor .list-inline > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; +} +.note-editor dl { + margin-bottom: 20px; +} +.note-editor dt, +.note-editor dd { + line-height: 1.428571429; +} +.note-editor dt { + font-weight: bold; +} +.note-editor dd { + margin-left: 0; +} +@media (min-width: 768px) { + .note-editor .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .note-editor .dl-horizontal dd { + margin-left: 180px; + } + .note-editor .dl-horizontal dd:before, + .note-editor .dl-horizontal dd:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + + } + .note-editor .dl-horizontal dd:after { + clear: both; + } + .note-editor .dl-horizontal dd:before, + .note-editor .dl-horizontal dd:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + + } + .note-editor .dl-horizontal dd:after { + clear: both; + } +} +.note-editor abbr[title], +.note-editor abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} +.note-editor abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +.note-editor blockquote { + padding: 10px 20px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} +.note-editor blockquote p { + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} +.note-editor blockquote p:last-child { + margin-bottom: 0; +} +.note-editor blockquote small { + display: block; + line-height: 1.428571429; + color: #999999; +} +.note-editor blockquote small:before { + content: '\2014 \00A0'; +} +.note-editor blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} +.note-editor blockquote.pull-right p, +.note-editor blockquote.pull-right small, +.note-editor blockquote.pull-right .small { + text-align: right; +} +.note-editor blockquote.pull-right small:before, +.note-editor blockquote.pull-right .small:before { + content: ''; +} +.note-editor blockquote.pull-right small:after, +.note-editor blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} +.note-editor blockquote:before, +.note-editor blockquote:after { + content: ""; +} +.note-editor address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.428571429; +} +.note-editor code, +.note-editor kdb, +.note-editor pre, +.note-editor samp { + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; +} +.note-editor code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + white-space: nowrap; + border-radius: 4px; +} +.note-editor pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.428571429; + word-break: break-all; + word-wrap: break-word; + color: #333333; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} +.note-editor pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.note-editor .pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.note-editor .container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +.note-editor .container:before, +.note-editor .container:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .container:after { + clear: both; +} +.note-editor .container:before, +.note-editor .container:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .container:after { + clear: both; +} +.note-editor .row { + margin-left: -15px; + margin-right: -15px; +} +.note-editor .row:before, +.note-editor .row:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .row:after { + clear: both; +} +.note-editor .row:before, +.note-editor .row:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .row:after { + clear: both; +} +.note-editor .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; +} +.note-editor .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11 { + float: left; +} +.note-editor .col-xs-12 { + width: 100%; +} +.note-editor .col-xs-11 { + width: 91.66666666666666%; +} +.note-editor .col-xs-10 { + width: 83.33333333333334%; +} +.note-editor .col-xs-9 { + width: 75%; +} +.note-editor .col-xs-8 { + width: 66.66666666666666%; +} +.note-editor .col-xs-7 { + width: 58.333333333333336%; +} +.note-editor .col-xs-6 { + width: 50%; +} +.note-editor .col-xs-5 { + width: 41.66666666666667%; +} +.note-editor .col-xs-4 { + width: 33.33333333333333%; +} +.note-editor .col-xs-3 { + width: 25%; +} +.note-editor .col-xs-2 { + width: 16.666666666666664%; +} +.note-editor .col-xs-1 { + width: 8.333333333333332%; +} +.note-editor .col-xs-pull-12 { + right: 100%; +} +.note-editor .col-xs-pull-11 { + right: 91.66666666666666%; +} +.note-editor .col-xs-pull-10 { + right: 83.33333333333334%; +} +.note-editor .col-xs-pull-9 { + right: 75%; +} +.note-editor .col-xs-pull-8 { + right: 66.66666666666666%; +} +.note-editor .col-xs-pull-7 { + right: 58.333333333333336%; +} +.note-editor .col-xs-pull-6 { + right: 50%; +} +.note-editor .col-xs-pull-5 { + right: 41.66666666666667%; +} +.note-editor .col-xs-pull-4 { + right: 33.33333333333333%; +} +.note-editor .col-xs-pull-3 { + right: 25%; +} +.note-editor .col-xs-pull-2 { + right: 16.666666666666664%; +} +.note-editor .col-xs-pull-1 { + right: 8.333333333333332%; +} +.note-editor .col-xs-push-12 { + left: 100%; +} +.note-editor .col-xs-push-11 { + left: 91.66666666666666%; +} +.note-editor .col-xs-push-10 { + left: 83.33333333333334%; +} +.note-editor .col-xs-push-9 { + left: 75%; +} +.note-editor .col-xs-push-8 { + left: 66.66666666666666%; +} +.note-editor .col-xs-push-7 { + left: 58.333333333333336%; +} +.note-editor .col-xs-push-6 { + left: 50%; +} +.note-editor .col-xs-push-5 { + left: 41.66666666666667%; +} +.note-editor .col-xs-push-4 { + left: 33.33333333333333%; +} +.note-editor .col-xs-push-3 { + left: 25%; +} +.note-editor .col-xs-push-2 { + left: 16.666666666666664%; +} +.note-editor .col-xs-push-1 { + left: 8.333333333333332%; +} +.note-editor .col-xs-offset-12 { + margin-left: 100%; +} +.note-editor .col-xs-offset-11 { + margin-left: 91.66666666666666%; +} +.note-editor .col-xs-offset-10 { + margin-left: 83.33333333333334%; +} +.note-editor .col-xs-offset-9 { + margin-left: 75%; +} +.note-editor .col-xs-offset-8 { + margin-left: 66.66666666666666%; +} +.note-editor .col-xs-offset-7 { + margin-left: 58.333333333333336%; +} +.note-editor .col-xs-offset-6 { + margin-left: 50%; +} +.note-editor .col-xs-offset-5 { + margin-left: 41.66666666666667%; +} +.note-editor .col-xs-offset-4 { + margin-left: 33.33333333333333%; +} +.note-editor .col-xs-offset-3 { + margin-left: 25%; +} +.note-editor .col-xs-offset-2 { + margin-left: 16.666666666666664%; +} +.note-editor .col-xs-offset-1 { + margin-left: 8.333333333333332%; +} +@media (min-width: 768px) { + .note-editor .container { + width: 750px; + } + .note-editor .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11 { + float: left; + } + .note-editor .col-sm-12 { + width: 100%; + } + .note-editor .col-sm-11 { + width: 91.66666666666666%; + } + .note-editor .col-sm-10 { + width: 83.33333333333334%; + } + .note-editor .col-sm-9 { + width: 75%; + } + .note-editor .col-sm-8 { + width: 66.66666666666666%; + } + .note-editor .col-sm-7 { + width: 58.333333333333336%; + } + .note-editor .col-sm-6 { + width: 50%; + } + .note-editor .col-sm-5 { + width: 41.66666666666667%; + } + .note-editor .col-sm-4 { + width: 33.33333333333333%; + } + .note-editor .col-sm-3 { + width: 25%; + } + .note-editor .col-sm-2 { + width: 16.666666666666664%; + } + .note-editor .col-sm-1 { + width: 8.333333333333332%; + } + .note-editor .col-sm-pull-12 { + right: 100%; + } + .note-editor .col-sm-pull-11 { + right: 91.66666666666666%; + } + .note-editor .col-sm-pull-10 { + right: 83.33333333333334%; + } + .note-editor .col-sm-pull-9 { + right: 75%; + } + .note-editor .col-sm-pull-8 { + right: 66.66666666666666%; + } + .note-editor .col-sm-pull-7 { + right: 58.333333333333336%; + } + .note-editor .col-sm-pull-6 { + right: 50%; + } + .note-editor .col-sm-pull-5 { + right: 41.66666666666667%; + } + .note-editor .col-sm-pull-4 { + right: 33.33333333333333%; + } + .note-editor .col-sm-pull-3 { + right: 25%; + } + .note-editor .col-sm-pull-2 { + right: 16.666666666666664%; + } + .note-editor .col-sm-pull-1 { + right: 8.333333333333332%; + } + .note-editor .col-sm-push-12 { + left: 100%; + } + .note-editor .col-sm-push-11 { + left: 91.66666666666666%; + } + .note-editor .col-sm-push-10 { + left: 83.33333333333334%; + } + .note-editor .col-sm-push-9 { + left: 75%; + } + .note-editor .col-sm-push-8 { + left: 66.66666666666666%; + } + .note-editor .col-sm-push-7 { + left: 58.333333333333336%; + } + .note-editor .col-sm-push-6 { + left: 50%; + } + .note-editor .col-sm-push-5 { + left: 41.66666666666667%; + } + .note-editor .col-sm-push-4 { + left: 33.33333333333333%; + } + .note-editor .col-sm-push-3 { + left: 25%; + } + .note-editor .col-sm-push-2 { + left: 16.666666666666664%; + } + .note-editor .col-sm-push-1 { + left: 8.333333333333332%; + } + .note-editor .col-sm-offset-12 { + margin-left: 100%; + } + .note-editor .col-sm-offset-11 { + margin-left: 91.66666666666666%; + } + .note-editor .col-sm-offset-10 { + margin-left: 83.33333333333334%; + } + .note-editor .col-sm-offset-9 { + margin-left: 75%; + } + .note-editor .col-sm-offset-8 { + margin-left: 66.66666666666666%; + } + .note-editor .col-sm-offset-7 { + margin-left: 58.333333333333336%; + } + .note-editor .col-sm-offset-6 { + margin-left: 50%; + } + .note-editor .col-sm-offset-5 { + margin-left: 41.66666666666667%; + } + .note-editor .col-sm-offset-4 { + margin-left: 33.33333333333333%; + } + .note-editor .col-sm-offset-3 { + margin-left: 25%; + } + .note-editor .col-sm-offset-2 { + margin-left: 16.666666666666664%; + } + .note-editor .col-sm-offset-1 { + margin-left: 8.333333333333332%; + } +} +@media (min-width: 992px) { + .note-editor .container { + width: 970px; + } + .note-editor .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11 { + float: left; + } + .note-editor .col-md-12 { + width: 100%; + } + .note-editor .col-md-11 { + width: 91.66666666666666%; + } + .note-editor .col-md-10 { + width: 83.33333333333334%; + } + .note-editor .col-md-9 { + width: 75%; + } + .note-editor .col-md-8 { + width: 66.66666666666666%; + } + .note-editor .col-md-7 { + width: 58.333333333333336%; + } + .note-editor .col-md-6 { + width: 50%; + } + .note-editor .col-md-5 { + width: 41.66666666666667%; + } + .note-editor .col-md-4 { + width: 33.33333333333333%; + } + .note-editor .col-md-3 { + width: 25%; + } + .note-editor .col-md-2 { + width: 16.666666666666664%; + } + .note-editor .col-md-1 { + width: 8.333333333333332%; + } + .note-editor .col-md-pull-12 { + right: 100%; + } + .note-editor .col-md-pull-11 { + right: 91.66666666666666%; + } + .note-editor .col-md-pull-10 { + right: 83.33333333333334%; + } + .note-editor .col-md-pull-9 { + right: 75%; + } + .note-editor .col-md-pull-8 { + right: 66.66666666666666%; + } + .note-editor .col-md-pull-7 { + right: 58.333333333333336%; + } + .note-editor .col-md-pull-6 { + right: 50%; + } + .note-editor .col-md-pull-5 { + right: 41.66666666666667%; + } + .note-editor .col-md-pull-4 { + right: 33.33333333333333%; + } + .note-editor .col-md-pull-3 { + right: 25%; + } + .note-editor .col-md-pull-2 { + right: 16.666666666666664%; + } + .note-editor .col-md-pull-1 { + right: 8.333333333333332%; + } + .note-editor .col-md-push-12 { + left: 100%; + } + .note-editor .col-md-push-11 { + left: 91.66666666666666%; + } + .note-editor .col-md-push-10 { + left: 83.33333333333334%; + } + .note-editor .col-md-push-9 { + left: 75%; + } + .note-editor .col-md-push-8 { + left: 66.66666666666666%; + } + .note-editor .col-md-push-7 { + left: 58.333333333333336%; + } + .note-editor .col-md-push-6 { + left: 50%; + } + .note-editor .col-md-push-5 { + left: 41.66666666666667%; + } + .note-editor .col-md-push-4 { + left: 33.33333333333333%; + } + .note-editor .col-md-push-3 { + left: 25%; + } + .note-editor .col-md-push-2 { + left: 16.666666666666664%; + } + .note-editor .col-md-push-1 { + left: 8.333333333333332%; + } + .note-editor .col-md-offset-12 { + margin-left: 100%; + } + .note-editor .col-md-offset-11 { + margin-left: 91.66666666666666%; + } + .note-editor .col-md-offset-10 { + margin-left: 83.33333333333334%; + } + .note-editor .col-md-offset-9 { + margin-left: 75%; + } + .note-editor .col-md-offset-8 { + margin-left: 66.66666666666666%; + } + .note-editor .col-md-offset-7 { + margin-left: 58.333333333333336%; + } + .note-editor .col-md-offset-6 { + margin-left: 50%; + } + .note-editor .col-md-offset-5 { + margin-left: 41.66666666666667%; + } + .note-editor .col-md-offset-4 { + margin-left: 33.33333333333333%; + } + .note-editor .col-md-offset-3 { + margin-left: 25%; + } + .note-editor .col-md-offset-2 { + margin-left: 16.666666666666664%; + } + .note-editor .col-md-offset-1 { + margin-left: 8.333333333333332%; + } +} +@media (min-width: 1200px) { + .note-editor .container { + width: 1170px; + } + .note-editor .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11 { + float: left; + } + .note-editor .col-lg-12 { + width: 100%; + } + .note-editor .col-lg-11 { + width: 91.66666666666666%; + } + .note-editor .col-lg-10 { + width: 83.33333333333334%; + } + .note-editor .col-lg-9 { + width: 75%; + } + .note-editor .col-lg-8 { + width: 66.66666666666666%; + } + .note-editor .col-lg-7 { + width: 58.333333333333336%; + } + .note-editor .col-lg-6 { + width: 50%; + } + .note-editor .col-lg-5 { + width: 41.66666666666667%; + } + .note-editor .col-lg-4 { + width: 33.33333333333333%; + } + .note-editor .col-lg-3 { + width: 25%; + } + .note-editor .col-lg-2 { + width: 16.666666666666664%; + } + .note-editor .col-lg-1 { + width: 8.333333333333332%; + } + .note-editor .col-lg-pull-12 { + right: 100%; + } + .note-editor .col-lg-pull-11 { + right: 91.66666666666666%; + } + .note-editor .col-lg-pull-10 { + right: 83.33333333333334%; + } + .note-editor .col-lg-pull-9 { + right: 75%; + } + .note-editor .col-lg-pull-8 { + right: 66.66666666666666%; + } + .note-editor .col-lg-pull-7 { + right: 58.333333333333336%; + } + .note-editor .col-lg-pull-6 { + right: 50%; + } + .note-editor .col-lg-pull-5 { + right: 41.66666666666667%; + } + .note-editor .col-lg-pull-4 { + right: 33.33333333333333%; + } + .note-editor .col-lg-pull-3 { + right: 25%; + } + .note-editor .col-lg-pull-2 { + right: 16.666666666666664%; + } + .note-editor .col-lg-pull-1 { + right: 8.333333333333332%; + } + .note-editor .col-lg-push-12 { + left: 100%; + } + .note-editor .col-lg-push-11 { + left: 91.66666666666666%; + } + .note-editor .col-lg-push-10 { + left: 83.33333333333334%; + } + .note-editor .col-lg-push-9 { + left: 75%; + } + .note-editor .col-lg-push-8 { + left: 66.66666666666666%; + } + .note-editor .col-lg-push-7 { + left: 58.333333333333336%; + } + .note-editor .col-lg-push-6 { + left: 50%; + } + .note-editor .col-lg-push-5 { + left: 41.66666666666667%; + } + .note-editor .col-lg-push-4 { + left: 33.33333333333333%; + } + .note-editor .col-lg-push-3 { + left: 25%; + } + .note-editor .col-lg-push-2 { + left: 16.666666666666664%; + } + .note-editor .col-lg-push-1 { + left: 8.333333333333332%; + } + .note-editor .col-lg-offset-12 { + margin-left: 100%; + } + .note-editor .col-lg-offset-11 { + margin-left: 91.66666666666666%; + } + .note-editor .col-lg-offset-10 { + margin-left: 83.33333333333334%; + } + .note-editor .col-lg-offset-9 { + margin-left: 75%; + } + .note-editor .col-lg-offset-8 { + margin-left: 66.66666666666666%; + } + .note-editor .col-lg-offset-7 { + margin-left: 58.333333333333336%; + } + .note-editor .col-lg-offset-6 { + margin-left: 50%; + } + .note-editor .col-lg-offset-5 { + margin-left: 41.66666666666667%; + } + .note-editor .col-lg-offset-4 { + margin-left: 33.33333333333333%; + } + .note-editor .col-lg-offset-3 { + margin-left: 25%; + } + .note-editor .col-lg-offset-2 { + margin-left: 16.666666666666664%; + } + .note-editor .col-lg-offset-1 { + margin-left: 8.333333333333332%; + } +} +.note-editor table { + max-width: 100%; + background-color: transparent; +} +.note-editor th { + text-align: left; +} +.note-editor .table { + width: 100%; + margin-bottom: 20px; +} +.note-editor .table > thead > tr > th, +.note-editor .table > tbody > tr > th, +.note-editor .table > tfoot > tr > th, +.note-editor .table > thead > tr > td, +.note-editor .table > tbody > tr > td, +.note-editor .table > tfoot > tr > td { + padding: 8px; + line-height: 1.428571429; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.note-editor .table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} +.note-editor .table > caption + thead > tr:first-child > th, +.note-editor .table > colgroup + thead > tr:first-child > th, +.note-editor .table > thead:first-child > tr:first-child > th, +.note-editor .table > caption + thead > tr:first-child > td, +.note-editor .table > colgroup + thead > tr:first-child > td, +.note-editor .table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.note-editor .table > tbody + tbody { + border-top: 2px solid #dddddd; +} +.note-editor .table .table { + background-color: #ffffff; +} +.note-editor .table-condensed > thead > tr > th, +.note-editor .table-condensed > tbody > tr > th, +.note-editor .table-condensed > tfoot > tr > th, +.note-editor .table-condensed > thead > tr > td, +.note-editor .table-condensed > tbody > tr > td, +.note-editor .table-condensed > tfoot > tr > td { + padding: 5px; +} +.note-editor .table-bordered { + border: 1px solid #dddddd; +} +.note-editor .table-bordered > thead > tr > th, +.note-editor .table-bordered > tbody > tr > th, +.note-editor .table-bordered > tfoot > tr > th, +.note-editor .table-bordered > thead > tr > td, +.note-editor .table-bordered > tbody > tr > td, +.note-editor .table-bordered > tfoot > tr > td { + border: 1px solid #dddddd; +} +.note-editor .table-bordered > thead > tr > th, +.note-editor .table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.note-editor .table-striped > tbody > tr:nth-child(odd) > td, +.note-editor .table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} +.note-editor .table-hover > tbody > tr:hover > td, +.note-editor .table-hover > tbody > tr:hover > th { + background-color: #f5f5f5; +} +.note-editor table col[class*="col-"] { + float: none; + display: table-column; +} +.note-editor table td[class*="col-"], +.note-editor table th[class*="col-"] { + float: none; + display: table-cell; +} +.note-editor .table > thead > tr > td.active, +.note-editor .table > tbody > tr > td.active, +.note-editor .table > tfoot > tr > td.active, +.note-editor .table > thead > tr > th.active, +.note-editor .table > tbody > tr > th.active, +.note-editor .table > tfoot > tr > th.active, +.note-editor .table > thead > tr.active > td, +.note-editor .table > tbody > tr.active > td, +.note-editor .table > tfoot > tr.active > td, +.note-editor .table > thead > tr.active > th, +.note-editor .table > tbody > tr.active > th, +.note-editor .table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.note-editor .table > thead > tr > td.success, +.note-editor .table > tbody > tr > td.success, +.note-editor .table > tfoot > tr > td.success, +.note-editor .table > thead > tr > th.success, +.note-editor .table > tbody > tr > th.success, +.note-editor .table > tfoot > tr > th.success, +.note-editor .table > thead > tr.success > td, +.note-editor .table > tbody > tr.success > td, +.note-editor .table > tfoot > tr.success > td, +.note-editor .table > thead > tr.success > th, +.note-editor .table > tbody > tr.success > th, +.note-editor .table > tfoot > tr.success > th { + background-color: #dff0d8; + border-color: #d6e9c6; +} +.note-editor .table-hover > tbody > tr > td.success:hover, +.note-editor .table-hover > tbody > tr > th.success:hover, +.note-editor .table-hover > tbody > tr.success:hover > td, +.note-editor .table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; + border-color: #c9e2b3; +} +.note-editor .table > thead > tr > td.danger, +.note-editor .table > tbody > tr > td.danger, +.note-editor .table > tfoot > tr > td.danger, +.note-editor .table > thead > tr > th.danger, +.note-editor .table > tbody > tr > th.danger, +.note-editor .table > tfoot > tr > th.danger, +.note-editor .table > thead > tr.danger > td, +.note-editor .table > tbody > tr.danger > td, +.note-editor .table > tfoot > tr.danger > td, +.note-editor .table > thead > tr.danger > th, +.note-editor .table > tbody > tr.danger > th, +.note-editor .table > tfoot > tr.danger > th { + background-color: #f2dede; + border-color: #ebccd1; +} +.note-editor .table-hover > tbody > tr > td.danger:hover, +.note-editor .table-hover > tbody > tr > th.danger:hover, +.note-editor .table-hover > tbody > tr.danger:hover > td, +.note-editor .table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; + border-color: #e4b9c0; +} +.note-editor .table > thead > tr > td.warning, +.note-editor .table > tbody > tr > td.warning, +.note-editor .table > tfoot > tr > td.warning, +.note-editor .table > thead > tr > th.warning, +.note-editor .table > tbody > tr > th.warning, +.note-editor .table > tfoot > tr > th.warning, +.note-editor .table > thead > tr.warning > td, +.note-editor .table > tbody > tr.warning > td, +.note-editor .table > tfoot > tr.warning > td, +.note-editor .table > thead > tr.warning > th, +.note-editor .table > tbody > tr.warning > th, +.note-editor .table > tfoot > tr.warning > th { + background-color: #fcf8e3; + border-color: #faebcc; +} +.note-editor .table-hover > tbody > tr > td.warning:hover, +.note-editor .table-hover > tbody > tr > th.warning:hover, +.note-editor .table-hover > tbody > tr.warning:hover > td, +.note-editor .table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; + border-color: #f7e1b5; +} +@media (max-width: 767px) { + .note-editor .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + overflow-x: scroll; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #dddddd; + -webkit-overflow-scrolling: touch; + } + .note-editor .table-responsive > .table { + margin-bottom: 0; + } + .note-editor .table-responsive > .table > thead > tr > th, + .note-editor .table-responsive > .table > tbody > tr > th, + .note-editor .table-responsive > .table > tfoot > tr > th, + .note-editor .table-responsive > .table > thead > tr > td, + .note-editor .table-responsive > .table > tbody > tr > td, + .note-editor .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .note-editor .table-responsive > .table-bordered { + border: 0; + } + .note-editor .table-responsive > .table-bordered > thead > tr > th:first-child, + .note-editor .table-responsive > .table-bordered > tbody > tr > th:first-child, + .note-editor .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .note-editor .table-responsive > .table-bordered > thead > tr > td:first-child, + .note-editor .table-responsive > .table-bordered > tbody > tr > td:first-child, + .note-editor .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .note-editor .table-responsive > .table-bordered > thead > tr > th:last-child, + .note-editor .table-responsive > .table-bordered > tbody > tr > th:last-child, + .note-editor .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .note-editor .table-responsive > .table-bordered > thead > tr > td:last-child, + .note-editor .table-responsive > .table-bordered > tbody > tr > td:last-child, + .note-editor .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .note-editor .table-responsive > .table-bordered > tbody > tr:last-child > th, + .note-editor .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .note-editor .table-responsive > .table-bordered > tbody > tr:last-child > td, + .note-editor .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +.note-editor fieldset { + padding: 0; + margin: 0; + border: 0; +} +.note-editor legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +.note-editor label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} +.note-editor input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.note-editor input[type="radio"], +.note-editor input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} +.note-editor input[type="file"] { + display: block; +} +.note-editor select[multiple], +.note-editor select[size] { + height: auto; +} +.note-editor select optgroup { + font-size: inherit; + font-style: inherit; + font-family: inherit; +} +.note-editor input[type="file"]:focus, +.note-editor input[type="radio"]:focus, +.note-editor input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.note-editor input[type="number"]::-webkit-outer-spin-button, +.note-editor input[type="number"]::-webkit-inner-spin-button { + height: auto; +} +.note-editor output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; +} +.note-editor .form-control:-moz-placeholder { + color: #999999; +} +.note-editor .form-control::-moz-placeholder { + color: #999999; +} +.note-editor .form-control:-ms-input-placeholder { + color: #999999; +} +.note-editor .form-control::-webkit-input-placeholder { + color: #999999; +} +.note-editor .form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; + background-color: #ffffff; + background-image: none; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.note-editor .form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); +} +.note-editor .form-control[disabled], +.note-editor .form-control[readonly], +fieldset[disabled] .note-editor .form-control { + cursor: not-allowed; + background-color: #eeeeee; +} +textarea.note-editor .form-control { + height: auto; +} +.note-editor .form-group { + margin-bottom: 15px; +} +.note-editor .radio, +.note-editor .checkbox { + display: block; + min-height: 20px; + margin-top: 10px; + margin-bottom: 10px; + padding-left: 20px; + vertical-align: middle; +} +.note-editor .radio label, +.note-editor .checkbox label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.note-editor .radio input[type="radio"], +.note-editor .radio-inline input[type="radio"], +.note-editor .checkbox input[type="checkbox"], +.note-editor .checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.note-editor .radio + .radio, +.note-editor .checkbox + .checkbox { + margin-top: -5px; +} +.note-editor .radio-inline, +.note-editor .checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.note-editor .radio-inline + .radio-inline, +.note-editor .checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +.note-editor input[type="radio"][disabled], +.note-editor input[type="checkbox"][disabled], +.note-editor .radio[disabled], +.note-editor .radio-inline[disabled], +.note-editor .checkbox[disabled], +.note-editor .checkbox-inline[disabled], +fieldset[disabled] .note-editor input[type="radio"], +fieldset[disabled] .note-editor input[type="checkbox"], +fieldset[disabled] .note-editor .radio, +fieldset[disabled] .note-editor .radio-inline, +fieldset[disabled] .note-editor .checkbox, +fieldset[disabled] .note-editor .checkbox-inline { + cursor: not-allowed; +} +.note-editor .input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.note-editor .input-sm { + height: 30px; + line-height: 30px; +} +textarea.note-editor .input-sm { + height: auto; +} +.note-editor .input-lg { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.note-editor .input-lg { + height: 45px; + line-height: 45px; +} +textarea.note-editor .input-lg { + height: auto; +} +.note-editor .has-warning .help-block, +.note-editor .has-warning .control-label { + color: #c09853; +} +.note-editor .has-warning .form-control { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.note-editor .has-warning .form-control:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} +.note-editor .has-warning .input-group-addon { + color: #c09853; + border-color: #c09853; + background-color: #fcf8e3; +} +.note-editor .has-error .help-block, +.note-editor .has-error .control-label { + color: #b94a48; +} +.note-editor .has-error .form-control { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.note-editor .has-error .form-control:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} +.note-editor .has-error .input-group-addon { + color: #b94a48; + border-color: #b94a48; + background-color: #f2dede; +} +.note-editor .has-success .help-block, +.note-editor .has-success .control-label { + color: #468847; +} +.note-editor .has-success .form-control { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.note-editor .has-success .form-control:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} +.note-editor .has-success .input-group-addon { + color: #468847; + border-color: #468847; + background-color: #dff0d8; +} +.note-editor .form-control-static { + margin-bottom: 0; +} +.note-editor .help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .note-editor .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .note-editor .form-inline .form-control { + display: inline-block; + } + .note-editor .form-inline .radio, + .note-editor .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + } + .note-editor .form-inline .radio input[type="radio"], + .note-editor .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} +.note-editor .form-horizontal .control-label, +.note-editor .form-horizontal .radio, +.note-editor .form-horizontal .checkbox, +.note-editor .form-horizontal .radio-inline, +.note-editor .form-horizontal .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; +} +.note-editor .form-horizontal .form-group { + margin-left: -15px; + margin-right: -15px; +} +.note-editor .form-horizontal .form-group:before, +.note-editor .form-horizontal .form-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .form-horizontal .form-group:after { + clear: both; +} +.note-editor .form-horizontal .form-group:before, +.note-editor .form-horizontal .form-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .form-horizontal .form-group:after { + clear: both; +} +.note-editor .form-horizontal .form-control-static { + padding-top: 7px; +} +@media (min-width: 768px) { + .note-editor .form-horizontal .control-label { + text-align: right; + } +} +.note-editor .btn { + display: inline-block; + margin-bottom: 0; + font-weight: normal; + text-align: center; + vertical-align: middle; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} +.note-editor .btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.note-editor .btn:hover, +.note-editor .btn:focus { + color: #333333; + text-decoration: none; +} +.note-editor .btn:active, +.note-editor .btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.note-editor .btn.disabled, +.note-editor .btn[disabled], +fieldset[disabled] .note-editor .btn { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} +.note-editor .btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} +.note-editor .btn-default:hover, +.note-editor .btn-default:focus, +.note-editor .btn-default:active, +.note-editor .btn-default.active, +.open .dropdown-toggle.note-editor .btn-default { + color: #333333; + background-color: #ebebeb; + border-color: #adadad; +} +.note-editor .btn-default:active, +.note-editor .btn-default.active, +.open .dropdown-toggle.note-editor .btn-default { + background-image: none; +} +.note-editor .btn-default.disabled, +.note-editor .btn-default[disabled], +fieldset[disabled] .note-editor .btn-default, +.note-editor .btn-default.disabled:hover, +.note-editor .btn-default[disabled]:hover, +fieldset[disabled] .note-editor .btn-default:hover, +.note-editor .btn-default.disabled:focus, +.note-editor .btn-default[disabled]:focus, +fieldset[disabled] .note-editor .btn-default:focus, +.note-editor .btn-default.disabled:active, +.note-editor .btn-default[disabled]:active, +fieldset[disabled] .note-editor .btn-default:active, +.note-editor .btn-default.disabled.active, +.note-editor .btn-default[disabled].active, +fieldset[disabled] .note-editor .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} +.note-editor .btn-primary { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; +} +.note-editor .btn-primary:hover, +.note-editor .btn-primary:focus, +.note-editor .btn-primary:active, +.note-editor .btn-primary.active, +.open .dropdown-toggle.note-editor .btn-primary { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} +.note-editor .btn-primary:active, +.note-editor .btn-primary.active, +.open .dropdown-toggle.note-editor .btn-primary { + background-image: none; +} +.note-editor .btn-primary.disabled, +.note-editor .btn-primary[disabled], +fieldset[disabled] .note-editor .btn-primary, +.note-editor .btn-primary.disabled:hover, +.note-editor .btn-primary[disabled]:hover, +fieldset[disabled] .note-editor .btn-primary:hover, +.note-editor .btn-primary.disabled:focus, +.note-editor .btn-primary[disabled]:focus, +fieldset[disabled] .note-editor .btn-primary:focus, +.note-editor .btn-primary.disabled:active, +.note-editor .btn-primary[disabled]:active, +fieldset[disabled] .note-editor .btn-primary:active, +.note-editor .btn-primary.disabled.active, +.note-editor .btn-primary[disabled].active, +fieldset[disabled] .note-editor .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} +.note-editor .btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} +.note-editor .btn-warning:hover, +.note-editor .btn-warning:focus, +.note-editor .btn-warning:active, +.note-editor .btn-warning.active, +.open .dropdown-toggle.note-editor .btn-warning { + color: #ffffff; + background-color: #ed9c28; + border-color: #d58512; +} +.note-editor .btn-warning:active, +.note-editor .btn-warning.active, +.open .dropdown-toggle.note-editor .btn-warning { + background-image: none; +} +.note-editor .btn-warning.disabled, +.note-editor .btn-warning[disabled], +fieldset[disabled] .note-editor .btn-warning, +.note-editor .btn-warning.disabled:hover, +.note-editor .btn-warning[disabled]:hover, +fieldset[disabled] .note-editor .btn-warning:hover, +.note-editor .btn-warning.disabled:focus, +.note-editor .btn-warning[disabled]:focus, +fieldset[disabled] .note-editor .btn-warning:focus, +.note-editor .btn-warning.disabled:active, +.note-editor .btn-warning[disabled]:active, +fieldset[disabled] .note-editor .btn-warning:active, +.note-editor .btn-warning.disabled.active, +.note-editor .btn-warning[disabled].active, +fieldset[disabled] .note-editor .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} +.note-editor .btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} +.note-editor .btn-danger:hover, +.note-editor .btn-danger:focus, +.note-editor .btn-danger:active, +.note-editor .btn-danger.active, +.open .dropdown-toggle.note-editor .btn-danger { + color: #ffffff; + background-color: #d2322d; + border-color: #ac2925; +} +.note-editor .btn-danger:active, +.note-editor .btn-danger.active, +.open .dropdown-toggle.note-editor .btn-danger { + background-image: none; +} +.note-editor .btn-danger.disabled, +.note-editor .btn-danger[disabled], +fieldset[disabled] .note-editor .btn-danger, +.note-editor .btn-danger.disabled:hover, +.note-editor .btn-danger[disabled]:hover, +fieldset[disabled] .note-editor .btn-danger:hover, +.note-editor .btn-danger.disabled:focus, +.note-editor .btn-danger[disabled]:focus, +fieldset[disabled] .note-editor .btn-danger:focus, +.note-editor .btn-danger.disabled:active, +.note-editor .btn-danger[disabled]:active, +fieldset[disabled] .note-editor .btn-danger:active, +.note-editor .btn-danger.disabled.active, +.note-editor .btn-danger[disabled].active, +fieldset[disabled] .note-editor .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} +.note-editor .btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.note-editor .btn-success:hover, +.note-editor .btn-success:focus, +.note-editor .btn-success:active, +.note-editor .btn-success.active, +.open .dropdown-toggle.note-editor .btn-success { + color: #ffffff; + background-color: #47a447; + border-color: #398439; +} +.note-editor .btn-success:active, +.note-editor .btn-success.active, +.open .dropdown-toggle.note-editor .btn-success { + background-image: none; +} +.note-editor .btn-success.disabled, +.note-editor .btn-success[disabled], +fieldset[disabled] .note-editor .btn-success, +.note-editor .btn-success.disabled:hover, +.note-editor .btn-success[disabled]:hover, +fieldset[disabled] .note-editor .btn-success:hover, +.note-editor .btn-success.disabled:focus, +.note-editor .btn-success[disabled]:focus, +fieldset[disabled] .note-editor .btn-success:focus, +.note-editor .btn-success.disabled:active, +.note-editor .btn-success[disabled]:active, +fieldset[disabled] .note-editor .btn-success:active, +.note-editor .btn-success.disabled.active, +.note-editor .btn-success[disabled].active, +fieldset[disabled] .note-editor .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} +.note-editor .btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} +.note-editor .btn-info:hover, +.note-editor .btn-info:focus, +.note-editor .btn-info:active, +.note-editor .btn-info.active, +.open .dropdown-toggle.note-editor .btn-info { + color: #ffffff; + background-color: #39b3d7; + border-color: #269abc; +} +.note-editor .btn-info:active, +.note-editor .btn-info.active, +.open .dropdown-toggle.note-editor .btn-info { + background-image: none; +} +.note-editor .btn-info.disabled, +.note-editor .btn-info[disabled], +fieldset[disabled] .note-editor .btn-info, +.note-editor .btn-info.disabled:hover, +.note-editor .btn-info[disabled]:hover, +fieldset[disabled] .note-editor .btn-info:hover, +.note-editor .btn-info.disabled:focus, +.note-editor .btn-info[disabled]:focus, +fieldset[disabled] .note-editor .btn-info:focus, +.note-editor .btn-info.disabled:active, +.note-editor .btn-info[disabled]:active, +fieldset[disabled] .note-editor .btn-info:active, +.note-editor .btn-info.disabled.active, +.note-editor .btn-info[disabled].active, +fieldset[disabled] .note-editor .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} +.note-editor .btn-link { + color: #428bca; + font-weight: normal; + cursor: pointer; + border-radius: 0; +} +.note-editor .btn-link, +.note-editor .btn-link:active, +.note-editor .btn-link[disabled], +fieldset[disabled] .note-editor .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.note-editor .btn-link, +.note-editor .btn-link:hover, +.note-editor .btn-link:focus, +.note-editor .btn-link:active { + border-color: transparent; +} +.note-editor .btn-link:hover, +.note-editor .btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent; +} +.note-editor .btn-link[disabled]:hover, +fieldset[disabled] .note-editor .btn-link:hover, +.note-editor .btn-link[disabled]:focus, +fieldset[disabled] .note-editor .btn-link:focus { + color: #999999; + text-decoration: none; +} +.note-editor .btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.note-editor .btn-sm, +.note-editor .btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.note-editor .btn-xs { + padding: 1px 5px; +} +.note-editor .btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} +.note-editor .btn-block + .btn-block { + margin-top: 5px; +} +.note-editor input[type="submit"].btn-block, +.note-editor input[type="reset"].btn-block, +.note-editor input[type="button"].btn-block { + width: 100%; +} +.note-editor .fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.note-editor .fade.in { + opacity: 1; +} +.note-editor .collapse { + display: none; +} +.note-editor .collapse.in { + display: block; +} +.note-editor .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../../../fonts/glyphicons-halflings-regular.eot'); + src: url('../../../fonts/glyphicons-halflings-regular.eot?') format('embedded-opentype'), url('../../../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../../../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../../../fonts/glyphicons-halflings-regular.svg') format('svg'); +} +.note-editor .glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; +} +.note-editor .glyphicon:empty { + width: 1em; +} +.note-editor .glyphicon-asterisk:before { + content: "\2a"; +} +.note-editor .glyphicon-plus:before { + content: "\2b"; +} +.note-editor .glyphicon-euro:before { + content: "\20ac"; +} +.note-editor .glyphicon-minus:before { + content: "\2212"; +} +.note-editor .glyphicon-cloud:before { + content: "\2601"; +} +.note-editor .glyphicon-envelope:before { + content: "\2709"; +} +.note-editor .glyphicon-pencil:before { + content: "\270f"; +} +.note-editor .glyphicon-glass:before { + content: "\e001"; +} +.note-editor .glyphicon-music:before { + content: "\e002"; +} +.note-editor .glyphicon-search:before { + content: "\e003"; +} +.note-editor .glyphicon-heart:before { + content: "\e005"; +} +.note-editor .glyphicon-star:before { + content: "\e006"; +} +.note-editor .glyphicon-star-empty:before { + content: "\e007"; +} +.note-editor .glyphicon-user:before { + content: "\e008"; +} +.note-editor .glyphicon-film:before { + content: "\e009"; +} +.note-editor .glyphicon-th-large:before { + content: "\e010"; +} +.note-editor .glyphicon-th:before { + content: "\e011"; +} +.note-editor .glyphicon-th-list:before { + content: "\e012"; +} +.note-editor .glyphicon-ok:before { + content: "\e013"; +} +.note-editor .glyphicon-remove:before { + content: "\e014"; +} +.note-editor .glyphicon-zoom-in:before { + content: "\e015"; +} +.note-editor .glyphicon-zoom-out:before { + content: "\e016"; +} +.note-editor .glyphicon-off:before { + content: "\e017"; +} +.note-editor .glyphicon-signal:before { + content: "\e018"; +} +.note-editor .glyphicon-cog:before { + content: "\e019"; +} +.note-editor .glyphicon-trash:before { + content: "\e020"; +} +.note-editor .glyphicon-home:before { + content: "\e021"; +} +.note-editor .glyphicon-file:before { + content: "\e022"; +} +.note-editor .glyphicon-time:before { + content: "\e023"; +} +.note-editor .glyphicon-road:before { + content: "\e024"; +} +.note-editor .glyphicon-download-alt:before { + content: "\e025"; +} +.note-editor .glyphicon-download:before { + content: "\e026"; +} +.note-editor .glyphicon-upload:before { + content: "\e027"; +} +.note-editor .glyphicon-inbox:before { + content: "\e028"; +} +.note-editor .glyphicon-play-circle:before { + content: "\e029"; +} +.note-editor .glyphicon-repeat:before { + content: "\e030"; +} +.note-editor .glyphicon-refresh:before { + content: "\e031"; +} +.note-editor .glyphicon-list-alt:before { + content: "\e032"; +} +.note-editor .glyphicon-lock:before { + content: "\e033"; +} +.note-editor .glyphicon-flag:before { + content: "\e034"; +} +.note-editor .glyphicon-headphones:before { + content: "\e035"; +} +.note-editor .glyphicon-volume-off:before { + content: "\e036"; +} +.note-editor .glyphicon-volume-down:before { + content: "\e037"; +} +.note-editor .glyphicon-volume-up:before { + content: "\e038"; +} +.note-editor .glyphicon-qrcode:before { + content: "\e039"; +} +.note-editor .glyphicon-barcode:before { + content: "\e040"; +} +.note-editor .glyphicon-tag:before { + content: "\e041"; +} +.note-editor .glyphicon-tags:before { + content: "\e042"; +} +.note-editor .glyphicon-book:before { + content: "\e043"; +} +.note-editor .glyphicon-bookmark:before { + content: "\e044"; +} +.note-editor .glyphicon-print:before { + content: "\e045"; +} +.note-editor .glyphicon-camera:before { + content: "\e046"; +} +.note-editor .glyphicon-font:before { + content: "\e047"; +} +.note-editor .glyphicon-bold:before { + content: "\e048"; +} +.note-editor .glyphicon-italic:before { + content: "\e049"; +} +.note-editor .glyphicon-text-height:before { + content: "\e050"; +} +.note-editor .glyphicon-text-width:before { + content: "\e051"; +} +.note-editor .glyphicon-align-left:before { + content: "\e052"; +} +.note-editor .glyphicon-align-center:before { + content: "\e053"; +} +.note-editor .glyphicon-align-right:before { + content: "\e054"; +} +.note-editor .glyphicon-align-justify:before { + content: "\e055"; +} +.note-editor .glyphicon-list:before { + content: "\e056"; +} +.note-editor .glyphicon-indent-left:before { + content: "\e057"; +} +.note-editor .glyphicon-indent-right:before { + content: "\e058"; +} +.note-editor .glyphicon-facetime-video:before { + content: "\e059"; +} +.note-editor .glyphicon-picture:before { + content: "\e060"; +} +.note-editor .glyphicon-map-marker:before { + content: "\e062"; +} +.note-editor .glyphicon-adjust:before { + content: "\e063"; +} +.note-editor .glyphicon-tint:before { + content: "\e064"; +} +.note-editor .glyphicon-edit:before { + content: "\e065"; +} +.note-editor .glyphicon-share:before { + content: "\e066"; +} +.note-editor .glyphicon-check:before { + content: "\e067"; +} +.note-editor .glyphicon-move:before { + content: "\e068"; +} +.note-editor .glyphicon-step-backward:before { + content: "\e069"; +} +.note-editor .glyphicon-fast-backward:before { + content: "\e070"; +} +.note-editor .glyphicon-backward:before { + content: "\e071"; +} +.note-editor .glyphicon-play:before { + content: "\e072"; +} +.note-editor .glyphicon-pause:before { + content: "\e073"; +} +.note-editor .glyphicon-stop:before { + content: "\e074"; +} +.note-editor .glyphicon-forward:before { + content: "\e075"; +} +.note-editor .glyphicon-fast-forward:before { + content: "\e076"; +} +.note-editor .glyphicon-step-forward:before { + content: "\e077"; +} +.note-editor .glyphicon-eject:before { + content: "\e078"; +} +.note-editor .glyphicon-chevron-left:before { + content: "\e079"; +} +.note-editor .glyphicon-chevron-right:before { + content: "\e080"; +} +.note-editor .glyphicon-plus-sign:before { + content: "\e081"; +} +.note-editor .glyphicon-minus-sign:before { + content: "\e082"; +} +.note-editor .glyphicon-remove-sign:before { + content: "\e083"; +} +.note-editor .glyphicon-ok-sign:before { + content: "\e084"; +} +.note-editor .glyphicon-question-sign:before { + content: "\e085"; +} +.note-editor .glyphicon-info-sign:before { + content: "\e086"; +} +.note-editor .glyphicon-screenshot:before { + content: "\e087"; +} +.note-editor .glyphicon-remove-circle:before { + content: "\e088"; +} +.note-editor .glyphicon-ok-circle:before { + content: "\e089"; +} +.note-editor .glyphicon-ban-circle:before { + content: "\e090"; +} +.note-editor .glyphicon-arrow-left:before { + content: "\e091"; +} +.note-editor .glyphicon-arrow-right:before { + content: "\e092"; +} +.note-editor .glyphicon-arrow-up:before { + content: "\e093"; +} +.note-editor .glyphicon-arrow-down:before { + content: "\e094"; +} +.note-editor .glyphicon-share-alt:before { + content: "\e095"; +} +.note-editor .glyphicon-resize-full:before { + content: "\e096"; +} +.note-editor .glyphicon-resize-small:before { + content: "\e097"; +} +.note-editor .glyphicon-exclamation-sign:before { + content: "\e101"; +} +.note-editor .glyphicon-gift:before { + content: "\e102"; +} +.note-editor .glyphicon-leaf:before { + content: "\e103"; +} +.note-editor .glyphicon-fire:before { + content: "\e104"; +} +.note-editor .glyphicon-eye-open:before { + content: "\e105"; +} +.note-editor .glyphicon-eye-close:before { + content: "\e106"; +} +.note-editor .glyphicon-warning-sign:before { + content: "\e107"; +} +.note-editor .glyphicon-plane:before { + content: "\e108"; +} +.note-editor .glyphicon-calendar:before { + content: "\e109"; +} +.note-editor .glyphicon-random:before { + content: "\e110"; +} +.note-editor .glyphicon-comment:before { + content: "\e111"; +} +.note-editor .glyphicon-magnet:before { + content: "\e112"; +} +.note-editor .glyphicon-chevron-up:before { + content: "\e113"; +} +.note-editor .glyphicon-chevron-down:before { + content: "\e114"; +} +.note-editor .glyphicon-retweet:before { + content: "\e115"; +} +.note-editor .glyphicon-shopping-cart:before { + content: "\e116"; +} +.note-editor .glyphicon-folder-close:before { + content: "\e117"; +} +.note-editor .glyphicon-folder-open:before { + content: "\e118"; +} +.note-editor .glyphicon-resize-vertical:before { + content: "\e119"; +} +.note-editor .glyphicon-resize-horizontal:before { + content: "\e120"; +} +.note-editor .glyphicon-hdd:before { + content: "\e121"; +} +.note-editor .glyphicon-bullhorn:before { + content: "\e122"; +} +.note-editor .glyphicon-bell:before { + content: "\e123"; +} +.note-editor .glyphicon-certificate:before { + content: "\e124"; +} +.note-editor .glyphicon-thumbs-up:before { + content: "\e125"; +} +.note-editor .glyphicon-thumbs-down:before { + content: "\e126"; +} +.note-editor .glyphicon-hand-right:before { + content: "\e127"; +} +.note-editor .glyphicon-hand-left:before { + content: "\e128"; +} +.note-editor .glyphicon-hand-up:before { + content: "\e129"; +} +.note-editor .glyphicon-hand-down:before { + content: "\e130"; +} +.note-editor .glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.note-editor .glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.note-editor .glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.note-editor .glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.note-editor .glyphicon-globe:before { + content: "\e135"; +} +.note-editor .glyphicon-wrench:before { + content: "\e136"; +} +.note-editor .glyphicon-tasks:before { + content: "\e137"; +} +.note-editor .glyphicon-filter:before { + content: "\e138"; +} +.note-editor .glyphicon-briefcase:before { + content: "\e139"; +} +.note-editor .glyphicon-fullscreen:before { + content: "\e140"; +} +.note-editor .glyphicon-dashboard:before { + content: "\e141"; +} +.note-editor .glyphicon-paperclip:before { + content: "\e142"; +} +.note-editor .glyphicon-heart-empty:before { + content: "\e143"; +} +.note-editor .glyphicon-link:before { + content: "\e144"; +} +.note-editor .glyphicon-phone:before { + content: "\e145"; +} +.note-editor .glyphicon-pushpin:before { + content: "\e146"; +} +.note-editor .glyphicon-usd:before { + content: "\e148"; +} +.note-editor .glyphicon-gbp:before { + content: "\e149"; +} +.note-editor .glyphicon-sort:before { + content: "\e150"; +} +.note-editor .glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.note-editor .glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.note-editor .glyphicon-sort-by-order:before { + content: "\e153"; +} +.note-editor .glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.note-editor .glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.note-editor .glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.note-editor .glyphicon-unchecked:before { + content: "\e157"; +} +.note-editor .glyphicon-expand:before { + content: "\e158"; +} +.note-editor .glyphicon-collapse-down:before { + content: "\e159"; +} +.note-editor .glyphicon-collapse-up:before { + content: "\e160"; +} +.note-editor .glyphicon-log-in:before { + content: "\e161"; +} +.note-editor .glyphicon-flash:before { + content: "\e162"; +} +.note-editor .glyphicon-log-out:before { + content: "\e163"; +} +.note-editor .glyphicon-new-window:before { + content: "\e164"; +} +.note-editor .glyphicon-record:before { + content: "\e165"; +} +.note-editor .glyphicon-save:before { + content: "\e166"; +} +.note-editor .glyphicon-open:before { + content: "\e167"; +} +.note-editor .glyphicon-saved:before { + content: "\e168"; +} +.note-editor .glyphicon-import:before { + content: "\e169"; +} +.note-editor .glyphicon-export:before { + content: "\e170"; +} +.note-editor .glyphicon-send:before { + content: "\e171"; +} +.note-editor .glyphicon-floppy-disk:before { + content: "\e172"; +} +.note-editor .glyphicon-floppy-saved:before { + content: "\e173"; +} +.note-editor .glyphicon-floppy-remove:before { + content: "\e174"; +} +.note-editor .glyphicon-floppy-save:before { + content: "\e175"; +} +.note-editor .glyphicon-floppy-open:before { + content: "\e176"; +} +.note-editor .glyphicon-credit-card:before { + content: "\e177"; +} +.note-editor .glyphicon-transfer:before { + content: "\e178"; +} +.note-editor .glyphicon-cutlery:before { + content: "\e179"; +} +.note-editor .glyphicon-header:before { + content: "\e180"; +} +.note-editor .glyphicon-compressed:before { + content: "\e181"; +} +.note-editor .glyphicon-earphone:before { + content: "\e182"; +} +.note-editor .glyphicon-phone-alt:before { + content: "\e183"; +} +.note-editor .glyphicon-tower:before { + content: "\e184"; +} +.note-editor .glyphicon-stats:before { + content: "\e185"; +} +.note-editor .glyphicon-sd-video:before { + content: "\e186"; +} +.note-editor .glyphicon-hd-video:before { + content: "\e187"; +} +.note-editor .glyphicon-subtitles:before { + content: "\e188"; +} +.note-editor .glyphicon-sound-stereo:before { + content: "\e189"; +} +.note-editor .glyphicon-sound-dolby:before { + content: "\e190"; +} +.note-editor .glyphicon-sound-5-1:before { + content: "\e191"; +} +.note-editor .glyphicon-sound-6-1:before { + content: "\e192"; +} +.note-editor .glyphicon-sound-7-1:before { + content: "\e193"; +} +.note-editor .glyphicon-copyright-mark:before { + content: "\e194"; +} +.note-editor .glyphicon-registration-mark:before { + content: "\e195"; +} +.note-editor .glyphicon-cloud-download:before { + content: "\e197"; +} +.note-editor .glyphicon-cloud-upload:before { + content: "\e198"; +} +.note-editor .glyphicon-tree-conifer:before { + content: "\e199"; +} +.note-editor .glyphicon-tree-deciduous:before { + content: "\e200"; +} +.note-editor .caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + border-bottom: 0 dotted; +} +.note-editor .dropdown { + position: relative; +} +.note-editor .dropdown-toggle:focus { + outline: 0; +} +.note-editor .dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 14px; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} +.note-editor .dropdown-menu.pull-right { + right: 0; + left: auto; +} +.note-editor .dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.note-editor .dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333333; + white-space: nowrap; +} +.note-editor .dropdown-menu > li > a:hover, +.note-editor .dropdown-menu > li > a:focus { + text-decoration: none; + color: #262626; + background-color: #f5f5f5; +} +.note-editor .dropdown-menu > .active > a, +.note-editor .dropdown-menu > .active > a:hover, +.note-editor .dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + outline: 0; + background-color: #428bca; +} +.note-editor .dropdown-menu > .disabled > a, +.note-editor .dropdown-menu > .disabled > a:hover, +.note-editor .dropdown-menu > .disabled > a:focus { + color: #999999; +} +.note-editor .dropdown-menu > .disabled > a:hover, +.note-editor .dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: not-allowed; +} +.note-editor .open > .dropdown-menu { + display: block; + left:0!important; + right:auto!important; +} +.note-editor .open > a { + outline: 0; +} +.note-editor .dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999999; +} +.note-editor .dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} +.note-editor .pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.note-editor .dropup .caret, +.note-editor .navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000000; + content: ""; +} +.note-editor .dropup .dropdown-menu, +.note-editor .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +@media (min-width: 768px) { + .note-editor .navbar-right .dropdown-menu { + right: 0; + left: auto; + } +} +.btn-default .note-editor .caret { + border-top-color: #333333; +} +.btn-primary .note-editor .caret, +.btn-success .note-editor .caret, +.btn-warning .note-editor .caret, +.btn-danger .note-editor .caret, +.btn-info .note-editor .caret { + border-top-color: #fff; +} +.note-editor .dropup .btn-default .caret { + border-bottom-color: #333333; +} +.note-editor .dropup .btn-primary .caret, +.note-editor .dropup .btn-success .caret, +.note-editor .dropup .btn-warning .caret, +.note-editor .dropup .btn-danger .caret, +.note-editor .dropup .btn-info .caret { + border-bottom-color: #fff; +} +.note-editor .btn-group, +.note-editor .btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.note-editor .btn-group > .btn, +.note-editor .btn-group-vertical > .btn { + position: relative; + float: left; +} +.note-editor .btn-group > .btn:hover, +.note-editor .btn-group-vertical > .btn:hover, +.note-editor .btn-group > .btn:focus, +.note-editor .btn-group-vertical > .btn:focus, +.note-editor .btn-group > .btn:active, +.note-editor .btn-group-vertical > .btn:active, +.note-editor .btn-group > .btn.active, +.note-editor .btn-group-vertical > .btn.active { + z-index: 2; +} +.note-editor .btn-group > .btn:focus, +.note-editor .btn-group-vertical > .btn:focus { + outline: none; +} +.note-editor .btn-group .btn + .btn, +.note-editor .btn-group .btn + .btn-group, +.note-editor .btn-group .btn-group + .btn, +.note-editor .btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.note-editor .btn-toolbar:before, +.note-editor .btn-toolbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .btn-toolbar:after { + clear: both; +} +.note-editor .btn-toolbar:before, +.note-editor .btn-toolbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .btn-toolbar:after { + clear: both; +} +.note-editor .btn-toolbar .btn-group { + float: left; +} +.note-editor .btn-toolbar > .btn + .btn, +.note-editor .btn-toolbar > .btn-group + .btn, +.note-editor .btn-toolbar > .btn + .btn-group, +.note-editor .btn-toolbar > .btn-group + .btn-group { + margin-left: 5px; +} +.note-editor .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.note-editor .btn-group > .btn:first-child { + margin-left: 0; +} +.note-editor .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.note-editor .btn-group > .btn:last-child:not(:first-child), +.note-editor .btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.note-editor .btn-group > .btn-group { + float: left; +} +.note-editor .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.note-editor .btn-group > .btn-group:first-child > .btn:last-child, +.note-editor .btn-group > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.note-editor .btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.note-editor .btn-group .dropdown-toggle:active, +.note-editor .btn-group.open .dropdown-toggle { + outline: 0; +} +.note-editor .btn-group-xs > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + padding: 1px 5px; +} +.note-editor .btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.note-editor .btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.note-editor .btn-group > .btn + .dropdown-toggle { + padding-left: 5px; + padding-right: 5px; +} +.note-editor .btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} +.note-editor .btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.note-editor .btn .caret { + margin-left: 0; +} +.note-editor .btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.note-editor .dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.note-editor .btn-group-vertical > .btn, +.note-editor .btn-group-vertical > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.note-editor .btn-group-vertical > .btn-group:before, +.note-editor .btn-group-vertical > .btn-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .btn-group-vertical > .btn-group:after { + clear: both; +} +.note-editor .btn-group-vertical > .btn-group:before, +.note-editor .btn-group-vertical > .btn-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .btn-group-vertical > .btn-group:after { + clear: both; +} +.note-editor .btn-group-vertical > .btn-group > .btn { + float: none; +} +.note-editor .btn-group-vertical > .btn + .btn, +.note-editor .btn-group-vertical > .btn + .btn-group, +.note-editor .btn-group-vertical > .btn-group + .btn, +.note-editor .btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.note-editor .btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.note-editor .btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.note-editor .btn-group-vertical > .btn:last-child:not(:first-child) { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.note-editor .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.note-editor .btn-group-vertical > .btn-group:first-child > .btn:last-child, +.note-editor .btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.note-editor .btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.note-editor .btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.note-editor .btn-group-justified .btn { + float: none; + display: table-cell; + width: 1%; +} +.note-editor [data-toggle="buttons"] > .btn > input[type="radio"], +.note-editor [data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} +.note-editor .input-group { + position: relative; + display: table; + border-collapse: separate; +} +.note-editor .input-group.col { + float: none; + padding-left: 0; + padding-right: 0; +} +.note-editor .input-group .form-control { + width: 100%; + margin-bottom: 0; +} +.note-editor .input-group-lg > .form-control, +.note-editor .input-group-lg > .input-group-addon, +.note-editor .input-group-lg > .input-group-btn > .btn { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.note-editor .input-group-lg > .form-control, +select.note-editor .input-group-lg > .input-group-addon, +select.note-editor .input-group-lg > .input-group-btn > .btn { + height: 45px; + line-height: 45px; +} +textarea.note-editor .input-group-lg > .form-control, +textarea.note-editor .input-group-lg > .input-group-addon, +textarea.note-editor .input-group-lg > .input-group-btn > .btn { + height: auto; +} +.note-editor .input-group-sm > .form-control, +.note-editor .input-group-sm > .input-group-addon, +.note-editor .input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.note-editor .input-group-sm > .form-control, +select.note-editor .input-group-sm > .input-group-addon, +select.note-editor .input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.note-editor .input-group-sm > .form-control, +textarea.note-editor .input-group-sm > .input-group-addon, +textarea.note-editor .input-group-sm > .input-group-btn > .btn { + height: auto; +} +.note-editor .input-group-addon, +.note-editor .input-group-btn, +.note-editor .input-group .form-control { + display: table-cell; +} +.note-editor .input-group-addon:not(:first-child):not(:last-child), +.note-editor .input-group-btn:not(:first-child):not(:last-child), +.note-editor .input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.note-editor .input-group-addon, +.note-editor .input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.note-editor .input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555555; + text-align: center; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-radius: 4px; +} +.note-editor .input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.note-editor .input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.note-editor .input-group-addon input[type="radio"], +.note-editor .input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.note-editor .input-group .form-control:first-child, +.note-editor .input-group-addon:first-child, +.note-editor .input-group-btn:first-child > .btn, +.note-editor .input-group-btn:first-child > .dropdown-toggle, +.note-editor .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.note-editor .input-group-addon:first-child { + border-right: 0; +} +.note-editor .input-group .form-control:last-child, +.note-editor .input-group-addon:last-child, +.note-editor .input-group-btn:last-child > .btn, +.note-editor .input-group-btn:last-child > .dropdown-toggle, +.note-editor .input-group-btn:first-child > .btn:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.note-editor .input-group-addon:last-child { + border-left: 0; +} +.note-editor .input-group-btn { + position: relative; + white-space: nowrap; +} +.note-editor .input-group-btn:first-child > .btn { + margin-right: -1px; +} +.note-editor .input-group-btn:last-child > .btn { + margin-left: -1px; +} +.note-editor .input-group-btn > .btn { + position: relative; +} +.note-editor .input-group-btn > .btn + .btn { + margin-left: -4px; +} +.note-editor .input-group-btn > .btn:hover, +.note-editor .input-group-btn > .btn:active { + z-index: 2; +} +.note-editor .nav { + margin-bottom: 0; + padding-left: 0; + list-style: none; +} +.note-editor .nav:before, +.note-editor .nav:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .nav:after { + clear: both; +} +.note-editor .nav:before, +.note-editor .nav:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .nav:after { + clear: both; +} +.note-editor .nav > li { + position: relative; + display: block; +} +.note-editor .nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.note-editor .nav > li > a:hover, +.note-editor .nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.note-editor .nav > li.disabled > a { + color: #999999; +} +.note-editor .nav > li.disabled > a:hover, +.note-editor .nav > li.disabled > a:focus { + color: #999999; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; +} +.note-editor .nav .open > a, +.note-editor .nav .open > a:hover, +.note-editor .nav .open > a:focus { + background-color: #eeeeee; + border-color: #428bca; +} +.note-editor .nav .open > a .caret, +.note-editor .nav .open > a:hover .caret, +.note-editor .nav .open > a:focus .caret { + border-top-color: #2a6496; + border-bottom-color: #2a6496; +} +.note-editor .nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.note-editor .nav > li > a > img { + max-width: none; +} +.note-editor .nav-tabs { + border-bottom: 1px solid #dddddd; +} +.note-editor .nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.note-editor .nav-tabs > li > a { + margin-right: 2px; + line-height: 1.428571429; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.note-editor .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.note-editor .nav-tabs > li.active > a, +.note-editor .nav-tabs > li.active > a:hover, +.note-editor .nav-tabs > li.active > a:focus { + color: #555555; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; + cursor: default; +} +.note-editor .nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.note-editor .nav-tabs.nav-justified > li { + float: none; +} +.note-editor .nav-tabs.nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +@media (min-width: 768px) { + .note-editor .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .note-editor .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.note-editor .nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.note-editor .nav-tabs.nav-justified > .active > a, +.note-editor .nav-tabs.nav-justified > .active > a:hover, +.note-editor .nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #dddddd; +} +@media (min-width: 768px) { + .note-editor .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #dddddd; + border-radius: 4px 4px 0 0; + } + .note-editor .nav-tabs.nav-justified > .active > a, + .note-editor .nav-tabs.nav-justified > .active > a:hover, + .note-editor .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #ffffff; + } +} +.note-editor .nav-pills > li { + float: left; +} +.note-editor .nav-pills > li > a { + border-radius: 4px; +} +.note-editor .nav-pills > li + li { + margin-left: 2px; +} +.note-editor .nav-pills > li.active > a, +.note-editor .nav-pills > li.active > a:hover, +.note-editor .nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #428bca; +} +.note-editor .nav-pills > li.active > a .caret, +.note-editor .nav-pills > li.active > a:hover .caret, +.note-editor .nav-pills > li.active > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.note-editor .nav-stacked > li { + float: none; +} +.note-editor .nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.note-editor .nav-justified { + width: 100%; +} +.note-editor .nav-justified > li { + float: none; +} +.note-editor .nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +@media (min-width: 768px) { + .note-editor .nav-justified > li { + display: table-cell; + width: 1%; + } + .note-editor .nav-justified > li > a { + margin-bottom: 0; + } +} +.note-editor .nav-tabs-justified { + border-bottom: 0; +} +.note-editor .nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.note-editor .nav-tabs-justified > .active > a, +.note-editor .nav-tabs-justified > .active > a:hover, +.note-editor .nav-tabs-justified > .active > a:focus { + border: 1px solid #dddddd; +} +@media (min-width: 768px) { + .note-editor .nav-tabs-justified > li > a { + border-bottom: 1px solid #dddddd; + border-radius: 4px 4px 0 0; + } + .note-editor .nav-tabs-justified > .active > a, + .note-editor .nav-tabs-justified > .active > a:hover, + .note-editor .nav-tabs-justified > .active > a:focus { + border-bottom-color: #ffffff; + } +} +.note-editor .tab-content > .tab-pane { + display: none; +} +.note-editor .tab-content > .active { + display: block; +} +.note-editor .nav .caret { + border-top-color: #428bca; + border-bottom-color: #428bca; +} +.note-editor .nav a:hover .caret { + border-top-color: #2a6496; + border-bottom-color: #2a6496; +} +.note-editor .nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.note-editor .navbar { + position: relative; + z-index: 1000; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +.note-editor .navbar:before, +.note-editor .navbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar:after { + clear: both; +} +.note-editor .navbar:before, +.note-editor .navbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar:after { + clear: both; +} +@media (min-width: 768px) { + .note-editor .navbar { + border-radius: 4px; + } +} +.note-editor .navbar-header:before, +.note-editor .navbar-header:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar-header:after { + clear: both; +} +.note-editor .navbar-header:before, +.note-editor .navbar-header:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar-header:after { + clear: both; +} +@media (min-width: 768px) { + .note-editor .navbar-header { + float: left; + } +} +.note-editor .navbar-collapse { + max-height: 340px; + overflow-x: visible; + padding-right: 15px; + padding-left: 15px; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.note-editor .navbar-collapse:before, +.note-editor .navbar-collapse:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar-collapse:after { + clear: both; +} +.note-editor .navbar-collapse:before, +.note-editor .navbar-collapse:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .navbar-collapse:after { + clear: both; +} +.note-editor .navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .note-editor .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .note-editor .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .note-editor .navbar-collapse.in { + overflow-y: visible; + } + .note-editor .navbar-collapse .navbar-nav.navbar-left:first-child { + margin-left: -15px; + } + .note-editor .navbar-collapse .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } + .note-editor .navbar-collapse .navbar-text:last-child { + margin-right: 0; + } +} +.note-editor .container > .navbar-header, +.note-editor .container > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .note-editor .container > .navbar-header, + .note-editor .container > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.note-editor .navbar-static-top { + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .note-editor .navbar-static-top { + border-radius: 0; + } +} +.note-editor .navbar-fixed-top, +.note-editor .navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .note-editor .navbar-fixed-top, + .note-editor .navbar-fixed-bottom { + border-radius: 0; + } +} +.note-editor .navbar-fixed-top { + z-index: 1030; + top: 0; +} +.note-editor .navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; +} +.note-editor .navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.note-editor .navbar-brand:hover, +.note-editor .navbar-brand:focus { + text-decoration: none; +} +@media (min-width: 768px) { + .navbar > .container .note-editor .navbar-brand { + margin-left: -15px; + } +} +.note-editor .navbar-toggle { + position: relative; + float: right; + margin-right: 15px; + padding: 9px 10px; + margin-top: 8px; + margin-bottom: 8px; + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; +} +.note-editor .navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.note-editor .navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .note-editor .navbar-toggle { + display: none; + } +} +.note-editor .navbar-nav { + margin: 7.5px -15px; +} +.note-editor .navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .note-editor .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .note-editor .navbar-nav .open .dropdown-menu > li > a, + .note-editor .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .note-editor .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .note-editor .navbar-nav .open .dropdown-menu > li > a:hover, + .note-editor .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .note-editor .navbar-nav { + float: left; + margin: 0; + } + .note-editor .navbar-nav > li { + float: left; + } + .note-editor .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +@media (min-width: 768px) { + .note-editor .navbar-left { + float: left !important; + } + .note-editor .navbar-right { + float: right !important; + } +} +.note-editor .navbar-form { + margin-left: -15px; + margin-right: -15px; + padding: 10px 15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + margin-top: 8px; + margin-bottom: 8px; +} +@media (min-width: 768px) { + .note-editor .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .note-editor .navbar-form .form-control { + display: inline-block; + } + .note-editor .navbar-form .radio, + .note-editor .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + } + .note-editor .navbar-form .radio input[type="radio"], + .note-editor .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} +@media (max-width: 767px) { + .note-editor .navbar-form .form-group { + margin-bottom: 5px; + } +} +@media (min-width: 768px) { + .note-editor .navbar-form { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.note-editor .navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.note-editor .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.note-editor .navbar-nav.pull-right > li > .dropdown-menu, +.note-editor .navbar-nav > li > .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.note-editor .navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.note-editor .navbar-text { + float: left; + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .note-editor .navbar-text { + margin-left: 15px; + margin-right: 15px; + } +} +.note-editor .navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.note-editor .navbar-default .navbar-brand { + color: #777777; +} +.note-editor .navbar-default .navbar-brand:hover, +.note-editor .navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.note-editor .navbar-default .navbar-text { + color: #777777; +} +.note-editor .navbar-default .navbar-nav > li > a { + color: #777777; +} +.note-editor .navbar-default .navbar-nav > li > a:hover, +.note-editor .navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} +.note-editor .navbar-default .navbar-nav > .active > a, +.note-editor .navbar-default .navbar-nav > .active > a:hover, +.note-editor .navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} +.note-editor .navbar-default .navbar-nav > .disabled > a, +.note-editor .navbar-default .navbar-nav > .disabled > a:hover, +.note-editor .navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} +.note-editor .navbar-default .navbar-toggle { + border-color: #dddddd; +} +.note-editor .navbar-default .navbar-toggle:hover, +.note-editor .navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} +.note-editor .navbar-default .navbar-toggle .icon-bar { + background-color: #cccccc; +} +.note-editor .navbar-default .navbar-collapse, +.note-editor .navbar-default .navbar-form { + border-color: #e7e7e7; +} +.note-editor .navbar-default .navbar-nav > .dropdown > a:hover .caret, +.note-editor .navbar-default .navbar-nav > .dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} +.note-editor .navbar-default .navbar-nav > .open > a, +.note-editor .navbar-default .navbar-nav > .open > a:hover, +.note-editor .navbar-default .navbar-nav > .open > a:focus { + background-color: #e7e7e7; + color: #555555; +} +.note-editor .navbar-default .navbar-nav > .open > a .caret, +.note-editor .navbar-default .navbar-nav > .open > a:hover .caret, +.note-editor .navbar-default .navbar-nav > .open > a:focus .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.note-editor .navbar-default .navbar-nav > .dropdown > a .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} +@media (max-width: 767px) { + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + background-color: transparent; + } + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555555; + background-color: #e7e7e7; + } + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .note-editor .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} +.note-editor .navbar-default .navbar-link { + color: #777777; +} +.note-editor .navbar-default .navbar-link:hover { + color: #333333; +} +.note-editor .navbar-inverse { + background-color: #222222; + border-color: #080808; +} +.note-editor .navbar-inverse .navbar-brand { + color: #999999; +} +.note-editor .navbar-inverse .navbar-brand:hover, +.note-editor .navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} +.note-editor .navbar-inverse .navbar-text { + color: #999999; +} +.note-editor .navbar-inverse .navbar-nav > li > a { + color: #999999; +} +.note-editor .navbar-inverse .navbar-nav > li > a:hover, +.note-editor .navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} +.note-editor .navbar-inverse .navbar-nav > .active > a, +.note-editor .navbar-inverse .navbar-nav > .active > a:hover, +.note-editor .navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #080808; +} +.note-editor .navbar-inverse .navbar-nav > .disabled > a, +.note-editor .navbar-inverse .navbar-nav > .disabled > a:hover, +.note-editor .navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} +.note-editor .navbar-inverse .navbar-toggle { + border-color: #333333; +} +.note-editor .navbar-inverse .navbar-toggle:hover, +.note-editor .navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} +.note-editor .navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} +.note-editor .navbar-inverse .navbar-collapse, +.note-editor .navbar-inverse .navbar-form { + border-color: #101010; +} +.note-editor .navbar-inverse .navbar-nav > .open > a, +.note-editor .navbar-inverse .navbar-nav > .open > a:hover, +.note-editor .navbar-inverse .navbar-nav > .open > a:focus { + background-color: #080808; + color: #ffffff; +} +.note-editor .navbar-inverse .navbar-nav > .dropdown > a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.note-editor .navbar-inverse .navbar-nav > .dropdown > a .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} +.note-editor .navbar-inverse .navbar-nav > .open > a .caret, +.note-editor .navbar-inverse .navbar-nav > .open > a:hover .caret, +.note-editor .navbar-inverse .navbar-nav > .open > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +@media (max-width: 767px) { + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #999999; + } + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + background-color: transparent; + } + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #080808; + } + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .note-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444444; + background-color: transparent; + } +} +.note-editor .navbar-inverse .navbar-link { + color: #999999; +} +.note-editor .navbar-inverse .navbar-link:hover { + color: #ffffff; +} +.note-editor .breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.note-editor .breadcrumb > li { + display: inline-block; +} +.note-editor .breadcrumb > li + li:before { + content: "/\00a0"; + padding: 0 5px; + color: #cccccc; +} +.note-editor .breadcrumb > .active { + color: #999999; +} +.note-editor .pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.note-editor .pagination > li { + display: inline; +} +.note-editor .pagination > li > a, +.note-editor .pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + line-height: 1.428571429; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + margin-left: -1px; +} +.note-editor .pagination > li:first-child > a, +.note-editor .pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.note-editor .pagination > li:last-child > a, +.note-editor .pagination > li:last-child > span { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +.note-editor .pagination > li > a:hover, +.note-editor .pagination > li > span:hover, +.note-editor .pagination > li > a:focus, +.note-editor .pagination > li > span:focus { + background-color: #eeeeee; +} +.note-editor .pagination > .active > a, +.note-editor .pagination > .active > span, +.note-editor .pagination > .active > a:hover, +.note-editor .pagination > .active > span:hover, +.note-editor .pagination > .active > a:focus, +.note-editor .pagination > .active > span:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; + cursor: default; +} +.note-editor .pagination > .disabled > span, +.note-editor .pagination > .disabled > span:hover, +.note-editor .pagination > .disabled > span:focus, +.note-editor .pagination > .disabled > a, +.note-editor .pagination > .disabled > a:hover, +.note-editor .pagination > .disabled > a:focus { + color: #999999; + background-color: #ffffff; + border-color: #dddddd; + cursor: not-allowed; +} +.note-editor .pagination-lg > li > a, +.note-editor .pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} +.note-editor .pagination-lg > li:first-child > a, +.note-editor .pagination-lg > li:first-child > span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} +.note-editor .pagination-lg > li:last-child > a, +.note-editor .pagination-lg > li:last-child > span { + border-bottom-right-radius: 6px; + border-top-right-radius: 6px; +} +.note-editor .pagination-sm > li > a, +.note-editor .pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} +.note-editor .pagination-sm > li:first-child > a, +.note-editor .pagination-sm > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} +.note-editor .pagination-sm > li:last-child > a, +.note-editor .pagination-sm > li:last-child > span { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; +} +.note-editor .pager { + padding-left: 0; + margin: 20px 0; + list-style: none; + text-align: center; +} +.note-editor .pager:before, +.note-editor .pager:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .pager:after { + clear: both; +} +.note-editor .pager:before, +.note-editor .pager:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .pager:after { + clear: both; +} +.note-editor .pager li { + display: inline; +} +.note-editor .pager li > a, +.note-editor .pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} +.note-editor .pager li > a:hover, +.note-editor .pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.note-editor .pager .next > a, +.note-editor .pager .next > span { + float: right; +} +.note-editor .pager .previous > a, +.note-editor .pager .previous > span { + float: left; +} +.note-editor .pager .disabled > a, +.note-editor .pager .disabled > a:hover, +.note-editor .pager .disabled > a:focus, +.note-editor .pager .disabled > span { + color: #999999; + background-color: #ffffff; + cursor: not-allowed; +} +.note-editor .label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +.note-editor .label[href]:hover, +.note-editor .label[href]:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.note-editor .label:empty { + display: none; +} +.note-editor .label-default { + background-color: #999999; +} +.note-editor .label-default[href]:hover, +.note-editor .label-default[href]:focus { + background-color: #808080; +} +.note-editor .label-primary { + background-color: #428bca; +} +.note-editor .label-primary[href]:hover, +.note-editor .label-primary[href]:focus { + background-color: #3071a9; +} +.note-editor .label-success { + background-color: #5cb85c; +} +.note-editor .label-success[href]:hover, +.note-editor .label-success[href]:focus { + background-color: #449d44; +} +.note-editor .label-info { + background-color: #5bc0de; +} +.note-editor .label-info[href]:hover, +.note-editor .label-info[href]:focus { + background-color: #31b0d5; +} +.note-editor .label-warning { + background-color: #f0ad4e; +} +.note-editor .label-warning[href]:hover, +.note-editor .label-warning[href]:focus { + background-color: #ec971f; +} +.note-editor .label-danger { + background-color: #d9534f; +} +.note-editor .label-danger[href]:hover, +.note-editor .label-danger[href]:focus { + background-color: #c9302c; +} +.note-editor .badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + color: #ffffff; + line-height: 1; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: #999999; + border-radius: 10px; +} +.note-editor .badge:empty { + display: none; +} +.note-editor a.badge:hover, +.note-editor a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.note-editor .btn .badge { + position: relative; + top: -1px; +} +.note-editor a.list-group-item.active > .badge, +.note-editor .nav-pills > .active > a > .badge { + color: #428bca; + background-color: #ffffff; +} +.note-editor .nav-pills > li > a > .badge { + margin-left: 3px; +} +.note-editor .jumbotron { + padding: 30px; + margin-bottom: 30px; + font-size: 21px; + font-weight: 200; + line-height: 2.1428571435; + color: inherit; + background-color: #eeeeee; +} +.note-editor .jumbotron h1 { + line-height: 1; + color: inherit; +} +.note-editor .jumbotron p { + line-height: 1.4; +} +.container .note-editor .jumbotron { + border-radius: 6px; +} +@media screen and (min-width: 768px) { + .note-editor .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .note-editor .jumbotron { + padding-left: 60px; + padding-right: 60px; + } + .note-editor .jumbotron h1 { + font-size: 63px; + } +} +.note-editor .thumbnail { + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; + display: block; + margin-bottom: 20px; +} +.note-editor .thumbnail > img { + display: block; + max-width: 100%; + height: auto; +} +.note-editor a.thumbnail:hover, +.note-editor a.thumbnail:focus, +.note-editor a.thumbnail.active { + border-color: #428bca; +} +.note-editor .thumbnail > img { + margin-left: auto; + margin-right: auto; +} +.note-editor .thumbnail .caption { + padding: 9px; + color: #333333; +} +.note-editor .alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.note-editor .alert h4 { + margin-top: 0; + color: inherit; +} +.note-editor .alert .alert-link { + font-weight: bold; +} +.note-editor .alert > p, +.note-editor .alert > ul { + margin-bottom: 0; +} +.note-editor .alert > p + p { + margin-top: 5px; +} +.note-editor .alert-dismissable { + padding-right: 35px; +} +.note-editor .alert-dismissable .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.note-editor .alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #468847; +} +.note-editor .alert-success hr { + border-top-color: #c9e2b3; +} +.note-editor .alert-success .alert-link { + color: #356635; +} +.note-editor .alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #3a87ad; +} +.note-editor .alert-info hr { + border-top-color: #a6e1ec; +} +.note-editor .alert-info .alert-link { + color: #2d6987; +} +.note-editor .alert-warning { + background-color: #fcf8e3; + border-color: #faebcc; + color: #c09853; +} +.note-editor .alert-warning hr { + border-top-color: #f7e1b5; +} +.note-editor .alert-warning .alert-link { + color: #a47e3c; +} +.note-editor .alert-danger { + background-color: #f2dede; + border-color: #ebccd1; + color: #b94a48; +} +.note-editor .alert-danger hr { + border-top-color: #e4b9c0; +} +.note-editor .alert-danger .alert-link { + color: #953b39; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.note-editor .progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} +.note-editor .progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #ffffff; + text-align: center; + background-color: #428bca; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.note-editor .progress-striped .progress-bar { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} +.note-editor .progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.note-editor .progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .note-editor .progress-bar-success { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .progress-bar-info { + background-color: #5bc0de; +} +.progress-striped .note-editor .progress-bar-info { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .progress-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .note-editor .progress-bar-warning { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .progress-bar-danger { + background-color: #d9534f; +} +.progress-striped .note-editor .progress-bar-danger { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.note-editor .media, +.note-editor .media-body { + overflow: hidden; + zoom: 1; +} +.note-editor .media, +.note-editor .media .media { + margin-top: 15px; +} +.note-editor .media:first-child { + margin-top: 0; +} +.note-editor .media-object { + display: block; +} +.note-editor .media-heading { + margin: 0 0 5px; +} +.note-editor .media > .pull-left { + margin-right: 10px; +} +.note-editor .media > .pull-right { + margin-left: 10px; +} +.note-editor .media-list { + padding-left: 0; + list-style: none; +} +.note-editor .list-group { + margin-bottom: 20px; + padding-left: 0; +} +.note-editor .list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} +.note-editor .list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +.note-editor .list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.note-editor .list-group-item > .badge { + float: right; +} +.note-editor .list-group-item > .badge + .badge { + margin-right: 5px; +} +.note-editor a.list-group-item { + color: #555555; +} +.note-editor a.list-group-item .list-group-item-heading { + color: #333333; +} +.note-editor a.list-group-item:hover, +.note-editor a.list-group-item:focus { + text-decoration: none; + background-color: #f5f5f5; +} +.note-editor a.list-group-item.active, +.note-editor a.list-group-item.active:hover, +.note-editor a.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} +.note-editor a.list-group-item.active .list-group-item-heading, +.note-editor a.list-group-item.active:hover .list-group-item-heading, +.note-editor a.list-group-item.active:focus .list-group-item-heading { + color: inherit; +} +.note-editor a.list-group-item.active .list-group-item-text, +.note-editor a.list-group-item.active:hover .list-group-item-text, +.note-editor a.list-group-item.active:focus .list-group-item-text { + color: #e1edf7; +} +.note-editor .list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.note-editor .list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.note-editor .panel { + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.note-editor .panel-body { + padding: 15px; +} +.note-editor .panel-body:before, +.note-editor .panel-body:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .panel-body:after { + clear: both; +} +.note-editor .panel-body:before, +.note-editor .panel-body:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.note-editor .panel-body:after { + clear: both; +} +.note-editor .panel > .list-group { + margin-bottom: 0; +} +.note-editor .panel > .list-group .list-group-item { + border-width: 1px 0; +} +.note-editor .panel > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.note-editor .panel > .list-group .list-group-item:last-child { + border-bottom: 0; +} +.note-editor .panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.note-editor .panel > .table, +.note-editor .panel > .table-responsive { + margin-bottom: 0; +} +.note-editor .panel > .panel-body + .table, +.note-editor .panel > .panel-body + .table-responsive { + border-top: 1px solid #dddddd; +} +.note-editor .panel > .table-bordered, +.note-editor .panel > .table-responsive > .table-bordered { + border: 0; +} +.note-editor .panel > .table-bordered > thead > tr > th:first-child, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.note-editor .panel > .table-bordered > tbody > tr > th:first-child, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.note-editor .panel > .table-bordered > tfoot > tr > th:first-child, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.note-editor .panel > .table-bordered > thead > tr > td:first-child, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.note-editor .panel > .table-bordered > tbody > tr > td:first-child, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.note-editor .panel > .table-bordered > tfoot > tr > td:first-child, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.note-editor .panel > .table-bordered > thead > tr > th:last-child, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.note-editor .panel > .table-bordered > tbody > tr > th:last-child, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.note-editor .panel > .table-bordered > tfoot > tr > th:last-child, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.note-editor .panel > .table-bordered > thead > tr > td:last-child, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.note-editor .panel > .table-bordered > tbody > tr > td:last-child, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.note-editor .panel > .table-bordered > tfoot > tr > td:last-child, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.note-editor .panel > .table-bordered > thead > tr:last-child > th, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr:last-child > th, +.note-editor .panel > .table-bordered > tbody > tr:last-child > th, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.note-editor .panel > .table-bordered > tfoot > tr:last-child > th, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th, +.note-editor .panel > .table-bordered > thead > tr:last-child > td, +.note-editor .panel > .table-responsive > .table-bordered > thead > tr:last-child > td, +.note-editor .panel > .table-bordered > tbody > tr:last-child > td, +.note-editor .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.note-editor .panel > .table-bordered > tfoot > tr:last-child > td, +.note-editor .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; +} +.note-editor .panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} +.note-editor .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; +} +.note-editor .panel-title > a { + color: inherit; +} +.note-editor .panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.note-editor .panel-group .panel { + margin-bottom: 0; + border-radius: 4px; + overflow: hidden; +} +.note-editor .panel-group .panel + .panel { + margin-top: 5px; +} +.note-editor .panel-group .panel-heading { + border-bottom: 0; +} +.note-editor .panel-group .panel-heading + .panel-collapse .panel-body { + border-top: 1px solid #dddddd; +} +.note-editor .panel-group .panel-footer { + border-top: 0; +} +.note-editor .panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} +.note-editor .panel-default { + border-color: #dddddd; +} +.note-editor .panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; +} +.note-editor .panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #dddddd; +} +.note-editor .panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #dddddd; +} +.note-editor .panel-primary { + border-color: #428bca; +} +.note-editor .panel-primary > .panel-heading { + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} +.note-editor .panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: #428bca; +} +.note-editor .panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #428bca; +} +.note-editor .panel-success { + border-color: #d6e9c6; +} +.note-editor .panel-success > .panel-heading { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.note-editor .panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: #d6e9c6; +} +.note-editor .panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #d6e9c6; +} +.note-editor .panel-warning { + border-color: #faebcc; +} +.note-editor .panel-warning > .panel-heading { + color: #c09853; + background-color: #fcf8e3; + border-color: #faebcc; +} +.note-editor .panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: #faebcc; +} +.note-editor .panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #faebcc; +} +.note-editor .panel-danger { + border-color: #ebccd1; +} +.note-editor .panel-danger > .panel-heading { + color: #b94a48; + background-color: #f2dede; + border-color: #ebccd1; +} +.note-editor .panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: #ebccd1; +} +.note-editor .panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #ebccd1; +} +.note-editor .panel-info { + border-color: #bce8f1; +} +.note-editor .panel-info > .panel-heading { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} +.note-editor .panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: #bce8f1; +} +.note-editor .panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #bce8f1; +} +.note-editor .well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.note-editor .well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.note-editor .well-lg { + padding: 24px; + border-radius: 6px; +} +.note-editor .well-sm { + padding: 9px; + border-radius: 3px; +} +.note-editor .close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.note-editor .close:hover, +.note-editor .close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} +button.note-editor .close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.modal-open { + overflow: hidden; +} +.modal { + display: none; + overflow: auto; + overflow-y: scroll; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-dialog { + margin-left: auto; + margin-right: auto; + width: auto; + padding: 10px; + z-index: 1050; +} +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; + outline: none; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; + min-height: 16.428571429px; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.428571429; +} +.modal-body { + position: relative; + padding: 20px; +} +.modal-footer { + margin-top: 15px; + padding: 19px 20px 20px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-footer:before, +.modal-footer:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.modal-footer:after { + clear: both; +} +.modal-footer:before, +.modal-footer:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +@media screen and (min-width: 768px) { + .modal-dialog { + width: 600px; + padding-top: 30px; + padding-bottom: 30px; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } +} +.tooltip { + position: absolute; + z-index: 1030; + display: block; + visibility: visible; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} +.tooltip.top { + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right { + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left { + margin-left: -3px; + padding: 0 5px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + right: 5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + background-color: #ffffff; + background-clip: padding-box; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + white-space: normal; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover .arrow { + border-width: 11px; +} +.popover .arrow:after { + border-width: 10px; + content: ""; +} +.popover.top .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.popover.top .arrow:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #ffffff; +} +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.popover.right .arrow:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #ffffff; +} +.popover.bottom .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.popover.bottom .arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #ffffff; +} +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left .arrow:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: #ffffff; + bottom: -10px; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; +} +.carousel-inner > .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; + line-height: 1; +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 15%; + opacity: 0.5; + filter: alpha(opacity=50); + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-control.left { + background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} +.carousel-control.right { + left: auto; + right: 0; + background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; +} +.carousel-control .icon-prev:before { + content: '\2039'; +} +.carousel-control .icon-next:before { + content: '\203a'; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + margin-left: -30%; + padding-left: 0; + list-style: none; + text-align: center; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid #ffffff; + border-radius: 10px; + cursor: pointer; +} +.carousel-indicators .active { + margin: 0; + width: 12px; + height: 12px; + background-color: #ffffff; +} +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicons-chevron-left, + .carousel-control .glyphicons-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.clearfix:after { + clear: both; +} +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; + visibility: hidden !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +tr.visible-xs, +th.visible-xs, +td.visible-xs { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important; + } + tr.visible-xs.visible-sm { + display: table-row !important; + } + th.visible-xs.visible-sm, + td.visible-xs.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important; + } + tr.visible-xs.visible-md { + display: table-row !important; + } + th.visible-xs.visible-md, + td.visible-xs.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important; + } + tr.visible-xs.visible-lg { + display: table-row !important; + } + th.visible-xs.visible-lg, + td.visible-xs.visible-lg { + display: table-cell !important; + } +} +.visible-sm, +tr.visible-sm, +th.visible-sm, +td.visible-sm { + display: none !important; +} +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important; + } + tr.visible-sm.visible-xs { + display: table-row !important; + } + th.visible-sm.visible-xs, + td.visible-sm.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important; + } + tr.visible-sm.visible-md { + display: table-row !important; + } + th.visible-sm.visible-md, + td.visible-sm.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important; + } + tr.visible-sm.visible-lg { + display: table-row !important; + } + th.visible-sm.visible-lg, + td.visible-sm.visible-lg { + display: table-cell !important; + } +} +.visible-md, +tr.visible-md, +th.visible-md, +td.visible-md { + display: none !important; +} +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important; + } + tr.visible-md.visible-xs { + display: table-row !important; + } + th.visible-md.visible-xs, + td.visible-md.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important; + } + tr.visible-md.visible-sm { + display: table-row !important; + } + th.visible-md.visible-sm, + td.visible-md.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important; + } + tr.visible-md.visible-lg { + display: table-row !important; + } + th.visible-md.visible-lg, + td.visible-md.visible-lg { + display: table-cell !important; + } +} +.visible-lg, +tr.visible-lg, +th.visible-lg, +td.visible-lg { + display: none !important; +} +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important; + } + tr.visible-lg.visible-xs { + display: table-row !important; + } + th.visible-lg.visible-xs, + td.visible-lg.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important; + } + tr.visible-lg.visible-sm { + display: table-row !important; + } + th.visible-lg.visible-sm, + td.visible-lg.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important; + } + tr.visible-lg.visible-md { + display: table-row !important; + } + th.visible-lg.visible-md, + td.visible-lg.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +.hidden-xs { + display: block !important; +} +tr.hidden-xs { + display: table-row !important; +} +th.hidden-xs, +td.hidden-xs { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-xs, + tr.hidden-xs, + th.hidden-xs, + td.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm, + tr.hidden-xs.hidden-sm, + th.hidden-xs.hidden-sm, + td.hidden-xs.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md, + tr.hidden-xs.hidden-md, + th.hidden-xs.hidden-md, + td.hidden-xs.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-xs.hidden-lg, + tr.hidden-xs.hidden-lg, + th.hidden-xs.hidden-lg, + td.hidden-xs.hidden-lg { + display: none !important; + } +} +.hidden-sm { + display: block !important; +} +tr.hidden-sm { + display: table-row !important; +} +th.hidden-sm, +td.hidden-sm { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-sm.hidden-xs, + tr.hidden-sm.hidden-xs, + th.hidden-sm.hidden-xs, + td.hidden-sm.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm, + tr.hidden-sm, + th.hidden-sm, + td.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md, + tr.hidden-sm.hidden-md, + th.hidden-sm.hidden-md, + td.hidden-sm.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-sm.hidden-lg, + tr.hidden-sm.hidden-lg, + th.hidden-sm.hidden-lg, + td.hidden-sm.hidden-lg { + display: none !important; + } +} +.hidden-md { + display: block !important; +} +tr.hidden-md { + display: table-row !important; +} +th.hidden-md, +td.hidden-md { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-md.hidden-xs, + tr.hidden-md.hidden-xs, + th.hidden-md.hidden-xs, + td.hidden-md.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm, + tr.hidden-md.hidden-sm, + th.hidden-md.hidden-sm, + td.hidden-md.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md, + tr.hidden-md, + th.hidden-md, + td.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-md.hidden-lg, + tr.hidden-md.hidden-lg, + th.hidden-md.hidden-lg, + td.hidden-md.hidden-lg { + display: none !important; + } +} +.hidden-lg { + display: block !important; +} +tr.hidden-lg { + display: table-row !important; +} +th.hidden-lg, +td.hidden-lg { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-lg.hidden-xs, + tr.hidden-lg.hidden-xs, + th.hidden-lg.hidden-xs, + td.hidden-lg.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm, + tr.hidden-lg.hidden-sm, + th.hidden-lg.hidden-sm, + td.hidden-lg.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md, + tr.hidden-lg.hidden-md, + th.hidden-lg.hidden-md, + td.hidden-lg.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg, + tr.hidden-lg, + th.hidden-lg, + td.hidden-lg { + display: none !important; + } +} +.visible-print, +tr.visible-print, +th.visible-print, +td.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } + .hidden-print, + tr.hidden-print, + th.hidden-print, + td.hidden-print { + display: none !important; + } +} diff --git a/novel-admin/src/main/resources/static/css/plugins/summernote/summernote.css b/novel-admin/src/main/resources/static/css/plugins/summernote/summernote.css new file mode 100644 index 0000000..3f050ae --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/summernote/summernote.css @@ -0,0 +1,446 @@ +.note-editor { + height: 300px; +} + +.note-editor .note-dropzone { + position: absolute; + z-index: 1; + display: none; + color: #87cefa; + background-color: white; + border: 2px dashed #87cefa; + opacity: .95; + pointer-event: none +} + +.note-editor .note-dropzone .note-dropzone-message { + display: table-cell; + font-size: 28px; + font-weight: bold; + text-align: center; + vertical-align: middle +} + +.note-editor .note-dropzone.hover { + color: #098ddf; + border: 2px dashed #098ddf +} + +.note-editor.dragover .note-dropzone { + display: table +} + +.note-editor.fullscreen { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + width: 100% +} + +.note-editor.fullscreen .note-editable { + background-color: white +} + +.note-editor.fullscreen .note-resizebar { + display: none +} + +.note-editor.codeview .note-editable { + display: none +} + +.note-editor.codeview .note-codable { + display: block +} + +.note-editor .note-toolbar { + padding-bottom: 5px; + padding-left: 10px; + padding-top: 5px; + margin: 0; + background-color: #f5f5f5; + border-bottom: 1px solid #E7EAEC +} + +.note-editor .note-toolbar > .btn-group { + margin-top: 5px; + margin-right: 5px; + margin-left: 0 +} + +.note-editor .note-toolbar .note-table .dropdown-menu { + min-width: 0; + padding: 5px +} + +.note-editor .note-toolbar .note-table .dropdown-menu .note-dimension-picker { + font-size: 18px +} + +.note-editor .note-toolbar .note-table .dropdown-menu .note-dimension-picker .note-dimension-picker-mousecatcher { + position: absolute !important; + z-index: 3; + width: 10em; + height: 10em; + cursor: pointer +} + +.note-editor .note-toolbar .note-table .dropdown-menu .note-dimension-picker .note-dimension-picker-unhighlighted { + position: relative !important; + z-index: 1; + width: 5em; + height: 5em; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat +} + +.note-editor .note-toolbar .note-table .dropdown-menu .note-dimension-picker .note-dimension-picker-highlighted { + position: absolute !important; + z-index: 2; + width: 1em; + height: 1em; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat +} + +.note-editor .note-toolbar .note-style h1, .note-editor .note-toolbar .note-style h2, .note-editor .note-toolbar .note-style h3, .note-editor .note-toolbar .note-style h4, .note-editor .note-toolbar .note-style h5, .note-editor .note-toolbar .note-style h6, .note-editor .note-toolbar .note-style blockquote { + margin: 0 +} + +.note-editor .note-toolbar .note-color .dropdown-toggle { + width: 20px; + padding-left: 5px +} + +.note-editor .note-toolbar .note-color .dropdown-menu { + min-width: 290px +} + +.note-editor .note-toolbar .note-color .dropdown-menu .btn-group { + margin: 0 +} + +.note-editor .note-toolbar .note-color .dropdown-menu .btn-group:first-child { + margin: 0 5px +} + +.note-editor .note-toolbar .note-color .dropdown-menu .btn-group .note-palette-title { + margin: 2px 7px; + font-size: 12px; + text-align: center; + border-bottom: 1px solid #eee +} + +.note-editor .note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset { + padding: 0 3px; + margin: 5px; + font-size: 12px; + cursor: pointer; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px +} + +.note-editor .note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset:hover { + background: #eee +} + +.note-editor .note-toolbar .note-para .dropdown-menu { + min-width: 216px; + padding: 5px +} + +.note-editor .note-toolbar .note-para .dropdown-menu > div:first-child { + margin-right: 5px +} + +.note-editor .note-statusbar { + background-color: #f5f5f5 +} + +.note-editor .note-statusbar .note-resizebar { + width: 100%; + height: 8px; + cursor: s-resize; + border-top: 1px solid #a9a9a9 +} + +.note-editor .note-statusbar .note-resizebar .note-icon-bar { + width: 20px; + margin: 1px auto; + border-top: 1px solid #a9a9a9 +} + +.note-editor .note-popover .popover { + max-width: none +} + +.note-editor .note-popover .popover .popover-content { + padding: 5px +} + +.note-editor .note-popover .popover .popover-content a { + display: inline-block; + max-width: 200px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + vertical-align: middle +} + +.note-editor .note-popover .popover .popover-content .btn-group + .btn-group { + margin-left: 5px +} + +.note-editor .note-popover .popover .arrow { + left: 20px +} + +.note-editor .note-handle .note-control-selection { + position: absolute; + display: none; + border: 1px solid black +} + +.note-editor .note-handle .note-control-selection > div { + position: absolute +} + +.note-editor .note-handle .note-control-selection .note-control-selection-bg { + width: 100%; + height: 100%; + background-color: black; + -webkit-opacity: .3; + -khtml-opacity: .3; + -moz-opacity: .3; + opacity: .3; + -ms-filter: alpha(opacity=30); + filter: alpha(opacity=30) +} + +.note-editor .note-handle .note-control-selection .note-control-handle { + width: 7px; + height: 7px; + border: 1px solid black +} + +.note-editor .note-handle .note-control-selection .note-control-holder { + width: 7px; + height: 7px; + border: 1px solid black +} + +.note-editor .note-handle .note-control-selection .note-control-sizing { + width: 7px; + height: 7px; + background-color: white; + border: 1px solid black +} + +.note-editor .note-handle .note-control-selection .note-control-nw { + top: -5px; + left: -5px; + border-right: 0; + border-bottom: 0 +} + +.note-editor .note-handle .note-control-selection .note-control-ne { + top: -5px; + right: -5px; + border-bottom: 0; + border-left: none +} + +.note-editor .note-handle .note-control-selection .note-control-sw { + bottom: -5px; + left: -5px; + border-top: 0; + border-right: 0 +} + +.note-editor .note-handle .note-control-selection .note-control-se { + right: -5px; + bottom: -5px; + cursor: se-resize +} + +.note-editor .note-handle .note-control-selection .note-control-selection-info { + right: 0; + bottom: 0; + padding: 5px; + margin: 5px; + font-size: 12px; + color: white; + background-color: black; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-opacity: .7; + -khtml-opacity: .7; + -moz-opacity: .7; + opacity: .7; + -ms-filter: alpha(opacity=70); + filter: alpha(opacity=70) +} + +.note-editor .note-dialog > div { + display: none +} + +.note-editor .note-dialog .note-image-dialog .note-dropzone { + min-height: 100px; + margin-bottom: 10px; + font-size: 30px; + line-height: 4; + color: lightgray; + text-align: center; + border: 4px dashed lightgray +} + +.note-editor .note-dialog .note-help-dialog { + font-size: 12px; + color: #ccc; + background: transparent; + background-color: #222 !important; + border: 0; + -webkit-opacity: .9; + -khtml-opacity: .9; + -moz-opacity: .9; + opacity: .9; + -ms-filter: alpha(opacity=90); + filter: alpha(opacity=90) +} + +.note-editor .note-dialog .note-help-dialog .modal-content { + background: transparent; + border: 1px solid white; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none +} + +.note-editor .note-dialog .note-help-dialog a { + font-size: 12px; + color: white +} + +.note-editor .note-dialog .note-help-dialog .title { + padding-bottom: 5px; + font-size: 14px; + font-weight: bold; + color: white; + border-bottom: white 1px solid +} + +.note-editor .note-dialog .note-help-dialog .modal-close { + font-size: 14px; + color: #dd0; + cursor: pointer +} + +.note-editor .note-dialog .note-help-dialog .note-shortcut-layout { + width: 100% +} + +.note-editor .note-dialog .note-help-dialog .note-shortcut-layout td { + vertical-align: top +} + +.note-editor .note-dialog .note-help-dialog .note-shortcut { + margin-top: 8px +} + +.note-editor .note-dialog .note-help-dialog .note-shortcut th { + font-size: 13px; + color: #dd0; + text-align: left +} + +.note-editor .note-dialog .note-help-dialog .note-shortcut td:first-child { + min-width: 110px; + padding-right: 10px; + font-family: "Courier New"; + color: #dd0; + text-align: right +} + +.note-editor .note-editable { + padding: 20px; + overflow: auto; + outline: 0 +} + +.note-editor .note-editable[contenteditable="false"] { + background-color: #e5e5e5 +} + +.note-editor .note-codable { + display: none; + width: 100%; + padding: 10px; + margin-bottom: 0; + font-family: Menlo, Monaco, monospace, sans-serif; + font-size: 14px; + color: #ccc; + background-color: #222; + border: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + box-shadow: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + resize: none +} + +.note-editor .dropdown-menu { + min-width: 90px +} + +.note-editor .dropdown-menu.right { + right: 0; + left: auto +} + +.note-editor .dropdown-menu.right::before { + right: 9px; + left: auto !important +} + +.note-editor .dropdown-menu.right::after { + right: 10px; + left: auto !important +} + +.note-editor .dropdown-menu li a i { + color: deepskyblue; + visibility: hidden +} + +.note-editor .dropdown-menu li a.checked i { + visibility: visible +} + +.note-editor .note-fontsize-10 { + font-size: 10px +} + +.note-editor .note-color-palette { + line-height: 1 +} + +.note-editor .note-color-palette div .note-color-btn { + width: 17px; + height: 17px; + padding: 0; + margin: 0; + border: 1px solid #fff +} + +.note-editor .note-color-palette div .note-color-btn:hover { + border: 1px solid #000 +} diff --git a/novel-admin/src/main/resources/static/css/plugins/sweetalert/sweetalert.css b/novel-admin/src/main/resources/static/css/plugins/sweetalert/sweetalert.css new file mode 100644 index 0000000..4469aea --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/sweetalert/sweetalert.css @@ -0,0 +1,715 @@ +body.stop-scrolling { + height: 100%; + overflow: hidden; } + +.sweet-overlay { + background-color: black; + /* IE8 */ + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + /* IE8 */ + background-color: rgba(0, 0, 0, 0.4); + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + display: none; + z-index: 10000; } + +.sweet-alert { + background-color: white; + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + width: 478px; + padding: 17px; + border-radius: 5px; + text-align: center; + position: fixed; + left: 50%; + top: 50%; + margin-left: -256px; + margin-top: -200px; + overflow: hidden; + display: none; + z-index: 99999; } + @media all and (max-width: 540px) { + .sweet-alert { + width: auto; + margin-left: 0; + margin-right: 0; + left: 15px; + right: 15px; } } + .sweet-alert h2 { + color: #575757; + font-size: 30px; + text-align: center; + font-weight: 600; + text-transform: none; + position: relative; + margin: 25px 0; + padding: 0; + line-height: 40px; + display: block; } + .sweet-alert p { + color: #797979; + font-size: 16px; + text-align: center; + font-weight: 300; + position: relative; + text-align: inherit; + float: none; + margin: 0; + padding: 0; + line-height: normal; } + .sweet-alert fieldset { + border: none; + position: relative; } + .sweet-alert .sa-error-container { + background-color: #f1f1f1; + margin-left: -17px; + margin-right: -17px; + overflow: hidden; + padding: 0 10px; + max-height: 0; + webkit-transition: padding 0.15s, max-height 0.15s; + transition: padding 0.15s, max-height 0.15s; } + .sweet-alert .sa-error-container.show { + padding: 10px 0; + max-height: 100px; + webkit-transition: padding 0.2s, max-height 0.2s; + transition: padding 0.25s, max-height 0.25s; } + .sweet-alert .sa-error-container .icon { + display: inline-block; + width: 24px; + height: 24px; + border-radius: 50%; + background-color: #ea7d7d; + color: white; + line-height: 24px; + text-align: center; + margin-right: 3px; } + .sweet-alert .sa-error-container p { + display: inline-block; } + .sweet-alert .sa-input-error { + position: absolute; + top: 29px; + right: 26px; + width: 20px; + height: 20px; + opacity: 0; + -webkit-transform: scale(0.5); + transform: scale(0.5); + -webkit-transform-origin: 50% 50%; + transform-origin: 50% 50%; + -webkit-transition: all 0.1s; + transition: all 0.1s; } + .sweet-alert .sa-input-error::before, .sweet-alert .sa-input-error::after { + content: ""; + width: 20px; + height: 6px; + background-color: #f06e57; + border-radius: 3px; + position: absolute; + top: 50%; + margin-top: -4px; + left: 50%; + margin-left: -9px; } + .sweet-alert .sa-input-error::before { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + .sweet-alert .sa-input-error::after { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + .sweet-alert .sa-input-error.show { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); } + .sweet-alert input { + width: 100%; + box-sizing: border-box; + border-radius: 3px; + border: 1px solid #d7d7d7; + height: 43px; + margin-top: 10px; + margin-bottom: 17px; + font-size: 18px; + box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.06); + padding: 0 12px; + display: none; + -webkit-transition: all 0.3s; + transition: all 0.3s; } + .sweet-alert input:focus { + outline: none; + box-shadow: 0px 0px 3px #c4e6f5; + border: 1px solid #b4dbed; } + .sweet-alert input:focus::-moz-placeholder { + transition: opacity 0.3s 0.03s ease; + opacity: 0.5; } + .sweet-alert input:focus:-ms-input-placeholder { + transition: opacity 0.3s 0.03s ease; + opacity: 0.5; } + .sweet-alert input:focus::-webkit-input-placeholder { + transition: opacity 0.3s 0.03s ease; + opacity: 0.5; } + .sweet-alert input::-moz-placeholder { + color: #bdbdbd; } + .sweet-alert input:-ms-input-placeholder { + color: #bdbdbd; } + .sweet-alert input::-webkit-input-placeholder { + color: #bdbdbd; } + .sweet-alert.show-input input { + display: block; } + .sweet-alert button { + background-color: #AEDEF4; + color: white; + border: none; + box-shadow: none; + font-size: 17px; + font-weight: 500; + -webkit-border-radius: 4px; + border-radius: 5px; + padding: 10px 32px; + margin: 26px 5px 0 5px; + cursor: pointer; } + .sweet-alert button:focus { + outline: none; + box-shadow: 0 0 2px rgba(128, 179, 235, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.05); } + .sweet-alert button:hover { + background-color: #a1d9f2; } + .sweet-alert button:active { + background-color: #81ccee; } + .sweet-alert button.cancel { + background-color: #D0D0D0; } + .sweet-alert button.cancel:hover { + background-color: #c8c8c8; } + .sweet-alert button.cancel:active { + background-color: #b6b6b6; } + .sweet-alert button.cancel:focus { + box-shadow: rgba(197, 205, 211, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.0470588) 0px 0px 0px 1px inset !important; } + .sweet-alert button::-moz-focus-inner { + border: 0; } + .sweet-alert[data-has-cancel-button=false] button { + box-shadow: none !important; } + .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] { + padding-bottom: 40px; } + .sweet-alert .sa-icon { + width: 80px; + height: 80px; + border: 4px solid gray; + -webkit-border-radius: 40px; + border-radius: 40px; + border-radius: 50%; + margin: 20px auto; + padding: 0; + position: relative; + box-sizing: content-box; } + .sweet-alert .sa-icon.sa-error { + border-color: #F27474; } + .sweet-alert .sa-icon.sa-error .sa-x-mark { + position: relative; + display: block; } + .sweet-alert .sa-icon.sa-error .sa-line { + position: absolute; + height: 5px; + width: 47px; + background-color: #F27474; + display: block; + top: 37px; + border-radius: 2px; } + .sweet-alert .sa-icon.sa-error .sa-line.sa-left { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + left: 17px; } + .sweet-alert .sa-icon.sa-error .sa-line.sa-right { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + right: 16px; } + .sweet-alert .sa-icon.sa-warning { + border-color: #F8BB86; } + .sweet-alert .sa-icon.sa-warning .sa-body { + position: absolute; + width: 5px; + height: 47px; + left: 50%; + top: 10px; + -webkit-border-radius: 2px; + border-radius: 2px; + margin-left: -2px; + background-color: #F8BB86; } + .sweet-alert .sa-icon.sa-warning .sa-dot { + position: absolute; + width: 7px; + height: 7px; + -webkit-border-radius: 50%; + border-radius: 50%; + margin-left: -3px; + left: 50%; + bottom: 10px; + background-color: #F8BB86; } + .sweet-alert .sa-icon.sa-info { + border-color: #C9DAE1; } + .sweet-alert .sa-icon.sa-info::before { + content: ""; + position: absolute; + width: 5px; + height: 29px; + left: 50%; + bottom: 17px; + border-radius: 2px; + margin-left: -2px; + background-color: #C9DAE1; } + .sweet-alert .sa-icon.sa-info::after { + content: ""; + position: absolute; + width: 7px; + height: 7px; + border-radius: 50%; + margin-left: -3px; + top: 19px; + background-color: #C9DAE1; } + .sweet-alert .sa-icon.sa-success { + border-color: #A5DC86; } + .sweet-alert .sa-icon.sa-success::before, .sweet-alert .sa-icon.sa-success::after { + content: ''; + -webkit-border-radius: 40px; + border-radius: 40px; + border-radius: 50%; + position: absolute; + width: 60px; + height: 120px; + background: white; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + .sweet-alert .sa-icon.sa-success::before { + -webkit-border-radius: 120px 0 0 120px; + border-radius: 120px 0 0 120px; + top: -7px; + left: -33px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + -webkit-transform-origin: 60px 60px; + transform-origin: 60px 60px; } + .sweet-alert .sa-icon.sa-success::after { + -webkit-border-radius: 0 120px 120px 0; + border-radius: 0 120px 120px 0; + top: -11px; + left: 30px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + -webkit-transform-origin: 0px 60px; + transform-origin: 0px 60px; } + .sweet-alert .sa-icon.sa-success .sa-placeholder { + width: 80px; + height: 80px; + border: 4px solid rgba(165, 220, 134, 0.2); + -webkit-border-radius: 40px; + border-radius: 40px; + border-radius: 50%; + box-sizing: content-box; + position: absolute; + left: -4px; + top: -4px; + z-index: 2; } + .sweet-alert .sa-icon.sa-success .sa-fix { + width: 5px; + height: 90px; + background-color: white; + position: absolute; + left: 28px; + top: 8px; + z-index: 1; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + .sweet-alert .sa-icon.sa-success .sa-line { + height: 5px; + background-color: #A5DC86; + display: block; + border-radius: 2px; + position: absolute; + z-index: 2; } + .sweet-alert .sa-icon.sa-success .sa-line.sa-tip { + width: 25px; + left: 14px; + top: 46px; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + .sweet-alert .sa-icon.sa-success .sa-line.sa-long { + width: 47px; + right: 8px; + top: 38px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + .sweet-alert .sa-icon.sa-custom { + background-size: contain; + border-radius: 0; + border: none; + background-position: center center; + background-repeat: no-repeat; } + +/* + * Animations + */ +@-webkit-keyframes showSweetAlert { + 0% { + transform: scale(0.7); + -webkit-transform: scale(0.7); } + 45% { + transform: scale(1.05); + -webkit-transform: scale(1.05); } + 80% { + transform: scale(0.95); + -webkit-transform: scale(0.95); } + 100% { + transform: scale(1); + -webkit-transform: scale(1); } } + +@keyframes showSweetAlert { + 0% { + transform: scale(0.7); + -webkit-transform: scale(0.7); } + 45% { + transform: scale(1.05); + -webkit-transform: scale(1.05); } + 80% { + transform: scale(0.95); + -webkit-transform: scale(0.95); } + 100% { + transform: scale(1); + -webkit-transform: scale(1); } } + +@-webkit-keyframes hideSweetAlert { + 0% { + transform: scale(1); + -webkit-transform: scale(1); } + 100% { + transform: scale(0.5); + -webkit-transform: scale(0.5); } } + +@keyframes hideSweetAlert { + 0% { + transform: scale(1); + -webkit-transform: scale(1); } + 100% { + transform: scale(0.5); + -webkit-transform: scale(0.5); } } + +@-webkit-keyframes slideFromTop { + 0% { + top: 0%; } + 100% { + top: 50%; } } + +@keyframes slideFromTop { + 0% { + top: 0%; } + 100% { + top: 50%; } } + +@-webkit-keyframes slideToTop { + 0% { + top: 50%; } + 100% { + top: 0%; } } + +@keyframes slideToTop { + 0% { + top: 50%; } + 100% { + top: 0%; } } + +@-webkit-keyframes slideFromBottom { + 0% { + top: 70%; } + 100% { + top: 50%; } } + +@keyframes slideFromBottom { + 0% { + top: 70%; } + 100% { + top: 50%; } } + +@-webkit-keyframes slideToBottom { + 0% { + top: 50%; } + 100% { + top: 70%; } } + +@keyframes slideToBottom { + 0% { + top: 50%; } + 100% { + top: 70%; } } + +.showSweetAlert[data-animation=pop] { + -webkit-animation: showSweetAlert 0.3s; + animation: showSweetAlert 0.3s; } + +.showSweetAlert[data-animation=none] { + -webkit-animation: none; + animation: none; } + +.showSweetAlert[data-animation=slide-from-top] { + -webkit-animation: slideFromTop 0.3s; + animation: slideFromTop 0.3s; } + +.showSweetAlert[data-animation=slide-from-bottom] { + -webkit-animation: slideFromBottom 0.3s; + animation: slideFromBottom 0.3s; } + +.hideSweetAlert[data-animation=pop] { + -webkit-animation: hideSweetAlert 0.2s; + animation: hideSweetAlert 0.2s; } + +.hideSweetAlert[data-animation=none] { + -webkit-animation: none; + animation: none; } + +.hideSweetAlert[data-animation=slide-from-top] { + -webkit-animation: slideToTop 0.4s; + animation: slideToTop 0.4s; } + +.hideSweetAlert[data-animation=slide-from-bottom] { + -webkit-animation: slideToBottom 0.3s; + animation: slideToBottom 0.3s; } + +@-webkit-keyframes animateSuccessTip { + 0% { + width: 0; + left: 1px; + top: 19px; } + 54% { + width: 0; + left: 1px; + top: 19px; } + 70% { + width: 50px; + left: -8px; + top: 37px; } + 84% { + width: 17px; + left: 21px; + top: 48px; } + 100% { + width: 25px; + left: 14px; + top: 45px; } } + +@keyframes animateSuccessTip { + 0% { + width: 0; + left: 1px; + top: 19px; } + 54% { + width: 0; + left: 1px; + top: 19px; } + 70% { + width: 50px; + left: -8px; + top: 37px; } + 84% { + width: 17px; + left: 21px; + top: 48px; } + 100% { + width: 25px; + left: 14px; + top: 45px; } } + +@-webkit-keyframes animateSuccessLong { + 0% { + width: 0; + right: 46px; + top: 54px; } + 65% { + width: 0; + right: 46px; + top: 54px; } + 84% { + width: 55px; + right: 0px; + top: 35px; } + 100% { + width: 47px; + right: 8px; + top: 38px; } } + +@keyframes animateSuccessLong { + 0% { + width: 0; + right: 46px; + top: 54px; } + 65% { + width: 0; + right: 46px; + top: 54px; } + 84% { + width: 55px; + right: 0px; + top: 35px; } + 100% { + width: 47px; + right: 8px; + top: 38px; } } + +@-webkit-keyframes rotatePlaceholder { + 0% { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); } + 5% { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); } + 12% { + transform: rotate(-405deg); + -webkit-transform: rotate(-405deg); } + 100% { + transform: rotate(-405deg); + -webkit-transform: rotate(-405deg); } } + +@keyframes rotatePlaceholder { + 0% { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); } + 5% { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); } + 12% { + transform: rotate(-405deg); + -webkit-transform: rotate(-405deg); } + 100% { + transform: rotate(-405deg); + -webkit-transform: rotate(-405deg); } } + +.animateSuccessTip { + -webkit-animation: animateSuccessTip 0.75s; + animation: animateSuccessTip 0.75s; } + +.animateSuccessLong { + -webkit-animation: animateSuccessLong 0.75s; + animation: animateSuccessLong 0.75s; } + +.sa-icon.sa-success.animate::after { + -webkit-animation: rotatePlaceholder 4.25s ease-in; + animation: rotatePlaceholder 4.25s ease-in; } + +@-webkit-keyframes animateErrorIcon { + 0% { + transform: rotateX(100deg); + -webkit-transform: rotateX(100deg); + opacity: 0; } + 100% { + transform: rotateX(0deg); + -webkit-transform: rotateX(0deg); + opacity: 1; } } + +@keyframes animateErrorIcon { + 0% { + transform: rotateX(100deg); + -webkit-transform: rotateX(100deg); + opacity: 0; } + 100% { + transform: rotateX(0deg); + -webkit-transform: rotateX(0deg); + opacity: 1; } } + +.animateErrorIcon { + -webkit-animation: animateErrorIcon 0.5s; + animation: animateErrorIcon 0.5s; } + +@-webkit-keyframes animateXMark { + 0% { + transform: scale(0.4); + -webkit-transform: scale(0.4); + margin-top: 26px; + opacity: 0; } + 50% { + transform: scale(0.4); + -webkit-transform: scale(0.4); + margin-top: 26px; + opacity: 0; } + 80% { + transform: scale(1.15); + -webkit-transform: scale(1.15); + margin-top: -6px; } + 100% { + transform: scale(1); + -webkit-transform: scale(1); + margin-top: 0; + opacity: 1; } } + +@keyframes animateXMark { + 0% { + transform: scale(0.4); + -webkit-transform: scale(0.4); + margin-top: 26px; + opacity: 0; } + 50% { + transform: scale(0.4); + -webkit-transform: scale(0.4); + margin-top: 26px; + opacity: 0; } + 80% { + transform: scale(1.15); + -webkit-transform: scale(1.15); + margin-top: -6px; } + 100% { + transform: scale(1); + -webkit-transform: scale(1); + margin-top: 0; + opacity: 1; } } + +.animateXMark { + -webkit-animation: animateXMark 0.5s; + animation: animateXMark 0.5s; } + +@-webkit-keyframes pulseWarning { + 0% { + border-color: #F8D486; } + 100% { + border-color: #F8BB86; } } + +@keyframes pulseWarning { + 0% { + border-color: #F8D486; } + 100% { + border-color: #F8BB86; } } + +.pulseWarning { + -webkit-animation: pulseWarning 0.75s infinite alternate; + animation: pulseWarning 0.75s infinite alternate; } + +@-webkit-keyframes pulseWarningIns { + 0% { + background-color: #F8D486; } + 100% { + background-color: #F8BB86; } } + +@keyframes pulseWarningIns { + 0% { + background-color: #F8D486; } + 100% { + background-color: #F8BB86; } } + +.pulseWarningIns { + -webkit-animation: pulseWarningIns 0.75s infinite alternate; + animation: pulseWarningIns 0.75s infinite alternate; } + +/* Internet Explorer 9 has some special quirks that are fixed here */ +/* The icons are not animated. */ +/* This file is automatically merged into sweet-alert.min.js through Gulp */ +/* Error icon */ +.sweet-alert .sa-icon.sa-error .sa-line.sa-left { + -ms-transform: rotate(45deg) \9; } + +.sweet-alert .sa-icon.sa-error .sa-line.sa-right { + -ms-transform: rotate(-45deg) \9; } + +/* Success icon */ +.sweet-alert .sa-icon.sa-success { + border-color: transparent\9; } + +.sweet-alert .sa-icon.sa-success .sa-line.sa-tip { + -ms-transform: rotate(45deg) \9; } + +.sweet-alert .sa-icon.sa-success .sa-line.sa-long { + -ms-transform: rotate(-45deg) \9; } diff --git a/novel-admin/src/main/resources/static/css/plugins/switchery/switchery.css b/novel-admin/src/main/resources/static/css/plugins/switchery/switchery.css new file mode 100644 index 0000000..b689c6b --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/switchery/switchery.css @@ -0,0 +1,32 @@ +/* + * + * Main stylesheet for Switchery. + * http://abpetkov.github.io/switchery/ + * + */ + +.switchery { + background-color: #fff; + border: 1px solid #dfdfdf; + border-radius: 20px; + cursor: pointer; + display: inline-block; + height: 30px; + position: relative; + vertical-align: middle; + width: 50px; + + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +.switchery > small { + background: #fff; + border-radius: 100%; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); + height: 30px; + position: absolute; + top: 0; + width: 30px; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/toastr/toastr.min.css b/novel-admin/src/main/resources/static/css/plugins/toastr/toastr.min.css new file mode 100644 index 0000000..738e63d --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/toastr/toastr.min.css @@ -0,0 +1,222 @@ +.toast-title { + font-weight: 700 +} + +.toast-message { + -ms-word-wrap: break-word; + word-wrap: break-word +} + +.toast-message a, .toast-message label { + color: #fff +} + +.toast-message a:hover { + color: #ccc; + text-decoration: none +} + +.toast-close-button { + position: relative; + right: -.3em; + top: -.3em; + float: right; + font-size: 20px; + font-weight: 700; + color: #fff; + -webkit-text-shadow: 0 1px 0 #fff; + text-shadow: 0 1px 0 #fff; + opacity: .8; + -ms-filter: alpha(Opacity=80); + filter: alpha(opacity=80) +} + +.toast-close-button:focus, .toast-close-button:hover { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: .4; + -ms-filter: alpha(Opacity=40); + filter: alpha(opacity=40) +} + +button.toast-close-button { + padding: 0; + cursor: pointer; + background: 0 0; + border: 0; + -webkit-appearance: none +} + +.toast-top-center { + top: 0; + right: 0; + width: 100% +} + +.toast-bottom-center { + bottom: 0; + right: 0; + width: 100% +} + +.toast-top-full-width { + top: 0; + right: 0; + width: 100% +} + +.toast-bottom-full-width { + bottom: 0; + right: 0; + width: 100% +} + +.toast-top-left { + top: 12px; + left: 12px +} + +.toast-top-right { + top: 12px; + right: 12px +} + +.toast-bottom-right { + right: 12px; + bottom: 12px +} + +.toast-bottom-left { + bottom: 12px; + left: 12px +} + +#toast-container { + position: fixed; + z-index: 999999 +} + +#toast-container * { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +#toast-container > div { + position: relative; + overflow: hidden; + margin: 0 0 6px; + padding: 15px 15px 15px 50px; + width: 300px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + background-position: 15px center; + background-repeat: no-repeat; + -moz-box-shadow: 0 0 12px #999; + -webkit-box-shadow: 0 0 12px #999; + box-shadow: 0 0 12px #999; + color: #fff; + opacity: .8; + -ms-filter: alpha(Opacity=80); + filter: alpha(opacity=80) +} + +#toast-container > :hover { + -moz-box-shadow: 0 0 12px #000; + -webkit-box-shadow: 0 0 12px #000; + box-shadow: 0 0 12px #000; + opacity: 1; + -ms-filter: alpha(Opacity=100); + filter: alpha(opacity=100); + cursor: pointer +} + +#toast-container > .toast-info { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=) !important +} + +#toast-container > .toast-error { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=) !important +} + +#toast-container > .toast-success { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==) !important +} + +#toast-container > .toast-warning { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=) !important +} + +#toast-container.toast-bottom-center > div, #toast-container.toast-top-center > div { + width: 300px; + margin: auto +} + +#toast-container.toast-bottom-full-width > div, #toast-container.toast-top-full-width > div { + width: 96%; + margin: auto +} + +.toast { + background-color: #030303 +} + +.toast-success { + background-color: #51a351 +} + +.toast-error { + background-color: #bd362f +} + +.toast-info { + background-color: #2f96b4 +} + +.toast-warning { + background-color: #f89406 +} + +.toast-progress { + position: absolute; + left: 0; + bottom: 0; + height: 4px; + background-color: #000; + opacity: .4; + -ms-filter: alpha(Opacity=40); + filter: alpha(opacity=40) +} + +@media all and (max-width: 240px) { + #toast-container > div { + padding: 8px 8px 8px 50px; + width: 11em + } + + #toast-container .toast-close-button { + right: -.2em; + top: -.2em + } +} + +@media all and (min-width: 241px) and (max-width: 480px) { + #toast-container > div { + padding: 8px 8px 8px 50px; + width: 18em + } + + #toast-container .toast-close-button { + right: -.2em; + top: -.2em + } +} + +@media all and (min-width: 481px) and (max-width: 768px) { + #toast-container > div { + padding: 15px 15px 15px 50px; + width: 25em + } +} diff --git a/novel-admin/src/main/resources/static/css/plugins/treeview/bootstrap-treeview.css b/novel-admin/src/main/resources/static/css/plugins/treeview/bootstrap-treeview.css new file mode 100644 index 0000000..739b9e3 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/treeview/bootstrap-treeview.css @@ -0,0 +1,35 @@ +/* ========================================================= + * bootstrap-treeview.css v1.0.0 + * ========================================================= + * Copyright 2013 Jonathan Miles + * Project URL : http://www.jondmiles.com/bootstrap-treeview + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + +.list-group-item { + cursor: pointer; +} + +/*.list-group-item:hover { + background-color: #f5f5f5; +}*/ + +span.indent { + margin-left: 10px; + margin-right: 10px; +} + +span.icon { + margin-right: 5px; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/webuploader/webuploader.css b/novel-admin/src/main/resources/static/css/plugins/webuploader/webuploader.css new file mode 100644 index 0000000..12f451f --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/webuploader/webuploader.css @@ -0,0 +1,28 @@ +.webuploader-container { + position: relative; +} +.webuploader-element-invisible { + position: absolute !important; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px,1px,1px,1px); +} +.webuploader-pick { + position: relative; + display: inline-block; + cursor: pointer; + background: #00b7ee; + padding: 10px 15px; + color: #fff; + text-align: center; + border-radius: 3px; + overflow: hidden; +} +.webuploader-pick-hover { + background: #00a2d4; +} + +.webuploader-pick-disable { + opacity: 0.6; + pointer-events:none; +} + diff --git a/novel-admin/src/main/resources/static/css/plugins/zTree/awesome.css b/novel-admin/src/main/resources/static/css/plugins/zTree/awesome.css new file mode 100644 index 0000000..64729c1 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/plugins/zTree/awesome.css @@ -0,0 +1,387 @@ +/*------------------------------------- +zTree Style using fontawesome instead of images + +version: 1.1 +author: Mike King +email: mikkelking @ hotmail . com +website: http://code.google.com/p/jquerytree/ + +-------------------------------------*/ +/* Definitions ----------------------*/ +/* End of Definitions ---------------*/ +/* Imports -------------------------*/ +/* End of Imports ------------------*/ +.ztree * { + padding: 0; + margin: 0; + font-size: 14px; + font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif; + background-color: #ffffff; +} +.ztree { + margin: 0; + padding: 5px; + color: #333333; + background-color: #ffffff; +} +.ztree li { + padding: 3px; + margin: 0; + list-style: none; + line-height: 17px; + text-align: left; + white-space: nowrap; + outline: 0; +} +.ztree li ul { + margin: 0px; + padding: 0 0 0 18px; +} +.ztree li a { + padding-right: 3px; + margin: 0; + cursor: pointer; + height: 17px; + color: #333333; + background-color: transparent; + text-decoration: none; + vertical-align: top; + display: inline-block; +} +.ztree li a input.rename { + height: 14px; + width: 80px; + padding: 0; + margin: 0; + color: #ffffff; + background-color: #333333; + font-size: 12px; + border: 1px #585956 solid; + *border: 0px; +} +.ztree li a:hover { + background-color: #beebff; +} +.ztree li a.curSelectedNode { + padding-top: 0px; + background-color: #666666; + color: #f0f6e4; + height: 17px; + opacity: 0.8; +} +.ztree li a.curSelectedNode_Edit { + padding-top: 0px; + background-color: transparent; + color: #333333; + height: 17px; + border: 1px #666 solid; + opacity: 0.8; +} +.ztree li a.tmpTargetNode_inner { + padding-top: 0px; + background-color: #aaa; + color: #333333; + height: 17px; + border: 1px #666 solid; + opacity: 0.8; + filter: alpha(opacity=80); +} +.ztree li span { + line-height: 17px; + margin-left: 5px; + margin-right: 2px; + background-color: transparent; +} +.ztree li span.button { + line-height: 0; + margin: 0; + padding: 0; + width: 15px; + height: 15px; + display: inline-block; + vertical-align: top; + border: 0px solid; + cursor: pointer; + outline: none; + background-color: transparent; + background-repeat: no-repeat; + background-attachment: scroll; +} +.ztree li span.button::before { + color: #333333; + font-family: FontAwesome; + padding-top: 10px; +} +.ztree li span.button.chk { + margin: 0px; + cursor: auto; + width: 15px; + display: inline-block; + padding-top: 10px; + padding-left: 2px; +} +.ztree li span.button.chk.checkbox_false_full::before { + content: "\f096"; +} +.ztree li span.button.chk.checkbox_false_full_focus::before { + content: "\f096"; + color: #333333; +} +.ztree li span.button.chk.checkbox_false_part::before { + content: "\f096"; + color: #aaaaaa; +} +.ztree li span.button.chk.checkbox_false_part_focus::before { + content: "\f096"; + color: #cad96c; +} +.ztree li span.button.chk.checkbox_false_disable::before { + content: "\f096"; + color: #808080; +} +.ztree li span.button.chk.checkbox_true_full::before { + content: "\f046"; +} +.ztree li span.button.chk.checkbox_true_full_focus::before { + content: "\f046"; +} +.ztree li span.button.chk.checkbox_true_part::before { + content: "\f14a"; +} +.ztree li span.button.chk.checkbox_true_part_focus::before { + content: "\f14a"; + color: #333333; +} +.ztree li span.button.chk.checkbox_true_full_focus::before { + content: "\f046"; + color: #333333; +} +.ztree li span.button.chk.checkbox_true_part::before { + content: "\f046"; + color: #aaaaaa; +} +.ztree li span.button.chk.checkbox_true_part_focus::before { + content: "\f046"; + color: #cad96c; +} +.ztree li span.button.chk.checkbox_true_disable::before { + content: "\f046"; + color: #808080; +} +.ztree li span.button.chk.radio_false_full::before { + content: "\f10c"; +} +.ztree li span.button.chk.radio_false_full_focus::before { + content: "\f10c"; + color: #333333; +} +.ztree li span.button.chk.radio_false_part::before { + content: "\f10c"; + color: #aaaaaa; +} +.ztree li span.button.chk.radio_false_part_focus::before { + content: "\f10c"; + color: #333333; +} +.ztree li span.button.chk.radio_false_disable::before { + content: "\f1db"; + color: #808080; +} +.ztree li span.button.chk.radio_true_full::before { + content: "\f192"; +} +.ztree li span.button.chk.radio_true_full_focus::before { + content: "\f192"; + color: #333333; +} +.ztree li span.button.chk.radio_true_part::before { + content: "\f192"; + color: #aaaaaa; +} +.ztree li span.button.chk.radio_true_part_focus::before { + content: "\f192"; + color: #aaaaaa; +} +.ztree li span.button.chk.radio_true_disable::before { + content: "\f1db"; + color: #808080; +} +.ztree li span.button.switch { + width: 15px; + height: 17px; +} +.ztree li span.button.root_open::before { + content: "\f078"; + padding-top: 10px; + padding-left: 2px; + display: inline-block; +} +.ztree li span.button.root_close::before { + content: "\f115"; + padding-top: 10px; + padding-left: 2px; + display: inline-block; +} +.ztree li span.button.roots_open::before { + content: "\f078"; + padding-top: 10px; + padding-left: 2px; + display: inline-block; +} +.ztree li span.button.roots_close::before { + content: "\f054"; + padding-top: 10px; + padding-left: 2px; + display: inline-block; +} +.ztree li span.button.center_open::before { + content: "\f078"; + padding-top: 10px; + padding-left: 2px; + display: inline-block; +} +.ztree li span.button.center_close::before { + content: "\f054"; + padding-top: 10px; + padding-left: 2px; + display: inline-block; +} +.ztree li span.button.bottom_open::before { + content: "\f078"; + padding-top: 10px; + padding-left: 2px; + display: inline-block; +} +.ztree li span.button.bottom_close::before { + content: "\f054"; + padding-top: 10px; + padding-left: 2px; + display: inline-block; +} +.ztree li span.button.root_docu { + background: none; +} +.ztree li span.button.roots_docu::before { + content: "\f022"; + padding-left: 2px; + display: inline-block; + color: #333333; +} +.ztree li span.button.center_docu::before { + padding-top: 10px; + padding-left: 2px; + display: inline-block; + color: #333333; +} +.ztree li span.button.bottom_docu::before { + padding-top: 10px; + padding-left: 2px; + display: inline-block; + color: #333333; +} +.ztree li span.button.noline_docu { + background: none; +} +.ztree li span.button.ico_open::before { + content: "\f115"; + font-family: FontAwesome; + padding-top: 10px; + padding-left: 2px; + display: inline-block; + color: #333333; +} +.ztree li span.button.ico_close::before { + content: "\f114"; + font-family: FontAwesome; + padding-top: 10px; + padding-left: 2px; + display: inline-block; + color: #333333; +} +.ztree li span.button.ico_docu::before { + content: "\f022"; + font-family: FontAwesome; + padding-top: 10px; + padding-left: 2px; + display: inline-block; + color: #333333; +} +.ztree li span.button.edit { + margin-left: 4px; + margin-right: -1px; + vertical-align: top; + *vertical-align: middle; + padding-top: 10px; +} +.ztree li span.button.edit::before { + content: "\f044"; + font-family: FontAwesome; +} +.ztree li span.button.remove { + margin-left: 4px; + margin-right: -1px; + vertical-align: top; + *vertical-align: middle; + padding-top: 10px; +} +.ztree li span.button.remove::before { + content: "\f1f8"; + font-family: FontAwesome; +} +.ztree li span.button.add { + margin-left: 4px; + margin-right: -1px; + vertical-align: top; + *vertical-align: middle; + padding-top: 10px; +} +.ztree li span.button.add::before { + content: "\f067"; + font-family: FontAwesome; +} +.ztree li span.button.ico_loading { + margin-right: 2px; + background: url(./img/loading.gif) no-repeat scroll 0 0 transparent; + vertical-align: top; + *vertical-align: middle; +} +ul.tmpTargetzTree { + background-color: #FFE6B0; + opacity: 0.8; + filter: alpha(opacity=80); +} +span.tmpzTreeMove_arrow { + width: 16px; + height: 17px; + display: inline-block; + padding: 0; + margin: 2px 0 0 1px; + border: 0 none; + position: absolute; + background-color: transparent; + background-attachment: scroll; +} +span.tmpzTreeMove_arrow::before { + content: "\f04b"; + font-family: FontAwesome; + color: #333333; +} +ul.ztree.zTreeDragUL { + margin: 0; + padding: 0; + position: absolute; + width: auto; + height: auto; + overflow: hidden; + background-color: #cfcfcf; + border: 1px #333333 dotted; + opacity: 0.8; + filter: alpha(opacity=80); +} +.ztreeMask { + z-index: 10000; + background-color: #cfcfcf; + opacity: 0.0; + filter: alpha(opacity=0); + position: absolute; +} diff --git a/novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/32px.png b/novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/32px.png new file mode 100644 index 0000000000000000000000000000000000000000..5195b5b1ced9ed3e43a98522932b890b616006c3 GIT binary patch literal 15906 zcmeI3Z)_9i9mmg*woWp(q>yc8DI8{$uwviYj^p@h2WN58q=`dFOi6$!xt!1O5&O>d zU22EDAZBbD(i*z0-B>||X=8M%Xo}WNAS#if2HL6=v#G2FHc%^|X+acN*?=zDbGBnY zaU7m@>bpHB=lt{Ye80cvc|Omd+?(6l(){S0g82mmLCk5WceN6P#tGtX?QC#g_w2g) z;442=-ysu3;av4kLp-fR}UT5k%HHuTVrw4?obWy7wR{L`L>PC9&TeFXY=Y-R2A5x3`h{<6_$(!1ES1C z9lAtb2E=MHr6Us(rO%X#&3~x{@-{ zdfLWV%nWTJQQc>tUk;sLQ9=wwMIsSH#B7kly_C^rvr)8(GMV&1 zp_d0lg^lV(d2uqyWF8kUb73K*2$D#udD$MRUvcPkYD4KOHLhSN-H<4!*a3=Elnqfv z15M>JdAYPF)E^Ecy5{95KEMZgQIUbqn9~>XONu1>r5Tz`SI^imm=m`<-FD9Y27@`9 zmX+Ek0fH3LoKD#@5aOv;UY7d99AEn+7|P;YqgMo9W^$%vQfp@HJ0BHhu&FgkTVg3B zXUGo5%G88;R*}LUNeWaYS6Ry>Lb9eNv8u?jHG=4sBJwgjm2Jt)cP1O}Vimp$tVfHU zuGG^OkI}}Mj7+)tVY-r`X(&ljnU%vWc?I9VlpMwikI~AQK^iNZ15#$^0Q<+wD(n}^ z0&Af>UXJle;UKG22|>1(r$S<{oyrtK%JiyYYNUV^2HgU~w^O-_Ay;ChF%6=uup-Ad zxT-*bK@hx*xzft|th7zfmzVqW72a}A&sr=!daJS0#u>d8X0y$gfarF^_GzhI64$Tp zmQ-r*mrM=Wr=?yQ7Qjiz1|W^v`!Cx>jx^JnsuyIiJ_n$63s!I9ENkPRm|8kn5fBn* zQiu)9yt?BYy2&kzlGLnTusR5K@$C7%*u!+dowSQB4luP3ukwPmNbQ|jp-5T;H{NDfwxdOe@_}}j0QRq}u1d2B3@l;FuF2`_$T)2k zuo0?A8IyAb{Xb7kWwI1JEr16VD*dD~b(YgR;VTX@Bl?OH!|8A%Fb!mkaUl`G0*ni$ zfs8ROBqCUValtf@F~)^N1Pd@OmK*kss5)mxGxL_K{7~?`Bf&~~C zOamEXTu4N)0ONvbAY+URi3k>8Trdq}jBz0m!2*m6rh$wxE+isYfN{YzkTJ%EL<9>k zE|>-~#<-A(U;)Mj(?G@;7ZMRHz_?%<$Qa{7B7y}N7fb^gV_Zl?umIzNX&_^a3yBC8 zU|cW_WQ=hk5y1kC3#NgLF)kz`Sb%ZCG>|dIg+v4kFfNz|GQKOWg3P;rya-e`SHKzScwSTMq7sF?M#2vfr z9Dk;>eP7Ak_Vq)19z1fR@nGq!-mZH)n@6s%J)qqF)jy8@uBd+b;cuLEkVUf=sUMAc zk9X|rJo_9mIkv!Wb=~J4DOwtT zV>qlSDULrBH+5~fb>rgj&HElI_8(f)lXv^Znme;)ZR!4%_aw`IU-Z%S`)=xE(v`J<9BB7-4}bYbo0C8Bg+njjxLMuIDC3x<%QDizdiqKRel?cfIXgU0-` gi(r(It-CbDXT?30^?Odes_wIf+Gf{F-|yc1U$#EL00000 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/line_conn.png b/novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/line_conn.png new file mode 100644 index 0000000000000000000000000000000000000000..b211da2fa8fa64efa883f893334cf9316e027767 GIT binary patch literal 933 zcmaJ=O^ee&7!EFotn}hZy*Nx^QLst#(X%eNv<=;4;$&*l9z?u( zP*7y?;7!l|0S|ih=+&ElKyP{x)=9VNda#Bh^TG2x?>q1N%+qe?ZejQOF2`{N>(J=2 z@iO}^T)N2q&)@ESXTvpW4rw2cY2pyXwLCmRzzUoR>LJHlJotcYHXfu3lOXzbf&|zq=t4Ev@t=T!pkMMEQ&x?c~PmTs(2en zWl<8!>{UymqE%E)s)F?cSv2B}wVrXXj>T3woKhNTf{-K$pU6BW6G5!k>zRfml^CKF zFGA|1r7$k$3I>W@;z!iSA;=V+5uQ^WvP{p85JVfjHwg4$TD=u6nNkFG^1KGOhr=nO;Z*{Q*Oypy;ZK&6j4= zO*gh>i;eM7$lOktt)IPo@hZDgmeCrdUq`=BPn$bmxOcCwzBxJhc>{dnemyQ;QN9%( PWf#XXJI4F{`%nG=ZlfRK literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/loading.gif b/novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..e8c289293b11c889703d83dce6631fce90da4630 GIT binary patch literal 381 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/metro.png b/novel-admin/src/main/resources/static/css/plugins/zTree/metroStyle/img/metro.png new file mode 100644 index 0000000000000000000000000000000000000000..e9e58a3a73ab5eac62afb4a4062887896248ec2d GIT binary patch literal 5283 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 tKB8gmm_&cf{x8xo``@I~f=7He=?t.layui-form-item>.required:after {content:'*';color:red;position:absolute;margin-left:4px;font-weight:bold;line-height:1.8em;top:6px;right:5px;} +.layuimini-form>.layui-form-item>.layui-form-label {width:120px !important;} +.layuimini-form>.layui-form-item>.layui-input-block {margin-left:150px !important;} +.layuimini-form>.layui-form-item>.layui-input-block >tip {display:inline-block;margin-top:10px;line-height:10px;font-size:10px;color:#a29c9c;} diff --git a/novel-admin/src/main/resources/static/css/style.css b/novel-admin/src/main/resources/static/css/style.css new file mode 100644 index 0000000..f6cd672 --- /dev/null +++ b/novel-admin/src/main/resources/static/css/style.css @@ -0,0 +1,7450 @@ +/* + * + * H+ - 后台主题UI框架 + * version 4.0 + * 修改记录 + * .checkbox-inline input[type=checkbox] 去掉margin-top:-4px + * .checkbox-inline 添加font-size: 14px;默认是13px + * .onoffswitch-inner:before, ; /* height: 16px; 两处 + * + * .file-control { + * color: inherit; + * font-size: 14px; + * add nopadding class + * + * + * +*/ +h1, h2, h3, h4, h5, h6 { + font-weight: 100; +} + +h1 { + font-size: 30px; +} + +h2 { + font-size: 24px; +} + +h3 { + font-size: 16px; +} + +h4 { + font-size: 14px; +} + +h5 { + font-size: 12px; +} + +h6 { + font-size: 10px; +} + +h3, h4, h5 { + margin-top: 5px; + font-weight: 600; +} + +a:focus { + outline: none; +} + +.nav > li > a { + color: #a7b1c2; + font-weight: 600; + padding: 14px 20px 14px 25px; +} + +.nav li > a { + display: block; + /*white-space: nowrap;*/ +} + +.nav.navbar-right > li > a { + color: #999c9e; +} + +.nav > li.active > a { + color: #ffffff; +} + +.navbar-default .nav > li > a:hover, .navbar-default .nav > li > a:focus { + background-color: #293846; + color: white; +} + +.nav .open > a, .nav .open > a:hover, .nav .open > a:focus { + background: #fff; +} + +.nav > li > a i { + margin-right: 6px; +} + +.navbar { + border: 0; +} + +.navbar-default { + background-color: transparent; + border-color: #2f4050; + position: relative; +} + +.navbar-top-links li { + display: inline-block; +} + +.navbar-top-links li:last-child { + margin-right: 30px; +} + +body.body-small .navbar-top-links li:last-child { + margin-right: 10px; +} + +.navbar-top-links li a { + padding: 20px 10px; + min-height: 50px; +} + +.dropdown-menu { + border: medium none; + display: none; + float: left; + font-size: 12px; + left: 0; + list-style: none outside none; + padding: 0; + position: absolute; + text-shadow: none; + top: 100%; + z-index: 1000; + border-radius: 0; + box-shadow: 0 0 3px rgba(86, 96, 117, 0.3); +} + +.dropdown-menu > li > a { + border-radius: 3px; + color: inherit; + line-height: 25px; + margin: 4px; + text-align: left; + font-weight: normal; +} + +.dropdown-menu > li > a.font-bold { + font-weight: 600; +} + +.navbar-top-links .dropdown-menu li { + display: block; +} + +.navbar-top-links .dropdown-menu li:last-child { + margin-right: 0; +} + +.navbar-top-links .dropdown-menu li a { + padding: 3px 20px; + min-height: 0; +} + +.navbar-top-links .dropdown-menu li a div { + white-space: normal; +} + +.navbar-top-links .dropdown-messages, .navbar-top-links .dropdown-tasks, .navbar-top-links .dropdown-alerts { + width: 310px; + min-width: 0; +} + +.navbar-top-links .dropdown-messages { + margin-left: 5px; +} + +.navbar-top-links .dropdown-tasks { + margin-left: -59px; +} + +.navbar-top-links .dropdown-alerts { + margin-left: -123px; +} + +.navbar-top-links .dropdown-user { + right: 0; + left: auto; +} + +.dropdown-messages, .dropdown-alerts { + padding: 10px 10px 10px 10px; +} + +.dropdown-messages li a, .dropdown-alerts li a { + font-size: 12px; +} + +.dropdown-messages li em, .dropdown-alerts li em { + font-size: 10px; +} + +.nav.navbar-top-links .dropdown-alerts a { + font-size: 12px; +} + +.nav-header { + padding: 33px 25px; + background: url("patterns/header-profile.png") no-repeat; +} + +.pace-done .nav-header { + -webkit-transition: all 0.5s; + transition: all 0.5s; +} + +.nav > li.active { + border-left: 4px solid #19aa8d; + background: #293846; +} + +.nav.nav-second-level > li.active { + border: none; +} + +.nav.nav-second-level.collapse[style] { + height: auto !important; +} + +.nav-header a { + color: #DFE4ED; +} + +.nav-header .text-muted { + color: #8095a8; +} + +.minimalize-styl-2 { + padding: 4px 12px; + margin: 14px 5px 5px 20px; + font-size: 14px; + float: left; +} + +.navbar-form-custom { + float: left; + height: 50px; + padding: 0; + width: 200px; + display: inline-table; +} + +.navbar-form-custom .form-group { + margin-bottom: 0; +} + +.nav.navbar-top-links a { + font-size: 14px; +} + +.navbar-form-custom .form-control { + background: none repeat scroll 0 0 rgba(0, 0, 0, 0); + border: medium none; + font-size: 14px; + height: 60px; + margin: 0; + z-index: 2000; +} + +.count-info .label { + line-height: 12px; + padding: 1px 5px; + position: absolute; + right: 6px; + top: 12px; +} + +.arrow { + float: right; + margin-top: 2px; +} + +.fa.arrow:before { + content: "\f104"; +} + +.active > a > .fa.arrow:before { + content: "\f107"; +} + +.nav-second-level li, .nav-third-level li { + border-bottom: none !important; +} + +.nav-second-level li a { + padding: 7px 15px 7px 10px; + padding-left: 52px; +} + +.nav-third-level li a { + padding-left: 62px; +} + +.nav-second-level li:last-child { + margin-bottom: 10px; +} + +body:not(.fixed-sidebar ):not(.canvas-menu ).mini-navbar .nav li:hover > .nav-second-level, .mini-navbar .nav li:focus > .nav-second-level { + display: block; + border-radius: 0 2px 2px 0; + min-width: 140px; + height: auto; +} + +body.mini-navbar .navbar-default .nav > li > .nav-second-level li a { + font-size: 12px; + border-radius: 0 2px 2px 0; +} + +.fixed-nav .slimScrollDiv #side-menu { + padding-bottom: 60px; + position: relative; +} + +.fixed-sidebar.mini-navbar .slimScrollDiv > * { + overflow: visible !important; +} + +.fixed-sidebar .slimScrollDiv > * { + overflow-y: hidden; + overflow-x: visible; +} + +.mini-navbar .nav-second-level li a { + padding: 10px 10px 10px 15px; +} + +.canvas-menu.mini-navbar .nav-second-level { + background: #293846; +} + +.mini-navbar li.active .nav-second-level { + left: 65px; +} + +.navbar-default .special_link a { + background: #1ab394; + color: white; +} + +.navbar-default .special_link a:hover { + background: #17987e !important; + color: white; +} + +.navbar-default .special_link a span.label { + background: #fff; + color: #1ab394; +} + +.navbar-default .landing_link a { + background: #1cc09f; + color: white; +} + +.navbar-default .landing_link a:hover { + background: #1ab394 !important; + color: white; +} + +.navbar-default .landing_link a span.label { + background: #fff; + color: #1cc09f; +} + +.logo-element { + text-align: center; + font-size: 18px; + font-weight: 600; + color: white; + display: none; + padding: 18px 0; +} + +.pace-done .navbar-static-side, .pace-done .nav-header, .pace-done li.active, .pace-done #page-wrapper, .pace-done .footer { + -webkit-transition: all 0.5s; + transition: all 0.5s; +} + +.navbar-fixed-top { + background: #fff; + -webkit-transition-duration: 0.5s; + transition-duration: 0.5s; + z-index: 2030; +} + +.navbar-fixed-top, .navbar-static-top { + background: #f3f3f4; +} + +.fixed-nav #wrapper { + padding-top: 60px; + box-sizing: border-box; +} + +.fixed-nav .minimalize-styl-2 { + margin: 14px 5px 5px 15px; +} + +.body-small .navbar-fixed-top { + margin-left: 0px; +} + +body.mini-navbar .navbar-static-side { + width: 70px; +} + +body.mini-navbar .profile-element, body.mini-navbar .nav-label, body.mini-navbar .navbar-default .nav li a span { + display: none; +} + +body.canvas-menu .profile-element { + display: block; +} + +body:not(.fixed-sidebar ):not(.canvas-menu ).mini-navbar .nav-second-level { + display: none; +} + +body.mini-navbar .navbar-default .nav > li > a { + font-size: 16px; +} + +body.mini-navbar .logo-element { + display: block; +} + +body.canvas-menu .logo-element { + display: none; +} + +body.mini-navbar .nav-header { + padding: 0; + background-color: #1ab394; +} + +body.canvas-menu .nav-header { + padding: 33px 25px; +} + +body.mini-navbar #page-wrapper { + margin: 0 0 0 70px; +} + +body.canvas-menu.mini-navbar #page-wrapper, body.canvas-menu.mini-navbar .footer { + margin: 0 0 0 0; +} + +body.fixed-sidebar .navbar-static-side, body.canvas-menu .navbar-static-side { + position: fixed; + width: 220px; + z-index: 2001; + height: 100%; +} + +body.fixed-sidebar.mini-navbar .navbar-static-side { + width: 70px; +} + +body.fixed-sidebar.mini-navbar #page-wrapper { + margin: 0 0 0 70px; +} + +body.body-small.fixed-sidebar.mini-navbar #page-wrapper { + margin: 0 0 0 70px; +} + +body.body-small.fixed-sidebar.mini-navbar .navbar-static-side { + width: 70px; +} + +.fixed-sidebar.mini-navbar .nav li > .nav-second-level { + display: none; +} + +.fixed-sidebar.mini-navbar .nav li.active { + border-left-width: 0; +} + +/*.fixed-sidebar.mini-navbar .nav li:hover>.nav-second-level, .canvas-menu.mini-navbar .nav li:hover>.nav-second-level*/ +/*{*/ +/*position: absolute;*/ +/*left: 70px;*/ +/*top: 40px;*/ +/*background-color: #2f4050;*/ +/*padding: 10px 10px 0 10px;*/ +/*font-size: 12px;*/ +/*display: block;*/ +/*min-width: 140px;*/ +/*border-radius: 2px;*/ +/*}*/ + +/*伸缩菜单*/ +.fixed-sidebar.mini-navbar .nav li:hover > a > span.nav-label { + top: 0px; + padding: 10px 10px 10px 10px; + text-align: center; + background-color: #243747; + border-bottom: dashed 1px #fff; +} + +.fixed-sidebar.mini-navbar .nav li:hover > .nav-second-level { + top: 40px; + font-size: 12px; + /*padding: 10px 10px 0 10px;*/ + background-color: #2f4050; +} + +.fixed-sidebar.mini-navbar .nav li:hover > .nav-second-level, .fixed-sidebar.mini-navbar .nav li:hover > a > span.nav-label { + position: absolute; + left: 70px; + display: block; + min-width: 140px; + border-radius: 2px; +} + +/*伸缩菜单结束*/ + +body.fixed-sidebar.mini-navbar .navbar-default .nav > li > .nav-second-level li a { + font-size: 12px; + border-radius: 3px; +} + +body.canvas-menu.mini-navbar .navbar-default .nav > li > .nav-second-level li a { + font-size: 13px; + border-radius: 3px; +} + +.fixed-sidebar.mini-navbar .nav-second-level li a, .canvas-menu.mini-navbar .nav-second-level li a { + padding: 10px 10px 10px 15px; +} + +.fixed-sidebar.mini-navbar .nav-second-level, .canvas-menu.mini-navbar .nav-second-level { + position: relative; + padding: 0; + font-size: 13px; +} + +.fixed-sidebar.mini-navbar li.active .nav-second-level, .canvas-menu.mini-navbar li.active .nav-second-level { + left: 0px; +} + +body.canvas-menu nav.navbar-static-side { + z-index: 2001; + background: #2f4050; + height: 100%; + position: fixed; + display: none; +} + +body.canvas-menu.mini-navbar nav.navbar-static-side { + display: block; + width: 70px; +} + +.top-navigation #page-wrapper { + margin-left: 0; +} + +.top-navigation .navbar-nav .dropdown-menu > .active > a { + background: white; + color: #1ab394; + font-weight: bold; +} + +.white-bg .navbar-fixed-top, .white-bg .navbar-static-top { + background: #fff; +} + +.top-navigation .navbar { + margin-bottom: 0; +} + +.top-navigation .nav > li > a { + padding: 15px 20px; + color: #676a6c; +} + +.top-navigation .nav > li a:hover, .top-navigation .nav > li a:focus { + background: #fff; + color: #1ab394; +} + +.top-navigation .nav > li.active { + background: #fff; + border: none; +} + +.top-navigation .nav > li.active > a { + color: #1ab394; +} + +.top-navigation .navbar-right { + padding-right: 10px; +} + +.top-navigation .navbar-nav .dropdown-menu { + box-shadow: none; + border: 1px solid #e7eaec; +} + +.top-navigation .dropdown-menu > li > a { + margin: 0; + padding: 7px 20px; +} + +.navbar .dropdown-menu { + margin-top: 0px; +} + +.top-navigation .navbar-brand { + background: #1ab394; + color: #fff; + padding: 15px 25px; +} + +.top-navigation .navbar-top-links li:last-child { + margin-right: 0; +} + +.top-navigation.mini-navbar #page-wrapper, .top-navigation.body-small.fixed-sidebar.mini-navbar #page-wrapper, .mini-navbar .top-navigation #page-wrapper, .body-small.fixed-sidebar.mini-navbar .top-navigation #page-wrapper, .canvas-menu #page-wrapper { + margin: 0; +} + +.top-navigation.fixed-nav #wrapper, .fixed-nav #wrapper.top-navigation { + margin-top: 50px; +} + +.top-navigation .footer.fixed { + margin-left: 0 !important; +} + +.top-navigation .wrapper.wrapper-content { + padding: 40px; +} + +.top-navigation.body-small .wrapper.wrapper-content, .body-small .top-navigation .wrapper.wrapper-content { + padding: 40px 0px 40px 0px; +} + +.navbar-toggle { + background-color: #1ab394; + color: #fff; + padding: 6px 12px; + font-size: 14px; +} + +.top-navigation .navbar-nav .open .dropdown-menu > li > a, .top-navigation .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 10px 15px 10px 20px; +} + +@media ( max-width: 768px) { + .top-navigation .navbar-header { + display: block; + float: none; + } +} + +.menu-visible-lg, .menu-visible-md { + display: none !important; +} + +@media ( min-width: 1200px) { + .menu-visible-lg { + display: block !important; + } +} + +@media ( min-width: 992px) { + .menu-visible-md { + display: block !important; + } +} + +@media ( max-width: 767px) { + .menu-visible-md { + display: block !important; + } + + .menu-visible-lg { + display: block !important; + } +} + +.btn { + border-radius: 3px; +} + +.float-e-margins .btn { + margin-bottom: 5px; +} + +.btn-w-m { + min-width: 120px; +} + +.btn-primary.btn-outline { + color: #1ab394; +} + +.btn-success.btn-outline { + color: #1c84c6; +} + +.btn-info.btn-outline { + color: #23c6c8; +} + +.btn-warning.btn-outline { + color: #f8ac59; +} + +.btn-danger.btn-outline { + color: #ed5565; +} + +.btn-primary.btn-outline:hover, .btn-success.btn-outline:hover, .btn-info.btn-outline:hover, .btn-warning.btn-outline:hover, .btn-danger.btn-outline:hover { + color: #fff; +} + +.btn-primary { + background-color: #1ab394; + border-color: #1ab394; + color: #FFFFFF; +} + +.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { + background-color: #18a689; + border-color: #18a689; + color: #FFFFFF; +} + +.btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { + background-image: none; +} + +.btn-primary.disabled, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary[disabled], .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled]:active, .btn-primary.active[disabled], fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary.active { + background-color: #1dc5a3; + border-color: #1dc5a3; +} + +.btn-success { + background-color: #1c84c6; + border-color: #1c84c6; + color: #FFFFFF; +} + +.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { + background-color: #1a7bb9; + border-color: #1a7bb9; + color: #FFFFFF; +} + +.btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { + background-image: none; +} + +.btn-success.disabled, .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled:active, .btn-success.disabled.active, .btn-success[disabled], .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled]:active, .btn-success.active[disabled], fieldset[disabled] .btn-success, fieldset[disabled] .btn-success:hover, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success.active { + background-color: #1f90d8; + border-color: #1f90d8; +} + +.btn-info { + background-color: #23c6c8; + border-color: #23c6c8; + color: #FFFFFF; +} + +.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { + background-color: #21b9bb; + border-color: #21b9bb; + color: #FFFFFF; +} + +.btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { + background-image: none; +} + +.btn-info.disabled, .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled:active, .btn-info.disabled.active, .btn-info[disabled], .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled]:active, .btn-info.active[disabled], fieldset[disabled] .btn-info, fieldset[disabled] .btn-info:hover, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info.active { + background-color: #26d7d9; + border-color: #26d7d9; +} + +.btn-default { + background-color: #c2c2c2; + border-color: #c2c2c2; + color: #FFFFFF; +} + +.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { + background-color: #bababa; + border-color: #bababa; + color: #FFFFFF; +} + +.btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { + background-image: none; +} + +.btn-default.disabled, .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled:active, .btn-default.disabled.active, .btn-default[disabled], .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled]:active, .btn-default.active[disabled], fieldset[disabled] .btn-default, fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default.active { + background-color: #cccccc; + border-color: #cccccc; +} + +.btn-warning { + background-color: #f8ac59; + border-color: #f8ac59; + color: #FFFFFF; +} + +.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { + background-color: #f7a54a; + border-color: #f7a54a; + color: #FFFFFF; +} + +.btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { + background-image: none; +} + +.btn-warning.disabled, .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled:active, .btn-warning.disabled.active, .btn-warning[disabled], .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled]:active, .btn-warning.active[disabled], fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning:hover, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning.active { + background-color: #f9b66d; + border-color: #f9b66d; +} + +.btn-danger { + background-color: #ed5565; + border-color: #ed5565; + color: #FFFFFF; +} + +.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { + background-color: #ec4758; + border-color: #ec4758; + color: #FFFFFF; +} + +.btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { + background-image: none; +} + +.btn-danger.disabled, .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled:active, .btn-danger.disabled.active, .btn-danger[disabled], .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled]:active, .btn-danger.active[disabled], fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger:hover, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger.active { + background-color: #ef6776; + border-color: #ef6776; +} + +.btn-link { + color: inherit; +} + +.btn-link:hover, .btn-link:focus, .btn-link:active, .btn-link.active, .open .dropdown-toggle.btn-link { + color: #1ab394; + text-decoration: none; +} + +.btn-link:active, .btn-link.active, .open .dropdown-toggle.btn-link { + background-image: none; +} + +.btn-link.disabled, .btn-link.disabled:hover, .btn-link.disabled:focus, .btn-link.disabled:active, .btn-link.disabled.active, .btn-link[disabled], .btn-link[disabled]:hover, .btn-link[disabled]:focus, .btn-link[disabled]:active, .btn-link.active[disabled], fieldset[disabled] .btn-link, fieldset[disabled] .btn-link:hover, fieldset[disabled] .btn-link:focus, fieldset[disabled] .btn-link:active, fieldset[disabled] .btn-link.active { + color: #cacaca; +} + +.btn-white { + color: inherit; + background: white; + border: 1px solid #e7eaec; +} + +.btn-white:hover, .btn-white:focus, .btn-white:active, .btn-white.active, .open .dropdown-toggle.btn-white { + color: inherit; + border: 1px solid #d2d2d2; +} + +.btn-white:active, .btn-white.active { + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15) inset; +} + +.btn-white:active, .btn-white.active, .open .dropdown-toggle.btn-white { + background-image: none; +} + +.btn-white.disabled, .btn-white.disabled:hover, .btn-white.disabled:focus, .btn-white.disabled:active, .btn-white.disabled.active, .btn-white[disabled], .btn-white[disabled]:hover, .btn-white[disabled]:focus, .btn-white[disabled]:active, .btn-white.active[disabled], fieldset[disabled] .btn-white, fieldset[disabled] .btn-white:hover, fieldset[disabled] .btn-white:focus, fieldset[disabled] .btn-white:active, fieldset[disabled] .btn-white.active { + color: #cacaca; +} + +.form-control, .form-control:focus, .has-error .form-control:focus, .has-success .form-control:focus, .has-warning .form-control:focus, .navbar-collapse, .navbar-form, .navbar-form-custom .form-control:focus, .navbar-form-custom .form-control:hover, .open .btn.dropdown-toggle, .panel, .popover, .progress, .progress-bar { + box-shadow: none; +} + +.btn-outline { + color: inherit; + background-color: transparent; + -webkit-transition: all .5s; + transition: all .5s; +} + +.btn-rounded { + border-radius: 50px; +} + +.btn-large-dim { + width: 90px; + height: 90px; + font-size: 42px; +} + +button.dim { + display: inline-block; + color: #fff; + text-decoration: none; + text-transform: uppercase; + text-align: center; + padding-top: 6px; + margin-right: 10px; + position: relative; + cursor: pointer; + border-radius: 5px; + font-weight: 600; + margin-bottom: 20px !important; +} + +button.dim:active { + top: 3px; +} + +button.btn-primary.dim { + box-shadow: inset 0px 0px 0px #16987e, 0px 5px 0px 0px #16987e, 0px 10px 5px #999999; +} + +button.btn-primary.dim:active { + box-shadow: inset 0px 0px 0px #16987e, 0px 2px 0px 0px #16987e, 0px 5px 3px #999999; +} + +button.btn-default.dim { + box-shadow: inset 0px 0px 0px #b3b3b3, 0px 5px 0px 0px #b3b3b3, 0px 10px 5px #999999; +} + +button.btn-default.dim:active { + box-shadow: inset 0px 0px 0px #b3b3b3, 0px 2px 0px 0px #b3b3b3, 0px 5px 3px #999999; +} + +button.btn-warning.dim { + box-shadow: inset 0px 0px 0px #f79d3c, 0px 5px 0px 0px #f79d3c, 0px 10px 5px #999999; +} + +button.btn-warning.dim:active { + box-shadow: inset 0px 0px 0px #f79d3c, 0px 2px 0px 0px #f79d3c, 0px 5px 3px #999999; +} + +button.btn-info.dim { + box-shadow: inset 0px 0px 0px #1eacae, 0px 5px 0px 0px #1eacae, 0px 10px 5px #999999; +} + +button.btn-info.dim:active { + box-shadow: inset 0px 0px 0px #1eacae, 0px 2px 0px 0px #1eacae, 0px 5px 3px #999999; +} + +button.btn-success.dim { + box-shadow: inset 0px 0px 0px #1872ab, 0px 5px 0px 0px #1872ab, 0px 10px 5px #999999; +} + +button.btn-success.dim:active { + box-shadow: inset 0px 0px 0px #1872ab, 0px 2px 0px 0px #1872ab, 0px 5px 3px #999999; +} + +button.btn-danger.dim { + box-shadow: inset 0px 0px 0px #ea394c, 0px 5px 0px 0px #ea394c, 0px 10px 5px #999999; +} + +button.btn-danger.dim:active { + box-shadow: inset 0px 0px 0px #ea394c, 0px 2px 0px 0px #ea394c, 0px 5px 3px #999999; +} + +button.dim:before { + font-size: 50px; + line-height: 1em; + font-weight: normal; + color: #fff; + display: block; + padding-top: 10px; +} + +button.dim:active:before { + top: 7px; + font-size: 50px; +} + +.label { + background-color: #d1dade; + color: #5e5e5e; + font-size: 10px; + font-weight: 600; + padding: 3px 8px; + text-shadow: none; +} + +.badge { + background-color: #d1dade; + color: #5e5e5e; + font-size: 11px; + font-weight: 600; + padding-bottom: 4px; + padding-left: 6px; + padding-right: 6px; + text-shadow: none; +} + +.label-primary, .badge-primary { + background-color: #1ab394; + color: #FFFFFF; +} + +.label-success, .badge-success { + background-color: #1c84c6; + color: #FFFFFF; +} + +.label-warning, .badge-warning { + background-color: #f8ac59; + color: #FFFFFF; +} + +.label-warning-light, .badge-warning-light { + background-color: #f8ac59; + color: #ffffff; +} + +.label-danger, .badge-danger { + background-color: #ed5565; + color: #FFFFFF; +} + +.label-info, .badge-info { + background-color: #23c6c8; + color: #FFFFFF; +} + +.label-inverse, .badge-inverse { + background-color: #262626; + color: #FFFFFF; +} + +.label-white, .badge-white { + background-color: #FFFFFF; + color: #5E5E5E; +} + +.label-white, .badge-disable { + background-color: #2A2E36; + color: #8B91A0; +} + +/* TOOGLE SWICH */ +.onoffswitch { + position: relative; + width: 64px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; +} + +.onoffswitch-checkbox { + display: none; +} + +.onoffswitch-label { + display: block; + overflow: hidden; + cursor: pointer; + border: 2px solid #1ab394; + border-radius: 2px; +} + +.onoffswitch-inner { + width: 200%; + margin-left: -100%; + -webkit-transition: margin 0.3s ease-in 0s; + transition: margin 0.3s ease-in 0s; +} + +.onoffswitch-inner:before, .onoffswitch-inner:after { + float: left; + width: 50%; + height: 20px; + padding: 0; + line-height: 20px; + font-size: 12px; + color: white; + font-family: Trebuchet, Arial, sans-serif; + font-weight: bold; + box-sizing: border-box; +} + +.onoffswitch-inner:before { + content: "ON"; + padding-left: 10px; + background-color: #1ab394; + color: #FFFFFF; +} + +.onoffswitch-inner:after { + content: "OFF"; + padding-right: 10px; + background-color: #FFFFFF; + color: #999999; + text-align: right; +} + +.onoffswitch-switch { + width: 20px; + margin: 0px; + background: #FFFFFF; + border: 2px solid #1ab394; + border-radius: 2px; + position: absolute; + top: 0; + bottom: 0; + right: 44px; + -webkit-transition: all 0.3s ease-in 0s; + transition: all 0.3s ease-in 0s; +} + +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { + margin-left: 0; +} + +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { + right: 0px; +} + +/* CHOSEN PLUGIN */ +.chosen-container-single .chosen-single { + background: #ffffff; + box-shadow: none; + -moz-box-sizing: border-box; + background-color: #FFFFFF; + border: 1px solid #CBD5DD; + border-radius: 2px; + cursor: text; + height: auto !important; + margin: 0; + min-height: 30px; + overflow: hidden; + padding: 4px 12px; + position: relative; + width: 100%; +} + +.chosen-container-multi .chosen-choices li.search-choice { + background: #f1f1f1; + border: 1px solid #ededed; + border-radius: 2px; + box-shadow: none; + color: #333333; + cursor: default; + line-height: 13px; + margin: 3px 0 3px 5px; + padding: 3px 20px 3px 5px; + position: relative; +} + +/* PAGINATIN */ +.pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { + background-color: #f4f4f4; + border-color: #DDDDDD; + color: inherit; + cursor: default; + z-index: 2; +} + +.pagination > li > a, .pagination > li > span { + background-color: #FFFFFF; + border: 1px solid #DDDDDD; + color: inherit; + float: left; + line-height: 1.42857; + margin-left: -1px; + padding: 4px 10px; + position: relative; + text-decoration: none; +} + +/* TOOLTIPS */ +.tooltip-inner { + background-color: #2F4050; +} + +.tooltip.top .tooltip-arrow { + border-top-color: #2F4050; +} + +.tooltip.right .tooltip-arrow { + border-right-color: #2F4050; +} + +.tooltip.bottom .tooltip-arrow { + border-bottom-color: #2F4050; +} + +.tooltip.left .tooltip-arrow { + border-left-color: #2F4050; +} + +/* EASY PIE CHART*/ +.easypiechart { + position: relative; + text-align: center; +} + +.easypiechart .h2 { + margin-left: 10px; + margin-top: 10px; + display: inline-block; +} + +.easypiechart canvas { + top: 0; + left: 0; +} + +.easypiechart .easypie-text { + line-height: 1; + position: absolute; + top: 33px; + width: 100%; + z-index: 1; +} + +.easypiechart img { + margin-top: -4px; +} + +.jqstooltip { + box-sizing: content-box; +} + +/* FULLCALENDAR */ +.fc-state-default { + background-color: #ffffff; + background-image: none; + background-repeat: repeat-x; + box-shadow: none; + color: #333333; + text-shadow: none; +} + +.fc-state-default { + border: 1px solid; +} + +.fc-button { + color: inherit; + border: 1px solid #e7eaec; + cursor: pointer; + display: inline-block; + height: 1.9em; + line-height: 1.9em; + overflow: hidden; + padding: 0 0.6em; + position: relative; + white-space: nowrap; +} + +.fc-state-active { + background-color: #1ab394; + border-color: #1ab394; + color: #ffffff; +} + +.fc-header-title h2 { + font-size: 16px; + font-weight: 600; + color: inherit; +} + +.fc-content .fc-widget-header, .fc-content .fc-widget-content { + border-color: #e7eaec; + font-weight: normal; +} + +.fc-border-separate tbody { + background-color: #F8F8F8; +} + +.fc-state-highlight { + background: none repeat scroll 0 0 #FCF8E3; +} + +.external-event { + padding: 5px 10px; + border-radius: 2px; + cursor: pointer; + margin-bottom: 5px; +} + +.fc-ltr .fc-event-hori.fc-event-end, .fc-rtl .fc-event-hori.fc-event-start { + border-radius: 2px; +} + +.fc-event, .fc-agenda .fc-event-time, .fc-event a { + padding: 4px 6px; + background-color: #1ab394; + /* background color */ + border-color: #1ab394; + /* border color */ +} + +.fc-event-time, .fc-event-title { + color: #717171; + padding: 0 1px; +} + +.ui-calendar .fc-event-time, .ui-calendar .fc-event-title { + color: #fff; +} + +/* Chat */ +.chat-activity-list .chat-element { + border-bottom: 1px solid #e7eaec; +} + +.chat-element:first-child { + margin-top: 0; +} + +.chat-element { + padding-bottom: 15px; +} + +.chat-element, .chat-element .media { + margin-top: 15px; +} + +.chat-element, .media-body { + overflow: hidden; +} + +.media-body { + display: block; + width: auto; +} + +.chat-element > .pull-left { + margin-right: 10px; +} + +.chat-element img.img-circle, .dropdown-messages-box img.img-circle { + width: 38px; + height: 38px; +} + +.chat-element .well { + border: 1px solid #e7eaec; + box-shadow: none; + margin-top: 10px; + margin-bottom: 5px; + padding: 10px 20px; + font-size: 11px; + line-height: 16px; +} + +.chat-element .actions { + margin-top: 10px; +} + +.chat-element .photos { + margin: 10px 0; +} + +.right.chat-element > .pull-right { + margin-left: 10px; +} + +.chat-photo { + max-height: 180px; + border-radius: 4px; + overflow: hidden; + margin-right: 10px; + margin-bottom: 10px; +} + +.chat { + margin: 0; + padding: 0; + list-style: none; +} + +.chat li { + margin-bottom: 10px; + padding-bottom: 5px; + border-bottom: 1px dotted #B3A9A9; +} + +.chat li.left .chat-body { + margin-left: 60px; +} + +.chat li.right .chat-body { + margin-right: 60px; +} + +.chat li .chat-body p { + margin: 0; + color: #777777; +} + +.panel .slidedown .glyphicon, .chat .glyphicon { + margin-right: 5px; +} + +.chat-panel .panel-body { + height: 350px; + overflow-y: scroll; +} + +/* LIST GROUP */ +a.list-group-item.active, a.list-group-item.active:hover, a.list-group-item.active:focus { + background-color: #1ab394; + border-color: #1ab394; + color: #FFFFFF; + z-index: 2; +} + +.list-group-item-heading { + margin-top: 10px; +} + +.list-group-item-text { + margin: 0 0 10px; + color: inherit; + font-size: 12px; + line-height: inherit; +} + +.no-padding .list-group-item { + border-left: none; + border-right: none; + border-bottom: none; +} + +.no-padding .list-group-item:first-child { + border-left: none; + border-right: none; + border-bottom: none; + border-top: none; +} + +.no-padding .list-group { + margin-bottom: 0; +} + +.list-group-item { + background-color: inherit; + border: 1px solid #e7eaec; + display: block; + margin-bottom: -1px; + padding: 10px 15px; + position: relative; +} + +.elements-list .list-group-item { + border-left: none; + border-right: none; + /*border-top: none;*/ + padding: 15px 25px; +} + +.elements-list .list-group-item:first-child { + border-left: none; + border-right: none; + border-top: none !important; +} + +.elements-list .list-group { + margin-bottom: 0; +} + +.elements-list a { + color: inherit; +} + +.elements-list .list-group-item.active, .elements-list .list-group-item:hover { + background: #f3f3f4; + color: inherit; + border-color: #e7eaec; + /*border-bottom: 1px solid #e7eaec;*/ + /*border-top: 1px solid #e7eaec;*/ + border-radius: 0; +} + +.elements-list li.active { + -webkit-transition: none; + transition: none; +} + +.element-detail-box { + padding: 25px; +} + +/* FLOT CHART */ +.flot-chart { + display: block; + height: 200px; +} + +.widget .flot-chart.dashboard-chart { + display: block; + height: 120px; + margin-top: 40px; +} + +.flot-chart.dashboard-chart { + display: block; + height: 180px; + margin-top: 40px; +} + +.flot-chart-content { + width: 100%; + height: 100%; +} + +.flot-chart-pie-content { + width: 200px; + height: 200px; + margin: auto; +} + +.jqstooltip { + position: absolute; + display: block; + left: 0px; + top: 0px; + visibility: hidden; + background: #2b303a; + background-color: rgba(43, 48, 58, 0.8); + color: white; + text-align: left; + white-space: nowrap; + z-index: 10000; + padding: 5px 5px 5px 5px; + min-height: 22px; + border-radius: 3px; +} + +.jqsfield { + color: white; + text-align: left; +} + +.h-200 { + min-height: 200px; +} + +.legendLabel { + padding-left: 5px; +} + +.stat-list li:first-child { + margin-top: 0; +} + +.stat-list { + list-style: none; + padding: 0; + margin: 0; +} + +.stat-percent { + float: right; +} + +.stat-list li { + margin-top: 15px; + position: relative; +} + +/* DATATABLES */ +table.dataTable thead .sorting, table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_desc, table.dataTable thead .sorting_asc_disabled, table.dataTable thead .sorting_desc_disabled { + background: transparent; +} + +table.dataTable thead .sorting_asc:after { + float: right; + font-family: fontawesome; +} + +table.dataTable thead .sorting_desc:after { + content: "\f0dd"; + float: right; + font-family: fontawesome; +} + +table.dataTable thead .sorting:after { + content: "\f0dc"; + float: right; + font-family: fontawesome; + color: rgba(50, 50, 50, 0.5); +} + +.dataTables_wrapper { + padding-bottom: 30px; +} + +/* CIRCLE */ +.img-circle { + border-radius: 50%; +} + +.btn-circle { + width: 30px; + height: 30px; + padding: 6px 0; + border-radius: 15px; + text-align: center; + font-size: 12px; + line-height: 1.428571429; +} + +.btn-circle.btn-lg { + width: 50px; + height: 50px; + padding: 10px 16px; + border-radius: 25px; + font-size: 18px; + line-height: 1.33; +} + +.btn-circle.btn-xl { + width: 70px; + height: 70px; + padding: 10px 16px; + border-radius: 35px; + font-size: 24px; + line-height: 1.33; +} + +.show-grid [class^="col-"] { + padding-top: 10px; + padding-bottom: 10px; + border: 1px solid #ddd; + background-color: #eee !important; +} + +.show-grid { + margin: 15px 0; +} + +/* ANIMATION */ +.css-animation-box h1 { + font-size: 44px; +} + +.animation-efect-links a { + padding: 4px 6px; + font-size: 12px; +} + +#animation_box { + background-color: #f9f8f8; + border-radius: 16px; + width: 80%; + margin: 0 auto; + padding-top: 80px; +} + +.animation-text-box { + position: absolute; + margin-top: 40px; + left: 50%; + margin-left: -100px; + width: 200px; +} + +.animation-text-info { + position: absolute; + margin-top: -60px; + left: 50%; + margin-left: -100px; + width: 200px; + font-size: 10px; +} + +.animation-text-box h2 { + font-size: 54px; + font-weight: 600; + margin-bottom: 5px; +} + +.animation-text-box p { + font-size: 12px; + text-transform: uppercase; +} + +/* PEACE */ +.pace { + -webkit-pointer-events: none; + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.pace-inactive { + display: none; +} + +.pace .pace-progress { + background: #1ab394; + position: fixed; + z-index: 2000; + top: 0; + width: 100%; + height: 2px; +} + +.pace-inactive { + display: none; +} + +/* WIDGETS */ +.widget { + border-radius: 5px; + padding: 15px 20px; + margin-bottom: 10px; + margin-top: 10px; +} + +.widget.style1 h2 { + font-size: 30px; +} + +.widget h2, .widget h3 { + margin-top: 5px; + margin-bottom: 0; +} + +.widget-text-box { + padding: 20px; + border: 1px solid #e7eaec; + background: #ffffff; +} + +.widget-head-color-box { + border-radius: 5px 5px 0px 0px; + margin-top: 10px; +} + +.widget .flot-chart { + height: 100px; +} + +.vertical-align div { + display: inline-block; + vertical-align: middle; +} + +.vertical-align h2, .vertical-align h3 { + margin: 0; +} + +.todo-list { + list-style: none outside none; + margin: 0; + padding: 0; + font-size: 14px; +} + +.todo-list.small-list { + font-size: 12px; +} + +.todo-list.small-list > li { + background: #f3f3f4; + border-left: none; + border-right: none; + border-radius: 4px; + color: inherit; + margin-bottom: 2px; + padding: 6px 6px 6px 12px; +} + +.todo-list.small-list .btn-xs, .todo-list.small-list .btn-group-xs > .btn { + border-radius: 5px; + font-size: 10px; + line-height: 1.5; + padding: 1px 2px 1px 5px; +} + +.todo-list > li { + background: #f3f3f4; + border-left: 6px solid #e7eaec; + border-right: 6px solid #e7eaec; + border-radius: 4px; + color: inherit; + margin-bottom: 2px; + padding: 10px; +} + +.todo-list .handle { + cursor: move; + display: inline-block; + font-size: 16px; + margin: 0 5px; +} + +.todo-list > li .label { + font-size: 9px; + margin-left: 10px; +} + +.check-link { + font-size: 16px; +} + +.todo-completed { + text-decoration: line-through; +} + +.geo-statistic h1 { + font-size: 36px; + margin-bottom: 0; +} + +.glyphicon.fa { + font-family: "FontAwesome"; +} + +/* INPUTS */ +.inline { + display: inline-block !important; +} + +.input-s-sm { + width: 120px; +} + +.input-s { + width: 200px; +} + +.input-s-lg { + width: 250px; +} + +.i-checks { + padding-left: 0; +} + +.form-control, .single-line { + background: #FFFFFF none; + border: 1px solid #e5e6e7; + border-radius: 1px; + color: inherit; + display: block; + padding: 6px 12px; + -webkit-transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s; + transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s; + width: 100%; + font-size: 14px; +} + +.form-control:focus, .single-line:focus { + border-color: #1ab394 !important; +} + +.has-success .form-control { + border-color: #1ab394; +} + +.has-warning .form-control { + border-color: #f8ac59; +} + +.has-error .form-control { + border-color: #ed5565; +} + +.has-success .control-label { + color: #1ab394; +} + +.has-warning .control-label { + color: #f8ac59; +} + +.has-error .control-label { + color: #ed5565; +} + +.input-group-addon { + background-color: #fff; + border: 1px solid #E5E6E7; + border-radius: 1px; + color: inherit; + font-size: 14px; + font-weight: 400; + line-height: 1; + padding: 6px 12px; + text-align: center; +} + +.spinner-buttons.input-group-btn .btn-xs { + line-height: 1.13; +} + +.spinner-buttons.input-group-btn { + width: 20%; +} + +.noUi-connect { + background: none repeat scroll 0 0 #1ab394; + box-shadow: none; +} + +.slider_red .noUi-connect { + background: none repeat scroll 0 0 #ed5565; + box-shadow: none; +} + +/* UI Sortable */ +.ui-sortable .ibox-title { + cursor: move; +} + +.ui-sortable-placeholder { + border: 1px dashed #cecece !important; + visibility: visible !important; + background: #e7eaec; +} + +.ibox.ui-sortable-placeholder { + margin: 0px 0px 23px !important; +} + +/* Tabs */ +.tabs-container .panel-body { + background: #fff; + border: 1px solid #e7eaec; + border-radius: 2px; + padding: 20px; + position: relative; +} + +.tabs-container .nav-tabs > li.active > a, .tabs-container .nav-tabs > li.active > a:hover, .tabs-container .nav-tabs > li.active > a:focus { + border: 1px solid #e7eaec; + border-bottom-color: transparent; + background-color: #fff; +} + +.tabs-container .nav-tabs > li { + float: left; + margin-bottom: -1px; +} + +.tabs-container .tab-pane .panel-body { + border-top: none; +} + +.tabs-container .nav-tabs > li.active > a, .tabs-container .nav-tabs > li.active > a:hover, .tabs-container .nav-tabs > li.active > a:focus { + border: 1px solid #e7eaec; + border-bottom-color: transparent; +} + +.tabs-container .nav-tabs { + border-bottom: 1px solid #e7eaec; +} + +.tabs-container .tab-pane .panel-body { + border-top: none; +} + +.tabs-container .tabs-left .tab-pane .panel-body, .tabs-container .tabs-right .tab-pane .panel-body { + border-top: 1px solid #e7eaec; +} + +.tabs-container .nav-tabs > li a:hover { + background: transparent; + border-color: transparent; +} + +.tabs-container .tabs-below > .nav-tabs, .tabs-container .tabs-right > .nav-tabs, .tabs-container .tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tabs-container .tabs-left .panel-body { + position: static; +} + +.tabs-container .tabs-left > .nav-tabs, .tabs-container .tabs-right > .nav-tabs { + width: 20%; +} + +.tabs-container .tabs-left .panel-body { + width: 80%; + margin-left: 20%; +} + +.tabs-container .tabs-right .panel-body { + width: 80%; + margin-right: 20%; +} + +.tabs-container .tab-content > .tab-pane, .tabs-container .pill-content > .pill-pane { + display: none; +} + +.tabs-container .tab-content > .active, .tabs-container .pill-content > .active { + display: block; +} + +.tabs-container .tabs-below > .nav-tabs { + border-top: 1px solid #e7eaec; +} + +.tabs-container .tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-container .tabs-below > .nav-tabs > li > a { + border-radius: 0 0 4px 4px; +} + +.tabs-container .tabs-below > .nav-tabs > li > a:hover, .tabs-container .tabs-below > .nav-tabs > li > a:focus { + border-top-color: #e7eaec; + border-bottom-color: transparent; +} + +.tabs-container .tabs-left > .nav-tabs > li, .tabs-container .tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-container .tabs-left > .nav-tabs > li > a, .tabs-container .tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-container .tabs-left > .nav-tabs { + float: left; + margin-right: 19px; +} + +.tabs-container .tabs-left > .nav-tabs > li > a { + margin-right: -1px; + border-radius: 4px 0 0 4px; +} + +.tabs-container .tabs-left > .nav-tabs .active > a, .tabs-container .tabs-left > .nav-tabs .active > a:hover, .tabs-container .tabs-left > .nav-tabs .active > a:focus { + border-color: #e7eaec transparent #e7eaec #e7eaec; + border-right-color: #ffffff; +} + +.tabs-container .tabs-right > .nav-tabs { + float: right; + margin-left: 19px; +} + +.tabs-container .tabs-right > .nav-tabs > li > a { + margin-left: -1px; + border-radius: 0 4px 4px 0; +} + +.tabs-container .tabs-right > .nav-tabs .active > a, .tabs-container .tabs-right > .nav-tabs .active > a:hover, .tabs-container .tabs-right > .nav-tabs .active > a:focus { + border-color: #e7eaec #e7eaec #e7eaec transparent; + border-left-color: #ffffff; + z-index: 1; +} + +/*SWITCHES */ + +.onoffswitch { + position: relative; + width: 54px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; +} + +.onoffswitch-checkbox { + display: none; +} + +.onoffswitch-label { + display: block; + overflow: hidden; + cursor: pointer; + border: 2px solid #1AB394; + border-radius: 3px; +} + +.onoffswitch-inner { + display: block; + width: 200%; + margin-left: -100%; + -webkit-transition: margin 0.3s ease-in 0s; + transition: margin 0.3s ease-in 0s; +} + +.onoffswitch-inner:before, .onoffswitch-inner:after { + display: block; + float: left; + width: 50%; + /* height: 16px; */ + padding: 0; + /* line-height: 16px; */ + font-size: 10px; + color: white; + font-family: Trebuchet, Arial, sans-serif; + font-weight: bold; + box-sizing: border-box; +} + +.onoffswitch-inner:before { + content: "ON"; + padding-left: 7px; + background-color: #1AB394; + color: #FFFFFF; +} + +.onoffswitch-inner:after { + content: "OFF"; + padding-right: 7px; + background-color: #FFFFFF; + color: #919191; + text-align: right; +} + +.onoffswitch-switch { + display: block; + width: 18px; + margin: 0px; + background: #FFFFFF; + border: 2px solid #1AB394; + border-radius: 3px; + position: absolute; + top: 0; + bottom: 0; + right: 36px; + -webkit-transition: all 0.3s ease-in 0s; + transition: all 0.3s ease-in 0s; +} + +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { + margin-left: 0; +} + +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { + right: 0px; +} + +/* Nestable list */ +.dd { + position: relative; + display: block; + margin: 0; + padding: 0; + list-style: none; + font-size: 13px; + line-height: 20px; +} + +.dd-list { + display: block; + position: relative; + margin: 0; + padding: 0; + list-style: none; +} + +.dd-list .dd-list { + padding-left: 30px; +} + +.dd-collapsed .dd-list { + display: none; +} + +.dd-item, .dd-empty, .dd-placeholder { + display: block; + position: relative; + margin: 0; + padding: 0; + min-height: 20px; + font-size: 13px; + line-height: 20px; +} + +.dd-handle { + display: block; + margin: 5px 0; + padding: 5px 10px; + color: #333; + text-decoration: none; + border: 1px solid #e7eaec; + background: #f5f5f5; + border-radius: 3px; + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +.dd-handle span { + font-weight: bold; +} + +.dd-handle:hover { + background: #f0f0f0; + cursor: pointer; + font-weight: bold; +} + +.dd-item > button { + display: block; + position: relative; + cursor: pointer; + float: left; + width: 25px; + height: 20px; + margin: 5px 0; + padding: 0; + text-indent: 100%; + white-space: nowrap; + overflow: hidden; + border: 0; + background: transparent; + font-size: 12px; + line-height: 1; + text-align: center; + font-weight: bold; +} + +.dd-item > button:before { + content: '+'; + display: block; + position: absolute; + width: 100%; + text-align: center; + text-indent: 0; +} + +.dd-item > button[data-action="collapse"]:before { + content: '-'; +} + +#nestable2 .dd-item > button { + font-family: FontAwesome; + height: 34px; + width: 33px; + color: #c1c1c1; +} + +#nestable2 .dd-item > button:before { + content: "\f067"; +} + +#nestable2 .dd-item > button[data-action="collapse"]:before { + content: "\f068"; +} + +.dd-placeholder, .dd-empty { + margin: 5px 0; + padding: 0; + min-height: 30px; + background: #f2fbff; + border: 1px dashed #b6bcbf; + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +.dd-empty { + border: 1px dashed #bbb; + min-height: 100px; + background-color: #e5e5e5; + background-image: -webkit-linear-gradient(45deg, #ffffff 25%, transparent 25%, transparent 75%, #ffffff 75%, #ffffff), -webkit-linear-gradient(45deg, #ffffff 25%, transparent 25%, transparent 75%, #ffffff 75%, #ffffff); + background-image: linear-gradient(45deg, #ffffff 25%, transparent 25%, transparent 75%, #ffffff 75%, #ffffff), linear-gradient(45deg, #ffffff 25%, transparent 25%, transparent 75%, #ffffff 75%, #ffffff); + background-size: 60px 60px; + background-position: 0 0, 30px 30px; +} + +.dd-dragel { + position: absolute; + z-index: 9999; + pointer-events: none; +} + +.dd-dragel > .dd-item .dd-handle { + margin-top: 0; +} + +.dd-dragel .dd-handle { + box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, 0.1); +} + +/** +* Nestable Extras +*/ +.nestable-lists { + display: block; + clear: both; + padding: 30px 0; + width: 100%; + border: 0; + border-top: 2px solid #ddd; + border-bottom: 2px solid #ddd; +} + +#nestable-menu { + padding: 0; + margin: 10px 0 20px 0; +} + +#nestable-output, #nestable2-output { + width: 100%; + font-size: 0.75em; + line-height: 1.333333em; + font-family: lucida grande, lucida sans unicode, helvetica, arial, sans-serif; + padding: 5px; + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +#nestable2 .dd-handle { + color: inherit; + border: 1px dashed #e7eaec; + background: #f3f3f4; + padding: 10px; +} + +#nestable2 .dd-handle:hover { + /*background: #bbb;*/ +} + +#nestable2 span.label { + margin-right: 10px; +} + +#nestable-output, #nestable2-output { + font-size: 12px; + padding: 25px; + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +/* CodeMirror */ +.CodeMirror { + border: 1px solid #eee; + height: auto; +} + +.CodeMirror-scroll { + overflow-y: hidden; + overflow-x: auto; +} + +/* Google Maps */ +.google-map { + height: 300px; +} + +/* Validation */ +label.error { + color: #cc5965; + display: inline-block; + margin-left: 5px; +} + +.form-control.error { + border: 1px dotted #cc5965; +} + +/* ngGrid */ +.gridStyle { + border: 1px solid #d4d4d4; + width: 100%; + height: 400px; +} + +.gridStyle2 { + border: 1px solid #d4d4d4; + width: 500px; + height: 300px; +} + +.ngH eaderCell { + border-right: none; + border-bottom: 1px solid #e7eaec; +} + +.ngCell { + border-right: none; +} + +.ngTopPanel { + background: #F5F5F6; +} + +.ngRow.even { + background: #f9f9f9; +} + +.ngRow.selected { + background: #EBF2F1; +} + +.ngRow { + border-bottom: 1px solid #e7eaec; +} + +.ngCell { + background-color: transparent; +} + +.ngHeaderCell { + border-right: none; +} + +/* Toastr custom style */ +#toast-container > .toast { + background-image: none !important; +} + +#toast-container > .toast:before { + position: fixed; + font-family: FontAwesome; + font-size: 24px; + line-height: 24px; + float: left; + color: #FFF; + padding-right: 0.5em; + margin: auto 0.5em auto -1.5em; +} + +#toast-container > div { + box-shadow: 0 0 3px #999; + opacity: .9; + -ms-filter: alpha(opacity=90); + filter: alpha(opacity=90); +} + +#toast-container > :hover { + box-shadow: 0 0 4px #999; + opacity: 1; + -ms-filter: alpha(opacity=100); + filter: alpha(opacity=100); + cursor: pointer; +} + +.toast { + background-color: #1ab394; +} + +.toast-success { + background-color: #1ab394; +} + +.toast-error { + background-color: #ed5565; +} + +.toast-info { + background-color: #23c6c8; +} + +.toast-warning { + background-color: #f8ac59; +} + +.toast-top-full-width { + margin-top: 20px; +} + +.toast-bottom-full-width { + margin-bottom: 20px; +} + +/* Image cropper style */ +.img-container, .img-preview { + overflow: hidden; + text-align: center; + width: 100%; +} + +.img-preview-sm { + height: 130px; + width: 200px; +} + +/* Forum styles */ +.forum-post-container .media { + margin: 10px 10px 10px 10px; + padding: 20px 10px 20px 10px; + border-bottom: 1px solid #f1f1f1; +} + +.forum-avatar { + float: left; + margin-right: 20px; + text-align: center; + width: 110px; +} + +.forum-avatar .img-circle { + height: 48px; + width: 48px; +} + +.author-info { + color: #676a6c; + font-size: 11px; + margin-top: 5px; + text-align: center; +} + +.forum-post-info { + padding: 9px 12px 6px 12px; + background: #f9f9f9; + border: 1px solid #f1f1f1; +} + +.media-body > .media { + background: #f9f9f9; + border-radius: 3px; + border: 1px solid #f1f1f1; +} + +.forum-post-container .media-body .photos { + margin: 10px 0; +} + +.forum-photo { + max-width: 140px; + border-radius: 3px; +} + +.media-body > .media .forum-avatar { + width: 70px; + margin-right: 10px; +} + +.media-body > .media .forum-avatar .img-circle { + height: 38px; + width: 38px; +} + +.mid-icon { + font-size: 66px; +} + +.forum-item { + margin: 10px 0; + padding: 10px 0 20px; + border-bottom: 1px solid #f1f1f1; +} + +.views-number { + font-size: 24px; + line-height: 18px; + font-weight: 400; +} + +.forum-container, .forum-post-container { + padding: 30px !important; +} + +.forum-item small { + color: #999; +} + +.forum-item .forum-sub-title { + color: #999; + margin-left: 50px; +} + +.forum-title { + margin: 15px 0 15px 0; +} + +.forum-info { + text-align: center; +} + +.forum-desc { + color: #999; +} + +.forum-icon { + float: left; + width: 30px; + margin-right: 20px; + text-align: center; +} + +a.forum-item-title { + color: inherit; + display: block; + font-size: 18px; + font-weight: 600; +} + +a.forum-item-title:hover { + color: inherit; +} + +.forum-icon .fa { + font-size: 30px; + margin-top: 8px; + color: #9b9b9b; +} + +.forum-item.active .fa { + color: #1ab394; +} + +.forum-item.active a.forum-item-title { + color: #1ab394; +} + +@media ( max-width: 992px) { + .forum-info { + margin: 15px 0 10px 0px; + /* Comment this is you want to show forum info in small devices */ + display: none; + } + + .forum-desc { + float: none !important; + } +} + +/* New Timeline style */ +.vertical-container { + /* this class is used to give a max-width to the element it is applied to, and center it horizontally when it reaches that max-width */ + width: 90%; + max-width: 1170px; + margin: 0 auto; +} + +.vertical-container::after { + /* clearfix */ + content: ''; + display: table; + clear: both; +} + +#vertical-timeline { + position: relative; + padding: 0; + margin-top: 2em; + margin-bottom: 2em; +} + +#vertical-timeline::before { + content: ''; + position: absolute; + top: 0; + left: 18px; + height: 100%; + width: 4px; + background: #f1f1f1; +} + +.vertical-timeline-content .btn { + float: right; +} + +#vertical-timeline.light-timeline:before { + background: #e7eaec; +} + +.dark-timeline .vertical-timeline-content:before { + border-color: transparent #f5f5f5 transparent transparent; +} + +.dark-timeline.center-orientation .vertical-timeline-content:before { + border-color: transparent transparent transparent #f5f5f5; +} + +.dark-timeline .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before, .dark-timeline.center-orientation .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before { + border-color: transparent #f5f5f5 transparent transparent; +} + +.dark-timeline .vertical-timeline-content, .dark-timeline.center-orientation .vertical-timeline-content { + background: #f5f5f5; +} + +@media only screen and (min-width: 1170px) { + #vertical-timeline.center-orientation { + margin-top: 3em; + margin-bottom: 3em; + } + + #vertical-timeline.center-orientation:before { + left: 50%; + margin-left: -2px; + } +} + +@media only screen and (max-width: 1170px) { + .center-orientation.dark-timeline .vertical-timeline-content:before { + border-color: transparent #f5f5f5 transparent transparent; + } +} + +.vertical-timeline-block { + position: relative; + margin: 2em 0; +} + +.vertical-timeline-block:after { + content: ""; + display: table; + clear: both; +} + +.vertical-timeline-block:first-child { + margin-top: 0; +} + +.vertical-timeline-block:last-child { + margin-bottom: 0; +} + +@media only screen and (min-width: 1170px) { + .center-orientation .vertical-timeline-block { + margin: 4em 0; + } + + .center-orientation .vertical-timeline-block:first-child { + margin-top: 0; + } + + .center-orientation .vertical-timeline-block:last-child { + margin-bottom: 0; + } +} + +.vertical-timeline-icon { + position: absolute; + top: 0; + left: 0; + width: 40px; + height: 40px; + border-radius: 50%; + font-size: 16px; + border: 3px solid #f1f1f1; + text-align: center; +} + +.vertical-timeline-icon i { + display: block; + width: 24px; + height: 24px; + position: relative; + left: 50%; + top: 50%; + margin-left: -12px; + margin-top: -9px; +} + +@media only screen and (min-width: 1170px) { + .center-orientation .vertical-timeline-icon { + width: 50px; + height: 50px; + left: 50%; + margin-left: -25px; + -webkit-transform: translateZ(0); + -webkit-backface-visibility: hidden; + font-size: 19px; + } + + .center-orientation .vertical-timeline-icon i { + margin-left: -12px; + margin-top: -10px; + } + + .center-orientation .cssanimations .vertical-timeline-icon.is-hidden { + visibility: hidden; + } +} + +.vertical-timeline-content { + position: relative; + margin-left: 60px; + background: white; + border-radius: 0.25em; + padding: 1em; +} + +.vertical-timeline-content:after { + content: ""; + display: table; + clear: both; +} + +.vertical-timeline-content h2 { + font-weight: 400; + margin-top: 4px; +} + +.vertical-timeline-content p { + margin: 1em 0; + line-height: 1.6; +} + +.vertical-timeline-content .vertical-date { + float: left; + font-weight: 500; +} + +.vertical-date small { + color: #1ab394; + font-weight: 400; +} + +.vertical-timeline-content::before { + content: ''; + position: absolute; + top: 16px; + right: 100%; + height: 0; + width: 0; + border: 7px solid transparent; + border-right: 7px solid white; +} + +@media only screen and (min-width: 768px) { + .vertical-timeline-content h2 { + font-size: 18px; + } + + .vertical-timeline-content p { + font-size: 13px; + } +} + +@media only screen and (min-width: 1170px) { + .center-orientation .vertical-timeline-content { + margin-left: 0; + padding: 1.6em; + width: 45%; + } + + .center-orientation .vertical-timeline-content::before { + top: 24px; + left: 100%; + border-color: transparent; + border-left-color: white; + } + + .center-orientation .vertical-timeline-content .btn { + float: left; + } + + .center-orientation .vertical-timeline-content .vertical-date { + position: absolute; + width: 100%; + left: 122%; + top: 2px; + font-size: 14px; + } + + .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content { + float: right; + } + + .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content::before { + top: 24px; + left: auto; + right: 100%; + border-color: transparent; + border-right-color: white; + } + + .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .btn { + float: right; + } + + .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .vertical-date { + left: auto; + right: 122%; + text-align: right; + } + + .center-orientation .cssanimations .vertical-timeline-content.is-hidden { + visibility: hidden; + } +} + +.sidebard-panel { + width: 220px; + background: #ebebed; + padding: 10px 20px; + position: absolute; + right: 0; +} + +.sidebard-panel .feed-element img.img-circle { + width: 32px; + height: 32px; +} + +.sidebard-panel .feed-element, .media-body, .sidebard-panel p { + font-size: 12px; +} + +.sidebard-panel .feed-element { + margin-top: 20px; + padding-bottom: 0; +} + +.sidebard-panel .list-group { + margin-bottom: 10px; +} + +.sidebard-panel .list-group .list-group-item { + padding: 5px 0; + font-size: 12px; + border: 0; +} + +.sidebar-content .wrapper, .wrapper.sidebar-content { + padding-right: 240px !important; +} + +#right-sidebar { + background-color: #fff; + border-left: 1px solid #e7eaec; + border-top: 1px solid #e7eaec; + overflow: hidden; + position: fixed; + top: 60px; + width: 260px !important; + z-index: 1009; + bottom: 0; + right: -260px; +} + +#right-sidebar.sidebar-open { + right: 0; +} + +#right-sidebar.sidebar-open.sidebar-top { + top: 0; + border-top: none; +} + +.sidebar-container ul.nav-tabs { + border: none; +} + +.sidebar-container ul.nav-tabs.navs-4 li { + width: 25%; +} + +.sidebar-container ul.nav-tabs.navs-3 li { + width: 33.3333%; +} + +.sidebar-container ul.nav-tabs.navs-2 li { + width: 50%; +} + +.sidebar-container ul.nav-tabs li { + border: none; +} + +.sidebar-container ul.nav-tabs li a { + border: none; + padding: 12px 10px; + margin: 0; + border-radius: 0; + background: #2f4050; + color: #fff; + text-align: center; + border-right: 1px solid #334556; +} + +.sidebar-container ul.nav-tabs li.active a { + border: none; + background: #f9f9f9; + color: #676a6c; + font-weight: bold; +} + +.sidebar-container .nav-tabs > li.active > a:hover, .sidebar-container .nav-tabs > li.active > a:focus { + border: none; +} + +.sidebar-container ul.sidebar-list { + margin: 0; + padding: 0; +} + +.sidebar-container ul.sidebar-list li { + border-bottom: 1px solid #e7eaec; + padding: 15px 20px; + list-style: none; + font-size: 12px; +} + +.sidebar-container .sidebar-message:nth-child(2n+2) { + background: #f9f9f9; +} + +.sidebar-container ul.sidebar-list li a { + text-decoration: none; + color: inherit; +} + +.sidebar-container .sidebar-content { + padding: 15px 20px; + font-size: 12px; +} + +.sidebar-container .sidebar-title { + background: #f9f9f9; + padding: 20px; + border-bottom: 1px solid #e7eaec; +} + +.sidebar-container .sidebar-title h3 { + margin-bottom: 3px; + padding-left: 2px; +} + +.sidebar-container .tab-content h4 { + margin-bottom: 5px; +} + +.sidebar-container .sidebar-message > a > .pull-left { + margin-right: 10px; +} + +.sidebar-container .sidebar-message > a { + text-decoration: none; + color: inherit; +} + +.sidebar-container .sidebar-message { + padding: 15px 20px; +} + +.sidebar-container .sidebar-message .message-avatar { + height: 38px; + width: 38px; + border-radius: 50%; +} + +.sidebar-container .setings-item { + padding: 15px 20px; + border-bottom: 1px solid #e7eaec; +} + +body { + font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + color: #676a6c; + overflow-x: hidden; +} + +html, body { + height: 100%; +} + +body.full-height-layout #wrapper, body.full-height-layout #page-wrapper { + height: 100%; +} + +#page-wrapper { + min-height: auto; +} + +body.boxed-layout { + background: url('patterns/shattered.png'); +} + +body.boxed-layout #wrapper { + background-color: #2f4050; + max-width: 1200px; + margin: 0 auto; +} + +.top-navigation.boxed-layout #wrapper, .boxed-layout #wrapper.top-navigation { + max-width: 1300px !important; +} + +.block { + display: block; +} + +.clear { + display: block; + overflow: hidden; +} + +a { + cursor: pointer; +} + +a:hover, a:focus { + text-decoration: none; +} + +.border-bottom { + border-bottom: 1px solid #e7eaec !important; +} + +.font-bold { + font-weight: 600; +} + +.font-noraml { + font-weight: 400; +} + +.text-uppercase { + text-transform: uppercase; +} + +.b-r { + border-right: 1px solid #e7eaec; +} + +.hr-line-dashed { + border-top: 1px dashed #e7eaec; + color: #ffffff; + background-color: #ffffff; + height: 1px; + margin: 20px 0; +} + +.hr-line-solid { + border-bottom: 1px solid #e7eaec; + background-color: rgba(0, 0, 0, 0); + border-style: solid !important; + margin-top: 15px; + margin-bottom: 15px; +} + +video { + width: 100% !important; + height: auto !important; +} + +/* GALLERY */ +.gallery > .row > div { + margin-bottom: 15px; +} + +.fancybox img { + margin-bottom: 5px; + /* Only for demo */ + width: 24%; +} + +/* Summernote text editor */ +.note-editor { + height: auto !important; + min-height: 100px; + border: solid 1px #e5e6e7; +} + +/* MODAL */ +.modal-content { + background-clip: padding-box; + background-color: #FFFFFF; + border: 1px solid rgba(0, 0, 0, 0); + border-radius: 4px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + outline: 0 none; +} + +.modal-dialog { + z-index: 1200; +} + +.modal-body { + padding: 20px 30px 30px 30px; +} + +.inmodal .modal-body { + background: #f8fafb; +} + +.inmodal .modal-header { + padding: 30px 15px; + text-align: center; +} + +.animated.modal.fade .modal-dialog { + -webkit-transform: none; + -ms-transform: none; + transform: none; +} + +.inmodal .modal-title { + font-size: 26px; +} + +.inmodal .modal-icon { + font-size: 84px; + color: #e2e3e3; +} + +.modal-footer { + margin-top: 0; +} + +/* WRAPPERS */ +#wrapper { + width: 100%; + overflow-x: hidden; + background-color: #2f4050; +} + +.wrapper { + padding: 0 20px; +} + +.wrapper-content { + padding: 20px; +} + +#page-wrapper { + padding: 0 15px; + position: inherit; + margin: 0 0 0 220px; +} + +.title-action { + text-align: right; + padding-top: 30px; +} + +.ibox-content h1, .ibox-content h2, .ibox-content h3, .ibox-content h4, .ibox-content h5, .ibox-title h1, .ibox-title h2, .ibox-title h3, .ibox-title h4, .ibox-title h5 { + margin-top: 5px; +} + +ul.unstyled, ol.unstyled { + list-style: none outside none; + margin-left: 0; +} + +.big-icon { + font-size: 160px; + color: #e5e6e7; +} + +/* FOOTER */ +.footer { + background: none repeat scroll 0 0 white; + border-top: 1px solid #e7eaec; + overflow: hidden; + padding: 10px 20px; + margin: 0 -15px; + height: 36px; +} + +.footer.fixed_full { + position: fixed; + bottom: 0; + left: 0; + right: 0; + z-index: 1000; + padding: 10px 20px; + background: white; + border-top: 1px solid #e7eaec; +} + +.footer.fixed { + position: fixed; + bottom: 0; + left: 0; + right: 0; + z-index: 1000; + padding: 10px 20px; + background: white; + border-top: 1px solid #e7eaec; + margin-left: 220px; +} + +body.mini-navbar .footer.fixed, body.body-small.mini-navbar .footer.fixed { + margin: 0 0 0 70px; +} + +body.mini-navbar.canvas-menu .footer.fixed, body.canvas-menu .footer.fixed { + margin: 0 !important; +} + +body.fixed-sidebar.body-small.mini-navbar .footer.fixed { + margin: 0 0 0 220px; +} + +body.body-small .footer.fixed { + margin-left: 0px; +} + +/* PANELS */ +.page-heading { + border-top: 0; + padding: 0px 20px 20px; +} + +.panel-heading h1, .panel-heading h2 { + margin-bottom: 5px; +} + +/*CONTENTTABS*/ +.content-tabs { + position: relative; + height: 42px; + background: #fafafa; + line-height: 40px; +} + +.content-tabs .roll-nav, .page-tabs-list { + position: absolute; + width: 40px; + height: 40px; + text-align: center; + color: #999; + z-index: 2; + top: 0; +} + +.content-tabs .roll-left { + left: 0; + border-right: solid 1px #eee; +} + +.content-tabs .roll-right { + right: 0; + border-left: solid 1px #eee; +} + +.content-tabs button { + background: #fff; + border: 0; + height: 40px; + width: 40px; + outline: none; +} + +.content-tabs button:hover { + background: #fafafa; +} + +nav.page-tabs { + margin-left: 40px; + width: 100000px; + height: 40px; + overflow: hidden; +} + +nav.page-tabs .page-tabs-content { + float: left; +} + +.page-tabs a { + display: block; + float: left; + border-right: solid 1px #eee; + padding: 0 15px; +} + +.page-tabs a i:hover { + color: #c00; +} + +.page-tabs a:hover, .content-tabs .roll-nav:hover { + color: #777; + background: #f2f2f2; + cursor: pointer; +} + +.roll-right.J_tabRight { + right: 140px; +} + +.roll-right.btn-group { + right: 60px; + width: 80px; + padding: 0; +} + +.roll-right.btn-group button { + width: 80px; +} + +.roll-right.J_tabExit { + background: #fff; + height: 40px; + width: 60px; + outline: none; +} + +.dropdown-menu-right { + left: auto; +} + +#content-main { + height: calc(100% - 140px); + overflow: hidden; +} + +.fixed-nav #content-main { + height: calc(100% - 80px); + overflow: hidden; +} + +/* TABLES */ +.table-bordered { + border: 1px solid #EBEBEB; +} + +.table-bordered > thead > tr > th, .table-bordered > thead > tr > td { + background-color: #F5F5F6; + border-bottom-width: 1px; +} + +.table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td { + border: 1px solid #e7e7e7; +} + +.table > thead > tr > th { + border-bottom: 1px solid #DDDDDD; + vertical-align: bottom; +} + +.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { + border-top: 1px solid #e7eaec; + line-height: 1.42857; + padding: 8px; + vertical-align: middle; +} + +/* PANELS */ +.panel.blank-panel { + background: none; + margin: 0; +} + +.blank-panel .panel-heading { + padding-bottom: 0; +} + +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + -moz-border-bottom-colors: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + background: none; + border-color: #dddddd #dddddd rgba(0, 0, 0, 0); + border-bottom: #f3f3f4; + -webkit-border-image: none; + -o-border-image: none; + border-image: none; + border-style: solid; + border-width: 1px; + color: #555555; + cursor: default; +} + +.nav.nav-tabs li { + background: none; + border: none; +} + +.nav-tabs > li > a { + color: #A7B1C2; + font-weight: 600; + padding: 10px 20px 10px 25px; +} + +.nav-tabs > li > a:hover, .nav-tabs > li > a:focus { + background-color: #e6e6e6; + color: #676a6c; +} + +.ui-tab .tab-content { + padding: 20px 0px; +} + +/* GLOBAL */ +.no-padding { + padding: 0 !important; +} + +.no-borders { + border: none !important; +} + +.no-margins { + margin: 0 !important; +} + +.no-top-border { + border-top: 0 !important; +} + +.ibox-content.text-box { + padding-bottom: 0px; + padding-top: 15px; +} + +.border-left-right { + border-left: 1px solid #e7eaec; + border-right: 1px solid #e7eaec; + border-top: none; + border-bottom: none; +} + +.border-left { + border-left: 1px solid #e7eaec; + border-right: none; + border-top: none; + border-bottom: none; +} + +.border-right { + border-left: none; + border-right: 1px solid #e7eaec; + border-top: none; + border-bottom: none; +} + +.full-width { + width: 100% !important; +} + +.link-block { + font-size: 12px; + padding: 10px; +} + +.nav.navbar-top-links .link-block a { + font-size: 12px; +} + +.link-block a { + font-size: 10px; + color: inherit; +} + +body.mini-navbar .branding { + display: none; +} + +img.circle-border { + border: 6px solid #FFFFFF; + border-radius: 50%; +} + +.branding { + float: left; + color: #FFFFFF; + font-size: 18px; + font-weight: 600; + padding: 17px 20px; + text-align: center; + background-color: #1ab394; +} + +.login-panel { + margin-top: 25%; +} + +.page-header { + padding: 20px 0 9px; + margin: 0 0 20px; + border-bottom: 1px solid #eeeeee; +} + +.fontawesome-icon-list { + margin-top: 22px; +} + +.fontawesome-icon-list .fa-hover a { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: block; + color: #222222; + line-height: 32px; + height: 32px; + padding-left: 10px; + border-radius: 4px; +} + +.fontawesome-icon-list .fa-hover a .fa { + width: 32px; + font-size: 14px; + display: inline-block; + text-align: right; + margin-right: 10px; +} + +.fontawesome-icon-list .fa-hover a:hover { + background-color: #1d9d74; + color: #ffffff; + text-decoration: none; +} + +.fontawesome-icon-list .fa-hover a:hover .fa { + font-size: 30px; + vertical-align: -6px; +} + +.fontawesome-icon-list .fa-hover a:hover .text-muted { + color: #bbe2d5; +} + +.feature-list .col-md-4 { + margin-bottom: 22px; +} + +.feature-list h4 .fa:before { + vertical-align: -10%; + font-size: 28px; + display: inline-block; + width: 1.07142857em; + text-align: center; + margin-right: 5px; +} + +.ui-draggable .ibox-title { + cursor: move; +} + +.breadcrumb { + background-color: #ffffff; + padding: 0; + margin-bottom: 0; +} + +.breadcrumb > li a { + color: inherit; +} + +.breadcrumb > .active { + color: inherit; +} + +code { + background-color: #F9F2F4; + border-radius: 4px; + color: #ca4440; + font-size: 90%; + padding: 2px 4px; + white-space: nowrap; +} + +.ibox { + clear: both; + margin-bottom: 25px; + margin-top: 0; + padding: 0; +} + +.ibox.collapsed .ibox-content { + display: none; +} + +.ibox.collapsed .fa.fa-chevron-up:before { + content: "\f078"; +} + +.ibox.collapsed .fa.fa-chevron-down:before { + content: "\f077"; +} + +.ibox:after, .ibox:before { + display: table; +} + +.ibox-title { + -moz-border-bottom-colors: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + background-color: #ffffff; + border-color: #e7eaec; + -webkit-border-image: none; + -o-border-image: none; + border-image: none; + border-style: solid solid none; + border-width: 4px 0px 0; + color: inherit; + margin-bottom: 0; + padding: 14px 15px 7px; + min-height: 48px; +} + +.ibox-content { + background-color: #ffffff; + color: inherit; + padding: 15px 20px 20px 20px; + border-color: #e7eaec; + -webkit-border-image: none; + -o-border-image: none; + border-image: none; + border-style: solid solid none; + border-width: 1px 0px; +} + +table.table-mail tr td { + padding: 12px; +} + +.table-mail .check-mail { + padding-left: 20px; +} + +.table-mail .mail-date { + padding-right: 20px; +} + +.star-mail, .check-mail { + width: 40px; +} + +.unread td a, .unread td { + font-weight: 600; + color: inherit; +} + +.read td a, .read td { + font-weight: normal; + color: inherit; +} + +.unread td { + background-color: #f9f8f8; +} + +.ibox-content { + clear: both; +} + +.ibox-heading { + background-color: #f3f6fb; + border-bottom: none; +} + +.ibox-heading h3 { + font-weight: 200; + font-size: 24px; +} + +.ibox-title h5 { + display: inline-block; + font-size: 14px; + margin: 0 0 7px; + padding: 0; + text-overflow: ellipsis; + float: left; +} + +.ibox-title .label { + float: left; + margin-left: 4px; +} + +.ibox-tools { + display: inline-block; + float: right; + margin-top: 0; + position: relative; + padding: 0; +} + +.ibox-tools a { + cursor: pointer; + margin-left: 5px; + color: #c4c4c4; +} + +.ibox-tools a.btn-primary { + color: #fff; +} + +.ibox-tools .dropdown-menu > li > a { + padding: 4px 10px; + font-size: 12px; +} + +.ibox .open > .dropdown-menu { + left: auto; + right: 0; +} + +/* BACKGROUNDS */ +.gray-bg { + background-color: #f3f3f4; +} + +.white-bg { + background-color: #ffffff; +} + +.navy-bg { + background-color: #1ab394; + color: #ffffff; +} + +.blue-bg { + background-color: #1c84c6; + color: #ffffff; +} + +.lazur-bg { + background-color: #23c6c8; + color: #ffffff; +} + +.yellow-bg { + background-color: #f8ac59; + color: #ffffff; +} + +.red-bg { + background-color: #ed5565; + color: #ffffff; +} + +.black-bg { + background-color: #262626; +} + +.panel-primary { + border-color: #1ab394; +} + +.panel-primary > .panel-heading { + background-color: #1ab394; + border-color: #1ab394; +} + +.panel-success { + border-color: #1c84c6; +} + +.panel-success > .panel-heading { + background-color: #1c84c6; + border-color: #1c84c6; + color: #ffffff; +} + +.panel-info { + border-color: #23c6c8; +} + +.panel-info > .panel-heading { + background-color: #23c6c8; + border-color: #23c6c8; + color: #ffffff; +} + +.panel-warning { + border-color: #f8ac59; +} + +.panel-warning > .panel-heading { + background-color: #f8ac59; + border-color: #f8ac59; + color: #ffffff; +} + +.panel-danger { + border-color: #ed5565; +} + +.panel-danger > .panel-heading { + background-color: #ed5565; + border-color: #ed5565; + color: #ffffff; +} + +.progress-bar { + background-color: #1ab394; +} + +.progress-small, .progress-small .progress-bar { + height: 10px; +} + +.progress-small, .progress-mini { + margin-top: 5px; +} + +.progress-mini, .progress-mini .progress-bar { + height: 5px; + margin-bottom: 0px; +} + +.progress-bar-navy-light { + background-color: #3dc7ab; +} + +.progress-bar-success { + background-color: #1c84c6; +} + +.progress-bar-info { + background-color: #23c6c8; +} + +.progress-bar-warning { + background-color: #f8ac59; +} + +.progress-bar-danger { + background-color: #ed5565; +} + +.panel-title { + font-size: inherit; +} + +.jumbotron { + border-radius: 6px; + padding: 40px; +} + +.jumbotron h1 { + margin-top: 0; +} + +/* COLORS */ +.text-navy { + color: #1ab394; +} + +.text-primary { + color: inherit; +} + +.text-success { + color: #1c84c6; +} + +.text-info { + color: #23c6c8; +} + +.text-warning { + color: #f8ac59; +} + +.text-danger { + color: #ed5565; +} + +.text-muted { + color: #888888; +} + +.simple_tag { + background-color: #f3f3f4; + border: 1px solid #e7eaec; + border-radius: 2px; + color: inherit; + font-size: 10px; + margin-right: 5px; + margin-top: 5px; + padding: 5px 12px; + display: inline-block; +} + +.img-shadow { + box-shadow: 0px 0px 3px 0px #919191; +} + +/* For handle diferent bg color in AngularJS version */ +.dashboards\.dashboard_2 nav.navbar, .dashboards\.dashboard_3 nav.navbar, .mailbox\.inbox nav.navbar, .mailbox\.email_view nav.navbar, .mailbox\.email_compose nav.navbar, .dashboards\.dashboard_4_1 nav.navbar { + background: #fff; +} + +/* For handle diferent bg color in MVC version */ +.Dashboard_2 .navbar.navbar-static-top, .Dashboard_3 .navbar.navbar-static-top, .Dashboard_4_1 .navbar.navbar-static-top, .ComposeEmail .navbar.navbar-static-top, .EmailView .navbar.navbar-static-top, .Inbox .navbar.navbar-static-top { + background: #fff; +} + +a.close-canvas-menu { + position: absolute; + top: 10px; + right: 15px; + z-index: 1011; + color: #a7b1c2; +} + +a.close-canvas-menu:hover { + color: #fff; +} + +/* FULL HEIGHT */ +.full-height { + height: 100%; +} + +.fh-breadcrumb { + height: calc(100% - 196px); + margin: 0 -15px; + position: relative; +} + +.fh-no-breadcrumb { + height: calc(100% - 99px); + margin: 0 -15px; + position: relative; +} + +.fh-column { + background: #fff; + height: 100%; + width: 240px; + float: left; +} + +.modal-backdrop { + z-index: 2040 !important; +} + +.modal { + z-index: 2050 !important; +} + +.spiner-example { + height: 200px; + padding-top: 70px; +} + +/* MARGINS & PADDINGS */ +.p-xxs { + padding: 5px; +} + +.p-xs { + padding: 10px; +} + +.p-sm { + padding: 15px; +} + +.p-m { + padding: 20px; +} + +.p-md { + padding: 25px; +} + +.p-lg { + padding: 30px; +} + +.p-xl { + padding: 40px; +} + +.m-xxs { + margin: 2px 4px; +} + +.m-xs { + margin: 5px; +} + +.m-sm { + margin: 10px; +} + +.m { + margin: 15px; +} + +.m-md { + margin: 20px; +} + +.m-lg { + margin: 30px; +} + +.m-xl { + margin: 50px; +} + +.m-n { + margin: 0 !important; +} + +.m-l-none { + margin-left: 0; +} + +.m-l-xs { + margin-left: 5px; +} + +.m-l-sm { + margin-left: 10px; +} + +.m-l { + margin-left: 15px; +} + +.m-l-md { + margin-left: 20px; +} + +.m-l-lg { + margin-left: 30px; +} + +.m-l-xl { + margin-left: 40px; +} + +.m-l-n-xxs { + margin-left: -1px; +} + +.m-l-n-xs { + margin-left: -5px; +} + +.m-l-n-sm { + margin-left: -10px; +} + +.m-l-n { + margin-left: -15px; +} + +.m-l-n-md { + margin-left: -20px; +} + +.m-l-n-lg { + margin-left: -30px; +} + +.m-l-n-xl { + margin-left: -40px; +} + +.m-t-none { + margin-top: 0; +} + +.m-t-xxs { + margin-top: 1px; +} + +.m-t-xs { + margin-top: 5px; +} + +.m-t-sm { + margin-top: 10px; +} + +.m-t { + margin-top: 15px; +} + +.m-t-md { + margin-top: 20px; +} + +.m-t-lg { + margin-top: 30px; +} + +.m-t-xl { + margin-top: 40px; +} + +.m-t-n-xxs { + margin-top: -1px; +} + +.m-t-n-xs { + margin-top: -5px; +} + +.m-t-n-sm { + margin-top: -10px; +} + +.m-t-n { + margin-top: -15px; +} + +.m-t-n-md { + margin-top: -20px; +} + +.m-t-n-lg { + margin-top: -30px; +} + +.m-t-n-xl { + margin-top: -40px; +} + +.m-r-none { + margin-right: 0; +} + +.m-r-xxs { + margin-right: 1px; +} + +.m-r-xs { + margin-right: 5px; +} + +.m-r-sm { + margin-right: 10px; +} + +.m-r { + margin-right: 15px; +} + +.m-r-md { + margin-right: 20px; +} + +.m-r-lg { + margin-right: 30px; +} + +.m-r-xl { + margin-right: 40px; +} + +.m-r-n-xxs { + margin-right: -1px; +} + +.m-r-n-xs { + margin-right: -5px; +} + +.m-r-n-sm { + margin-right: -10px; +} + +.m-r-n { + margin-right: -15px; +} + +.m-r-n-md { + margin-right: -20px; +} + +.m-r-n-lg { + margin-right: -30px; +} + +.m-r-n-xl { + margin-right: -40px; +} + +.m-b-none { + margin-bottom: 0; +} + +.m-b-xxs { + margin-bottom: 1px; +} + +.m-b-xs { + margin-bottom: 5px; +} + +.m-b-sm { + margin-bottom: 10px; +} + +.m-b { + margin-bottom: 15px; +} + +.m-b-md { + margin-bottom: 20px; +} + +.m-b-lg { + margin-bottom: 30px; +} + +.m-b-xl { + margin-bottom: 40px; +} + +.m-b-n-xxs { + margin-bottom: -1px; +} + +.m-b-n-xs { + margin-bottom: -5px; +} + +.m-b-n-sm { + margin-bottom: -10px; +} + +.m-b-n { + margin-bottom: -15px; +} + +.m-b-n-md { + margin-bottom: -20px; +} + +.m-b-n-lg { + margin-bottom: -30px; +} + +.m-b-n-xl { + margin-bottom: -40px; +} + +.space-15 { + margin: 15px 0; +} + +.space-20 { + margin: 20px 0; +} + +.space-25 { + margin: 25px 0; +} + +.space-30 { + margin: 30px 0; +} + +body.modal-open { + padding-right: inherit !important; +} + +/* SEARCH PAGE */ +.search-form { + margin-top: 10px; +} + +.search-result h3 { + margin-bottom: 0; + color: #1E0FBE; +} + +.search-result .search-link { + color: #006621; +} + +.search-result p { + font-size: 12px; + margin-top: 5px; +} + +/* CONTACTS */ +.contact-box { + background-color: #ffffff; + border: 1px solid #e7eaec; + padding: 20px; + margin-bottom: 20px; +} + +.contact-box a { + color: inherit; +} + +/* INVOICE */ +.invoice-table tbody > tr > td:last-child, .invoice-table tbody > tr > td:nth-child(4), .invoice-table tbody > tr > td:nth-child(3), .invoice-table tbody > tr > td:nth-child(2) { + text-align: right; +} + +.invoice-table thead > tr > th:last-child, .invoice-table thead > tr > th:nth-child(4), .invoice-table thead > tr > th:nth-child(3), .invoice-table thead > tr > th:nth-child(2) { + text-align: right; +} + +.invoice-total > tbody > tr > td:first-child { + text-align: right; +} + +.invoice-total > tbody > tr > td { + border: 0 none; +} + +.invoice-total > tbody > tr > td:last-child { + border-bottom: 1px solid #DDDDDD; + text-align: right; + width: 15%; +} + +/* ERROR & LOGIN & LOCKSCREEN*/ +.middle-box { + max-width: 400px; + z-index: 100; + margin: 0 auto; + padding-top: 40px; +} + +.lockscreen.middle-box { + width: 200px; + padding-top: 110px; +} + +.loginscreen.middle-box { + width: 300px; +} + +.loginColumns { + max-width: 800px; + margin: 0 auto; + padding: 100px 20px 20px 20px; +} + +.passwordBox { + max-width: 460px; + margin: 0 auto; + padding: 100px 20px 20px 20px; +} + +.logo-name { + color: #e6e6e6; + font-size: 180px; + font-weight: 800; + letter-spacing: -10px; + margin-bottom: 0px; +} + +.middle-box h1 { + font-size: 170px; +} + +.wrapper .middle-box { + margin-top: 140px; +} + +.lock-word { + z-index: 10; + position: absolute; + top: 110px; + left: 50%; + margin-left: -470px; +} + +.lock-word span { + font-size: 100px; + font-weight: 600; + color: #e9e9e9; + display: inline-block; +} + +.lock-word .first-word { + margin-right: 160px; +} + +/* DASBOARD */ +.dashboard-header { + border-top: 0; + padding: 20px 20px 20px 20px; +} + +.dashboard-header h2 { + margin-top: 10px; + font-size: 26px; +} + +.fist-item { + border-top: none !important; +} + +.statistic-box { + margin-top: 40px; +} + +.dashboard-header .list-group-item span.label { + margin-right: 10px; +} + +.list-group.clear-list .list-group-item { + border-top: 1px solid #e7eaec; + border-bottom: 0; + border-right: 0; + border-left: 0; + padding: 10px 0; +} + +ul.clear-list:first-child { + border-top: none !important; +} + +/* Intimeline */ +.timeline-item .date i { + position: absolute; + top: 0; + right: 0; + padding: 5px; + width: 30px; + text-align: center; + border-top: 1px solid #e7eaec; + border-bottom: 1px solid #e7eaec; + border-left: 1px solid #e7eaec; + background: #f8f8f8; +} + +.timeline-item .date { + text-align: right; + width: 110px; + position: relative; + padding-top: 30px; +} + +.timeline-item .content { + border-left: 1px solid #e7eaec; + border-top: 1px solid #e7eaec; + padding-top: 10px; + min-height: 100px; +} + +.timeline-item .content:hover { + background: #f6f6f6; +} + +/* PIN BOARD */ +ul.notes li, ul.tag-list li { + list-style: none; +} + +ul.notes li h4 { + margin-top: 20px; + font-size: 16px; +} + +ul.notes li div { + text-decoration: none; + color: #000; + background: #ffc; + display: block; + height: 140px; + width: 140px; + padding: 1em; + position: relative; +} + +ul.notes li div small { + position: absolute; + top: 5px; + right: 5px; + font-size: 10px; +} + +ul.notes li div a { + position: absolute; + right: 10px; + bottom: 10px; + color: inherit; +} + +ul.notes li { + margin: 10px 40px 50px 0px; + float: left; +} + +ul.notes li div p { + font-size: 12px; +} + +ul.notes li div { + text-decoration: none; + color: #000; + background: #ffc; + display: block; + height: 140px; + width: 140px; + padding: 1em; + /* Firefox */ + /* Safari+Chrome */ + /* Opera */ + box-shadow: 5px 5px 2px rgba(33, 33, 33, 0.7); +} + +ul.notes li div { + -webkit-transform: rotate(-6deg); + -o-transform: rotate(-6deg); + -moz-transform: rotate(-6deg); +} + +ul.notes li:nth-child(even) div { + -o-transform: rotate(4deg); + -webkit-transform: rotate(4deg); + -moz-transform: rotate(4deg); + position: relative; + top: 5px; +} + +ul.notes li:nth-child(3n) div { + -o-transform: rotate(-3deg); + -webkit-transform: rotate(-3deg); + -moz-transform: rotate(-3deg); + position: relative; + top: -5px; +} + +ul.notes li:nth-child(5n) div { + -o-transform: rotate(5deg); + -webkit-transform: rotate(5deg); + -moz-transform: rotate(5deg); + position: relative; + top: -10px; +} + +ul.notes li div:hover, ul.notes li div:focus { + -webkit-transform: scale(1.1); + -moz-transform: scale(1.1); + -o-transform: scale(1.1); + position: relative; + z-index: 5; +} + +ul.notes li div { + text-decoration: none; + color: #000; + background: #ffc; + display: block; + height: 210px; + width: 210px; + padding: 1em; + box-shadow: 5px 5px 7px rgba(33, 33, 33, 0.7); + -webkit-transition: -webkit-transform 0.15s linear; +} + +/* FILE MANAGER */ +.file-box { + float: left; + width: 220px; +} + +.file-manager h5 { + text-transform: uppercase; +} + +.file-manager { + list-style: none outside none; + margin: 0; + padding: 0; +} + +.folder-list li a { + color: #666666; + display: block; + padding: 5px 0; +} + +.folder-list li { + border-bottom: 1px solid #e7eaec; + display: block; +} + +.folder-list li i { + margin-right: 8px; + color: #3d4d5d; +} + +.category-list li a { + color: #666666; + display: block; + padding: 5px 0; +} + +.category-list li { + display: block; +} + +.category-list li i { + margin-right: 8px; + color: #3d4d5d; +} + +.category-list li a .text-navy { + color: #1ab394; +} + +.category-list li a .text-primary { + color: #1c84c6; +} + +.category-list li a .text-info { + color: #23c6c8; +} + +.category-list li a .text-danger { + color: #EF5352; +} + +.category-list li a .text-warning { + color: #F8AC59; +} + +.file-manager h5.tag-title { + margin-top: 20px; +} + +.tag-list li { + float: left; +} + +.tag-list li a { + font-size: 10px; + background-color: #f3f3f4; + padding: 5px 12px; + color: inherit; + border-radius: 2px; + border: 1px solid #e7eaec; + margin-right: 5px; + margin-top: 5px; + display: block; +} + +.file { + border: 1px solid #e7eaec; + padding: 0; + background-color: #ffffff; + position: relative; + margin-bottom: 20px; + margin-right: 20px; +} + +.file-manager .hr-line-dashed { + margin: 15px 0; +} + +.file .icon, .file .image { + height: 100px; + overflow: hidden; +} + +.file .icon { + padding: 15px 10px; + text-align: center; +} + +.file-control { + color: inherit; + font-size: 14px; + margin-right: 10px; +} + +.file-control.active { + text-decoration: underline; +} + +.file .icon i { + font-size: 70px; + color: #dadada; +} + +.file .file-name { + padding: 10px; + background-color: #f8f8f8; + border-top: 1px solid #e7eaec; +} + +.file-name small { + color: #676a6c; +} + +.corner { + position: absolute; + display: inline-block; + width: 0; + height: 0; + line-height: 0; + border: 0.6em solid transparent; + border-right: 0.6em solid #f1f1f1; + border-bottom: 0.6em solid #f1f1f1; + right: 0em; + bottom: 0em; +} + +a.compose-mail { + padding: 8px 10px; +} + +.mail-search { + max-width: 300px; +} + +/* PROFILE */ +.profile-content { + border-top: none !important; +} + +.feed-activity-list .feed-element { + border-bottom: 1px solid #e7eaec; +} + +.feed-element:first-child { + margin-top: 0; +} + +.feed-element { + padding-bottom: 15px; +} + +.feed-element, .feed-element .media { + margin-top: 15px; +} + +.feed-element, .media-body { + overflow: hidden; +} + +.feed-element > .pull-left { + margin-right: 10px; +} + +.feed-element img.img-circle, .dropdown-messages-box img.img-circle { + width: 38px; + height: 38px; +} + +.feed-element .well { + border: 1px solid #e7eaec; + box-shadow: none; + margin-top: 10px; + margin-bottom: 5px; + padding: 10px 20px; + font-size: 11px; + line-height: 16px; +} + +.feed-element .actions { + margin-top: 10px; +} + +.feed-element .photos { + margin: 10px 0; +} + +.feed-photo { + max-height: 180px; + border-radius: 4px; + overflow: hidden; + margin-right: 10px; + margin-bottom: 10px; +} + +/* MAILBOX */ +.mail-box { + background-color: #ffffff; + border: 1px solid #e7eaec; + border-top: 0; + padding: 0px; + margin-bottom: 20px; +} + +.mail-box-header { + background-color: #ffffff; + border: 1px solid #e7eaec; + border-bottom: 0; + padding: 30px 20px 20px 20px; +} + +.mail-box-header h2 { + margin-top: 0px; +} + +.mailbox-content .tag-list li a { + background: #ffffff; +} + +.mail-body { + border-top: 1px solid #e7eaec; + padding: 20px; +} + +.mail-text { + border-top: 1px solid #e7eaec; +} + +.mail-text .note-toolbar { + padding: 10px 15px; +} + +.mail-body .form-group { + margin-bottom: 5px; +} + +.mail-text .note-editor .note-toolbar { + background-color: #F9F8F8; +} + +.mail-attachment { + border-top: 1px solid #e7eaec; + padding: 20px; + font-size: 12px; +} + +.mailbox-content { + background: none; + border: none; + padding: 10px; +} + +.mail-ontact { + width: 23%; +} + +/* PROJECTS */ +.project-people, .project-actions { + text-align: right; + vertical-align: middle; +} + +dd.project-people { + text-align: left; + margin-top: 5px; +} + +.project-people img { + width: 32px; + height: 32px; +} + +.project-title a { + font-size: 14px; + color: #676a6c; + font-weight: 600; +} + +.project-list table tr td { + border-top: none; + border-bottom: 1px solid #e7eaec; + padding: 15px 10px; + vertical-align: middle; +} + +.project-manager .tag-list li a { + font-size: 10px; + background-color: white; + padding: 5px 12px; + color: inherit; + border-radius: 2px; + border: 1px solid #e7eaec; + margin-right: 5px; + margin-top: 5px; + display: block; +} + +.project-files li a { + font-size: 11px; + color: #676a6c; + margin-left: 10px; + line-height: 22px; +} + +/* FAQ */ +.faq-item { + padding: 20px; + margin-bottom: 2px; + background: #fff; +} + +.faq-question { + font-size: 18px; + font-weight: 600; + color: #1ab394; + display: block; +} + +.faq-question:hover { + color: #179d82; +} + +.faq-answer { + margin-top: 10px; + background: #f3f3f4; + border: 1px solid #e7eaec; + border-radius: 3px; + padding: 15px; +} + +.faq-item .tag-item { + background: #f3f3f4; + padding: 2px 6px; + font-size: 10px; + text-transform: uppercase; +} + +/* Chat view */ +.message-input { + height: 90px !important; +} + +.chat-avatar { + white: 36px; + height: 36px; + float: left; + margin-right: 10px; +} + +.chat-user-name { + padding: 10px; +} + +.chat-user { + padding: 8px 10px; + border-bottom: 1px solid #e7eaec; +} + +.chat-user a { + color: inherit; +} + +.chat-view { + z-index: 20012; +} + +.chat-users, .chat-statistic { + margin-left: -30px; +} + +@media ( max-width: 992px) { + .chat-users, .chat-statistic { + margin-left: 0px; + } +} + +.chat-view .ibox-content { + padding: 0; +} + +.chat-message { + padding: 10px 20px; +} + +.message-avatar { + height: 48px; + width: 48px; + border: 1px solid #e7eaec; + border-radius: 4px; + margin-top: 1px; +} + +.chat-discussion .chat-message:nth-child(2n+1) .message-avatar { + float: left; + margin-right: 10px; +} + +.chat-discussion .chat-message:nth-child(2n) .message-avatar { + float: right; + margin-left: 10px; +} + +.message { + background-color: #fff; + border: 1px solid #e7eaec; + text-align: left; + display: block; + padding: 10px 20px; + position: relative; + border-radius: 4px; +} + +.chat-discussion .chat-message:nth-child(2n+1) .message-date { + float: right; +} + +.chat-discussion .chat-message:nth-child(2n) .message-date { + float: left; +} + +.chat-discussion .chat-message:nth-child(2n+1) .message { + text-align: left; + margin-left: 55px; +} + +.chat-discussion .chat-message:nth-child(2n) .message { + text-align: right; + margin-right: 55px; +} + +.message-date { + font-size: 10px; + color: #888888; +} + +.message-content { + display: block; +} + +.chat-discussion { + background: #eee; + padding: 15px; + height: 400px; + overflow-y: auto; +} + +.chat-users { + overflow-y: auto; + height: 400px; +} + +.chat-message-form .form-group { + margin-bottom: 0; +} + +/* jsTree */ +.jstree-open > .jstree-anchor > .fa-folder:before { + content: "\f07c"; +} + +.jstree-default .jstree-icon.none { + width: 0; +} + +/* CLIENTS */ +.clients-list { + margin-top: 20px; +} + +.clients-list .tab-pane { + position: relative; + height: 600px; +} + +.client-detail { + position: relative; + height: 620px; +} + +.clients-list table tr td { + height: 46px; + vertical-align: middle; + border: none; +} + +.client-link { + font-weight: 600; + color: inherit; +} + +.client-link:hover { + color: inherit; +} + +.client-avatar { + width: 42px; +} + +.client-avatar img { + width: 28px; + height: 28px; + border-radius: 50%; +} + +.contact-type { + width: 20px; + color: #c1c3c4; +} + +.client-status { + text-align: left; +} + +.client-detail .vertical-timeline-content p { + margin: 0; +} + +.client-detail .vertical-timeline-icon.gray-bg { + color: #a7aaab; +} + +.clients-list .nav-tabs > li.active > a, .clients-list .nav-tabs > li.active > a:hover, .clients-list .nav-tabs > li.active > a:focus { + border-bottom: 1px solid #fff; +} + +/* BLOG ARTICLE */ +.blog h2 { + font-weight: 700; +} + +.blog h5 { + margin: 0 0 5px 0; +} + +.blog .btn { + margin: 0 0 5px 0; +} + +.article h1 { + font-size: 48px; + font-weight: 700; + color: #2F4050; +} + +.article p { + font-size: 15px; + line-height: 26px; +} + +.article-title { + text-align: center; + margin: 60px 0 40px 0; +} + +.article .ibox-content { + padding: 40px; +} + +/* ISSUE TRACKER */ +.issue-tracker .btn-link { + color: #1ab394; +} + +table.issue-tracker tbody tr td { + vertical-align: middle; + height: 50px; +} + +.issue-info { + width: 50%; +} + +.issue-info a { + font-weight: 600; + color: #676a6c; +} + +.issue-info small { + display: block; +} + +/* TEAMS */ +.team-members { + margin: 10px 0; +} + +.team-members img.img-circle { + width: 42px; + height: 42px; + margin-bottom: 5px; +} + +/* AGILE BOARD */ +.sortable-list { + padding: 10px 0; +} + +.agile-list { + list-style: none; + margin: 0; +} + +.agile-list li { + background: #FAFAFB; + border: 1px solid #e7eaec; + margin: 0px 0 10px 0; + padding: 10px; + border-radius: 2px; +} + +.agile-list li:hover { + cursor: pointer; + background: #fff; +} + +.agile-list li.warning-element { + border-left: 3px solid #f8ac59; +} + +.agile-list li.danger-element { + border-left: 3px solid #ed5565; +} + +.agile-list li.info-element { + border-left: 3px solid #1c84c6; +} + +.agile-list li.success-element { + border-left: 3px solid #1ab394; +} + +.agile-detail { + margin-top: 5px; + font-size: 12px; +} + +/* DIFF */ +ins { + background-color: #c6ffc6; + text-decoration: none; +} + +del { + background-color: #ffc6c6; +} + +#small-chat { + position: fixed; + bottom: 50px; + right: 26px; + z-index: 100; +} + +#small-chat .badge { + position: absolute; + top: -3px; + right: -4px; +} + +.open-small-chat { + height: 38px; + width: 38px; + display: block; + background: #1ab394; + padding: 9px 8px; + text-align: center; + color: #fff; + border-radius: 50%; +} + +.open-small-chat:hover { + color: white; + background: #1ab394; +} + +.small-chat-box { + display: none; + position: fixed; + bottom: 50px; + right: 80px; + background: #fff; + border: 1px solid #e7eaec; + width: 230px; + height: 320px; + border-radius: 4px; +} + +.small-chat-box.ng-small-chat { + display: block; +} + +.body-small .small-chat-box { + bottom: 70px; + right: 20px; +} + +.small-chat-box.active { + display: block; +} + +.small-chat-box .heading { + background: #2f4050; + padding: 8px 15px; + font-weight: bold; + color: #fff; +} + +.small-chat-box .chat-date { + opacity: 0.6; + font-size: 10px; + font-weight: normal; +} + +.small-chat-box .content { + padding: 15px 15px; +} + +.small-chat-box .content .author-name { + font-weight: bold; + margin-bottom: 3px; + font-size: 11px; +} + +.small-chat-box .content > div { + padding-bottom: 20px; +} + +.small-chat-box .content .chat-message { + padding: 5px 10px; + border-radius: 6px; + font-size: 11px; + line-height: 14px; + max-width: 80%; + background: #f3f3f4; + margin-bottom: 10px; +} + +.small-chat-box .content .chat-message.active { + background: #1ab394; + color: #fff; +} + +.small-chat-box .content .left { + text-align: left; + clear: both; +} + +.small-chat-box .content .left .chat-message { + float: left; +} + +.small-chat-box .content .right { + text-align: right; + clear: both; +} + +.small-chat-box .content .right .chat-message { + float: right; +} + +.small-chat-box .form-chat { + padding: 10px 10px; +} + +/* + * Usage: + * + *
    + * + */ +.sk-spinner-rotating-plane.sk-spinner { + width: 30px; + height: 30px; + background-color: #1ab394; + margin: 0 auto; + -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out; + animation: sk-rotatePlane 1.2s infinite ease-in-out; +} + +@-webkit-keyframes sk-rotatePlane { + 0% { + -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg); + transform: perspective(120px) rotateX(0deg) rotateY(0deg); + } + + 50% { + -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); + transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); + } + + 100% { + -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-180deg); + transform: perspective(120px) rotateX(-180deg) rotateY(-180deg); + } +} + +@keyframes sk-rotatePlane { + 0% { + -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg); + transform: perspective(120px) rotateX(0deg) rotateY(0deg); + } + + 50% { + -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); + transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); + } + + 100% { + -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); + transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); + } +} + +/* + * Usage: + * + *
    + *
    + *
    + *
    + * + */ +.sk-spinner-double-bounce.sk-spinner { + width: 40px; + height: 40px; + position: relative; + margin: 0 auto; +} + +.sk-spinner-double-bounce .sk-double-bounce1, .sk-spinner-double-bounce .sk-double-bounce2 { + width: 100%; + height: 100%; + border-radius: 50%; + background-color: #1ab394; + opacity: 0.6; + position: absolute; + top: 0; + left: 0; + -webkit-animation: sk-doubleBounce 2s infinite ease-in-out; + animation: sk-doubleBounce 2s infinite ease-in-out; +} + +.sk-spinner-double-bounce .sk-double-bounce2 { + -webkit-animation-delay: -1s; + animation-delay: -1s; +} + +@-webkit-keyframes sk-doubleBounce { + 0%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 50% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes sk-doubleBounce { + 0%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 50% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +/* + * Usage: + * + *
    + *
    + *
    + *
    + *
    + *
    + *
    + * + */ +.sk-spinner-wave.sk-spinner { + margin: 0 auto; + width: 50px; + height: 30px; + text-align: center; + font-size: 10px; +} + +.sk-spinner-wave div { + background-color: #1ab394; + height: 100%; + width: 6px; + display: inline-block; + -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out; + animation: sk-waveStretchDelay 1.2s infinite ease-in-out; +} + +.sk-spinner-wave .sk-rect2 { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} + +.sk-spinner-wave .sk-rect3 { + -webkit-animation-delay: -1s; + animation-delay: -1s; +} + +.sk-spinner-wave .sk-rect4 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} + +.sk-spinner-wave .sk-rect5 { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; +} + +@-webkit-keyframes sk-waveStretchDelay { + 0%, 40%, 100% { + -webkit-transform: scaleY(0.4); + transform: scaleY(0.4); + } + + 20% { + -webkit-transform: scaleY(1); + transform: scaleY(1); + } +} + +@keyframes sk-waveStretchDelay { + 0%, 40%, 100% { + -webkit-transform: scaleY(0.4); + transform: scaleY(0.4); + } + + 20% { + -webkit-transform: scaleY(1); + transform: scaleY(1); + } +} + +/* + * Usage: + * + *
    + *
    + *
    + *
    + * + */ +.sk-spinner-wandering-cubes.sk-spinner { + margin: 0 auto; + width: 32px; + height: 32px; + position: relative; +} + +.sk-spinner-wandering-cubes .sk-cube1, .sk-spinner-wandering-cubes .sk-cube2 { + background-color: #1ab394; + width: 10px; + height: 10px; + position: absolute; + top: 0; + left: 0; + -webkit-animation: sk-wanderingCubeMove 1.8s infinite ease-in-out; + animation: sk-wanderingCubeMove 1.8s infinite ease-in-out; +} + +.sk-spinner-wandering-cubes .sk-cube2 { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} + +@-webkit-keyframes sk-wanderingCubeMove { + 25% { + -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5); + transform: translateX(42px) rotate(-90deg) scale(0.5); + } + + 50% { + /* Hack to make FF rotate in the right direction */ + -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg); + transform: translateX(42px) translateY(42px) rotate(-179deg); + } + + 50.1% { + -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg); + transform: translateX(42px) translateY(42px) rotate(-180deg); + } + + 75% { + -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0 .5); + transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0 .5); + } + + 100% { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); + } +} + +@keyframes sk-wanderingCubeMove { + 25% { + -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5); + transform: translateX(42px) rotate(-90deg) scale(0.5); + } + + 50% { + /* Hack to make FF rotate in the right direction */ + -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg); + transform: translateX(42px) translateY(42px) rotate(-179deg); + } + + 50.1% { + -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg); + transform: translateX(42px) translateY(42px) rotate(-180deg); + } + + 75% { + -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0 .5); + transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0 .5); + } + + 100% { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); + } +} + +/* + * Usage: + * + *
    + * + */ +.sk-spinner-pulse.sk-spinner { + width: 40px; + height: 40px; + margin: 0 auto; + background-color: #1ab394; + border-radius: 100%; + -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out; + animation: sk-pulseScaleOut 1s infinite ease-in-out; +} + +@-webkit-keyframes sk-pulseScaleOut { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; + } +} + +@keyframes sk-pulseScaleOut { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; + } +} + +/* + * Usage: + * + *
    + *
    + *
    + *
    + * + */ +.sk-spinner-chasing-dots.sk-spinner { + margin: 0 auto; + width: 40px; + height: 40px; + position: relative; + text-align: center; + -webkit-animation: sk-chasingDotsRotate 2s infinite linear; + animation: sk-chasingDotsRotate 2s infinite linear; +} + +.sk-spinner-chasing-dots .sk-dot1, .sk-spinner-chasing-dots .sk-dot2 { + width: 60%; + height: 60%; + display: inline-block; + position: absolute; + top: 0; + background-color: #1ab394; + border-radius: 100%; + -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out; + animation: sk-chasingDotsBounce 2s infinite ease-in-out; +} + +.sk-spinner-chasing-dots .sk-dot2 { + top: auto; + bottom: 0px; + -webkit-animation-delay: -1s; + animation-delay: -1s; +} + +@-webkit-keyframes sk-chasingDotsRotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes sk-chasingDotsRotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@-webkit-keyframes sk-chasingDotsBounce { + 0%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 50% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes sk-chasingDotsBounce { + 0%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 50% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +/* + * Usage: + * + *
    + *
    + *
    + *
    + *
    + * + */ +.sk-spinner-three-bounce.sk-spinner { + margin: 0 auto; + width: 70px; + text-align: center; +} + +.sk-spinner-three-bounce div { + width: 18px; + height: 18px; + background-color: #1ab394; + border-radius: 100%; + display: inline-block; + -webkit-animation: sk-threeBounceDelay 1.4s infinite ease-in-out; + animation: sk-threeBounceDelay 1.4s infinite ease-in-out; + /* Prevent first frame from flickering when animation starts */ + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.sk-spinner-three-bounce .sk-bounce1 { + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; +} + +.sk-spinner-three-bounce .sk-bounce2 { + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; +} + +@-webkit-keyframes sk-threeBounceDelay { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 40% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes sk-threeBounceDelay { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 40% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +/* + * Usage: + * + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + * + */ +.sk-spinner-circle.sk-spinner { + margin: 0 auto; + width: 22px; + height: 22px; + position: relative; +} + +.sk-spinner-circle .sk-circle { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; +} + +.sk-spinner-circle .sk-circle:before { + content: ''; + display: block; + margin: 0 auto; + width: 20%; + height: 20%; + background-color: #1ab394; + border-radius: 100%; + -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out; + animation: sk-circleBounceDelay 1.2s infinite ease-in-out; + /* Prevent first frame from flickering when animation starts */ + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.sk-spinner-circle .sk-circle2 { + -webkit-transform: rotate(30deg); + -ms-transform: rotate(30deg); + transform: rotate(30deg); +} + +.sk-spinner-circle .sk-circle3 { + -webkit-transform: rotate(60deg); + -ms-transform: rotate(60deg); + transform: rotate(60deg); +} + +.sk-spinner-circle .sk-circle4 { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.sk-spinner-circle .sk-circle5 { + -webkit-transform: rotate(120deg); + -ms-transform: rotate(120deg); + transform: rotate(120deg); +} + +.sk-spinner-circle .sk-circle6 { + -webkit-transform: rotate(150deg); + -ms-transform: rotate(150deg); + transform: rotate(150deg); +} + +.sk-spinner-circle .sk-circle7 { + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} + +.sk-spinner-circle .sk-circle8 { + -webkit-transform: rotate(210deg); + -ms-transform: rotate(210deg); + transform: rotate(210deg); +} + +.sk-spinner-circle .sk-circle9 { + -webkit-transform: rotate(240deg); + -ms-transform: rotate(240deg); + transform: rotate(240deg); +} + +.sk-spinner-circle .sk-circle10 { + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} + +.sk-spinner-circle .sk-circle11 { + -webkit-transform: rotate(300deg); + -ms-transform: rotate(300deg); + transform: rotate(300deg); +} + +.sk-spinner-circle .sk-circle12 { + -webkit-transform: rotate(330deg); + -ms-transform: rotate(330deg); + transform: rotate(330deg); +} + +.sk-spinner-circle .sk-circle2:before { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} + +.sk-spinner-circle .sk-circle3:before { + -webkit-animation-delay: -1s; + animation-delay: -1s; +} + +.sk-spinner-circle .sk-circle4:before { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} + +.sk-spinner-circle .sk-circle5:before { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; +} + +.sk-spinner-circle .sk-circle6:before { + -webkit-animation-delay: -0.7s; + animation-delay: -0.7s; +} + +.sk-spinner-circle .sk-circle7:before { + -webkit-animation-delay: -0.6s; + animation-delay: -0.6s; +} + +.sk-spinner-circle .sk-circle8:before { + -webkit-animation-delay: -0.5s; + animation-delay: -0.5s; +} + +.sk-spinner-circle .sk-circle9:before { + -webkit-animation-delay: -0.4s; + animation-delay: -0.4s; +} + +.sk-spinner-circle .sk-circle10:before { + -webkit-animation-delay: -0.3s; + animation-delay: -0.3s; +} + +.sk-spinner-circle .sk-circle11:before { + -webkit-animation-delay: -0.2s; + animation-delay: -0.2s; +} + +.sk-spinner-circle .sk-circle12:before { + -webkit-animation-delay: -0.1s; + animation-delay: -0.1s; +} + +@-webkit-keyframes sk-circleBounceDelay { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 40% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes sk-circleBounceDelay { + 0%, 80%, 100% { + -webkit-transform: scale(0); + transform: scale(0); + } + + 40% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +/* + * Usage: + * + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + * + */ +.sk-spinner-cube-grid { + /* + * Spinner positions + * 1 2 3 + * 4 5 6 + * 7 8 9 + */ +} + +.sk-spinner-cube-grid.sk-spinner { + width: 30px; + height: 30px; + margin: 0 auto; +} + +.sk-spinner-cube-grid .sk-cube { + width: 33%; + height: 33%; + background-color: #1ab394; + float: left; + -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; + animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; +} + +.sk-spinner-cube-grid .sk-cube:nth-child(1) { + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; +} + +.sk-spinner-cube-grid .sk-cube:nth-child(2) { + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; +} + +.sk-spinner-cube-grid .sk-cube:nth-child(3) { + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; +} + +.sk-spinner-cube-grid .sk-cube:nth-child(4) { + -webkit-animation-delay: 0.1s; + animation-delay: 0.1s; +} + +.sk-spinner-cube-grid .sk-cube:nth-child(5) { + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; +} + +.sk-spinner-cube-grid .sk-cube:nth-child(6) { + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; +} + +.sk-spinner-cube-grid .sk-cube:nth-child(7) { + -webkit-animation-delay: 0s; + animation-delay: 0s; +} + +.sk-spinner-cube-grid .sk-cube:nth-child(8) { + -webkit-animation-delay: 0.1s; + animation-delay: 0.1s; +} + +.sk-spinner-cube-grid .sk-cube:nth-child(9) { + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; +} + +@-webkit-keyframes sk-cubeGridScaleDelay { + 0%, 70%, 100% { + -webkit-transform: scale3D(1, 1, 1); + transform: scale3D(1, 1, 1); + } + + 35% { + -webkit-transform: scale3D(0, 0, 1); + transform: scale3D(0, 0, 1); + } +} + +@keyframes sk-cubeGridScaleDelay { + 0%, 70%, 100% { + -webkit-transform: scale3D(1, 1, 1); + transform: scale3D(1, 1, 1); + } + + 35% { + -webkit-transform: scale3D(0, 0, 1); + transform: scale3D(0, 0, 1); + } +} + +/* + * Usage: + * + *
    + * + *
    + * + */ +.sk-spinner-wordpress.sk-spinner { + background-color: #1ab394; + width: 30px; + height: 30px; + border-radius: 30px; + position: relative; + margin: 0 auto; + -webkit-animation: sk-innerCircle 1s linear infinite; + animation: sk-innerCircle 1s linear infinite; +} + +.sk-spinner-wordpress .sk-inner-circle { + display: block; + background-color: #fff; + width: 8px; + height: 8px; + position: absolute; + border-radius: 8px; + top: 5px; + left: 5px; +} + +@-webkit-keyframes sk-innerCircle { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes sk-innerCircle { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +/* + * Usage: + * + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + *
    + * + */ +.sk-spinner-fading-circle.sk-spinner { + margin: 0 auto; + width: 22px; + height: 22px; + position: relative; +} + +.sk-spinner-fading-circle .sk-circle { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; +} + +.sk-spinner-fading-circle .sk-circle:before { + content: ''; + display: block; + margin: 0 auto; + width: 18%; + height: 18%; + background-color: #1ab394; + border-radius: 100%; + -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out; + animation: sk-circleFadeDelay 1.2s infinite ease-in-out; + /* Prevent first frame from flickering when animation starts */ + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.sk-spinner-fading-circle .sk-circle2 { + -webkit-transform: rotate(30deg); + -ms-transform: rotate(30deg); + transform: rotate(30deg); +} + +.sk-spinner-fading-circle .sk-circle3 { + -webkit-transform: rotate(60deg); + -ms-transform: rotate(60deg); + transform: rotate(60deg); +} + +.sk-spinner-fading-circle .sk-circle4 { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.sk-spinner-fading-circle .sk-circle5 { + -webkit-transform: rotate(120deg); + -ms-transform: rotate(120deg); + transform: rotate(120deg); +} + +.sk-spinner-fading-circle .sk-circle6 { + -webkit-transform: rotate(150deg); + -ms-transform: rotate(150deg); + transform: rotate(150deg); +} + +.sk-spinner-fading-circle .sk-circle7 { + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} + +.sk-spinner-fading-circle .sk-circle8 { + -webkit-transform: rotate(210deg); + -ms-transform: rotate(210deg); + transform: rotate(210deg); +} + +.sk-spinner-fading-circle .sk-circle9 { + -webkit-transform: rotate(240deg); + -ms-transform: rotate(240deg); + transform: rotate(240deg); +} + +.sk-spinner-fading-circle .sk-circle10 { + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} + +.sk-spinner-fading-circle .sk-circle11 { + -webkit-transform: rotate(300deg); + -ms-transform: rotate(300deg); + transform: rotate(300deg); +} + +.sk-spinner-fading-circle .sk-circle12 { + -webkit-transform: rotate(330deg); + -ms-transform: rotate(330deg); + transform: rotate(330deg); +} + +.sk-spinner-fading-circle .sk-circle2:before { + -webkit-animation-delay: -1.1s; + animation-delay: -1.1s; +} + +.sk-spinner-fading-circle .sk-circle3:before { + -webkit-animation-delay: -1s; + animation-delay: -1s; +} + +.sk-spinner-fading-circle .sk-circle4:before { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} + +.sk-spinner-fading-circle .sk-circle5:before { + -webkit-animation-delay: -0.8s; + animation-delay: -0.8s; +} + +.sk-spinner-fading-circle .sk-circle6:before { + -webkit-animation-delay: -0.7s; + animation-delay: -0.7s; +} + +.sk-spinner-fading-circle .sk-circle7:before { + -webkit-animation-delay: -0.6s; + animation-delay: -0.6s; +} + +.sk-spinner-fading-circle .sk-circle8:before { + -webkit-animation-delay: -0.5s; + animation-delay: -0.5s; +} + +.sk-spinner-fading-circle .sk-circle9:before { + -webkit-animation-delay: -0.4s; + animation-delay: -0.4s; +} + +.sk-spinner-fading-circle .sk-circle10:before { + -webkit-animation-delay: -0.3s; + animation-delay: -0.3s; +} + +.sk-spinner-fading-circle .sk-circle11:before { + -webkit-animation-delay: -0.2s; + animation-delay: -0.2s; +} + +.sk-spinner-fading-circle .sk-circle12:before { + -webkit-animation-delay: -0.1s; + animation-delay: -0.1s; +} + +@-webkit-keyframes sk-circleFadeDelay { + 0%, 39%, 100% { + opacity: 0; + } + + 40% { + opacity: 1; + } +} + +@keyframes sk-circleFadeDelay { + 0%, 39%, 100% { + opacity: 0; + } + + 40% { + opacity: 1; + } +} + +body.rtls { + /* Theme config */ +} + +body.rtls #page-wrapper { + margin: 0 220px 0 0; +} + +body.rtls .nav-second-level li a { + padding: 7px 35px 7px 10px; +} + +body.rtls .ibox-title h5 { + float: right; +} + +body.rtls .pull-right { + float: left !important; +} + +body.rtls .pull-left { + float: right !important; +} + +body.rtls .ibox-tools { + float: left; +} + +body.rtls .stat-percent { + float: left; +} + +body.rtls .navbar-right { + float: left !important; +} + +body.rtls .navbar-top-links li:last-child { + margin-left: 40px; + margin-right: 0; +} + +body.rtls .minimalize-styl-2 { + float: right; + margin: 14px 20px 5px 5px; +} + +body.rtls .feed-element > .pull-left { + margin-left: 10px; + margin-right: 0; +} + +body.rtls .timeline-item .date { + text-align: left; +} + +body.rtls .timeline-item .date i { + left: 0; + right: auto; +} + +body.rtls .timeline-item .content { + border-right: 1px solid #e7eaec; + border-left: none; +} + +body.rtls .toast-close-button { + float: left; +} + +body.rtls #toast-container > .toast:before { + margin: auto -1.5em auto 0.5em; +} + +body.rtls #toast-container > div { + padding: 15px 50px 15px 15px; +} + +body.rtls .center-orientation .vertical-timeline-icon i { + margin-left: 0; + margin-right: -12px; +} + +body.rtls .vertical-timeline-icon i { + right: 50%; + left: auto; + margin-left: auto; + margin-right: -12px; +} + +body.rtls .file-box { + float: right; +} + +body.rtls ul.notes li { + float: right; +} + +body.rtls .chat-users, body.rtls .chat-statistic { + margin-right: -30px; + margin-left: auto; +} + +body.rtls .dropdown-menu > li > a { + text-align: right; +} + +body.rtls .b-r { + border-left: 1px solid #e7eaec; + border-right: none; +} + +body.rtls .dd-list .dd-list { + padding-right: 30px; + padding-left: 0; +} + +body.rtls .dd-item > button { + float: right; +} + +body.rtls .skin-setttings { + margin-right: 40px; + margin-left: 0; +} + +body.rtls .skin-setttings { + direction: ltr; +} + +body.rtls .footer.fixed { + margin-right: 220px; + margin-left: 0; +} + +@media ( max-width: 992px) { + body.rtls .chat-users, body.rtls .chat-statistic { + margin-right: 0px; + } +} + +body.rtls.mini-navbar .footer.fixed, body.body-small.mini-navbar .footer.fixed { + margin: 0 70px 0 0; +} + +body.rtls.mini-navbar.fixed-sidebar .footer.fixed, body.body-small.mini-navbar .footer.fixed { + margin: 0 0 0 0; +} + +body.rtls.top-navigation .navbar-toggle { + float: right; + margin-left: 15px; + margin-right: 15px; +} + +.body-small.rtls.top-navigation .navbar-header { + float: none; +} + +body.rtls.top-navigation #page-wrapper { + margin: 0; +} + +body.rtls.mini-navbar #page-wrapper { + margin: 0 70px 0 0; +} + +body.rtls.mini-navbar.fixed-sidebar #page-wrapper { + margin: 0 0 0 0; +} + +body.rtls.body-small.fixed-sidebar.mini-navbar #page-wrapper { + margin: 0 220px 0 0; +} + +body.rtls.body-small.fixed-sidebar.mini-navbar .navbar-static-side { + width: 220px; +} + +.body-small.rtls .navbar-fixed-top { + margin-right: 0px; +} + +.body-small.rtls .navbar-header { + float: right; +} + +body.rtls .navbar-top-links li:last-child { + margin-left: 20px; +} + +body.rtls .top-navigation #page-wrapper, body.rtls.mini-navbar .top-navigation #page-wrapper, body.rtls.mini-navbar.top-navigation #page-wrapper { + margin: 0; +} + +body.rtls .top-navigation .footer.fixed, body.rtls.top-navigation .footer.fixed { + margin: 0; +} + +@media ( max-width: 768px) { + body.rtls .navbar-top-links li:last-child { + margin-left: 20px; + } + + .body-small.rtls #page-wrapper { + position: inherit; + margin: 0 0 0 0px; + min-height: 1000px; + } + + .body-small.rtls .navbar-static-side { + display: none; + z-index: 2001; + position: absolute; + width: 70px; + } + + .body-small.rtls.mini-navbar .navbar-static-side { + display: block; + } + + .rtls.fixed-sidebar.body-small .navbar-static-side { + display: none; + z-index: 2001; + position: fixed; + width: 220px; + } + + .rtls.fixed-sidebar.body-small.mini-navbar .navbar-static-side { + display: block; + } +} + +.rtls .ltr-support { + direction: ltr; +} + +/* + * + * This is style for skin config + * Use only in demo theme + * +*/ +.skin-setttings .title { + background: #efefef; + text-align: center; + text-transform: uppercase; + font-weight: 600; + display: block; + padding: 10px 15px; + font-size: 12px; +} + +.setings-item { + padding: 10px 30px; +} + +.setings-item.nb { + border: none; +} + +.setings-item.skin { + text-align: center; +} + +.setings-item .switch { + float: right; +} + +.skin-name a { + text-transform: uppercase; +} + +.setings-item a { + color: #fff; +} + +.default-skin, .blue-skin, .ultra-skin, .yellow-skin { + text-align: center; +} + +.default-skin { + font-weight: 600; + background: #1ab394; +} + +.default-skin:hover { + background: #199d82; +} + +.blue-skin { + font-weight: 600; + background: url("patterns/header-profile-skin-1.png") repeat scroll 0 0; +} + +.blue-skin:hover { + background: #0d8ddb; +} + +.yellow-skin { + font-weight: 600; + background: url("patterns/header-profile-skin-3.png") repeat scroll 0 100%; +} + +.yellow-skin:hover { + background: #ce8735; +} + +.content-tabs { + border-bottom: solid 2px #2f4050; +} + +.page-tabs a { + color: #999; +} + +.page-tabs a i { + color: #ccc; +} + +.page-tabs a.active { + background: #2f4050; + color: #a7b1c2; +} + +.page-tabs a.active:hover, .page-tabs a.active i:hover { + background: #293846; + color: #fff; +} + +/* + * + * SKIN 1 - H+ - 后台主题UI框架 + * NAME - Blue light + * +*/ +.skin-1 .minimalize-styl-2 { + margin: 14px 5px 5px 30px; +} + +.skin-1 .navbar-top-links li:last-child { + margin-right: 30px; +} + +.skin-1.fixed-nav .minimalize-styl-2 { + margin: 14px 5px 5px 15px; +} + +.skin-1 .spin-icon { + background: #0e9aef !important; +} + +.skin-1 .nav-header { + background: #0e9aef; + background: url('patterns/header-profile-skin-1.png'); +} + +.skin-1.mini-navbar .nav-second-level { + background: #3e495f; +} + +.skin-1 .breadcrumb { + background: transparent; +} + +.skin-1 .page-heading { + border: none; +} + +.skin-1 .nav > li.active { + background: #3a4459; +} + +.skin-1 .nav > li > a { + color: #9ea6b9; +} + +.skin-1 .nav > li.active > a { + color: #fff; +} + +.skin-1 .navbar-minimalize { + background: #0e9aef; + border-color: #0e9aef; +} + +body.skin-1 { + background: #3e495f; +} + +.skin-1 .navbar-static-top { + background: #ffffff; +} + +.skin-1 .dashboard-header { + background: transparent; + border-bottom: none !important; + border-top: none; + padding: 20px 30px 10px 30px; +} + +.fixed-nav.skin-1 .navbar-fixed-top { + background: #fff; +} + +.skin-1 .wrapper-content { + padding: 30px 15px; +} + +.skin-1 #page-wrapper { + background: #f4f6fa; +} + +.skin-1 .ibox-title, .skin-1 .ibox-content { + border-width: 1px; +} + +.skin-1 .ibox-content:last-child { + border-style: solid solid solid solid; +} + +.skin-1 .nav > li.active { + border: none; +} + +.skin-1 .nav-header { + padding: 35px 25px 25px 25px; +} + +.skin-1 .nav-header a.dropdown-toggle { + color: #fff; + margin-top: 10px; +} + +.skin-1 .nav-header a.dropdown-toggle .text-muted { + color: #fff; + opacity: 0.8; +} + +.skin-1 .profile-element { + text-align: center; +} + +.skin-1 .img-circle { + border-radius: 5px; +} + +.skin-1 .navbar-default .nav > li > a:hover, .skin-1 .navbar-default .nav > li > a:focus { + background: #39aef5; + color: #fff; +} + +.skin-1 .nav.nav-tabs > li.active > a { + color: #555; +} + +.skin-1 .content-tabs { + border-bottom: solid 2px #39aef5; +} + +.skin-1 .nav.nav-tabs > li.active { + background: transparent; +} + +.skin-1 .page-tabs a.active { + background: #39aef5; + color: #fff; +} + +.skin-1 .page-tabs a.active:hover, .skin-1 .page-tabs a.active i:hover { + background: #0e9aef; + color: #fff; +} + +/* + * + * SKIN 3 - H+ - 后台主题UI框架 + * NAME - Yellow/purple + * +*/ +.skin-3 .minimalize-styl-2 { + margin: 14px 5px 5px 30px; +} + +.skin-3 .navbar-top-links li:last-child { + margin-right: 30px; +} + +.skin-3.fixed-nav .minimalize-styl-2 { + margin: 14px 5px 5px 15px; +} + +.skin-3 .spin-icon { + background: #ecba52 !important; +} + +body.boxed-layout.skin-3 #wrapper { + background: #3e2c42; +} + +.skin-3 .nav-header { + background: #ecba52; + background: url('patterns/header-profile-skin-3.png'); +} + +.skin-3.mini-navbar .nav-second-level { + background: #3e2c42; +} + +.skin-3 .breadcrumb { + background: transparent; +} + +.skin-3 .page-heading { + border: none; +} + +.skin-3 .nav > li.active { + background: #38283c; +} + +.fixed-nav.skin-3 .navbar-fixed-top { + background: #fff; +} + +.skin-3 .nav > li > a { + color: #948b96; +} + +.skin-3 .nav > li.active > a { + color: #fff; +} + +.skin-3 .navbar-minimalize { + background: #ecba52; + border-color: #ecba52; +} + +body.skin-3 { + background: #3e2c42; +} + +.skin-3 .navbar-static-top { + background: #ffffff; +} + +.skin-3 .dashboard-header { + background: transparent; + border-bottom: none !important; + border-top: none; + padding: 20px 30px 10px 30px; +} + +.skin-3 .wrapper-content { + padding: 30px 15px; +} + +.skin-3 #page-wrapper { + background: #f4f6fa; +} + +.skin-3 .ibox-title, .skin-3 .ibox-content { + border-width: 1px; +} + +.skin-3 .ibox-content:last-child { + border-style: solid solid solid solid; +} + +.skin-3 .nav > li.active { + border: none; +} + +.skin-3 .nav-header { + padding: 35px 25px 25px 25px; +} + +.skin-3 .nav-header a.dropdown-toggle { + color: #fff; + margin-top: 10px; +} + +.skin-3 .nav-header a.dropdown-toggle .text-muted { + color: #fff; + opacity: 0.8; +} + +.skin-3 .profile-element { + text-align: center; +} + +.skin-3 .img-circle { + border-radius: 5px; +} + +.skin-3 .navbar-default .nav > li > a:hover, .skin-3 .navbar-default .nav > li > a:focus { + background: #38283c; + color: #fff; +} + +.skin-3 .nav.nav-tabs > li.active > a { + color: #555; +} + +.skin-3 .nav.nav-tabs > li.active { + background: transparent; +} + +.skin-3 .content-tabs { + border-bottom: solid 2px #3e2c42; +} + +.skin-3 .nav.nav-tabs > li.active { + background: transparent; +} + +.skin-3 .page-tabs a.active { + background: #3e2c42; + color: #fff; +} + +.skin-3 .page-tabs a.active:hover, .skin-3 .page-tabs a.active i:hover { + background: #38283c; + color: #fff; +} + +@media ( min-width: 768px) { + .navbar-top-links .dropdown-messages, .navbar-top-links .dropdown-tasks, .navbar-top-links .dropdown-alerts { + margin-left: auto; + } +} + +@media ( max-width: 768px) { + body.fixed-sidebar .navbar-static-side { + display: none; + } + + body.fixed-sidebar.mini-navbar .navbar-static-side { + width: 70px; + } + + .lock-word { + display: none; + } + + .navbar-form-custom { + display: none; + } + + .navbar-header { + display: inline; + float: left; + } + + .sidebard-panel { + z-index: 2; + position: relative; + width: auto; + min-height: 100% !important; + } + + .sidebar-content .wrapper { + padding-right: 0px; + z-index: 1; + } + + .fixed-sidebar.body-small .navbar-static-side { + display: none; + z-index: 2001; + position: fixed; + width: 220px; + } + + .fixed-sidebar.body-small.mini-navbar .navbar-static-side { + display: block; + } + + .ibox-tools { + float: none; + text-align: right; + display: block; + } + + .content-tabs { + display: none; + } + + #content-main { + height: calc(100% - 100px); + } + + .fixed-nav #content-main { + height: calc(100% - 38px); + } +} + +.navbar-static-side { + background: #2f4050; +} + +.nav-close { + padding: 10px; + display: block; + position: absolute; + right: 5px; + top: 5px; + font-size: 1.4em; + cursor: pointer; + z-index: 10; + display: none; + color: rgba(255, 255, 255, .3); +} + +@media ( max-width: 350px) { + body.fixed-sidebar.mini-navbar .navbar-static-side { + width: 0; + } + + .nav-close { + display: block; + } + + #page-wrapper { + margin-left: 0 !important; + } + + .timeline-item .date { + text-align: left; + width: 110px; + position: relative; + padding-top: 30px; + } + + .timeline-item .date i { + position: absolute; + top: 0; + left: 15px; + padding: 5px; + width: 30px; + text-align: center; + border: 1px solid #e7eaec; + background: #f8f8f8; + } + + .timeline-item .content { + border-left: none; + border-top: 1px solid #e7eaec; + padding-top: 10px; + min-height: 100px; + } + + .nav.navbar-top-links li.dropdown { + display: none; + } + + .ibox-tools { + float: none; + text-align: left; + display: inline-block; + } +} + +/*JQGRID*/ +.ui-jqgrid-titlebar { + height: 40px; + line-height: 24px; + color: #676a6c; + background-color: #F9F9F9; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.ui-jqgrid .ui-jqgrid-title { + float: left; + margin-left: 5px; + font-weight: 700; +} + +.ui-jqgrid .ui-jqgrid-titlebar { + position: relative; + border-left: 0px solid; + border-right: 0px solid; + border-top: 0px solid; +} + +/* Social feed */ +.social-feed-separated .social-feed-box { + margin-left: 62px; +} + +.social-feed-separated .social-avatar { + float: left; + padding: 0; +} + +.social-feed-separated .social-avatar img { + width: 52px; + height: 52px; + border: 1px solid #e7eaec; +} + +.social-feed-separated .social-feed-box .social-avatar { + padding: 15px 15px 0 15px; + float: none; +} + +.social-feed-box { + /*padding: 15px;*/ + border: 1px solid #e7eaec; + background: #fff; + margin-bottom: 15px; +} + +.article .social-feed-box { + margin-bottom: 0; + border-bottom: none; +} + +.article .social-feed-box:last-child { + margin-bottom: 0; + border-bottom: 1px solid #e7eaec; +} + +.article .social-feed-box p { + font-size: 13px; + line-height: 18px; +} + +.social-action { + margin: 15px; +} + +.social-avatar { + padding: 15px 15px 0 15px; +} + +.social-comment .social-comment { + margin-left: 45px; +} + +.social-avatar img { + height: 40px; + width: 40px; + margin-right: 10px; +} + +.social-avatar .media-body a { + font-size: 14px; + display: block; +} + +.social-body { + padding: 15px; +} + +.social-body img { + margin-bottom: 10px; +} + +.social-footer { + border-top: 1px solid #e7eaec; + padding: 10px 15px; + background: #f9f9f9; +} + +.social-footer .social-comment img { + width: 32px; + margin-right: 10px; +} + +.social-comment:first-child { + margin-top: 0; +} + +.social-comment { + margin-top: 15px; +} + +.social-comment textarea { + font-size: 12px; +} + +.checkbox input[type=checkbox], .checkbox-inline input[type=checkbox], .radio input[type=radio], .radio-inline input[type=radio] { + /* margin-top: -4px; */ +} + +/* Only demo */ +@media ( max-width: 1000px) { + .welcome-message { + display: none; + } +} + +/* ECHARTS */ +.echarts { + height: 240px; +} + +.checkbox-inline, .radio-inline, .checkbox-inline + .checkbox-inline, .radio-inline + .radio-inline { + margin: 0 15px 0 0; + font-size: 14px; +} + +.navbar-toggle { + background-color: #fff; +} + +.J_menuTab { + -webkit-transition: all .3s ease-out 0s; + transition: all .3s ease-out 0s; +} + +::-webkit-scrollbar-track { + background-color: #F5F5F5; +} + +::-webkit-scrollbar { + width: 6px; + background-color: #F5F5F5; +} + +::-webkit-scrollbar-thumb { + background-color: #999; +} + +/*GO HOME*/ +.gohome { + position: fixed; + top: 20px; + right: 20px; + z-index: 100; +} + +.gohome a { + height: 38px; + width: 38px; + display: block; + background: #2f4050; + padding: 9px 8px; + text-align: center; + color: #fff; + border-radius: 50%; + opacity: .5; +} + +.gohome a:hover { + opacity: 1; +} + +@media only screen and (-webkit-min-device-pixel-ratio: 2) { + #content-main { + -webkit-overflow-scrolling: touch; + } +} + +.navbar-header { + width: 60%; +} + +.bs-glyphicons { + margin: 0 -10px 20px; + overflow: hidden +} + +.bs-glyphicons-list { + padding-left: 0; + list-style: none +} + +.bs-glyphicons li { + float: left; + width: 25%; + height: 115px; + padding: 10px; + font-size: 10px; + line-height: 1.4; + text-align: center; + background-color: #f9f9f9; + border: 1px solid #fff +} + +.bs-glyphicons .glyphicon { + margin-top: 5px; + margin-bottom: 10px; + font-size: 24px +} + +.bs-glyphicons .glyphicon-class { + display: block; + text-align: center; + word-wrap: break-word +} + +.bs-glyphicons li:hover { + color: #fff; + background-color: #1ab394; +} + +@media ( min-width: 768px) { + .bs-glyphicons { + margin-right: 0; + margin-left: 0 + } + + .bs-glyphicons li { + width: 12.5%; + font-size: 12px + } +} + +.t-bar { + padding-bottom: 10px; +} + +.nopadding { + padding: 0; +} + +/*编辑器按钮样式冲突*/ +.note-editor .btn-default { + color: #333333 !important; + background-color: #ffffff !important; + border-color: #cccccc !important; +} + diff --git a/novel-admin/src/main/resources/static/favicon.ico b/novel-admin/src/main/resources/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0dffadfbd52744741bcedf9d3d9a372f52dcfed5 GIT binary patch literal 9126 zcmeHtS2$c>_%1<2Pl6~TBp3;z#6*i0ogu_%88V`GL86Y9h#D}Q#5XC|y$@-i;1X(9MK35u5aR3Z;vJotM1oa=VV zi;rI?WFNc`x$)_R{au5vQyzr!*oueFu!NX&R!)*dnYL{ zDWvmBuY!W52^YH%1>{aNJTWw+xA}jn{D1nzHsS3{*l-PIo&&i6s$1hg><7L(F}OZM zyH3BvZ9{OIKGjDS)frk52ADdUmSdQDVrXYXuodQ%^dM4AkMMor6)$cnpc~$@H*&LA zflhhcMfhD>saO{kkwJ)c7iz&j*GuD8b0zlDa2r9p5wLfjq+8hQNF)Xpr7grFcf)m zxe>ADrW$7bwzZ}$0IV3+Cg`0f)pG=wt7Pae|TbRR}+nWYntr6~F=Zo5l6(Lnbp>9NIOccsQb6o$I}nQu00YIuY? z3D8o{S89x8SZDW+y*bZM_1NSgrIo4mS9HA+PKJkFO?g~Wy$Xdkrc8PPPOl*DrrI&A zmRYgp2vs2rdw^VxjbJ~mDymC9To{f8u%mdu#ngR|C)WqxCfnT(iq}qh1A* zVXtrlrx)9&9Q<1EMrL01M8Wm1f(IJVzKd+T5t($uIX+z3kQtYzhJ z?c%L1@UYm{Z9w`BXo;zx6a-sdlr+(34C0^Ty2iNR_0L?9f|l%6tf?4YzbLg3Y;n=C zGE4G=`xENh(qrkq_0=u+R+8;@FmHJT3`p;ZL3jicLn)b`^~~0XDi|DrM){_hZ5nq^ zU?;Cdi4*cPd=G;0fuwmyb9V zP3m;zGn4lvxjS7 z#m&o)Nsk46+5>j?qUe-c#>Z?zcchTi5G~^`)MoklzqCKt?RXuqSY{a?fXZlo2eE3B zWt>6QxA4rr0B%aq$|@8-tW9`-8u8lK+;x`18B@%!}EksQrUV(fbQ zZavR9cM|r_toGX+#L`yFZC=tn>i*Aw<`r;(MBY;Jp`pjv`_%aUb#a5SoZ|D@QPBmJ z7W)ox>g|7apU2B z{oWx|3fx6RqzP#LVse#B(tywujF#b>u>Y^Cg4|ziEsASeGw;@=oquh7JOnu+=mmcT`o(MzdEE}k@j$I+lTiluo8}bY{>7P7LG~Z z^M8QgJuR*uFgUa^1uhU+wlHc_WzmAIpyVI-4H-qGlvlyQ<$r?;njcko&NQpjeLV2| zH5f5@^aJTcE+X))Qh#l2!1?Zt{2;!cL7o6q9vno{WR`(mxlEi%Nn;!`$NaKNJ!l?r zs>Cr=sHV55(}gohl-H9Mu9hal17AYvY?zRfj?Q2Fv$*0+yd;B@9y8K}KXa4+bY>Y> zbq^oov^2ipLSj5lKkHb}DM(9VX~gGtMlfQe-$GFiCgX8r&`28?NgSQHDPzn<9&R7H zam9FsYqWJNIPjbZ54g7&v=cNe=7t6eVHzK?#}&jZyQ*#_Qja^Oy2&5058)~XO@InLG8o~?_VcfJv|s28SJ+# zW+SKwu=PxVY9&2PJA#)42yTa8(c)zGy!t{PP?HcOauZ)ko2_XJ{BSEd9mBD)DI0m- z4^ox;F9Fr+xWItG{rkmOLDjz3HkBw%YwwHe(^=mI!%~Ix`@fxc5(|6g(rNehp*5ui z#c76hKHj@Qjq7L_0)|tOJV;ezZ+vDLqE&2n(()LU z#=p11IYWdkc`0`)y4Mv{Rszu&OVjy)DFJ~MBBnu!hVENKaVgmC)~Cj2rXFghr>e)9 zZSiU+P!bYr^L(~Bj}nyZ)aNAt+F-{%sn5_L5g6FpVMopn0aGdQ{zvi&xmn`auo zs2*~WU+x{H^VsvM{`zD<77~{FCyj8)p&%C9DS29UeZ|J4uIDhXZw048VLR<5PcBrs z<@fHvAEK~5lCk2HL}57?sQeNpu#tL>K~!xRu`a^->myw>?(TBXtT~D8JlDX{3llfx zdw1bFi%(rN9xxaj&!%i6V!NVm91N$|?mlsCHF8AxE$A3c&ehbB0lSzp}s$A zQH%Cp<^ap9i4gQ^S=Bk_utGn(=Mb| zYJy{F8yg5l!TK0;-L4t8n2wLDfjg+pN7KPmc;{sq+rz00Se&`n7^^xf?HAEzfbr#+dPIuddA)tJ(2#0j?AY-r?66I6xPGwy#O}R3fk?=ZW$$ zZ<;qWP`cpVeOZT8&lPnc$?ftY)J6W)3dPaa{C-3T%L9Y=db!^y5qm;Mg9LDyP1zWj z-m7KC8l}IR&0OCV|KDgk`xuI&YF*>SVQ1x`HOu zqZi7HU@7a+JvOHC(e=Kg3pgAO5~o~wt&3txl(tHevJrAjTb9pUwnq5gtFz2tZY0|p zIobh9QY>rEjT|^kU_?yZ@*B3g;sg1ObkAgnKIC{zp2HX4!s|AOZv4IG&59qjGV-CI zo^ck#%MOx~PO^)}nuo^KOxK+Y2xZA!pSuge&Plya-8;;b{f2N0jc<&8AYV#9y7C3* zyB#Edb<`{l7j>{NB2B5r@?0XWi|eulypP$gxd+5(k|x?xTAbHxqSSGH2Yhj3Kf+6( z4#<7HSlEp*m;CARFD)AyDY}Jfdg(YZMb-{ZaCSyW|8Lf+{jZFM7f?3N;y?HL2P3+F6;KS2e<&) zujy5f_Tbv{3_izjwyBWY^*-#erLGBIOfObyQj;B0)HHibIrC$n*z8W$RQwRq;t!ld zNhcMnQTVy0`ev2HE`T*E?Az%v4@RTAmB#q8ZdcXvL4-g5}5PM~k*>-792v$ZGNK!$%ZwWUNGLP}}Znc&{fh0feTU|{bV|Z=9 zc^pmk)Wb-Hto)c5cREA5gId@d6)^uyk{(MwA=K|x8AmEGnPb~o^k|@gVgOsXJE6AM zKD;~=ye#XYdsjPNW@zZKUCJ}0RF9ADm#amUy{;oS=L35(xmoABestK^Z!yf@iSbIN z&|4z&t)C3vVHX7JX&ZSig&_JhTn0td%`@l2Qz)(hJR9qG5Ps0E+1r!*EVcqo!`!%E zksVmFeOzsqJ3{Rt{o~Fl?_UH=drH#fg*05`;U85KHcD{RN}O03234NFRW|F#hB&{- z({Bv990-{L@tp7yf&*sEoQ#qx`$xrTd^a~E2aFtS98^JqxL;R0iTUoGT#5GmF2)0; zh>a=TxSYFPwdT_$v#~XP9}_eqPyfiQ$JprK^ZaR97_6%*ont|Hti(X~-)??>IQreSb;8<(>)SwHYWKcPkKX|-Nl>&MlwP4td=^R=`YX8$51NpUad zk#6C5fH#vms~zTzBhE`!W-n@DpHd6rE{9)nyl9;MX!x!a8#bBdrVEBsTa+wcDEr0! z$^EUOTZe3U-YM9RTH4rWeO4v5=NY<}lQKJKE^MV}Q4&kWO$wW4MtiPaD5E>QruD&| zVU#q=f~|M*dB~O%gqYglgE8V910JxrjVM&Gx9|=sO6Z;`8lp^<7S+e0Z27d8-;DY< zOiI~opTN>R^|SN5J{YcAp)Z=lUR+%4dPLiW;?``352gCdIPLi?R3w@t7s_XA`UhZiQTVlJ<(NFp{n%bj-g2yvXS9< zsx=;$lP&5^b-zEco3Rn{iW7INoobV3?@crn^dE4$?wYcx@vSpIWw003?V4QP+<4f} z{f5CO5hV{r;Y6XB&@8y$%UQJF$0SR2pQ<%!%4B!8|H9R6Fw~RYHYEkaxxur* zQtPr9H@?6Ur9J*W@5hst5?xwRT~%oM2*u#1+3{%|u=B+Meu&ajRR&GbRn=S1L3JA#r37=exg0800d^erUkSfrJtA(O6?UpQewx8t8Z38AEcpnkBSv5^$AObXQe%t zaALvST^&-r;jU@h{~qAZK=Ecr<3+Ofn@q{*c7YG`VKSnw`hF6xM|X` z4Ax{e!`jWjL6M10$^~M8f^4z)Q|6R z^Ht>X5WQEm;uYJet$M$-qi3s(de_x7VoWxpQf1nE9~Y)yCOZD@4VNNR^ME|TrzZJZ z_m5bE6w`YlKqT9I_L+*1{H+6qYsOx;K1sIom4uo(eC^QGn7#qbU0<0pzc##0a9Dln zJ#`8LS(SvFE(*+&juk)uZ2s}{0QyO3K|FYQG0A-sjrSXSq%E?wLAVsJch%VY1|A(+ z)zUe$JiTNB<=E4oOi|n`D-J9vD5kG8;#!r`980W zBI?d%yuRtz$wYnF?%Y8e9|OKv%zc$c@AKAlOfm)AeA%Q|1)3@M=G=3MOj%E0KA5vx z|93vQ_tV{Dw;U?n$;4^kb?n!PYMy6*0^`37PiZnn&Gunl>@ z$HTn6ZttxFR#;4jGZ?7MHF5tlSUhsDE zZj3n}H!_9?)u0uRAM@QNmDx;s$ZIMDd#K1$H_^qF8Ll(6z>;bcZy(zxNiMq-I>PmE zn4jI9v5T`48Ka&Ni;+D>N7JVID{WXQRq#~v>FC<%7X?$n1?%^hyx3H9*F*#B8MQ}$ zGXv$-+c$~}ZFcMvZMYo5ysCwI`8(Nm8hx*QQj03J_ENsno+oKlcA8L-h2I(;$V-`N zT~ciJmYIC_{N$qR1KY))(_yPrwvRyWJ=(%v^Hg^+g~R%Dgn*6JOhw@B z0pqi%S04R&rPt85#^&di>-!Br@6_A;s6m3l7nY1X1;4$w^q;hu zK7Sxe=NEB!C7|m*BYW)Y^B&-!Q?&^3u8N0@fmC5c5Ut=9*T$9~*8bgp`ZTsgtH>?2 zegR}du$5`ie2e;zndNja`S3OoCedoF;Ce*8Nf6P5~W}ob+=V#%k z2L8WMK}@(g^=T^MEcpbO~5X;s4t4c9pD$W#dtHvBlwyTo->hRZ}S?ax;g+~xQs4J z4E09EXSSD(g9X;l%F6xD%{y{+BuDBsBdtLFx@>UKE5l=nb@$QkFl3Lo?pboR!85ab z=9(9-FFUlnNFdR(bu`*ZinhL=4KA||?WSimEogsE@jeV|ItsHrbf$^oD{sGHrs;<4 z3lpS$Zn3I$a`C{JOQ>M|HtvM%jo|a_)zU-#`|YUKymw9FzdS3GmS%0W0QG{>z~weW zXg~h4VomC%a%}8PjbpoI#7{e*NPTxdkw^1oA(pq+JiY97jx3 zWb6YR)e}CBa)G_n6CZWNFws;3 zUD!6LIWhFcuwPaZt-E0XNyJ3D!XU4q<1-|-$bq3;^&eT6D5puYu=Vk<3^Ox1f%)q7 zc>H8kI*|D}8)yk&JDa{bd`%X}C9Ja-b+##rsQO#rfA+5Y{OGCrM&9BDAv7 z{%l6;^l(hP_TiKzMLQPsqIWdK9?6O~^c_UNkvgN|%Wx53~pIXKSx_jBEgZ!?Fa7drv- z<7Cc&!^0WC{8&v-NEv6gZOC?W*CG&@koMcPT1 zz_L+ZU@$=o2taW^vu&&TKP{B#20r4Txokr6iXq$Ojt`mcyfbyWfSIH5aDtwXji?> zYfV398-(}@s8q6zyV5hG$YD@r=_j){*F4nsgm}E@Yv7b=W!N7S@@~*gDq*wWw^*I` zWDqS6^Rgk`1m}v?a2&ekjN&+}!+Gwj7R_JNl>26Ck`oy*haDslm}AC^ojHJTjsx_+ z5kBN{aP6(?gpuq9#M-Cmlha5W`jhxqHg(y68Yc4j55*{Exg;g3#S8y!fynOiapFSF zG>}C!CV59O3!7J34ZD&2Qn_6A-!LHW2P){`ZK}90$K_2Wt8uwp@r8iu0ApP)=$Qf` zhf{2~e1+`^ef6=KB2^SPjEAoQxR#>u~!?q5T>z~eQpd=YC4 z9pe4uEljYLu|y0AkZZ>r{ogf2xHc7|5-Orq0epU;7~OrFs*Nk$ zcQOu%Rk1e$#9D+vbDY8zZZy`>nQzlC1UlOX(fSRy0TgZyz-nxh4CTXO$}B)2+>a z(0z`8mRC+ycoTBx)5EI6bj@<_6O-vKjdbHwK+n+nHZuu0`L%-Nhzs`bJuZ2G_$Gtg zX&Z43>Bg6=r&MIP7>!z(xzmz8`X{$Hk|7VB2eyh4?%IFH3%6RFpKwz{?o`|S)TusD z$v^VnuD5ll%w5XFI{-%|_;W1^D%MAmX*X-V5QodQla4x;&QP|<5diliM$<#O?d-x; zQ2P6NAPu;vET*Br{ZdxnHv`+iF;D;wE|!?3?&}c!cLLyl4qp5}4y4E;Ze9y)F(lse UZy9t1&ejm9DrzW{${G9rFYJ}YXaE2J literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/fonts/FontAwesome.otf b/novel-admin/src/main/resources/static/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..401ec0f36e4f73b8efa40bd6f604fe80d286db70 GIT binary patch literal 134808 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/fonts/FontIcoList.html b/novel-admin/src/main/resources/static/fonts/FontIcoList.html new file mode 100644 index 0000000..3bf6725 --- /dev/null +++ b/novel-admin/src/main/resources/static/fonts/FontIcoList.html @@ -0,0 +1,938 @@ + + + + + Font Awesome Ico list + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/fonts/fontawesome-webfont.eot b/novel-admin/src/main/resources/static/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e9f60ca953f93e35eab4108bd414bc02ddcf3928 GIT binary patch literal 165742 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 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

    5q!RY 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 + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/novel-admin/src/main/resources/static/fonts/fontawesome-webfont.ttf b/novel-admin/src/main/resources/static/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 GIT binary patch literal 165548 zcmd4434D~*)jxjkv&@#+*JQHIB(r2Agk&ZO5W=u;0Z~v85Ce*$fTDsRbs2>!AXP+E zv})s8XszXKwXa&S)7IKescosX*7l99R$G?_w7v?NC%^Bx&rC7|(E7f=|L^lpa-Zk9 z`?>d?d+s^so_oVMW6Z|VOlEVZPMtq{)pOIHX3~v25n48F@|3AkA5-983xDXec_W** zHg8HX#uvihecqa7Yb`$*a~)&Wy^KjmE?joS+JOO-B;B|Y@umw`Uvs>da>d0W;5qQ!4Qz zJxL+bkEIe8*8}j>Q>BETG1+ht-^o+}utRA<*p2#Ix&jHe=hB??wf3sZuV5(_`d1DH zgI+ncCI1s*Tuw6@6DFOB@-mE3%l-{_4z<*f9!g8!dcoz@f1eyoO9;V5yN|*Pk0}XYPFk z!g(%@Qka**;2iW8;b{R|Dg0FbU_E9^hd3H%a#EV5;HVvgVS_k;c*=`1YN*`2lhZm3 zqOTF2Pfz8N%lA<(eJUSDWevumUJ;MocT>zZ5W08%2JkP2szU{CP(((>LmzOmB>ZOpelu zIw>A5mu@gGU}>QA1RKFi-$*aQL_KL1GNuOxs0@)VEz%g?77_AY_{e55-&2X`IC z!*9krPH>;hA+4QUe(ZB_4Z@L!DgUN;`X-m}3;G6(Mf9flyest6ciunvokm)?oZmzF z@?{e2C{v;^ys6AQy_IN=B99>#C*fPn3ra`%a_!FN6aIXi^rn1ymrrZ@gw3bA$$zqb zqOxiHDSsYDDkGmZpD$nT@HfSi%fmt6l*S0Iupll)-&7{*yFioy4w3x%GVEpx@jWf@QO?itTs?#7)d3a-Ug&FLt_)FMnmOp5gGJy@z7B*(^RVW^e1dkQ zkMHw*dK%Ayu_({yrG6RifN!GjP=|nt${60CMrjDAK)0HZCYpnJB&8QF&0_TaoF9-S zu?&_mPAU0&@X=Qpc>I^~UdvKIk0usk``F{`3HAbeHC$CyQPtgN@2lwR?3>fKwC|F> zYx{2LyT9-8zVGxM?E7=y2YuRM`{9bijfXoA&pEvG@Fj<@J$%dI`wu^U__@Oe5C8e_ z2ZyyI_9GQXI*-gbvh>I$N3K0`%aQw!JbvW4BL|QC`N#+Vf_#9QLu~J`8d;ySFWi^v zo7>mjx3(|cx3jOOZ+~B=@8!PUzP`iku=8-}aMR(`;kk#q53fC(KD_gA&*A-tGlyS3 z+m)8@1~El#u3as^j;LR~)}{9CG~D_9MNw(aQga zKO~TeK}MY%7{tgG{veXj;r|am2GwFztR{2O|5v~?px`g+cB0=PQ}aFOx^-}vA95F5 zA7=4<%*Y5_FJ|j%P>qdnh_@iTs0Qv3Shg)-OV0=S+zU1vekc4cfZ>81?nWLD;PJf5 zm^TgA&zNr~$ZdkLfD=nH@)f_xSjk$*;M3uDgT;zqnj*X$`6@snD%LSpiMm2N;QAN~ z_kcBPVyrp@Qi?Q@UdCdRu{^&CvWYrt=QCD^e09&FD^N$nM_`>%e`5*`?~&bbh->n~ zJ(9*nTC4`EGNEOm%t%U8(?hP3%1b;hjQAV0Nc?8hxeG3 zaPKiTHp5uQTE@n~b#}l3uJMQ)kGfOHpF%kkn&43O#D#F5Fg6KwPr4VR9c4{M`YDK; z3jZ{uoAx?m(^2k>9gNLvXKdDEjCCQ+Y~-2K00%hd9AfOW{fx~8OmhL>=?SSyfsZaC!Gt-z(=`WU+-&Dfn0#_n3e*q()q-CYLpelpxsjC~b#-P^<1eJJmK#NGc1 zV_&XPb2-)pD^|e^5@<6_cHeE7RC;w7<*1(><1_>^E_ievcm0P?8kubdDQj%vyA=3 z3HKCZFYIRQXH9UujQt#S{T$`}0_FTN4TrE7KVs}9q&bK>55B|Lul6(cGRpdO1Kd`| zeq(~e`?pp&g#Y$EXw}*o`yJwccQ0eFbi*Ov?^iSS>U6j#82bal{s6dMn-2#V{#Xo$ zI$lq~{fx0cA?=^g&OdKq?7tBAUym`?3z*+P_+QpC_SX>Hn~c4gX6!Ab|67K!w~_Ac z_ZWKz;eUUXv46n53-{h3#@>IKu@7En?4O7`qA>R1M~r=hy#Got_OTNVaQ-*)f3gq` zWqlf9>?rCwhC2Ie;GSYEYlZ8Edx9~|1c$Hz6P6|~v_elnBK`=R&nMuzUuN8VKI0ZA z+#be@iW#>ma1S$XYhc_CQta5uxC`H|9>(1-GVW=IdlO`OC*!^vIHdJ2gzINKkYT)d z3*#jl84q5~c0(mMGIK+jJFO2k6NLvlqs#h}}L0klN#8)z2^A6*6 zU5q!Nj7Gdit%LiB@#bE}TbkhZGoIMXcoN~QNYfU9dezGK=;@4)al-X6K6WSL9b4dD zWqdqfOo0cRfI27sjPXfulka7G3er!7o3@tm>3GioJTpUZZ!$jX5aV4vjL$A+d`^n- zxp1e$e?~9k^CmMsKg9T%fbFbqIHX;GIu<72kYZMzEPZ`#55myqXbyss&PdzkU-kng%ZaGx-qUd{ORDE9`W-<*I${1)W@@_xo| z#P?RjZA0Ge?Tp_{4)ER51-F;+Tjw*r6ZPHZW&C#J-;MVj3S2+qccSdOkoNAY8NUbR z-HUYhnc!Y!{C@9;sxqIIma{CrC z{*4;OzZrsik@3eKWBglt8Gju9$G0;6ZPfp5`1hya;Q!vUjQ{6qsNQ=S2c6;1ApV)% zjDJ4@_b}tnn&43HfiA|MBZsgbpsdVv#(xMHfA~D(KUU!0Wc>La#(y%O@fT{~-ede{ zR>pr0_Y2hXOT@kS3F8L=^RH0;%c~jx_4$nd=5@w@I~NXdzuUt2E2!)DYvKACfAu5A zUwe%4KcdXn;r@iOKr8s4QQm)bG5$uH@xLJ7o5hU3g}A?UF#a~+dV4S9??m7ZG5+_} zjQ<05{sZ6d0><|ea8JQ~#Q6It>z^jLhZ*lv;9g|>Fxqwm@O+4TAHKu*zfkVS4R9I8 z{~NIVcQ50g0KQKVb`<_&>lp7xn*Q?{2i@S=9gJ(JgXqP;%S_@4CSmVFk{g($tYngU z2omdDCYcd#!MC-SNwz*FIf|L&M40PMCV4uTQXRtTUT0GMZYDM0-H5Up z-(yk}+^8)~YEHrRGpXe%CMDJ}DT(-2W~^` zjDf-D4fq2U%2=tnQ*LW*>*Q@NeQ=U48Xk01IuzADy1ym0rit^WHK~^SwU449k4??k zJX|$cO-EBU&+R{a*)XQ6t~;?kuP)y%}DA(=%g4sNM$ z8a1k^e#^m%NS4_=9;HTdn_VW0>ap!zx91UcR50pxM}wo(NA}d;)_n~5mQGZt41J8L zZE5Hkn1U{CRFZ(Oxk3tb${0}UQ~92RJG;|T-PJKt>+QV$(z%hy+)Jz~xmNJS#48TFsM{-?LHd-bxvg|X{pRq&u74~nC4i>i16LEAiprfpGA zYjeP(qECX_9cOW$*W=U1YvVDXKItrNcS$?{_zh2o=MDaGyL^>DsNJtwjW%Do^}YA3 z3HS=f@249Yh{jnme5ZRV>tcdeh+=o(;eXg_-64c@tJ&As=oIrFZ& z*Gx&Lr>wdAF8POg_#5blBAP!&nm-O!$wspA>@;>RyOdqWZe?F%--gC9nTXZ%DnmK< z`p0sh@aOosD-jbIoje0ec`&&fWsK?xPdf*L)Qp(MwKKIOtB+EDn(3w-9Ns9O~i z7MwnG8-?RZlv&XIJZUK*;)r!1@Bh4bnRO*JmgwqANa8v4EvHWvBQYYGT?tN4>BRz1 zf1&5N7@@!g89ym5LO{@=9>;Y8=^ExA9{+#aKfFGPwby8wn)db@o}%Z_x0EjQWsmb6 zA9uX(vr-n8$U~x9dhk~VKeI!h^3Z2NXu;>n6BHB%6e2u2VJ!ZykHWv-t19}tU-Yz$ zHXl2#_m7V&O!q(RtK+(Yads868*Wm*!~EzJtW!oq)kw}`iSZl@lNpanZn&u|+px84 zZrN7t&ayK4;4x_@`Q;;XMO4{VelhvW%CtX7w;>J6y=346)vfGe)zJBQ9o$eAhcOPy zjwRa6$CvN-8qHjFi;}h1wAb{Kcnn{;+ITEi`fCUk^_(hJ&q1Z=yo*jRs<94E#yX67 zRj)s)V&gd0VVZGcLALQ|_Lp<4{XEBIF-*yma#;%V*m^xSuqeG?H-7=M0Cq%%W9`2Oe>Ov)OMv8yKrI^mZ$ql{A!!3mw_27Y zE=V#cA@HopguAWPAMhKDb__-Z_(TN7;*A`XxrMefxoz4{Seu)$%$=sPf{vT@Pf_T`RlrC#CPDl$#FnvU|VBC$0(E>+3EG z&3xsml}L_UE3bNGX6T~2dV6S%_M9{`E9kgHPa+9mas{tj$S<&{z?nRzH2b4~4m^Wc zVF+o4`w9BO_!IohZO_=<;=$8j?7KUk(S5llK6wfy9m$GsiN5*e{q(ZS6vU4l6&{s5 zXrJJ@giK>(m%yKhRT;egW||O~pGJ&`7b8-QIchNCms)}88aL8Jh{cIp1uu`FMo!ZP z1fne;+5#%k3SM7Kqe|`%w1JI=6hJJrog4j?5Iq!j=b=0AJS5%ev_9?eR!_H>OLzLM z_U#QLoi=0npY1+gHmde37Kgp)+PKl=nC>pM|EJCAEPBRXQZvb74&LUs*^WCT5Q%L-{O+y zQKgd4Cek)Gjy~OLwb&xJT2>V%wrprI+4aOtWs*;<9pGE>o8u|RvPtYh;P$XlhlqF_ z77X`$AlrH?NJj1CJdEBA8;q*JG-T8nm>hL#38U9ZYO3UTNWdO3rg-pEe5d= zw3Xi@nV)1`P%F?Y4s9yVPgPYT9d#3SLD{*L0U{ z;TtVh?Wb0Lp4MH{o@L6GvhJE=Y2u>{DI_hMtZgl~^3m3#ZUrkn?-5E3A!m!Z>183- zpkovvg1$mQawcNKoQ*tW=gtZqYGqCd)D#K;$p113iB1uE#USvWT}QQ7kM7!al-C^P zmmk!=rY+UJcJLry#vkO%BuM>pb)46x!{DkRYY7wGNK$v=np_sv7nfHZO_=eyqLSK zA6ebf$Bo&P&CR_C*7^|cA>zl^hJ7z0?xu#wFzN=D8 zxm(>@s?z1E;|!Py8HuyHM}_W5*Ff>m5U0Jhy?txDx{jjLGNXs}(CVxgu9Q4tPgE+Hm z*9ll7bz80456xzta(cX+@W!t7xTWR-OgnG_>YM~t&_#5vzC`Mp5aKlXsbO7O0HKAC z2iQF2_|0d6y4$Pu5P-bfZMRzac(Yl{IQgfa0V>u;BJRL(o0$1wD7WOWjKwP)2-6y$ zlPcRhIyDY>{PFLvIr0!VoCe;c_}dp>U-X z`pii$Ju=g+Wy~f|R7yuZZjYAv4AYJT}Ct-OfF$ZUBa> zOiKl0HSvn=+j1=4%5yD}dAq5^vgI~n>UcXZJGkl671v`D74kC?HVsgEVUZNBihyAm zQUE~mz%na<71JU=u_51}DT92@IPPX)0eiDweVeDWmD&fpw12L;-h=5Gq?za0HtmUJ zH@-8qs1E38^OR8g5Q^sI0)J}rOyKu$&o1s=bpx{TURBaQ(!P7i1=oA@B4P>8wu#ek zxZHJqz$1GoJ3_W^(*tZqZsoJlG*66B5j&D6kx@x^m6KxfD?_tCIgCRc?kD~(zmgCm zLGhpE_YBio<-2T9r;^qM0TO{u_N5@cU&P7is8f9-5vh4~t?zMqUEV!d@P{Y)%APE6 zC@k9|i%k6)6t2uJRQQTHt`P5Lgg%h*Fr*Hst8>_$J{ZI{mNBjN$^2t?KP8*6_xXu5xx8ufMp5R?P(R-t`{n6c{!t+*z zh;|Ek#vYp1VLf;GZf>~uUhU}a<>y*ErioacK@F{%7aq0y(Ytu@OPe;mq`jlJD+HtQ zUhr^&Zeh93@tZASEHr)@YqdxFu69(=VFRCysjBoGqZ!U;W1gn5D$myEAmK|$NsF>Z zoV+w>31}eE0iAN9QAY2O+;g%zc>2t#7Dq5vTvb&}E*5lHrkrj!I1b0=@+&c(qJcmok6 zSZAuQ496j<&@a6?K6ox1vRks+RqYD< zT9On_zdVf}IStW^#13*WV8wHQWz$L;0cm)|JDbh|f~*LV8N$;2oL|R99**#AT1smo zob=4dB_WB-D3}~I!ATFHzdW%WacH{qwv5Go2WzQzwRrv)ZajWMp{13T_u;Rz^V-VF z@#62k@#FD#t@v9ye*A%@ODWm-@oM_$_3Cy1BS+(+ujzNF@8a7?`$B^{iX2A-2_nA? zfi2=05XV^;D_2G}Up$eFW|Ofb^zuE)bWHkXR4Jm!Sz0O?)x6QD^kOufR`*v0=|sS?#*ZCvvr^VkV!zhLF3}FHf%+=#@ae1Qq<4~Y1EGYK$Ib1 zg!s~&&u27X&4Ks^(L3%}Npx!_-A)We=0v#yzv03fzxKZ8iV6KIX5U&?>^E?%iIUZ4 z2sD^vRg%kOU!B5@iV{&gBNc9vB)i{Wa@joIa2#4=oAl|-xqj_~$h33%zgk*UWGUV# zf3>{T#2buK?AZH?)h>10N)#VHvOV}%c|wR%HF|pgm8k`*=1l5P8ttZ1Ly@=C5?d9s z)R>B@43V`}=0??4tp?Y}Ox0$SH)yg(!|@V7H^}C-GyAXHFva04omv@`|LCuFRM2`U zxCM>41^p9U3cR>W>`h`{m^VWSL0SNz27{ske7TN1dTpM|P6Hn!^*}+fr>rJ*+GQN{ ziKp9Zda}CgnbNv#9^^&{MChK=E|Wr}tk?tP#Q?iZ%$2k;Eo9~}^tmv?g~PW^C$`N)|awe=5m{Xqd!M=ST?2~(mWjdOsXK#yVMN(qP6`q#tg+rQexf|*BeIU)a z^WuJyPR4WVsATp2E{*y77*kZ9 zEB{*SRHSVGm8ThtES`9!v{E``H)^3d+TG_?{b|eytE1cy^QbPxY3KFTWh&NZi`C?O z;777FMti@+U+IRl7B{=SCc93nKp`>jeW38muw(9T3AqySM#x@9G|p?N;IiNy(KN7? zMz3hIS5SaXrGqD(NIR0ZMnJT%%^~}|cG(Ez!3#)*o{{QjPUIVFOQ%dccgC0*WnAJW zL*1k^HZ5-%bN;%C&2vpW`=;dB5iu4SR48yF$;K8{SY`7mu6c z@q{10W=zwHuav3wid&;5tHCUlUgeVf&>wKuUfEVuUsS%XZ2RPvr>;HI=<(RACmN-M zR8(DJD^lePC9|rUrFgR?>hO#VkFo8}zA@jt{ERalZl$!LP4-GTT`1w}QNUcvuEFRv z`)NyzRG!e-04~~Y1DK>70lGq9rD4J}>V(1*UxcCtBUmyi-Y8Q$NOTQ&VfJIlBRI;7 z5Dr6QNIl|8NTfO>Jf|kZVh7n>hL^)`@3r1BaPIKjxrLrjf8A>RDaI{wYlKG)6-7R~ zsZQ}Kk{T~BDVLo#Zm@cc<&x{X<~boVS5(zfvp1s3RbASf6EKpp>+IFV9s`#Yx#+I& zMz5zL9IUgaqrnG*_=_qm|JBcwfl`bw=c=uU^R>Nm%k4_TeDjy|&K2eKwx!u8 z9&lbdJ?yJ@)>!NgE_vN8+*}$8+Uxk4EBNje>!s2_nOCtE+ie>zl!9&!!I)?QPMD&P zm$5sb#Le|%L<#tZbz%~WWv&yUZH6NLl>OK#CBOp{e~$&fuqQd03DJfLrcWa}IvMu* zy;z7L)WxyINd`m}Fh=l&6EWmHUGLkeP{6Vc;Xq->+AS`1T*b9>SJ#<2Cf!N<)o7Ms z!Gj)CiteiY$f@_OT4C*IODVyil4|R)+8nCf&tw%_BEv!z3RSN|pG(k%hYGrU_Ec^& zNRpzS-nJ*v_QHeHPu}Iub>F_}G1*vdGR~ZSdaG(JEwXM{Df;~AK)j(<_O<)u)`qw* zQduoY)s+$7NdtxaGEAo-cGn7Z5yN#ApXWD1&-5uowpb7bR54QcA7kWG@gybdQQa&cxCKxup2Av3_#{04Z^J#@M&a}P$M<((Zx{A8 z!Ue=%xTpWEzWzKIhsO_xc?e$$ai{S63-$76>gtB?9usV&`qp=Kn*GE5C&Tx`^uyza zw{^ImGi-hkYkP`^0r5vgoSL$EjuxaoKBh2L;dk#~x%`TgefEDi7^(~cmE)UEw*l#i+5f-;!v^P%ZowUbhH*3Av)CifOJX7KS6#d|_83fqJ#8VL=h2KMI zGYTbGm=Q=0lfc{$IDTn;IxIgLZ(Z?)#!mln$0r3A(um zzBIGw6?zmj=H#CkvRoT+C{T=_kfQQ!%8T;loQ5;tH?lZ%M{aG+z75&bhJE`sNSO`$ z`0eget1V7SqB@uA;kQ4UkJ-235xxryG*uzwDPikrWOi1;8WASslh$U4RY{JHgggsL zMaZ|PI2Ise8dMEpuPnW`XYJY^W$n>4PxVOPCO#DnHKfqe+Y7BA6(=QJn}un5MkM7S zkL?&Gvnj|DI!4xt6BV*t)Zv0YV-+(%$}7QcBMZ01jlLEiPk>A3;M^g%K=cNDF6d!7 z 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 MM%a2mMFEwDZGpc{Zh z2i6P_D#$x}-%+Cef;AmZPv^Im%1BFIw0O0tt91F($?$Z|s1+Y16lGRKUYr84t4?-4 zpGHY-%H+oc5E%+AhB``?eHdgTBo27fGER3;Z`g8*%g^u_Cf0H}xUh0UjmzB%ZI)I7 zS*NZp2|+-`cS|5i0*J2FLH&4CVI?~4i*9+PwxNm@Y?0)#d2(1j$c;cD39eFH&lFvL z2k|pm#3M?~vBeUi;}zz$Kwf$5U6Kr<%NY6+e)L_kP+<&dn66Sj1m_Rg3Py&Er;Px) z`F3HCcYPQxS~D2%AV;boDm`Z9o>9EY0_KGbusw&ZCdK}=`o=VBY13KMUg2!`u-gIU zf*fj8213b`pgh5EPYb$- zs|9AWJQ5QfIn_$4wLyn8imfIu^brb5MTOu~iPx|-P(Q97$4(S#Y?yzzxx|KXyn~H7 zCge*6TN4cDp_72(VNuA@S)!t=VSx>yW&{NczlWL{$e=N)(rEKN1$Ty)?PgxBf-wbn zYb=381|fLlv;wFNqyMxG*a}#STGv^$W!6puC^Q~5 zAM@%M=<_PC$&j{M)UNQGCC@R* z5#S~$>4f{;A08Ez%c6>Cgkuq*<-=a3ifSueLQ<^5eHHY(u=^614c;wp*Tv0&fA(aw z0{cMYtw)s!^@Ev%baDXsVXe}43ip?D73L~7Gzv)L+=^DfJ)18eS^ELX2h}#nn<&py?3Yi zOKQW-9-5~)s#2Ts!JRj! zqya%&EiQNhpm`Z#vECAaUTkx$78lh^Wf@h7fi#*9G5fT=a|EO4MLs#e1^*CrG?hbB zBQ%;GQP(iW#uz6sETQmhkXdi1cL?lO3Wq>(yEO%1VKrQ<0apQMaUvvC**HR@P#0SH zQG|;(+)vnr%lz)V+k|Muf()BlSOKL&ELH4jY=O!<4VG#&YE0%%QZtff$~>2QMuK)? zc~8yc5O5p?_Yg2yC4w76Uj`PN4xASTTe)|Z%FXf(av2YhylFE1T*aGc-bDnEr0#~@ zs5S3zmR!fW3PjAz5ixVb*XUm4eI$`F3@E50Q7+Vb56_&_WL{T+BxV(Mwc@v(EMP*C zRItGmsgC-12qf|T9ZA?hYVyUWH1JxEJDc`)a&o3O?u*+SQ{s*(n-P(+QG5xvBoJos zW8}zMpKjh3Fn1Q}_>^`CI>5FClK19V!X}iMETPs?rPB%ngNb2Kx{arPCg`n)5gY1P z;x~bjVKg|r;jC@l#aCLX z^%eEi`0YRxzF_vrXnAw}7`30f&k>|YxUa=V0?}J8!KnJAk+U9Ag)o$boeXp`Uc_Dr znz=esK`_!Fn^PF>pN)uRvSKxux{*jZ8ALFe%KGh{G@Xk(WGrBDYmqwCVk(O&tQz^O z<}yEJOSG!2;879LmFP>=WiCPD^2Wuky=xw0MGNz4p^ZljLW1mP;O{U@0_cpVwnaj! zVSJj$C4L2fxL(ZRuvvs$1JNV2wgTla0eKQ0zTX|+FtTeH;Ha#hW`~A^_C_f-_01|x z21^%T?I-D!&Rdl+zcAjgb^}_lfV)V#wnDN@MD*l~Btme%MqHv+WXHiYwF+;?e1hxt~ z{1u%mV1k1mA5UQzrY+ThJqRm%j=+ZDIM9e=3CG0?;Of#_sVz1`(^SC2AfpK5s5oeX z8zy;p2)K^DroO?H1>MS#^Yo`9t|4eBaKz)sm-U&FeMYA7v=#mz{J_SQgk zuj4JYbK2fL8IVC=-HRUCT6A!00P4+H#^xpLS#KAs8Fw%pBD)WGD1J9qY9YzjB_k!7 z5XeyhijeO`G;*aAvAiN>10!)M2aiGKm7E41arSU=Cg*pL1s;~w@~fgP)tq55WP~5t zFKI4Sf~_a7zm;N$J#5S1B)WvGQ$TVSndIpG2|xp5rof}2Y5>TOMbmR^e5U%^h;!E^ zt--Miuqw1Gv^P^=dwe;JuMiU0kGQ{Cg{i&o!nS{=2@WE;E5duB^9DkT(x^|RID|e0 zC2f>TD#U{r-V;`?zv%miF<_8gE} z33Uac;yDXcRA|8@=3rf+k`1&Np_Kr8qlnfF5g5YQ7t9PShC*$pgV`T;;QeZKrr{Dj z#`H1d0f;KqUU)?B&w0-Pu=G&l#-*iO)R6Po#7O$>+b41tYe|5#GX)@86GZa0peH1B zT*&H?;v#nz`$)GH-t?`Nm6IV*8Mvx9-kMgs#HIw%sfbAOD#jZCtlU7aqRd=7mN&9+ zZ3R;(CPNw2UtOs4D;OA75CG~%9-n`I)!ehPQDP;G5jm+MOLN9rR1o*LLX(lvm?KC; zIZkH)ElB(>T?Uyk+t^c~1tW7R1tl3Z!&Fqw7{_K|yk;yZBfGBtL4m)dgY+@aa9}79 zxlPA_a9|F3S4RA+ZRf(lQ@BWEBjjVW5Tv)op4}k;L|F8r3<>B_kvYXjrj~ zCs#Pra#|kpaFKv1+Z!cl=p+7ekBG-wOK_igF5XlP7_=HoRgjK=8E_IVFwj|!N=pD> zEl-PLQzS>iPfr?vjwE^-^No$zZZD!gCDEH1nM+(wx5756jC&?*v?&-(V+JchQ?~$~ zbM)BwSon-vX!%5W&ah8ra&Lx1H}-okHt?fqD6!dJ3d{Q*dDiVmc-0LT9uiPDRN5G8 z0J=2rqH$31$ojD~L=SxLRZm0{BG3iau3gRdi< z%NPcAax^@1)A9XPVC*OQRtJnsPF_^t$)h&?FTZrWHHzSXrbWOu%ZC1#FkfY;aq^ zz(`R@k`N?s2aHvSgJ9sTJ~%J8GpCTI@C^e7zQL5Wi`+C48-~Y_(YbRRW*a=7Fk=j0 zD}Yqg{7H?u71ydS+p(QTwPsVrq0&lmF3uqzh2?&JO)bDq{7-d;j0A9C5Txn_phNTq zA12|pPPh-A!PeRzu^BKk!r_GK5U^k~CS|M~XpcAzoTWT4a?ga}Nw&*y{{@cpt5;u`?UDxq z@-7H)bOeKnBVKN!f!;jgDu8h(249apjiWaK=FUPKy-2TF*cVsh7zknTF(i-zAhkba z{+0&(g!|nifgW2bKpL=+F&*%|U-hftD%)7#vt%qvJbDibL1F-Z0ZUb)@@r7~hHQFG z&_6i_m;TvS0jLO+t?LBc`4&-<%n=QfHYv#iW?ORn@Q>}7@jaCD@Ms_=@xrKN!7)NnB`De z(ph6xh2`i@4nj4dmiyBbxg;-S!Kb1lT?Iv37NMpd8R?3KWMKPzRuNnM8FpOkT>)~ps6v7%6p*1H0g2Gx*G*!&ZUrvX1uipU`)vLac~&d~ zv_`u5Ub=Ad6b=(o!U2E%SU0El(2|(F>ixRc-GaXdlG|t|H}l)gi^S@L6$Hv-S8$J4=j?T=m3J z$qBu?mW$g7J8pO7ov?wjE5w~)i{S~Tl`C)_v}l9PSaHsia{H9QvGIwJ#p@6T%WDFQ zvDVE2JY9e^HWF`RcnuAJA z8F?#5@`)MG(VPge9G&gM9kR#LCuQxHJb%y{l#_3cW}Y{S1G2hrxT3nTQv^otuyKdP zGG>!4uBc=r{5~!jkB-D46ri{gr`{elO6cNV9~jz1LS+l)zOYjj(?*fTaZG8i>}gOa`Hio^kMV<1U^uetP`!SHDVT zzaBs$LJOBw)SOTjZlmyaK=&ZBNURdXn_)9XbaETrMmec=$E0k&WFQq$GAiNmA9{?N zAt7X7KPfBI=Wsd{j5mb~N_?J(OmZ-bl^bwb7?VK|{20y4D&N$b?gP1sF;2!$ybzuy z3_<@GveJ$wD`4&u)mh5M4FRAk3=Uh-(oIgd_Y(|;UM(nNm)@PmCY&D2y|FnuKDpSp zpNXfy@YsBeE{Y4Y5zTC#Iwxi4L0a{gyC>pCa{zQ2>gaM>GCgO#nZ3L@`9*tGLtWkq zqH17L+$fHFGB~s*lpt9y5uxRVMTnkQo@e{+d2Zlw4wt>G#LgkLNQ)0jdFag&; z_Vgicd{`J?BU4ePBreXwQoOkyA75Ll%~FTndCT(4yLq_%#lGUz!FGKhaHiS4aIxWw ze03Jr+)1SWi={G5FUFE`9IYnol$yl~4T#_$_;m8n=nBftr>&NFT=ro=X(iFF73E<5 zn)$Ww{bt+r>Tj+zg7Qnj5_iJ7%zJrp9_|;AsyYpVuyBOcIv!R{I$|SRVbq-(YC;2` z2$ny=ss4gu*svb)W=Vx7od?f(QjIkRO>Od!QoDezT?mIIscHjW%+F$0+|E5Sjm~zv z)4d-Nn@@=JypcHtoVG|a8uS}Lh|o80XpKwvO9lOWdN5o!%NN&=X!!IDiOZAosJ;|- zC~30MpkzsSKsO&w%dl@wQD6>YV2xMQ(?R!(P;NU3{dahz)I~ywI376)_ivyz%hgIU zFoI4T7NbTak#eZgxt_WG+Ymf&tILBic;_ zPM=2A)0+3sd6RSU5pk+Jsm@f2mw9w!GKl5|jp3`chcW4^$n+ukY8qb#7qOqhkPQsC z0=GuHCPKcr51bvC*#lM*4U4s-2Xms7m4x7)efbL5zP?8#rK{a)7LPG1DRnZGi?jJs zmy@pVO@iLA1GmL61R7%_PD9`cD0Pet6`!NtwL3ZBoG;ZN?#KP9x-d2gsoMXblDesNRn>WOQ05&^=+rnD3M+4o?v))s< zW%}6AXlCZNJRsuML%0WbKQ|U`&g=cpQkO0R8f!KtMo?Q;oMyCX*t5E3t_!J~X>~N{ zv2N_sHe5t_GaJIra3u;Y)qFKITZt~ziR++|Rn%M=71bT%R73%tmLdsQJ`VdPpfVz{ z&kEjSStYa}z~Hu)iCa-mj5jaNYr`{LYf_z;DM+E|+;ssaB4MjWB`(dEgeI8HH4?a# zD#2)EFuFxL6>~Vk_=1HBYy;#3KfA>iQk8OnXdiBuOazh?HK2pR8Qj=UyoDi!8q&SB z%&CnWcEsP9CQskLpOSlQ1cuDMUu;OnGXp!TaC$vRkYzTZ)!vZasqHWTi{^5;9tEN zGc5)MaDSDUKM`^`*f5uk1ejacTR$tP)TT2HGGYbvY=N`NjWuuB&tUrn*ZkuEO3>KC zY)={e8tg{797ardELj;V?@!-G`DA8;Xv-8$cEDgN?8YnJ*~mSZF)FatHjqAuU!7c9 zCZmCE5Fm&-Pz92-XUKrDM!q7^`A*QVfXbs2mW@79RB z&KcQkNXEJc5X*duFNIyq4y1?Gr*68PiSCSz?9D#~H@0^o1y(EL6TqPXhZAC41cjj` z{bJcb4lqK7jQd4KnjuzNGq$i-)T9eIlM?q>lcE%LAHt~xO@u>pr1=%*3Zw@+E3F+~ z8u}!N?`1?zx(2IZdNKtiN`IVm-g+%MhfstY#(SIhs55;HxpC{@F>_dkgGZpw_A0d^ zm<)R+*w6%iOViGNZ~bV_BR@}Uj-r}%Wt4hUqK*_p8ecTtc_@!4J8Ic%s-($jw=1dC z#Qczhcqs_;sInM`xngNwKD5ReA0jcy%46kW{wewKNjk>D0R|d&cnv*z!g$<|#zaIK zX8jN0asewFSOr|qCg44g({m^^I;aJO6%-QcilI+W;S5tWjD_q<7Y0O(25BMQl>oh& zbra`}W)lPk&vx<@$S-IuSUflWJcb_vdob29il(gPCVTE2wcebpY|ODcF#vbE{0jcI zK_8Ik#~ZSfg@VT2o1yNA8*{E??gn~pvDe$Ri(hbg?&aR5m+wyg^MCWZzk2My=j%WF zH@AQB|2Y1w%Rl&)*%yBGv-bwx`m@)*I{n;ReqTZn54BT|R}c>zqh{Z{$EVCD`V>Ld zuGzJsCT{@6)IS+iTPU6{` zOVSNdiW{34sI7auxzO`~!QwXWjZbRv@e17R?(@wOyy~6q*}mMQrq0~3W)DAW<Twb1PhR5QH2EU#jNGtgu8{l=1%0mD@QY{2oHlK2ow=2 zm|SGQ{d4XORl9jeYU<`G6`eenGjfv@(IK_P%J|Y5=h$C3x;QClBCR0WupG?c2K*3%>v`}mCbu}R*C(0FI%n6ta z5EnpLQt*Ea!xZpr(w(C@*t@E`myAh3apT55 zfG@93)xL3dt@+xw&;0P@Bi{wYP+xf?6-dB zBmepTdGCk6``U#ce(kru|NC$K%kzKod&58d^szs7wx|BT=X)-sO#8FEFyE#czdqfl z%l)ocM?nIxHuK$DJUWvF)V&O5a)5V^`|bUXXTSWB!+(42U!^bp^`GM4 z`jx)_`qV!ko_TZloj3pDyi51~Ulv*<` zX5BeeS6!ef46fDUvEex@G=Lh;8lSj%?_X|Xv7LElo0E${%6OX5h@2`RYwfz1G9M-*=_-Q2EA-Os<` zMNh*KVFTxu{9)Mn z|KGdc{DtM_==3=x<>U_VkIyzm_)aN}8h}Nq(1Tnl3D)v;;Us69Y-`!~) z@;OfoZAe0@^xzXHP;96I;sdVHJo#!0m08*wp523WdaBIh0UsgZ;#JfvIi{nqPY*&M z2TC_a+KVU{vqTWKi1aL^zWIahGr4p8>G8R2!Q=ECWjJ_y+Bk377UO`!C;n<-_0q@Z2W~ zpZ}}B%lu>Q_h0+cOykcduHA|FCn9Te3ExsseXvxUxdF#e!%RI0W7Sf#-}uU}O#J!R zKXS_a_PM|M<`+Bu?f3rlnfsN$xO(?nfBUa~{(Im0*WWLG`v+fI`u-c=dg0(FJ-_e= z(fX}u&z&lb4dttcp?Yx$*%PO9Y&B5|a@m&nR$0BrzvK!S?AeW%BrktTTM-peft1B! zlBH7JdRql-Jtd-!Q!7NmH@OoAc`Zc_uZeY|X1o+f4P&^oCv-U%X#m#MP%oDKvlTb` zC^66i*a1esDD&}h1p^9rd?H~bjbg@`VDo|>V+tx`)-=;{kjEC07G{Om7+3>wXhaIb z*;>*mr<{_)Qbm>K!*T%z_ghE)$4jpWfB9g1Q0z?OPe*-RGEH7ozdW4{9u=+!<#UI# zSA(IpwAlQOS^VKbT<)q@-w~q!;eY!#pZPDp)pzvE-~78T|J+}H`^vfRyeA#a)ah%J z`BN(7=%pBb4}hkEUkT^{N8f#91oAE1a8YPeOB<5c(^wH7H@TQP8l88g%Xta?4-fEo zOQ{|gTbe~@bO<{D@lp|xT*-QD9=a7ekv7$=It;3OY##nVHdCZf$l!*YO^5ctsFNs0 zn1PyVCqfV^%wY?hfSc0sl6TpiFqV0gYrRxJ;=x}RHALQb1174B@eXcy+OCwaXUP+m zxNkko$Hu}rIrp1O)74Rg8*=X0G#Z zN_7qVeA{870|FFXd?Ft0S)NSE;LRIWJT^&lhZq;bZm)2ILgSvj-1I|#>|ckMaw@6% z0Qb}YNxP{XTDKH=<3qRB_77OZm!L+YZk(S7PvWlXE~oykQwLWPXA0gKlv-@BcI6l^ zmp_jyGx)$IKloC{Xx}1PM|O1W6TB4%@)TA0R%9Z0ezK;l4E?vGK&YZ>G{iyOl~Gk< zoW~6*G{nX&EEr*{jT-$?7TH&aFPJH5@$ksU(4)_bncmIQxRV^Q<^^x$$c7 z`#=5a$3i3*k$cKz3wWJUA54Q%)zjEonsy$zVO#UP9M7BZ<{RQ6KHQ+Kk9(MwK~j(l zvEK1^?4l6Q=>?Q%H(1oG)0$C+58#r$XZW?izgi3F}e#d8`Z%e`_Xw6IV^x zcF<6@--c-HnVmQR5FWVGf>jTQxh1St_sA`P01RNF+anw%Uo`$8DeWPiFk_VgdI`R)EwxY?&&&8O-B!}oGmcteB) zoN~iAs_mZHxQ7Z|y$2}|-BWIDJO3JWWo}3a*1!#k$F7yGqUOHSO@)W`p(6JqS^IAF z85=b{HVLH0ksJZreh4}o2cLa*22-6Ffn{>Qa#Fs6LfeZ?%3n_Hd1pq>b~%KbOKJ^_ zdI-CgcKByrPC=WY&QM_$&+&zzpa3~^q= z;TOZHX46QE*tvw(TIk*qhSV^Qm~~<6#499@Jj3X(Ck1IOtsI`kSm$D;=ReW#Awb)a z0|%4U&+RsTZ#Vho2zGMNb^s-v%!`$`yXwt-sOo<(%34IYk(oVAevSq=$vJO4JvW4* z{vb-KO?4?B*Iz(Lx#z1H_=RLsRe0(fWKiz$L(UVY)K8%DmWLlS{nH;3a$Ki{SIUsp zCr%mf`1y+t{76{=zE`6*Jhhl|T{L|3t3y|XTFX&`^Pf7rAi2TtCfO7Y>F|V^kk5Jv zNfW=tJ?dH!t`O`+rZ9sX0{rYatTz0$A!}tfQ)80hwyII{!iLu3w?8?L3D0UszQ4Ke?yEIKxig$biO=@CO`YT&TxrWFQB;KGXM^CqnRg{(Z(YIqP$dWjEv#-NM006 z?)_w#LpPqQVW9u&krGqc=8f&Gds4Z2s_@d;BmW|{5YOk8m4zemxs3Yw$^!0)Scr`b zD=YS2heGw*LR|RkdZJrDJ&eD-TCuT~b6G$BaR6h*-dG+!%k`=myq(8C6rg+uFW|2H zefK?>&by2Lv6SF`>G9z(-FxylMy5E6KRTGjIjzU8W)EM@hW1Od`!;qb-8Dn6xTm;u zEX(i1iqRZDhhtiJ$rehu%@td{&M+edSW~&!;dwj0!o~P3%ksmPU<)gLT*cpygu9Fo r3(4`7GjY|g^9CX?_J3=3+!>2qOc`Ie6=PQteTk9sjrxrr{o(%)tyJVf literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/backg02.jpg b/novel-admin/src/main/resources/static/img/backg02.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c1cb994137f9fad6c36bb8f51a34d645e082dfa6 GIT binary patch literal 128466 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 aF+wR|!l;FZ6+|pJP_D6Js)8&ifB)H*zFHvw literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/background-login.jpg b/novel-admin/src/main/resources/static/img/background-login.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88694de605c8b4cfff3d17730a9e890128660635 GIT binary patch literal 2073522 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

    q{g$--z~pR!P8M(1E)bJ3g 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

    $ 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%0DEQ!zIw~c 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�P>*>8YotJwk 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�!pcU=@jMMb~@NRc8{x>PX| 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¬7I4e3z0o=CQAWzBFPh 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%0Dsc`lqMV2c!b9a@ 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�QLz)B``3hJ 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

      q| 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

      $$v~FA!^w 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�X0m= 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 ByA99~qG2=_RUEqn`& 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⪚Hvq@%$o|}Pf8LqXyU4( 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%0AVXi-qE>Fm!%u32V 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

      nv6NXVS}i1m%X7szEKt0Tw!Q-?4A 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

      SJ6{TMlF1nR8;mI+hiA}+l^ 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

      lYqWP0l!yG}d+;~xB|uDKS#uOr{QFh0btG#w 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%0DvlKiScGU<8=b){GFB@#9fJ}-0cN9L8` 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/background_login.jpg b/novel-admin/src/main/resources/static/img/background_login.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7ebe2ea055c8b8b947ba246b67584a2c8d4eb142 GIT binary patch literal 53221 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%0A0J#VC93G(RI9s94Jqb33H(xh)5C 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�h@&XyU6>1o0H4{|XNR tyKA>P*qu|kR_rp(GB6hb7YaXyUU8*TM{-*tU`@Aba#^E~%;|9CT-hfG!1LBLe9IpnM{ z9*$>O0p3*G5H{cxV(&}}p^?yJhy@mG7KD)!&;c$H97OkJa43+iugMdG| zaB1d{zeN%7j$kV$8vq+akp?6<0s%&$pa>&l6bf+|YzRjf!r;;uWq>fk7^5(TCg9Hx zL>i4vreIFvY(B@5p3EWMTrLX(g9Qc#LIaUdCff^!K%>zc9EOGlQV#=8FoR1BGGK7D zzcAnc4v9@=aj8rOc!QDX$@J%%L!?UoPJzz)O3UDUE|auiuplA}hJeC1Qu^YE$Nzs< zI{m9RhkF|Mx8DCr%yAB80kG2mhw0BINgGGe-U!9QSg`>jm&tZ!GJU^P(b1d9Wpcck zEU=Xm3apDKlBkRg!=XmLdk5+#%N#|!{`*m=ohp(d#Fr@R&mJT*{FG?aK zBb#D}JLVkJJ^phmV-UXWgu?pch4s413FUysi9dmOouuT9$?!K%wQQaEc`CQ>kw+HR z)@tcJ0)arXo{*5hpO&mn1RTk%(+uPBYHMpXgid^q#rd9NEB)u4*uE8E<6%7k>ywh6 z=V9WaD33l5mRJmXLIS#hbOB!k^wT^)9f0wxUcr!09Vid|Gl@AfA;AaO*Tu-?uv5wB_d? ze_wc83@v7*Hy*D`0=ZCFQ_XScs>y`?2_m@JIcbUyR%l)uGF7P4)rzKmi zgE0HRc-@7l*)#m75MJoEG<$VK_J-Afj(V6@Z}uX)80PD>3wbI{F28)h`Dw$fab?HI ziOU}QR$uj}ZLKp}x?c}d;88{YZOSuR@_S=x4sY*|q{#N9jrj5P6Yqkq_5>W~36OY)|CtJu``tStB#IoQyj&KLzKr;{4(Z9Xz4)Z;X5f?!>1w>gUPz8&w|V{Sia4 z7Y2rA0Ov`A(5|bFPOw}PpXa7$-z6c1uG6)V4>3ghw;}y{n_Nnv2 zLG}8_#&zF?#H@^i=Bo|$wEmBBrnrdwil7l@@ReZStqq?4Mfjz(-g{4T{Z^qiB1 zz^-dlX?hlk7L4{qlcwtk_>b>rOkc6D?pi3Rb7EF*=Umh54ev>$% z_94$c2uP9eUmfjoCmVy55_~n*WsCCPOMEji9v58*4jFUluI#th8#TMCc)60U%Hqj0 z@6*Np!jXcWL;0v!JkDeD9+dHm+S89gR_ez@CP>^T({K@2?>vq^;&{#m!zWum84mGO!HVd83!PiwY zpAYzY(UdMZl8czj9i|7$THLMxw0kn(7B5d`I;6) zhmY{yi>B?RRhZO)rigLxWxf3>0fW+7yK3s^3$Vnvz10g>8do$gmMZXG$giW-9fqn8 zKYT0BcFBC(N^REOJ6tay-E3^o!xAcMbssmY+_y;1R9VF}Y(8FDoL|pdO0gSX@`#UK zRmod)!)9ku6=ky%X#`mF%*UPX5vdMMgeuQ9i2}V@=%Ig&|H9BG*dBIIRmY7tXFYiM z{M6V7ckToYzvZ~?~ z9dQN$txWTXP)ckZ@q@Sjmel5crc7bD;_0Jh`M2M7m^Cfu1#6hiy|}67Rz8-w=5*pJ4pG6HD8e*$A#CviD5Rs7^$Q_zfBU3TR8vs)&9)yhAY?2oDT2%*GNIAgZr z{e0~_ta?{xcJ6Ck^l>MUb%%w))1PQ@+NBFgjn%oBr0%M$AF!x@baizr=MHjT=hY@EY2&}t@Q z{ZnVnOz$hdeoP)y?GhIf>SC72hZNkGdQ0NYDf*SxrY5MZ^&FYM;dEp3;;!$u%;sO9*H6;am6P|>F0)n;;U$$_nB zN9y(a2IW=|yC}d+eB|P6a-ht@je|quCbehk#7CCZea9A2AAI}4Qy`UvYZNNw1F}>Y hD}v^2s$Q3a%g~P`+Sj%~6*jJ|cGmW|Ldy%0{{qKIBM1Nh literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/browser.png b/novel-admin/src/main/resources/static/img/browser.png new file mode 100644 index 0000000000000000000000000000000000000000..20076c9d92119a0daf48018c2688b8f35fa176e1 GIT binary patch literal 70303 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ⅅ5{TXS0+^ndqaA4Y(3{KB*k$^$54vgkWOEpnc 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 z zG3X>OM_GbZUwX2zD7PqYNuNn0zh1j$`48W%-LPim!nMDAw_@$8(XL&4d*Rxe;`HGY z?>*u-4+;J7<2_v`B$gJI<`pB6iEavT?5DVLZjW`pZe0BRqJ=X?bnj^2XYknB->qJ; ze(slDw`3Q4|&58#Bm9(&FLa!kr@q>{6EESzwBrq3E5j zMdjt5_5=R>ZuF>$zsD++If~q((%j;*((uV{XT&WYZY7XinPB%d-&ELF2^0$pN}uNC z;nte+Gku4hD9$b@Qx#{GDvHYrN()p+9f$505ie@KHRwWwSUweWHIShKku-4CfL>eE zloc3-s+bz7{Cs6z`GH~M*FG!CDlAauJ;620l@EUEIrdC0VQA)xY91_ey+Y#G60xHS zm5^XyWEtodUr^&`W<>f2{z_BJdic$Z3YLPZRaDZJ6P1d{w9ucmbP-NPR4A>g#W!rC zS;eM);O&~LsPl*QG-8QdfT6xI{a~Q3twE+DtyD&>T&2Z389AEbjj#yFE*mXr=X4}+ z0vMGAq1`a>pv_J?Ll(^N>2vr47xUEVKT;v!MO>k0ILasujWoYb? zCIK)JqN2+~TB0ZJxGD0~9QzT!B^Q?FW|z>Qu27L*Qd+bPm)nMERHeB&waNG1VM1(fPL6k(8Bh|Lg$8T*G8kPeI;_SlnGWkwGJ;o|8EOgrX`(-2;otwnbhOm< zZUAzaGrppp%SV7)AXNc3MGL?vWvt-uVltFe*fjt`(jXfunVl%=Xloni_zCFjpy=Q* zLRek8b^%n(kX~*F?;QRCu%dZ7Ys7B``jr*zsS2;LV_^jNSkwnr_!15wk-alo;UNQd zBeXV9Ho$i{Wke@Ve}#u{hKP&uPgj|$@hQ-{i6*F{t)=Z$a{3_s1t@~4F-aBc%%Fo> z;*NA??7m4|oYvlXtj)t&^+F}G8F?kSzs*@c;doKS^YW6k^IzBwIxZ$eR0NIy^QnL% z_8b62mPvrNnT!tV{Q%!n#tKBys_MYp^lu&Mi*SU6fc}NyHvNSswP0@piwyzxt=PWg z;7SBbNS>pPHd<4ufQ$NpK(vv(1|NW#DS;SFih6NoR3a#cTVjH8$~5@I*hWQ}mi~v3 z5MYB7WGZ$S1xqBjMb>yf=mW_>D>+S*!i@(JP)D16693Z5(51`>SP@cE>at@*kBq8` zDOuSA`L(k5v_bk$)?j1|t(pj9QlSiFv#?NJMQc=n*2-u+V89z*kp7ayxX5F3o!mbE zF(M_elrHqDb8wn^<$~=KR;QN;Hchl2@&`%e=TNpZBA%cU(gwLYN(0JZjgkxXf^oK_ zf*f898-U4J&kz1f2TYObB^Ys*yIRTU5ag6in&blmgdPAL*pX84pah5hVHXcs^wC%j zm%A;Slmv{FCZGXb^=RU8XcZP<10HTvP?V1;-xYEIXqOUBlTLy)+F)OMP@IRFV%pQfbF%+6XX^N2H z9ibZlZO*E52pu#r-hkzHXg1gr%0`q7R5@0&;hq`T04Yj@IbcvK40Jz|0m&giY=L>f zT{l32t*Q2*owmVl1v*kKP;DkblPs_*45Op)wW64@_5xdq5X*o;OvDAGp=tJ?N9hicfCCLeV@$0L$elEz*PhY>1IN&4=*Vd6pe@`4 zacN6?UQao*nd4+<=hT1V?1gjYPIhrx{Lh*J{m!JMCdY&e#ktU|PY*oIOW)26dW zB*XrVZebveDitMQqmF_)qNa~7cQ@)Nn)}1xh!Krjhzi7t4j5{c5(y|n3qYke0oSOk zI)Kw5R!u?zrHFW$TCw(&_Ne|(n9^fBEw$NGTQi^if{|PMd<^a z8+8L_3KhUE^dTXFsEo}i<0l4>g+G+hrXEd~M%o}_!jcJ-U^7VINEs&51Q86nK}DS- zql~4`D`E=_DI!{E!)853WecsSPPIVXPrWtp78s++a5quO_Ps7+g`tT|&}EjG7N*(G zfQ@?i>Vq(;0mK&uYzt)hfLcE)KaIMKl0^l^vtxZn`cf)qF!3y9Fdphu zLdk;cUJ#Ss*J#bs>fZz6JBb za^Pz?jqRvnq51|X%n!DwnO^Aey;#xQ2vrqy_Xk+BiCS<2WCr>QI)wM%L*IAP!XKn; zK*tUu0ueO$08EpY1}GuZkSn?xXiudT%_%c95fJ|d0V(-l02q*vJ_lh}QI$;fJ<$JP zmNcZT@MMqC`MN3;P%~+mD%*{ALxzUdRKLvsZuZ54V{VFZ+@1&vFatS!p0?mIphK;U ziL|G~gocKlr^(kwu7<|>lz`nn5;sEU2Xz3q8Jmk#^gDEb$Dk(YUu})lB_a?$1O}Z| z6lQ1`>M2orLLsqhDU_r%reI)|srQJtLx|{78r7=QsYCB9NiF4Cb`6ycYvj~T)zTb3 zn!zulZvtVc|I`sF8~O@-Ld69Z_q_nZ5YthBJ=yHP!6<)CI#U^A4J}$V${=;_fIP}* z!;53bO-E`20%25?Hu#=CrKNkGK7a*fjFHR@56(Wce~9y4i8QKeKw8Ep_vre(=Ug~cET4L>3yJ78=gME7*1 zfHs2Xgu!;8vfBt0b`()VOMf&4QBV?8BCMKNg@#eo^MJ(CX;Yc81XV#ajGMY=R64}CaNErT=w^Lw3_7TuF$>H*l9H{UYr>^S7E4Dy{akMVCS?hoy4(ZgdU_l!$oLP zCXfhL)MZd7Mneuj&1Jpj2GRu@i)s}rOt5j78FU(D0ZIZ2FK9$LliE<$Q9*l36p$At zn^N#S1*kW~+I}M-Zv~U21p`rvGzR&oqYWf5Gtl&dQ%+-NB+6m*=)xk{2^2*gZFZ*x z289nG^N9T6TtW{pcoci9z&MR@Ho^+zo-uYz3JwR=%Iy3g%P_N)29$q*cmu}KjyfjP zP_oo+Pvh73f`b_YW{d@FO8rqf5QBzjNUM+@xK7}O##Ggyv8{P?Ys8F)ni_3YnaQWq z7&kARiHH?^$p2_ayT9$m4_3TDu|*A@u+>!ZMh(AFttqdn)AIVwA3RHt%uo2J{jwo* zhZWY)l9iRFs&2Zf^vMJF>U5>mH8sjX^EP)nl@#}(cP(*=8THL~qZQR?t9y*bvKO^K^^Mut;efFD zG>De8+TP{n_k$E#qo!MB>D(d1uf43UDXD&U#@;izHYdp%BZoaEL-aC zzQ3+YU#5K**z-`@Urw7u&67i?<31D9;l9z>R##N5b9Y}^R{5g3>TQzqW(k?y>wa_F zYSKEg_b*8ch8OD4SX-&vGHBRj*$Z5MWyl}0h@@P!|Nf)KhwaWJe>qH1`-Vz@?vFtu zhuqZTazTCNOpbt;_?6Rb@&Pq;z0&QbbnY;v7OktQ_5TbWGiaBtrczr~^ZmdulIm%@ z@}t(1II&3!hL%;m(R8oU>OF@Kb6=uDDbWhukzQ9*#BmGUJcTVgAM_0o&v!4YY^ds0 zNsEnYbwQ&C51o-!^`fTYm7nd!wWp#~47d~j@ z2)9t&SzKKc;qbR0F<$V+fC!VY{8QG`($V>87d;XIem_WCoG&(@JMv+UM6t@iz`?jd8 zR#WqQ#C&laKZZYf$Sq;>8*9mM;f+Dvy7wLQd8bMDGSt<&>MC$uO=Zm!&e$>IIgj<4 zin8*#oEUME;L)+Jf2E3e%}H2286oDab#NWFYr%y6Jv%#$U${FsMP8wQQC*k!^{Byv zhTbhN)#+a^A0EKnxr-M&WTr?Q)$-|)5+CQ;V^=0hMDu6(9{Fm#vz`5r1;1X2D|oVa zz~CvP_P^6>@}gEd4YBRwbS-mDKW_<7nAl>{!#DLjFn9wIr_Y;JU0zf2@ZQOFQwG}h z9EhvD#||GcFY3~wF}>^u&iDAc@1lnx{eMajee~|T!=~JF`CTlE`+Qb$r55+}8tTfP z#d-g+WI#{nJ`RJr^|GJibD-;~g!p-`k%DovlTzcF-)$hHh2;BQNB#P5f5=PYOfD-2 zNx>DbUR4!D>=}s;`t@+_xbdM_F`I9S+n`XhwNX?KUu zmd8hZG0XSB9M^UZ)3^AiRo2wK@$ENk=;)!NWi>T*g%jrqg7$CkV>5eGQj4c+$*@?d zXpzhDLz@OUbn7*J>+LMftCuyn=&m+!z_?Mvr%bq4S6;22F*GXuY2p|2Zrx3a|3Ebz z87AU;4eDhx#Ae)$N9DK!zYG$E`j^_Mv111fAL+W&sH>@4GlWl~Q@rnCEkw{f>S{93 zf7kYq`OE8H!DrR!Dl4kWwE7w{X7u>6JyuwR$o+9KgF$8 z6Gn{~9&S*-@U}lIYF3t2q?KU!GM&1~h1TdXbHz9Pa9e!;F*~bYzPZ)wXbUAwyB__$ zzM=s&deJpxtwuR_!m#1vM~vK3Sy?4?{7d|pn2Urkadd}hMC|Ji$W;=H5$j*Rg?iIe z)K=7#FBv*^_|S1f@9CAg^nRPf8Kg7Tt@+VGC-(fc`{=RL0XO5`5jklWm!6h}JH~K3 zyeJEcH>nx9#TAv66~#FjsbW3JC9M+EA7(sClhE^*{-lyv4_IFdioAn5*CIB$o@$k z9@mMlSn~DkCFcd$ibrfjk7QzgY-}7oIEkaJ(Q#>Mh+*v{nd%0UCM!u0%j3lglCv}o z4eHGJSEQ8K2x9Jq@t;@LD4(RI;5w@01VOZ@fY=IRcyY1(Se}3c2F0eQ38Nw+Zv`X5 zBwg?Ogc5RPlAD8V$4;%=w0Bx^E(cr@!&kgP&Fptd5-q@L1?e0aEi1&qr6NUMPF7lM zI6t4*fWX3lFwc|wccR+Jh7B8coC%B9&>6dIr8BlGdr@sDe_6GA+<;#|yq6WFvu8w0 z;^c%8^(4I0U(a5!7!|r!t@;jSZI>-s_|=!6O?@sXM0K5RxFDpu5qrk$%^1S7Ytjj(_9Skx+7bcpsPE_O@Nyp{$mL z&FAOyiG?T*_r0{G7tEPZc}O76BQ_D@B277tsse!L*-tZ{JR;#S3LJIrdiUz7lP8WH zJ-8PYoi?pmzI?NvmQ)c-LH|Eq8)461RBCF=bY#n8l@JHvmLSh~*vQ=v;RLJBP2ihojp;>BictD2D@}Ow)NQa%v{*&VV?qD+bwv+_e7@w~y|`2ZZZDu` zE^gedA@!se@9Lo=hmTz+vj({Kap-Q-skMc9dpn0defrG|DuyEFGYz;nr-89*D8GOF zkm+#if6m>_d&MxqB4QE#RMWkp3|CSYQ;~X}ot2sKFg-OfUKoZmusubAfw%m*moA(> z@z25C+dO{WeBiqHY3|eH*l-<1F3xec;RRf5)a=s0?bjM|b+xLRGHvzt{$apQ)RFM# zxsRPNdFu3;xcYdG>5KMrW`BlyB9q3C9X-O`!g-gloH&cN?T@*3c<-*m7XyXTu)Fso zA|vkKy&dH3@8`KKg?W0I0{o=9&gT?Y=jB85_qJ^9xMR3vjhm zWi%Q@-LHWLb&T^narEH613qNj&_2#R?YgzMwrp$X=+d`u?;ib*mIBBm=H>Go0BPM& zNw3I|>&bu*{>}>>&LP0>p z9Y1d`@Z!m%`!4e@cs@{RD^*z2mWm>3DW)+_2la5*8>%`Z$kFI4Ycw!SRdt7Y-^_tl z7m8N7;kwyz6DCcbVw%Rx=zuFDr=ZT*xG^J!4;f_Hx7WqE3gQy@{nuaZ+`aecdB4cS zo8GrW@7%o`8WME%_{kH2iN~HXPq!piAX{Cb^E&1o8WPLBb?0{Iebc>;p||hcx*B`? zuKy12S~b!PT4Eo4F+ujc_!VQwmkQF#UuepUp36k{gD+n|co`?GAibhBsEI8Oye&?X zJ$jre73mv<0XJfBk*FzxHi@c1Alh3Ha^=k7zjy6CFW?O6i`ubW+gi7=ad7SD=49W! z>rz1(vF0Z-wR{1t$I^!E=LY!un*!Qizu|l8^usqy8n#?nh2zp_6{G5osvNi+^EoOu zpki5CYI1^zA9epW4+lC04BjIQ=7-)ujcCt{fcHd5zN);svaD2DkSBkVDvH%peDC!- zrKe$8m0DXxYfzL|q2w*DetdPNmk-ooCn4EyKgfM3d#CUC2@@M8wP(v?qM!y!P4u;P zb?zTXgq6hg?DT2NJ$46h=JHa>ZU%j;Ik3+$A#mV(Z8aqXw7pFg08JQRIL_ub?{)M)@ zNS=`#8|ruN9DKbB;uurOFv=hlK$Jbo$b6P2Wpt6e2dQBJSpYg5836&s*)jCG=a~aL zxBq_R-V%o)J?(8ew`tq0mrGw4hwj~1`C@-UoRHDq^?Zw~dm0{|ymZ~q@11{}fI#lC zgx5?$9FB8`7ov)_sib?c68kq4x$?~6jMhb4(fG9U-O14)cUH9l`35&&Q)p34cB^{hemB5yR(N| z|3U6UhK(FK$~3yu7}N!1D|xsN?C1 z{(ipKxR=hJ-2eN}DNL2-)qO=3aT7g%A^G*XcTgIDePuA{%8PQJ%EXa@+@pR3Q*%Pa_e{T-v^3leot5+O z38Riq$$a=Ao%kj(Omz&s*1+LbH~>EQ$JQ->`tIvwGoYJIr*>WJUHUrr?7ldzgjh!~ zuOkj*pn&$vnB)F_ul-x!@I99JmWjgtZHve!r47mkrCq7=afHuh&l|inS#p9{5F2$L zx48zZiHkT;5*`v9cpc1p>GWa$9L;@2wYrQNvpjir=7S_*xPfAOt(X6c>eonBAl`<4 zsKuS78g-Taj?D>CKCD%55-XT)@8;HT;Gn_oLxv7^?dv{t(7*wM2BJDi9~|Vga_-~O z-K!GI6u++D^6T$A_a5^MiuvvDOFmaGUG=HO(qhxYE=zNfCfyiQx5q#<3>OO@NN z`Jcdi0&m}o3#n=9pLjvkt)4`)DWku;R#t44fPdIgs3HT+sFHQ zY=J88Sw;%~uFv_uc@?C$m|?QKi8M9s;ge_iPqUdaK~`RN25R~y_yOUk8sb6(ckTvW zJ9p%-Uw_(k;*6b{i%W-&U3&C(bG9GlPr`R?I|tp?Dyqhmx<5z{lnuOd{(i6gTLt)@ ze#*RzKqSB?rKUorfGMyqE=fMVaplsb%T|2{g)fwfkThL0DYet=l0% z6zX#)_~q5rg-V3;xb&HY`f+N!i2stsy8BHXRIzzg?(S$xqje$K-6W=fZ)3k$UNaBQ5O=+ z5Am34xA|(+jf;nGXyqakwk~vxx|u}4@9O$lnWrYc5bu0`gtJ+>iKqtt_@E}`e1Jkm!f zKqMmm#ugXPxViP|`Aeaxx=>MC$JC@rl2g-gbF_8FQ`Bz|0{PH&KWyCM@#o)%&-;bX z8^84HU;jFM?4QHCw|eZ@_Vb1n2jA6I*OnJ(Nx#&>ygdiGdoFXmZ``^U6-Pvp_;|5c z!d*SB%K{&-EBn2U?#nMqrO3Cx6q!``uA%%fNssbGk zLc^1B5A(y!+~-e>jP?btrcq=+d61fv9CsZvimfJ{$hDvwLD#RHJ^a_NKmN3PoXM=K zQ$Ls9PD6M6<7npS*v;0aqZ8PsRm9u3cTQg??-=WPMi+C*$KY>$<3hw6=Dr4ZAd7I9 zMXp@_+(D7Md)ewAwqLj&9CYpQmQ5Rf^5WgQP1T6!CB#+zB)7#ecS3`MuKW31x%BV_ zN@l>+f!DD^kGja2j~}EY5Z)`w?MHfuDs&As_Ah9?5;R1yD@~ma|EjL8(q*}C5abbO zK93hC3h3j|$IZ>P*BMj6{oq@-Z`~4986Tla@xzSFR$197SC=NxkiOf$|9->ITX*a} zaM~+u{f`m%;!f<{zh}p0Z1UXn!|KJ0iws&r1$HHL$t;W69&r8A$;&>0q2V!nk;IhH zHCecS;mochy!@`5zH%e*PhNSZ3EM^5$6OISe`6|t9G9Np|C+SBn)dv0a@-xCQ~Up^ zBAp@`M(Up&k0J?=o@G6*L(!L4&$DwgQ9?N(`KEwjctHNH*Ja=9fdSl8`*&>F_{)q2 zvv%G34H`TP70_&ZcQM&mbnCDZz{fGlGyc9JTol^?dlAX?@_XrT9dNObkqES;&ArSV z`Sa)5+0R=&_-E}p4$nKU^*i~`?wk4@U^3XKLXG}7kfsDMi~J9YXhD?x>_oc4e7UL_39rs|3(%2>$fmn|9*{Zjo}qZA^eDt=yi`Ru7vH_mzb-MkaQ6NqqCRr=ix zU(L4daXiGAdp_{Y*^As#IX0E+NIRd~xH4P)n4emDZiA>6pkE zZt)UO*iQQ7X(|nH-#*REdWaArUK~)uWe&}1<#na_Xv zz?9ndLBrn<9S6@^RywWAMK7zQeyP>Dpjs-rB0c%mQcE8@e%F z&D-w+uwl$AUmt&;yKmnz^om*QqPXi%bYWTUS=CTW|WI>)PeZRw8{dZNkpt z8?TkGUx)n$(9?6J`#k-EPMvAuc5!_4jxQF@>DhMHo!bEY{MnG}*AAvD(h0U}w&Qy$ zOtsHN!qPW^*i;%8`6QV{1YJI~q@uGVv50a8HQD?3wS(ch07Kx%mUNUgP z?R;1Kas2p+3tj<%fnNKUemBvqoh>Tbn9Qu&IdXG}Y zseAeQ^{bbrx;7|RQCs}gmoXxwkfO~1dv|{9xXx}0!I5(pE?)NZymI;Cg|o+s)R`1^ z%cmJhBD`CCeBq)MtAE(EW!vA|)^9y_WbulX-+sGl$(LVz`5CQlwwlrEN{q&9tAP8X zT*09WyAB;Y>**VG2kKpr`uCK@b9#2@>kW4dxSu+@$Mcx5;1P>^IPcZV+<1OoO&u}$ zn7kXVb@aN*y)1Z)Di1fW9Qot0mUI>|F9KuZgH!UOQblr|s=U6Ub9q@!LE?ktcqA}| z{w0j8hS=WycCp8y6Q@pj24DSa@mhtFz&4<(FMPN_a82L@*u&ZKYBPOM*Vr7Sz3hHPx0Q8qF_N zWIafT3%lv>dFIG&kBw`;S>!x1k1&yx0PW)9kGGp%?REI%>9eNuZ7!TUd-}wI_*$0l zDFL9nyCrO0uxRP3bsK)#zPRtuNi*hsHGhF=Vb`zNa>EnH4OviUP?x!OlH zt3^!(w2NZAyx;j-dWq_bK!Z?eDilXza=B6~_$09+3o3}!5 z+<-d1b|I*;R8guad4w`6*@}v^bvFgP7#@$GEKN&GO^9L@{@{rS&Nu$JcKO${XG|S9 zuwOqnS7+xQy&U=sa33~&+(?_X$%vpL%%baKZTX_fb2O(896fgYgPaHpf zs_rc_5z*8jrMYhYg2gM>to!-fK9d)JhFS>?bGm&oXZnmu6UL1mIbg0@lc%gxul550 zGUQ=LE?+|hkBip=fy7!f{|M>WMos3X`0D9sUpN|c6aj6Pb zInBu7&NldI3OH&{GfUh*DZPNwCzO5|TT3hy@LPdS7SA)OB z6@P70C2d2pw@*E&5L2%O749Y`A_*W8U;4}ZaC9wce__wT%a<;mKY!-f{<|Q;_28Qb z&5_eO9gQvp@TcaYFQd& zJWP&*8j4;v@2iE&zFo6v&ctOKS4^HVW5!I>q?|N$+St(}hq*h?$tg)K)jiykK#B0| z{_Zo|e?M^iJlFR|NC>IXm-2-UFRW0Gr^P9OR6&x`w`@<0U0xiGV&I71Mhk*8D^ z71x(`LwOsTZGV>eC^cRX8SHuFkKaK9FnNIQW35jt4$#5%rPZX6Kh4T`kcv}+{J1!Q zZyKYaSsACW3&%Z{Em^jB$?_FrgBfiN^X6+ivsNGhrGbSB)y_ZyZ9UJ+*63Kg_*&1Sh-WP$ z?nUsx_&mXG#pPZ5_8&NS=-|Nv2lnmzLs$*nZ=$;YK|(d`&X(CX0GHy{1^Klk$*U^0^4;?vu*$ZVBOJ9~nhDM)1 zaTi&R03Yu8<44aPI=)YUW1s-NOL|__Qz4P0Kg-R{OXJ0%(o0+yUUX!{y*syPpnmDp zfgL~X0qogK?uF1-QGtBEh<`59QSxqe9MchR@KVKie{RvFv3t}cTk3-(4-JQUT z`#paAe%r32IuvWWz4h$cp=M@nTbo*0SzB3{^}_rs>j`+@I>7t5pS-D}_UjmLKNFA_ zG*komU=!auE;=&&{C@M(d?4@T@%Ke2 zY%*X5lz&Yajr~Tz$J*32$HRc#I_CcU=-9Z1*w*~p&+cve zd(U3ezBc>!?cKBUj~o?LzA4KJLM?*E86fnW{@ItXyK9y#U$44~c}LmoY`Vb1N@n$?kqa8NFGx zp`;Bh3|OG}KfJwnTvONo2OPGFd&^L9Z`|VEd(>5}wXGetRjYN?QMK;9_eMnao?(Rz zviFdYOMrwxLJ~qkh#^4k^F9|4wEcab=db5g3nBO3bI*By_UDWbLVjJ5LAH!81=KMk zplQP+eSQ6Wef>i{-+149n3nE&^zwb%$G;3^b?IbcVr*>48Ud_}bn(xdkg$1u<8}bm zTu19yI=lwZ&*PiD^!h=o^R6J-K)L=JhLQj(XH`#)Q3o`0DB7 zNB1+Tshmf@?X}I%O3O&k%%#NM>sQQ~He>z6P?QaiO^691%HAM6z5+OrE{k>yqE0PJ=TjdXbH`TX+HeJ@_$x_rmWb|0%t=T15kJ-z7wF^0~2 z)@Wz)_Rak(_r3GAD83g$Kz#N=mktnZeSCer++CcW{-bxr2NpBrw?F-zZ{E0m^}@-+ zn6w!aW_Rty!w2{7WQ&SVuiUt9>HU28nK^~U?^dqdh>G-+W;_n`_TVJ7m`uZPze(Rj zAbaUH=pVos?&0nm*cjX^D73LiL;;(OF!6Lg3qHt^u6bq%2Rbd`{OO zT9jY@$PW=l!0QT9+N`Ou*^owh`+bW72-LBMAZ*6w=HT}c_6~M$9$tUr{QAL_i|)R! z4Lbu;6aBSPj-dx#{Ti8Y`mOP+yI1bG<}{P14KmD{vx6kPJ@Bd7x%xTIs z!fagXdlJ@%ADldI>8cHzw(a=g$8B)*Y{prdk&50UM_Bb*p5w-j^>%&vrw1^N%1U$H zedqkqBWKQEF0KxGd;ZE3l8{97^zh!TtLKg%yL5lAXHFKvdSIHEQI;3(cm08#dmtw| zG4Vb^Ok248kBDWthhzsFHo8;j;{gA_z~JY>s2aw8>DugKJgionqO4>A<_HB#fxW8?!PPtz@caE-nx17(r-VU z+;jZz>a``I9p%{D5zGMsmWQKd$Y)cJ{AuS^t_QI|Gw+`-4 zP0hfX1T`|c$ywzIApw_eJbvrR=0qj9zC+r|>0MMX+t>BYy^ANRv4oRWzI5{S^Y>@_ zJmhI;!-DJfP7b^C(n9R--Vfyr z?cCY8tDBT#=b*-eTyeQZI%Gtk_X3ZpG3kp6}e>2ezOb@ow~fpzLpcq?ltI9_B_8c-r7@?1+muR)5y-Y4=(-j4oQa)I_I{xkIvsPAo$&5DUwtbC|(G26To(P zQAfwgFyEA&m7SYUYJ!%ORn$0LeQXP_BDqu|msNaVyK*=qy68=nV4^aBmfOEl17?Gl zS6){&(48va`@U1qQRsH3C(jU}KYnoUq2cYbkG(>)oSx|)YMSYWI+>8lasK=0ANwFS zqeI>tx_Rm1`7=ikA3yQe{=XuN@6K7fb^DHOTQ+Unux{Pjm8)L3+qp&iw-~aB*TerL zAY1%d%;|(#hj%WR8-Tj#8pMvuC@9K}@pu|d%$Qzwrcqi_TtsLPCeIuPTiYyLzIr{1 zi+}gy?|Zk7HyhBe--sE19J}Q3==7NrN541U87@TvCF^~{?&Bv89OF8C_xt&aml5yi zZuGc*_40+Yr*0fL^7pCVQYlf+KS}(Aym^?1JZ$fu9=2<)AWPK`^+6Ee%H>ZPdncm9uGuF5b)%{g%T!arwD|9$-Uk;BfJ zAADA<+qv`G?PQsYZk_SkWm_GbUwi687{w9!wEtNg=NvM0cR1h<4|09u>g5+0qz!In zn|eFjd49-6vNbz1-6%OOBFH}+^LDGPCfh7rwtD@>E!%hg@YAomzh1L?^X~@_pMLc8 z_@4*=_|0azGp3vp(-XWloI4h9WA(2m|2}i>JYpIW(40MU{P4B=CoXUHOHIcyE`T{E zuK2yzdn|-HdH#+qDrg4Jx`Q_G>Llg#7jjdLM`ftJ$%r7U+=+Fb9=brkx6l}X?az$ zTBW8*r)$x9}heOjt(3Ca}k0qPQYtBSI?H2TWzqZubX{Rer|3~Rz_NqVO&J8Kc;4_ zoUKMqwpp+gCEquF{S85R?;rd3|9RrVl@q`J@%vBPmYu|8&+y2s_@pQ6t{vO>+nqy) zj-CAb^qI5&{B!2ivA^ye{PV)4jn6X@vLXq_Mp1EvkpY-TGe2|c;)6FX-f$qm&nOYV z#-be$H^#Tn}L#4f<`Sum7DU{EOg-IIq{-4hxV2+V`tToZwl3B;B$6%~9T z5EfOH3nFg&M#jF+q^hyTy1XbqH!lE78yqz>{}raq^dI@kP@dcE;VV8(+lx6S4mWN; zc=+gr>F#VwczaKdH*O5a9|J?uk*1eC{ zfBpTp+rQqj@hbxCn$^p0d)mEn4rMdQ#yuKv9^4x?d>2+SbO{gjc>WHn4g!J@VDtzI z4rco}v-7cJ49ijy;|wF%enFvFe{-k*DC?Q?PyllM#?3(Y`&~c%^80~9M-Tk8d-u0n zm;ZvvYpb~I=)@Zvemi^V%r9q79zJ^P*zps`{yKf`_p?{eo!E9OEiN0!!>T!k5%Kw9 z;W)9t_r&ST4{e=1ynUK{O|cHj6EU3aqw7a5RB}4Gzr2&FyYV{!K+P>aPxVo@c(kczw=2J4quf)(XbAs5R&0&#F^=v%ru@7c?@AHlIt zqg9xsF)4faD8HF@2mz|0PwqW>`qJL3M`SuBszM#l)O;SQOly&5?bP&9Sp$QYnE}d$ z4tx2{;lqFadEk#dzwKPHWD_*P*IPGXc^3*uuU_`Om($xf-pn+xLG-=;R~S^k0jh(; zIl)etpmm2@K-hyxnP7iU_q3eM3^KP66K)Xb8I1E_hlB;6=sj}6v^fixu3WSJt4)ag zcYgOHCP%;DwQJkD#piv&)#1>s?=Nrt^~&J`_x2yWw*SiYkR-BlNyti z9L}H`9+%6BXd>*N#BBeO(=y0;1`mcCcls!^XBb-NpzwDodP zNh-_&*nv^(Yd*V#O0bCwupxFfz+)5Ov+`29}$Q z{u+Sl!c7C-JV925to#ZH)CG0*apPpAW9i=eSk$uB_wdIOyP@omkX^loj-4_SEAdvY zW|k^$+y2e=?cZ$Mw0!X`ObBCbN<>;_M1t*)Th1N3@aM7XKb|}H)Ai#AFP*&j_0M)G zQJHBGjf6+Tqw-?0UaWJ#siT)}J$_~H=-lkm3G<`2Paj-4@T7v%&EfS;j*f2d{O3go z&b-0~NG#bpXD6rWbTO9N4N8$qgrx;ob{UFOyJ8Zu%cQjmS#=q&B%IIb#15vLxbGgn zeA8rSV*B(}s!|I*NgKyM%x|JIU7!n)^z(~IG2&L%DC+7^jap$`tEk5UV7ggn+@w|4 zRu#O*I*5>f1Dp5m`Sq8dcm43)H`})nLj_@9vv$qOMdv~=$ruzumVy{WT^V>6D30A6 zUVv4c9QNz`FYFv$J-obq`~v(vypyrC;(bhHXrPy?o=->x!H^xatH0T(iPLQ6FJ8KQ z)oSF8H++Q^jmxI=KN!v?Y-<^rmK_-%eD3St_gp@8=AScX&Yn4QW#7K-7s3(|SVU@p zARTUyog9R6Bb}Zd`{(9^r!Q@>Sj*(itLKkz9y{(T;21i+dJqt*qk9(GUVh*f5{Y^> zkztgm&G z&z`>U%u{Fxn;Cxy6gJZdj%fXPL`+J)CBM41PK7GOY7`ow0qb0JHPz~t9mzMm@q?YRejf;%;yLMprq5c0HKXLZJ;otte5rE1RxhWA1$ORZCC4`6L zWI3$Y<*;uaJ9X_Y){8uU`smL2zfRj>t)|E0r{0_}45(Ya`|JC6A3uG3|K3ZN)J9+z zUqzM*ho@wdHNTvY_~_W={E8Z7or;!WiK}^#6HPa&ggNn1v1vRxidUl%S|U)?$2&qM9T5TbB~Dl zsOXH`gm4X#f}N8>eFH*Z9fDBzxohy7Tc?koIC^X|u8B5i^sx^q;poN0S-?V8Ro5sm@CGe*0XH?`XM;wK65l16SjA`-#t991 z`}>OJ>o*a74z^gccO9L>f*DAq6$eB_5StsN7!%S3FjQ!62fGJU3~Ew zIX2`=^D$WacZDeP&2zR3#Ul6j8ReD2%BpH9W2EL6r(Nh|j{Wv2#sv)RlVaf9%mhJ&y4<}S|!+jkEO_HlQzclCg6Lam_CCe--p z7l!;Dgapk51qPE}!GTDy|au(6@fSzLVxH*R`UFPK0Uj6zeko7_ zT&v`CM~@W1M2k^rwdo?102cuqj)=jH!3y7XCXW*2INCZ;4<*1ks1d<5-~E5xjEGi2 zgB46L1`c|WE+GR8v)%&Sc8y~5IQ?nZRt$!t;F3WRe3<^h$Y}8gK~6y{P%OA3&qz6a zz+}J>tOcqNa)`JhE~t=BW9t@8M8pv2(dl4-bTFU-Wh_i^w-yu5;6)QI20~tp@|10F z(S7+60En&|wmxFSJOX|JdjlDUcL=Z5a(ZBBXav}h&T`YiW3&h-1A!$?31Z+j1S|ij;Xc<7IZtEt5cu`IDs*E?Dv3i_i$`SGQ=pgkTz3A zI#&e#Qlx8%Fo3B6VH3h;uqJ*RqKkBTHK#X`Q6ew+*8x2)85fvPj|(=_6Tyt*pge^L zWWne=Knle1AUdu{ujCle=_0(!n2|5~(@SyEP={BdNLt&CJ(wFA=>S@wIUy~IfVXfW ztswM9w*d@ofFskvX@*<~g%&4jXlWb`17R28bQ>*~3{Qk{Lv7IM|9KmZPDM*1>~g^K zG+-e#V4!1<`Vr9W8Ac?R1_=xx0_a3fa2)7@@j?U$^8pM53wR0zuOafZ$bbthaP)u( zID_Xz6r-&OvV^68w8)r<6WEy`)*`~j>0D4+L@2F5P-6kPBrFNGA%X_>==ee`7-)SR z4*A8MG-t?Xx8jQyW`L?h2Z>6;>0;?Rg+(h10%?XDMSvIt1}A_8F?@Y4M}$#m(JcB2 zHpazfPB#Vjzi*Qeh;hCdEz+iI(e+l~LP!1t;Pws;ECt7+IfmX4Y;F@_Qc(+N5NGlL zPBsuhi3>S|^*V`YE`f}zz{HjU><<%wkwUP$5dDT0+CXcOT%5~8zSnY41zaTJbfdWp ztmq9v42QI|zYT{jw7shqqc{KjR;`u`4hBqkj>|Bb0bUOoGKDMoY5Kf0v`!h z*aapc?3E6=O$V=~w*UsVhkb$B`akc*rXvL{Vg#SV#h^eSPAkJ%?geg#%v?*D&RP%_ zVe}oumeFEhS01_3@;hq0_CF+@QhJN-44OYU42$+QLz*Eo+_>(XJbQ{RZ^pQ3v zSJ5M=&K5lJk+C`$F_ASq2QK_fg3Z7X|1VF-po$m{f|kRmh=74^t?&k#?+3hp4YKV3 zFVTcVN?TvebPkq+BQmC$j0=yHO?(&-DBJ8QcOQaRF9m5m!svfJ=nZ zRzRO@CV~i%266Thq!&tx=mh+Se^9vqA2Q$K*nDYe2BG`^^8u(Vj2g7OmT=4n zFOZ(Y#uCcoPgtUMCD5Wd^+XT?7FWRBPKZG?1-X}i_&?vvSZ~_w^JjoNfYqWGusfg_ zaTSS4l;VHBNBcUJ?YQhjlON?qK0ygBF z_)756TluO69YfR5@&ar?h-#9TCJ#sNo}06IcFMx8NC^~CZYjQ$_9=k3u2*zd08 zMSOeN;^AlCUbnn~Z?9S0`QqDKyx+&hU}Icow;_klt{gIC&)fL+ zcCaNRe1E@vM-Og0g)Bv9he6hsV|KlbitBK;2M*{7-rdc@(%kw7zsOiAr;B^<$p_t{ zBcdV#I~?JGcZJ7#KYHoyVUG<}ojguCMkd7iMufK?Rgs1?3MV2OXH`dhio()4MiCrL zz=gM;7SR%*k;4=I|NW%Gek7_yN5OBT^tiH_nh9aT?_ z=9h4}g?WX%g3{7Ls)R2rD8&44F&aQYCjq~rq6|f-%S)(2_NRwxDa(>lZe=A-=Pt_5 zsH{W)F02w278PMrNNz3`NBMrbRZdx;s7^7L$LAH}YGDy}rQ^_a9^P5P!{(dzJ8LPr z%z~d&P+Ccj-L4i@Vos^76lZq}E3hA=qLj<^`_yVJH5i*MD=~dqUYgCZdwKuXwHvqY zxCLUpqCiwrRl)oGUT#5ARcW@*vCWI8nh)sPyLX>{{fAFnxc&GO|5((aDQRz4PFd!s zMgFsVSdZ@gdRbbS4Mv@A3p2BU7DJ~j`RcV#YKL3Vg|gr)mc1wK{Bg%u%V$}S9Bg4V ze8f;}$Fdwe*ve}4&6xIP71Z#Yzb6b@csA7E+cDJB{^^xN-z^1Sp!?`%^06Dq1l zvFoy)-+KhR`n!90dHQ(x>-+|UgmOZCy&P}-FnM6_(POOo^){cp#IKCvhJHd)O<9+4 z9VZVs6XfY`?-b1T#;!&OM+aADH+N4je@om%ba3$r3UGJ!_Hl8$uzvK= zAy$LC4?U7z$t_{Jp{XjN^m%FpcHmWMs+8ns89Jg?WKb^Xl(+;8t}oHxRr+ELU(?bd zyp{Aw(@g2f)cNSC8r>m(vUv4;7Qdd{g$JrMydb7?rPakjW5?fRJF|lW?t@}u%=-Z<7_q^y7cg^k57Q#^IhZmnOhC&JjY8>SwNu(I7L%>RT|(VR|5iC^^wmi z!cVOC60 zay%fba&0c0C-$E9vbwaaoH7M= zl!h6(L`m2ijdvEP2@d3YbXiS)XatpDZ8ds;pK=Xl#McNZN{k}lU??1CO-QID7>Lyj z24cc)pD<8TdJ;;**QY)ozOfkZ;HhO`#{X}l??yT+R}%bXI9pxErv)_lt)8L2mYP{E z3LZGc-ObIz%h%7(*ULM=*UQt>mHh4L;od6{swe}Vl0ibLBBU2UsAxvmKtW>yn@r6Eafn*@ADGlqV6!g( z=}Z7osCi;FKKu(49rck9iTOwvj}h#4wlHo1MvSw6#Y9+?ZIBEs&D}Hn6$cB-$%0!y z4;MQ}dpA!f7grCRyCwE5y1ThxuEO1$?eBDJ$1JPi7M8;X51${yrOLP!9eG17_zzTg zDh2QW3JfZplxm^~u5RU!S$U4r$FAPE{ii?vI(y^MGbeBNP;X!7 z;Et|94TD4<3_%TryqPk@dH)1Y7mhpho&)7OFGbk@i=%e z_xgO5xDIcU5l)vVCz& z9{wjepbeCaHPOJDGTNbAnM%oPkqUsp=ro80b4gE71^wBoDWF_oUI>(mR*FCe!gGOh zfkrjN4tBhu{aQOI;5-2weHl^Lcmj~)8<4Z*6)I&TF=|9InAVu)^@JK$Yx_-9Po7c( z8CJsx@QDDnYA51LDPewK-H4*om#BG4%0Q;kh&!OqXUT}&?#TZ{JqYnb0#<2(e{RXM zfrqc1`fAm@=@Z8cwHPtrpU9wK+h@=3Up&5V*Os+&=ZqU;(S1PIVS~&pu&86rS3mAO zbo%^_S9kh-lTLAk9q@-g@Zb2GQamUIH9?$EfH6}-H9?ffhOvTZSE80$6t_Z6d^kpX zD;b;s5xUFZ5AejAGRFBJ1A(8Xr)jwi2s&ILg1|U^0M-~DE1)9|5c7b9yc3W@s}l{# zw5(Bq49xQ^C1#JvoeflH1>7hJ9)`*ydJ{hgp;!Wx0S6gbN|XUtt0@DOQU#O8usnT7qX4a3EU{pU2%d@J)C;JJ8$3?&-Z-KlQ$Y&4*Dj>1kL@lk`3=isS3+VE^{$ z&>`cjrp>dO+M`>yp8fg_96q4e*oDjX05PErV=dt65u8-Gs*w}KTdtCuKV4|mJoS_z zxIhJTn0N*17-qzXfUQ(CknjY5q7jCGS~#CL^qBmuq6}fpae7z>m|?&LKvjv0MrCS+ zM9r7ugGM4laq1SZ|I6GOs}(Q+N+>?)q&B<uNXbVM72_)oNjrbIdsU-02* zwy2m!00FxPYsG?}3hAyQ)(@5$9czJ@xX|qot4Vanu$V?nAa1#eo7*q6Lku`nEd~|V zgLrxj!fHud^u;_)9)#OYxK<+uz*QP1jA-X$0x;;rCoL)EYN|6&rh$mcH8P%pGLmWd zd{}{hA>E_Ju@NZL8nr^m7(U2q8`4I>19tj*J2ZKA_44#O($^y@BsS)KR8(Vhk2std z5EmV@bfUwZ5&ObI@^wjcqAtNWHZdmLVd&A%P)2M2sm5W}TF?dBEsQAuE1SSt5>5Vp zAj?uS0nX>Bwtm@)C;~#6rbX$0h9_}@89$of$$}e0bSc1Wfa-0c4B&fWn87!sAK~0tqCLzvY_T+EMGV&U0Q%usO99H#$xz+LJe#rf+Auh zjqH1$2=H=la_{2d>AlC&CxQb+8>8u%9!YT_p~-2lEq-DlC#)n6T%vn=OnY8(Z@US|APgfwDHOqA;(jLw zIs19LyL-6f5I_&Fqy0Q$*-*s|(Y>N#;^HIRt=9TFd9Ioi5FQ;J(*)i&N)C-kSU3GM zZ1sWdzv3SVCz3LVj*TQ59%D$LaAC&{d9eJ%7__<<;08wL{+9}tsQwKt^Ia>nYRXuM zk%$@RTtmb|0R%dF5`>V9?v=oMU_K)c#UuF_TBWBUF7lV)%2lK%h9p;k1QwHV!bcKB zgZ&M7aKAwqIOaSE!~XyoO~9{Ki3!Grd&fC?`sh5MfdRDF#coehg5nbzqOD>gQ-fpE zc67NP;O70ig=1V~Y%F*fg^#1spiI88jxQ0R2PgpEl8;eifF!J8As0n>7o=7p#Uh7! zHBu2JhQW6S7!+Y=Ne34W7z+tM{0GKRGQ@X~FkZlCcCO=5JZVaAcqG>iHW1ZxY=bAAdP~xIR6lIDKnvZFOxf!`o5kK(@_z6<2xiFxwlJhitg1*u3Q{H(6IO>q$pgl~U^f{0e z78e)Q5IqzXWYg_TmixJT`d{dBC4~bHC#M-jbCRPY6TY4lUnOeKcpwKzz#-^Exiuim ziLe(jU@dwksV8iRs7#5Dc7sQaP=v84Z60)+!uuTlUhteKK7fGIK|m=~k%TFb!)sc7 z4TPT^uMt-Z4=^!3C;_Dc7ARxFN4NzFkX^=Dx|V=atr9W;rHtquG}`G?Q>;(#k%I(q z{pE;dh}%efBO`D)LIc=JW)v-{m3AUD!d{Z#r-cq;jfxniFX+%w*AQ7jpo@@5rDkmA z{!tFz0glZcw0ma{Pp4^%{iCDaM`$4m34s~@O9nm-aP#th)qfif_>7Gq|KcKWj92nj zo8&T4i#mr-r-2Xji4rE@bU6YCIJvM(B+yl2RJ0P}DTAj4N0m?LK-_B3fkYagi9r(x z3BQTNn`KD0=p!$}@NYX6fM45{wwvKXBAs9en?dp_on*w_Y0JWpX@Hir3SO_#Q?~q# z-n2E++I&}tE>%Wy5EL9cJVZDgJ_fqm;=?m3ERq@OAOrAmcq$D-7k#A~X*C0}MonyP z8v!~7mogGFF4i0s3^>Xp>gfMjW@M3SUcpHO?#=7XyanW%&QQ>{^iO%~2 z9RfZ5BBxFcje{B|U*lt0yBV zdEza>f0H!w5x{}5h`;?2B*~+K2sRm*pD@9+2nALHD?(2Y4}@rwE@enfk(gAW7B=zq zh3b~@<8us%{HuuuC(0P!kfA`WA?XkXg_dX!Stlr8&>T?*^6_Cr3tSoX!ubuS!DEW| z4dZVipAu%B>CMG!|hKWJ=xKSmB9_Fb~`CGv#rnbmgk0;jg4TO-E4r51}n@6b# z=NLdl5&xOWh`y_W|E^IG_pS^@1@WfOtd9u-Hb|ZtoT6W*gtOa;hiC?mx6vLbqw+UJ z^9@OB#5EQ(<9T3X_yzCN~+=a;^Lp z58@y*Mwg{hcBEbIrm1X4XYhi(U&OPKrkh{*;W&|?C*O~-*zJy`-|w#9_4RbN3;b#H zfuQ85_%L=vY_8wR0qfH%3riB)TfKnBw3Oj(^T#1}4IYy{z3ro&Huo}_uzbssiB>~w zE`)pB`flt9^HJm1oU!w=-_U!(vzXYV#E7sPQ~O!`lp`og_*YXYQ&+_}HF#J%+50;A zM|+?6YQbEa4f}7$`ahc4x!VTboKUf z_wj_A>glfY9PQ!h<2kF(v_Zo*u9&rC!LpTe7ffHedD+S>UyU6;VDN>=kRX5iVasD> zpABp_mvWst-Z8)dJ#uozY_BIa{J8qY&gu2_nn`n4&08>gvU$H=7GtI?SUP*clDVsT z?27by;%7vqPxxr4ZY8;PgXTI0zHs*r_3-d)@)+rE&%V@W$ed|ohY#uBYv{HU zN488H-F?8w#n$tzjIRW}_B~>@uc#oUy^RK{XE{YxT%R!YNrY?)On0>@(zgj zYwiT|k(R@zU3c>K4qmtD;i(^fDv<4J_wK&4x2yl739~$+K0U6YthqOAM(zy{ zB<}}#Jp5e!J)P~n0#0|IeBlS{S!>qa@%44}@eA>BLVR#@{79F`4i9(XQqF5EZSHy? zD${uk^>PUC;RFPFyK;^Wve@PR+6%k-+ymVl9p8BP#U3`BXB$DiAZA;FCL$2KCxBa3 z)WqUaaooY_L%z26^m1_W^m29e@b>lc4Ym*Zb?CU|9EkRpmE znJNL3dPIVRl>H`COqxm<7C|POh595$57nsyC*k9e$l5S8FhgL19pp4}jrC6@SJ83a) z#T#J`kWSVZkj6<*VEk#hK1G_L;Wx9OI9cc|4WrIvr)Z{OB}(!tNk}S(|JzwErqtN1 zjX!WRaUsNV1Xt>o7D>>LflzWX9V7*SIP{nroA-Q6-{CvmLP9*=x;neKkXX(uBaB$}eDNIz>8%9>VC7`3m5|LPEI<{BpQaK#NQ;8X;&?lS_s$r*gce9|I)d z$3#A;jf-#vDM6#g5D%%b0>MO07y;LGR3|cU@)5p03y~J#pk4xb%TsDW8&#S#J(T1= zxtKgiJ^)3qH3lhX+!#BM^r$2#{as zZR;;Q3AYau#{?P*&>J&tiNThLk&rD%-EZ7Y!~(wQC;E_^#5MQ=+)U_0V@$+-V-b-c zEN(!ghVTr&(R7j%t|k8v2?A>{f>MI3pq(Qz)+?Cvy1oQB?p(Tf9iB&%T)7u7gGfVgex@& zB#3}?LUNAKfbds~=t94spBY;(_5n z5r7WNxQKKRf{5o45pR1Qn7(RUIwM?#{qyRlbM}R&$Li$1)Ga)G%0xRk37urf+Lo$v%F({%C z@IMg*3?5~_iSx+>a~LPdU>cwq;H<}}bI2StG2Vdbb?7zN6T(G=3Pd%^m@tn8EZzdd37Y#$I3% z5n>qdhmNuWWrz|2+bM};%ke!UDP%IEO&1t2Z)#OkEi;&1NdIsTp$A-O&>4L)Q6pp0 zf}SZM1v-wdk&uyA)=@I3DXW~qKPPz=J=kYs-o1O@!8Y?3PoHgV-fzZ{Z4;*0my0Wk zaiTi(DwG`&2BI#RHXu_(jYFKt--N@NE}`r2P5`P55ukcWf=Eu-nh*jJA-w&T zp9T;!VvXb=OCLgI44aG|VGQ#d&B8!xPD&yj2-L~(OH59(i;sza~L#`hUm_2 z!0cZ{l2XG26&XLx#E}ej9>^D9W3GSe_2z`Kai)z3~iDZz8JtRU9moZ6X{6y#BVIk5b9!<{{+8|TH zkO_leGDqM@0S3|v5zM(-PMjl+fT53?>I)1BA~^b#P?up~f@zC7fyn72-Y4D~cngft zYPMUc)VEEQF~ZPFCa5w43=6~TqQ=rZT>2zTaaM52%; z#8`>olJ4mv8%1;>x(2=l^TKf8GF-+kM6nQkgVg0G)6-5bwAdzApai2T$Z`*`W-GPe z1qjsS6{HJo*P-uwE8(mVHXwb+qd){Vd;+G`M+20QX~-3s{ToQ66}J;+XeA*21_25A zU;t>4kUR%rmlKst^gYo3WR)bCWqmY!YDS|(DwXJ@w50C=%jr`+Y8AC5zkYT6$E9(3 zJnTB>mLTOOhRf3#JO*@#mC;eAq?^#tF!Lno+QQY)IA0R5_h;fpk?}ztz-h*EB00H+ z2Jjfv1o_ojLp&l1!iT`1hn&C+4MQ9yLQg0pX8MGXl*AM?j52W^@pcFi;3N8z@#)Yy zLsA2=l9@AQ!WuDgQk5igkK5pukvD-b#C__9qz!omz9HfQi`yoEFvO%6U{5CJuhxh^ zQay-_F@_d*wa6gx?SMSWe#41l`b~P;2LwW|2yJkkJf$S7oIZgCWsHadt}n(9MkU%n zON}8>uu#%<~OvC5`su539`t6IiX@F@(wi2_)#Q= zgoPv)kPNUR5y?_05SNHE5nCem#H&MZa0M=s0se+Vg6TOjGlDNo2&#mNDEkef36u;O ziLj`}py6j^WIBvRgJ_=25RjYTIia&%iR`ujg%w1^(2^gmArzDZhE7uB46BeJig+H7 zSTbxPGX|h4h=zU>_l!s<*o>$vGORhZ(we$QGruaSt5GPV z<==OcVkO)T91yCm%bs<14Vw~n?swXrS(JDlkVB;_{=rqCt zgaia$(1>s*v7wBkg8KLJR zEW^wa8W8>g;?3ws7vh)@L&;Fvl;jlJ1P3Dq%;*c)l=!2hBUnl(p^W2)_M1^HL(P(A zXd=XU2YB=H&u>OYEqdDdb7HB@T?im(&`3Y zmE^tk>RG?W3k1l#w3lCogZCDdQ66e>j%H=Z8(lwZ=mMMFwi zWljD4;J7N>48_cprO915X$K$En&O(OEvq;-+c_bhT9;DB?Ecp-j}yuoqhsj@-Zx29UKVfw7sstT!GUVU%U8_|N@R10@ZpLVgfQjYVpoUHFx+@5x@V~34rtfvlG$>eCZR#g4#^l9G< zs$?pOByRGN(vqDc65E@VQ6|}a&(!W5szSScVLc97&svyTBUedkN^G_k$?S$5`0Qre zt}eC@^=$MIG=z((}yf#x6kfgHJe-Y?bIT4q<@W6{&c#{v~SBLB8gOc!z_X-%l>iN z+whK!+ia{9?3kIOYL=RzZifWLgB@p2pRqDWSShP*w(H}L%3prtceg)MLye0yzL8nB zdkDV<72;*`YKdGfRrp!YnKQv1=V#T{2bjGr6ISJ}n2=4CwC5(})VRVIqkP4(Zzm|k zsGcCH1|y*KThz2!^Jkw^ifd)^?2!ixQZuSNMjhm~rzI8C1VP@h?UUXlQa?_rY_61| z47Eazy64KI**3E#{7_a^CsP(p_@yAHxT0#ql;rj&mDJ>t3TLz7X5+?eAG;_l87C%T zbU;uf%U)w|G%dE{ORA4W2G7|D(qk>$4kH%|80-4lllz~l^mb$#w#sp&jaJ-#rr4U9Ct!kr`|rkwxO-| zx0%J*W!6(?O`g6k@bR`;1N#nGcJb`6!~Bp5=cuywm#eT9sWg7X){v1$3(87&%oHlx zs((klJ-%&}nYsCpaed6q*4myQ_D)^0aeiuv_4nLLZu{#=1KFoXyC)93SejF~V~to| zT_cys6dym^0WeA8YEAa#6n1-%G~#9y4sh%*m5y?sxlV(?Tork#m0i$!u%(p`~nId3y&i{%nt; zjA2)Wjm0a+3F<0RT~4nVI&j$9BM#}errXR}G;OD{K_-l`8o7S?m|j-jOk3#BZ6Ci9 zyTP(5a~A!;6J~6h|MJ$V;ieXg54=r=xzXBBw3#(`#_SAP&Bu!6+hY>!&yDH6;W9V+ z6WtY*b-u7{-;^8APR$-Ubj;#I?s?LWYI&`)M&)9?V9tzX^ZgX4^ZC{0)M{nXZ|lR; zD@)qnTuV*hmjq5R8#=M?taoWuwMuCv)TvA+stKAi*Lv!V(SNHYGUe7qQ3+Y1)U@*Q zcJYu=W9+Zqc38SrAyrCoikbw)0Be-8@Y!<~%$hU($4aqC_1)0Gf~?Bg>cVywmr|qn zl^@pbkm$rxsYp~)E31*nB?(KW&YEU3b!mpYM)~KGjB;T)j+6g1z-r2nJ8^SO4e^Y1 z(tfB|C(T(h(`NScnbZC1t7>ig+saBa+BHfwWz3!WodOla$OHYQbs~8cwPnogX*Lt) zoR)uVavAtU#w+f4zae+Vul2RfQWh~fC_hrRe*TQfb7s!`QzEU6HoGb*Dayh$2g3Z~ z{HzbCc%k{!H8Eu{Y2U}1MrnVEv`QhARc)U(f5x==Q+!kvs?5Pht4cDcZrr^0j%UxD zBPS@jM`t%uAE-_rGRvgZg@uB$94yu-uf*|JN~NNvy0RRrwTr1v+>B5Uds}A?vzyY6 z5>rOw4=AAO8euJ@Qlawc@cHxR&iGBJ64#fE-Ywu~QoWKc?Zkn*UvJ&IW#gJv8}`0Q zEY_i=9@#0-|7s`^M1}HNUVZ^(R9Xoi4@Ynr>zW$s<&~wFE~QN4T(17QdLHVyPTv)q zMVUmN*)n^=f-?mYm~0j{w3-yX=Y+)I6t`>)Co?stOsY`I%5zgQxF4t{s&lDOA`?sH zm3&?<)wP759_jh=-UB=TkoYn<6qLd6KN%x~8t+nB`QEjO*nQ3 z=k6Kl8b8)n@!-)?eYl1B1zA4NPi$H+b^3~*{{H8;$t%)JsJ_LSscFgSX<1zA_Vj@k zsI1$k|Dab=gaf?_$*zf1=hqJ2A&EKIamOnu1gGVu3bd&D-Bg*D&Bas&rC%casG;>6 zYxu=@2a@Flw!dwdG0L)k@7@DPFW={yDIsGVb5c!gV^yuJuJU8ex%m^1)Jh~8seI15 zyfXOtT}r6@`-|o-U$tiK`sNL$>(}8lKoks_w#ltXkK&e6{WGhiW##;eN-|hdB#%#) z+!hq@CCwORc9daqwl7yyT~6h`x@+qe5Sfxo2?S->B1};< zS1(D`S_tQ3GR5UmdgZbPnjA!@Utht)endz>zoPe-*Uz6g(rV}s?C9;$1r>Fy&!%!~ zC?ca{&VQ`YNc+h})wPu>$?4@ubrP9K*0f|<29BsK!jvVK%KT%>Y}8|3v2yil-5S%? zD_1NhWm9HPp8SASB%my#BPec~syI8Zuv}VG*$PEPS#CyYz2bc$pE55IVhf9|xuF4v z)oSq%UL)2~>$IvGVMzleqIwpje{HPt*!e= zkdP%7l~63%N1P0RqX@L+JZeDR>+jYqupU1an2=4*Jv-?c_nmMoqCieCDH?mMv0BY2 zmab(n)$&S(SXO;xT!JW{GRxXHe)gPsC{K;E9G5R&wsh&@MG$M7>C>!7>Rn0~QbV}g zuX3|0QWD;$mnYnRR3XN}w4_pKd2wcBVpaKft`*o0UI{#!8tWVCn;X@1Lj#SIQR_AJ zjZICen#vL_II~Ymp|XkQdEEbX*2tk7LmTP(%CtO$gWPjj6%;EC=d(!sFMP9l#kL_V z)*>m+ekcVr_dIJL*Jfp6u|QBMpx!=y;ouz_pIN{wr3$mL8zHfvoH8m*#?hgTjdYJj zS$P?sFW?KYX@aIx3d^vbMoVjGa^4@Ss*D4Wb?G(tpj||A zY-o6DEdi-;)Zbc3gVYek@KE_l+ErbwP*&Df)zlsz6;lZjEHR}rR*jxEW7h0BbLTH; zT-ap+Im>b8^r_a9CmIYpRm`oTdc+${j1r*0XjbO2frd}2g}Taa*v3wMD9FnQ@}{bH zyb@BDmD0LqZG%eN1Qu$bQRh#q!^g(D2IMuRm0Cm}{R@*NYHdTj?YT7*hE9E6M>l<} zs}bd-AmQ;Q3-h~0eAMwS__-g8)oq~Jpnjbn(YD?=9ZH^!8{$H1u)5QtOsN#{%PXoV z`!~;={Wys^g%nko#gwOt%oR{Z1sQZR60vlz#wv&ZsgO1KAxRM&orMO`Se_lI#=8VY`#*H3kw(QdS9UjFpX=Qm~N_be3f`FGd=Db#-lJ-D^ zqLScHU4$whFI$C`6i_`1zZ+p~J$c&nnX_!>%m#M4*_~}>&6qxQ@+9j?6Ai`=bttN$ ztgd$LKIi_)y$9|sXR-dNh7Q7^1Est?RIbYAhdkjGj;blFJ)u1Dym3BT=K+SWr<18j9gC+O;5EP1@ zL?E0tea4KLGiOYnK5gpc$pCM{xUmLfM~w-pq6`oAG3#p3$TFN-fb~AjyzZ!1M#>Fj zYlAKb>=&kqsjg*J)taXIx~4{$T^fXL?$T6G*WXHLYLJSsr%6V2D@>NxHCKB-{bkz7 zp@$%Y-E_^3V7$uGyd)~0%@t7tb8rT5WM`H&iigdcyP(T#T4>p0VFRModS7BKx&aFre z4Na{hC`MX6&{Q`_^-)!~S=vofsf5#1Ev-_$GIQb;QeEHAvKl*X-1rF-2#~rdjn?!e zBkPId$Br3GkJTT#rbtW;FW%X^8>)4f7#rxbz7-Z0Q^iGv1^L;TX~{8cpHlkn#jJzB zRl|HBN^ersDeH*h#~G=#wrhiyrZykKX~uO`l_kx9(ln_?sjF~#ux-+?39lLnr)qJM zsDR2&DNe1TEX!#61*_}wB@4hAHmsF&qQSsL3l^^$!a79L%3N}AfO(;g#`))hl46t} zy=EWAj!(}i$V*F%3eWh!+0|Ybou{GPjvEXa0hf6Ig%IbTL77h#F@MY2=l> zBC06q)>)tTDEO3@nHZUwpG{?6*?R{n!Z@pzR+d-8uS2cpW;wsAPHZSt(dsl2(p^wH zbaQtdU7ySGc5`*}WT)U1o#rOJMy;-aRa^}gdV2Qf6)To42E5b8jk#2=t}o;xBEdQC zrCd~!Pl@zRhm*fhk zf3BL{l~SEcgnW4|h^MS;RO)cxb`M2^;L`NIUK-SSty2nw@T=uiw}RZ-CZW@f72}7@ zkIBtNYBN7kN;hdgf@_QN14NW@3Tg|p`Y+ba?+?$JHJyIRVhx-!b=KVZ^Oufe+0t}^ zl(L{cz??N{RT4h8K#+Ft?2X{`^xW*k_~N9Lmt#rhBrPb!8Jy!5lSpjoPr8o%;6a)vIR@qi$VIJL$ibP$P@? z>US~iN(y-y8K8Eoss8Z&Nr?&Z;Q@gtDd6_bJ=Xc=9iyM56pDjY$Ys?vk{Y$VS52)t z^2ga-j;rJ{1;DN>FDF==CW#v=oo}ujKX_S0Rs&_4T19KId!ec%H!)XCSryZ|k*s;Z zb*{}U*62n$KIURC*5nyBbLY)l+{chh*M5*uW|XiQ=QB6pwDhv#^2}FP?>%B?jAPD6*K#yUN%k_MpacQVpu6E+P=5i$1A3KrEgfiX6>?JR-?v^9c_6> zC+8OGicLP0Hi_35ckiY%Wp&YYHehYb=gO#&F{Yh>wke~GS$#HMx$GVp6CD-o>F(_0 z>GtmBeY@KS9rag9DU%9brL+R6f+h%3Z;3+mXzjwTi^`B6mx-$6VqS#~i(O0$bJT)& zw^xrJygWJkBh@9PuDL<25SQm?L{(GW!Pgg9);4qI{Xe~ZcYIV;`uClZOeQnwA#Ktj zgq}c<-XV|#P}J3RbzQNnbuB;K)m702?2Ec0A}Amz*np*%KsxEkOftQmnIw~$WRgtk zkYrM3?)yCxT*P;OzW==+0paG{d(Qcu=RD_W=XsVbSt3qp1552+&CFl0*t^tk3G)EU z)^w8?Ew~dcOW|@NO4;<|JNphEI&-c@^~N2;46`0k*RXC|hocWkEj{C7BR%atrZLP) zOwehVaHVs2~*RtgOR5E^j~E7lwk& z;L50zs#i*DQ918w6$LtaXJQR4M(*rFu?>f{waw8Ey|fLv5<6L^->@p_2^#Mkc6v=t zUe3m>q{(U165jGQD>WLAPN-H5IOcFr@k{6tas>%e#3KKT?-iv0W>7Vs>p%CEa~Dy& z^wOChzCH5gm#Aa>+V&^&N|!FK?tx#>YC*+=HhX6WQnj^5Ir^o~X0Hj4E$D9V?1Hk` z(TN5GSO-cw?B9NJ=gg!WA|E7y4eZG9fYYXLEHHGDAUQiI@t+TgdF9gNP|XM{UM*a- z7;4wz1V+j>catbxd%Lr55Xw}4XKQo&nRoXc`SG*2kFC7HFx6OVT?Y$g%mIo<%Jy;3 zSbs;mV~`Rx+plsWfSeu2L&n2bT*$9B4wE2tMOkhC$Pj$d{XPAb9+GbO`i+OzZ^&M= zYWaeBpZ46)H4mZ`Fw#XC>aQ0T6qVQ2qfBc4xeC)TkWSeyY3OSkfbSEgAyj-Ay5YhV z=>gXe*iG-iNJr)qJtoLzAFs;E%gxJ4O-V^w=WMA5(psHXtx-rv^8E!~;kb|^$nPd$ zhFpJfkmzUr!6bcl)_Xqu-1)Poj()Lc_lF;z|Nh|zR@J>S<@FxK{aa8q)K2T9w~gCl zZLN;Z@9)aVjuyP%iPi4tL*n+JqcFBfGIhyPsCDz0r&zY32Reoh=WY+~i4J1FmLL1<(2-AffAW|Z zVE+|pRDKu*C9dojt- zJ=oWaSCNpMCMCCftwGez-2u&{zddt{z70N6?K5j~ytz@E7sMq+9dy@8WpbrjtwJrA zdiB^khN8{oe+nZ&cx`5Y7@V6j5Pv_0S$O9AAH6??9Y6Th*B^iI&RcJu?0@aUg|(js zEeG6IJ%OIlWJeA&kCknSu`0H&*_0jYcQG0##8Hn^vY%PHY*1&EGZhov98luFaG(!!7si%eDwHt zKb$y^ir94&YT+NJx7fjzyPe(M9zT%u;0R=G@dzx`E?57cVa-N;6QGtoxORglH!yE< zbh^$`RWFk^cpC*WX?=b5@V*J8x!VjqB&>R~AjpSwpdc_vGG*B}hrLI_j~>|l&wswN z^UYUZ{-poJ-{;qTH1&=iGTo{%SuEC;)>c&XMFu#Fxn=vpE$dz5+P&TLPfJUe=kT`ko=9k80qqh zi@ha5eLq7wyj6@?>~S#)2B|O0@(Q~ih1gm>|xg^N?&&&H63Yh);3gJ zJNx7DgM0qDv^BuFhL8qV>;f%iGEY0YdO? zULbd?vWM_%rU!=vdBllWY4a*cWnRrUtfCWf4+G&c~<_5%a-;a z8I{UtCN19PWaQjK8D)d6%lhJy*pQHY2Cc~ldz-zb)dHO#s0&NJe13U)(jM&i0ca0y z;N4+SR$qiHpk^zXSnjHxm6MmRm?aiM(+u_#q%K*!WbuN`8A;6dEa)(VXliR3wJjai zs(+ukR{Y&5q)@*MtfPRnh3x~@TnBER`M~D6d)lEm^BjGwy&L&K#zs9O+_BDT4$MSE zY?9X-2Ygs}bej6eG{e!S?^;E{UNGy?wl;lhUt4`?MXl1(b$R}-!~4Jb>fkpg&z(JY z;as_obFY~7(T?|@efIG`{%&(_Hhea5v9U2Rp%IfLlc&v^y=igu({>XHue>K`Lr!ik zn0Nf<-WuF=s;cqU212B(yiU{+{z9Qw$PX0x{{d+G6()yq&iKb^mPx#U|tOHC6|E`|vP?pUM?0Wm%54|6UzPICrXP|ST z#28g`nl&{*J+ztqkzxMTJ$Jr$K|mHV(8Mx3*?wx}h|nuf zpUN-BHCdVQ#09p=;&#Syz|Mn!dat*~;Q_|BPL!r)y?oXK(CLF7FY=@@{kRq}JkqM* z=*;~@q^gs3Pxuw=Ex=s0_YbQei!REX|AA6(YBtwbR8>~hs?41&_f0x{>iE|O4<7g$ z3w^1WVlFgYE1G$?Le`+rpxc7DFMu$=^4{DHIpeue>o-{|i>_BxR#jA#S5}slU27@i zPjHbS!4q1X8`X;=B0<Y8Yh?`5kVd^0aAYsp-sQ=AkL78)8B5fu{`7aJ8W=D|X~ z3&c#AN4YN@C_|Lv#UBnG{`T+(e@ct20lVJ8L`4XO7$yuece1@cqHc8zx>!DJTNC*A zvVDNNZ+w_HdQqXWu>LK zL+V#taH;P-9FziKK!7MX;1w9gA}V);MMZ{!qQim%#X=@*+1eR?UM4i+;cZ(Vx$n*w z*ZJSU<8b-><370MI*k@Y4IUzwHr+t=>K_lDt*We*HmY<6q)s&&4Jcp;xNneP-Suxb z&WL|!eAo>Oay?4sjww9~kKEhHXd#$r*?i`tnwdOvj^vpJ&lS$)E8feVD}ksuhw3G# zkDAyvAiPMFkv=(L@~V4(e|PrMbPq}`zxUl=10p4o#Cd6MhKUEn%}7Q(*1>n!Y(2vR zNJic1<177a8xZb7x!^(WP^Xb&ZUV&hC3R3MnfAX7ym#&vr)z*Vi7{Do@pR+2i57r=A>GowQ zs|`19z{JeT)kLIZ3&Mu(VN%m(g#8H>tIfdeb!L`lns+9D`jq69&{0N^JR>PKI`e;C z9$}bFU{=o#wvWOz*Vbxx4tY_f+Q*FBhp2pkE4@SBLEeo)oEqkqe!{<#ezY12<#?`O{r&oeRbMj=*L2dx0$-toCkjQHQPEZ{i9X-i+ zxJ3qwMS((5aCltiy;~o9bn74Q+#JU6fgJN{H<{k7t5NIpDo~}WLEdM-@WX*`uN9S+ zSJu>n^}tjLkFMF+sDoZI2!ns^#e42Z{j#gGZ(wlP)2h}`@mP7Of(edGo|+od*v;|= z-K-M$6>_FdA5Uke@~5OG#&JE2C@_BJ{8>|CqmmAt=Z`VW2FlggQKTpGbJ$yLU4w&c zfD0OLNBbCChT{uHhZ|lOXP}8oTFgl7Xcb%3vNq>UUIQ2<#?#r0XU?9To^|YacvM`J zD7B!WuAzM2DlW(0-^&wnnK^s+?EbpE*e5#hOv?FBw*$qbj|{}`%(`622;;e-YhLNB zJapvv_dk4p?C|lH1_{q2WJUa-;Lz!ECrL8?E;2ScA~YBpM^IQ~bYxV*^i>aSMbWiC z{BH9?hR^eIxIF$j+%T}DSIG@ZwVv8eI@>ND-FvF25Exd~)XC&(odMQ!ZIh-Bc@imx zO6g}SXWy%|*gActhiWKzwKyp&%CDD|7Mq-eX+$l@Cz;5o_>^?!X($}ePF@Z-!@R8U zO)Oj6LxSc{OG9Ps$tg+kv5}Dh9!4A*Gksx3dO~=Fb-qKrlnL|*{YAl{;UUi{U>^Q1ES3TsL?y7GS?jYm{qFbo z-*=z)UeTt!Xda)-l%Vh$$?b-E7Nxsa7uBmqZvp`oF{~>JjhWA$I z!MhLo6|a7}$ck_YO{?|zYQJ$I6X+il5*`)vZyaM&WOHKTVxmC4J~eL6`c3!Veb>fK z_uRj3{xrUb$Kwll$ul4qrL}0w6-KSBQDtdA{o!HIAQB;5uK?$iDJf%67@M@!TCmR{ z60TPlRN#Vz|B0@kZ z7EewNkjip01?LO(vA2aXpWICt8VjP-YISTtuwd@La|7$&s~ysnfT zLyQkJNIcd7Cz^ z2oDGl!kQc?j9a`!2^*lrT2W5)qYCx6 zLT-vA2B1eVyWk-Q|0i$4_~*yxdN|`u_?_#fO`E+UHwWj=+|-ANCV_b$0Go>8GliL+ z+t$*DQs0B^jy4y|UZp%pKMqNk-%sQ^I1wT&R?=+mg=f)=dZ@6kwwTRo7*CZ|D<`KW zCL~BC2)ldwQo|QwKN!{hC}U(9A%~Idc>j&hF4yRN_%@$Qcn?{G_35u5QX@e1){5Ml zL>!v4cGc>&YgVqy0&oJHQz3rg(J|3K7&}O+HapsfG0rinF9ZfBOifD;69L}<*nmW# z3nd@G&}-F})L9zUro$hV$SNx;yyan#tLtTQl@_H;waS*p3Jvmz0APb|=e${P8Q0V{ z8d|$(EkyTFi@dg0-aI%2^Om#2YEYe3I!Lr)G2_pVi;0ejiA(fn7QOY+>lsX7QXCNX zi(@ib7BV@)uj4s`Oho(}bEeM7Sf00WZPx5r8B;1q=~@kZIJzo!96m~D23DsBRj2zL zZQUNW5kI20N4wdckly|ljR{&~i@gt}2~h~t8{iqa(QRus8Q}+rF{=KNoJuDjH7O!A z=fd?ROc0D-V2WNyL0-mx!NeC)znEF6)LqmXchpVJFC`Mv!&I%yzT zYu^aWI|yiE1)k9x-R)LOQx_4ai&jL(PKui3jTDFT=l&%qATYom?jDYZ(kb)UC;!-f zphoS(vg1VjN1#*F?3WO%m7qJgay_*sRI-AzmD2EbPG$xr8FII4C4wvmD;p=BCmTd1HQ~RH~NB8XECSu7H74CvQ-w zEUJp~COGPcAnj=%PJ0da^OsHbelb-U^S8j{}W@_Jch^tk^4J#r`63 zNJ!AjQp62djYY+kT1}l?QKeGUsTv#AD6UzfQOk7Tm8C}9CK-fL`GK^Zh#k}xN!7-d z_O9+;FOCehN6_8nXtfv$^X){uCy*&*n-iIcBtSTp;E5L`MloElMMWn~Ubb2ZH?sy|st7I)LG4-u zL&G+RK-nQw@uk*Zf6wS(Usp3Yte>{($Z#X|RBv|C{6>!0;$C*G5ml3@1#Ru;n zul2c;dF@9M4gZ;fRHwQB8hK zg*KG0K}sURJTk(BZXl1O0lB#g*KXRFvm|r&4l5BTOIYs^_U>p0+r}I6j>7Bi-){$U z+H!33h9Lmg$H&2kGV#L^Lnwg^6E@5&^!GSCdk#w%iPRR~B?=FR3pWT`OyG|Q1RUl* zvSYR!+57Rq3YhS_u#;^2lPPjpk6En(f^X0ka^={^sPahyWr{F_MIo#8l26 zm5qceW#v~Nlf>dMgHbU$DiYO1JfXs{keJDlFPB%!L6%~(%~Vowy-_b$)=H)0GEqal zT5VEP7MGfA5J7Gb-mZ-K^`k^^xjHF^*hK2}zWFJD3Utq(T0dvwHqbPPTnikUyc9FYGL(N3X8<)w`QK`;pUqG0%Z z&X|wy<$Zhfi$i5{UzCk?Z~QlA93t}`HRHOGDOS2``6?8PrQ9zsCpSGJI#!a9kdm4> z`yfvZk)(|V&sOB0{L73eN^2mtnCR%JDDNa;^t9PYzdv1AqtMwAPTAUAeXZbneWP63 z2+(R9WlDvtvbeCixfOyj(!*BIo$-Xii+ z6CGy5y?A%>D8q|c|23w^fRJ&uwd(n)!ICFUi8h z_V$OO0QuNNx#-c6ahAQLX(2pChqGJQN9hcKK4W9vaSkFp@dlsbW$h#(TKVOB0>S1H zGQ`J`i(`W22pQhJKmKs|>mrT81p@OkkuQ?JrHEy0HLGzBN{?+>w#J(s3dC}j#3dvq zB>}CZ`>v|2B-p5ID8G1o=Z483xp?sGST;rs8jDEGc>dJYszw#+4#b*U?Ap?+*NP!~ zQ=4^7Re4EaL7CRxVs^vy7JF$$;;QYtKRc&|?&B5I}-``(Ii$&X1Z3HzmR5%SvylKLz)91`zxZ!~<4;>?ft2u$7EU%XX?lsC8 zhcA#j_>;N`vB=HNz-~YTlM|4kk+77G#t`F#Q0pMAs(4!*v=khjT)OG#?||Uvublnn zSaG9?#=P+?uT7zWj7#oRk{FY|^n<*mE7q>fUcYX7V(Mhr0#dUN$>EqI2}V^zb3%JTWmIMWx>^}*9yFa0jM}!SgEzyns9dv%X{Lj z7vDWmWk3!9)CM*g33o&A0|+^-yXrxC=<@3}P?lJ^VEVLa(`O?%aouy@8=&)+UU7qr zXb9E#M1|;Ug^0D~Sak92-90d9z#24)P*-dp7>*I(N{_p4JE|B2n~aLeLpfm_4pkf& zpU|-AK-szDXR6dD8Y9WGypq;{NiV%qjtFj5@!m(WmoHnE5ucQlJUQ#}V|7X|X(DlY zg{k)(^IeQK61XeqOL(@w2%mMldY{;C#!;)v8+m_ZEmwQ!S0by zQjO$%U|>CwN(sq7c&x(W=!HA_$FKfPh^!tWF0JX*jrj(atzDj#u{dYztKT(hFx$d& zW)z5Sxp)=U-FS0L51firHbYT)OcdS-98Uu@yvBh5Iib;nDHeRPG1hOC5&CDno?rCS z$>Mq~jWFg}{x(&Kxvj`+AR#7=?CP;k-gt8BpI_Z`x~fq-j?yoaOd7egwz>lKh<$fqHi$SSp9`bQ3DGtnZWaFdlF}M2f;bzb3W)0l zuaUuQ3P`9)f8k8Ax~;pXU0ZhcoZf_JaW1M{g%d^owR&53KZfrbz#o`|r-u)>rwLXg z)`aMDt*qquYnwBYqoZbQ*>&>5$F0}WGJM%hL|UCnDQ}QT8tbngNsnukoc_=I zNVw^H|5vZO5X8Xs;36%{a}%c<-*-8CX=m^vAetVD!|mwQgR~HCC$972YA^mpTu$Oa z=2M0;c!EOFI2C{E=kTs0YzNE{uOV3ti=JHcssv}=?=kC_k~G-d9^As^+F2K!3bhb~ zxX=NvX3$~#2F@U!GLZh&?smHH$IXfJTplNEWei5gP(Uzg4)tet;yW&k&Cf}oD&rn7 z926}2K%rjBwZ#C}1ELf0&0CON1h1~~R#sh%u zZ^>E}kOC!G_8$2UCGiT2mzG^nFhP+b3K)pZ%{pnfKT{hxsFU`NRzMyx7c^IcY1{ilpz|{Ddr3af$Dbcam_rMd^0IuV0|&r1Js|a-5(UjtgfPGOM{=SQh8#FChiuco744+uI0_wPT|p zZ44zU#9QC&6sc)`(Iw3ScC%rKuc2>q04=OJUD`3We}WM40el3*1~4p-xLhDKKJGdY z4|3#qSmYAHUUwlKiU$jVHKy|>T-N?yo590|FS%$)9hMrf&^4HVF8$Ad?jNyQ&U?2z@Z=obIc0B9iIo%W`feSc;=0LcVSy5yuNdak>Kiy3r zXNuUw4)(V@vC=NO(r$YPiO062Bnh&i`wZmq%MKwN-s}$9V9^o*$G0`bg9%~)r^Em$ zM?y9#yVo6mlLUdZj~ZQo7z<1jJYzhF2?8I%EIjxu#tAaU4?QHv?fmb}5OwIm9Q;@p z7$t^&6F5`K<38XZ3L-r!_CH+(>}%&ZB~sS}Xh4O&FiybR@VYMzRDg?hQplWcBi;b{ z;{?D=vF8FQd&3ug25n;JB9RMy?jfiX?Q)PHmeMm&n?MX%J#O^|E%4{QPymuhZg1-G zI6=XH2}nDAgvLYn*h3?ly-Z96y) z1o8iP10GtpkAlGEXkG})kg@+J;8n)&1iYUlU-<>RloQfjdb4Za;BZn9mp={&4D6N& z0wXE~(FHaWK(WPs^dLxAg2uoU)1aIh>qAHQ-yp_$?ZX&l(6G}d)AJlH>F2<0fdx3) z&ufcaaC_fyIO3g2x4(lXSR^OF5`qxvH^5|2{0QiKV3GvWpdUoC9_(H)DasS@AAW)5 z0(|WG3AyIiCrvDd|C=v>WnuOx35>7doWZjC*kyj=+kp2|O1+dnMNW_|g#-VA>aY%! zI9X2!r48R)ZwfhJBX00H4n609EsLhuo@Nq9X@QO$XDnTL{1Ye9E$W@%oE#T60po1- zHK&U~IR$M?LHx~reWy1Ycl$e7b1Erf6gYRVVpLM3MEz+yd{Y5t;#S_Fz zhYKEc6JPoe@{dnmLwlU@EM21CY>&N*^#j-N1KDEWK*K%(>)C{l0PAO|MH5sD0g;FR z31x9OWGKS}|Ho`Os91t7InG-o3&#}e8Y4lJMX?ZdaBO1P3&|M}$uHjI+VQ2^UZnCe z6(@Xb2WUD`CmQb~^4X0$wh-1ZX@PHXJoHcvpkPyB69*_n^qX{rh%pwQ2AB79;B z-Vp9ftQpQe2wGTY$`UC%^AXkA#7{B%FOo0b(j!2AKPB(S(?hBMzU}FcNiZmLkEVYA ztEWfl(<$HGdWsG$*0&;luoK<|{&r|k+>4(}Z>0!;eZFIN^7XzZ6O?V?iG(u)|Uq<{4(C>-<)}x*OxxfGa_iz6PIPm)I literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/court.jpg b/novel-admin/src/main/resources/static/img/court.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6212542cf97164eb2290001e60f5e6b88887e9cd GIT binary patch literal 13232 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

      PNz|^}s3}#={XwbUeyPqLX~&FDZoE0sM1@yg}5q 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 Gmj4%n((gwij?C=c*pdN&D1^|71 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/loading-upload.gif b/novel-admin/src/main/resources/static/img/loading-upload.gif new file mode 100644 index 0000000000000000000000000000000000000000..6fba77609ec50f9ab338a90d658e16bb05b8d206 GIT binary patch literal 1688 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 tH_; literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/locked.png b/novel-admin/src/main/resources/static/img/locked.png new file mode 100644 index 0000000000000000000000000000000000000000..c831c1fa8eb8b1a717fc230c7edc3dfec47c5ac2 GIT binary patch literal 1132 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%0Am4Vz~qX76-hM2tE>_BMRLQ^gMLta zxk{Tp>OCEN4{QqlCYgq9=8a5Hi~9-%N!;fcKdE}A=-e<_Pi5jpz(yuHW`8E?LA#0N zrSY*c=?~$=0*zQwA~EeH%qCI#(U|*Ygo@P=p|{&yn`E3?jJqd9{KO=cr#B0P>>;xj z6%!4|GOB=YOfl^W-j<=INC7#O{0)iyy*{0#x8DVlMR{(r)jlMB1 z3ZErK;#u-PTY7vKVdZO(iJ&p^!X(gt zSVGD{_4f$p0nl|UjAydB0S--(i=-eyo&#OdQYjL~A*`H{qDG#^N_|Bd6&fhMv|YR{ zswU3m14X%n~GP<({E}q~v&s zHDJp&C2z~<3s9|S*CbUZ4Oo{XKICy+ya)%>Z~9qm3gM^dk;qcwW>ZNe#PKSPC<;nm zq&Na4cpUi~5CW1#x7U5y3-eM$n9TzTykL0&2u)02&ZgjX>Kezl;El031+gn#@Iay< z#fI^j#BCY#K(u*4Lp%Zc9@HXzw=HAIVM14UkalZ~G(Vb5nQg(1#v%0s<|t!Q`Qs!= z654rQb3Oqvla$_QxKzC;KP19|-ia1wL&$*G%inXVpaSe$(9$QWtN~aTK_lPVoodK< zP-C>9PY!;8pALV&0RO=nhp*E?gsoNH@)4HA0yGq32?RdHY@~fyBhD<9*8B#2TFP8R z%&_P*u_wWal^18`8|2?PjYs%z%lwJ~eHLQ@zFb-;$Bk2fLxXh8%aPSdRgrPw0uA;k zi>HmwR9uL22KM&SeDo(~%hcSWP#S8|*N>e6$4J5EPePxFk}BPPnGOb*lf(cqbsrg~ zKMUw`ES$vbf_}BDnpK zM2ENHS^gP~f_T0KQuF|zoiza-T+@Un9OQAA*IeL>8a2s%pN2&Orr4gq%v7tq#Q!O+ z*_6n8#uUU`OodSaF}5bR{gfcyMz=q#ITi~{W`=rN@(93mss26S)5~vHff1@$G_E+% z^65k!1O(zp02x+goIXZaqA~y#YkZC;c(XJjk)g=oVqV-3a*Gch<1tKKmF^ z4HCMFoR-dfB`FFu>iA#qXuu&e64xG+bat`4c?)7*I*L<(JMcfwFN}@^K|*m>{>(bI zT@67>V=r>QN>L@Ig91;|##Vt|&zZOc=X<}(rNu^Qt6)SHzg>R|f$NBCjE#vfV8JE8 zl~cys56{-+iGXESz!8lxJoCRshe_;K1xvr1ffMCNC)kG0c*zrqf}GL!(23E>7?Hu) zDo@(c&wi53s!}g8$`46zRF2KO-fnKg!?gi+T`uw!{eTsm7B@AwVKgr}feNETQ7W-4 z4&)X54t7A`izQdHQSLM|eH=Cj_*p))q8;y#zr?A8XpOPlxOC1EpV`HU3dODHa1aI6 z=A$syy&h(~G{!B+ID!X_Tha$^&cR@H)_=$BcE^Jfivj_H><=0=S4?1(``E!>4ZAkdiV ze=^Y>`vgc@;h$}3l4{MhZTU{nopsETkSI7#s+Zof4j&LH3nzM3MeuIuc#NqxQ2icn zj+(W?*^G-2_b98Nr1W-qQqxL9QrAlrKtrCpLxuXbGZ9o3}hZu-r7NgvMj*noR_9f%EZk zr1v0qdW6^L<7;ID4^a%0=zs3wBj>DGrU*cq7qb~Y2Hz|B(Ha`8@y)kBpEf4~GB2u$ z>lZ%PwESp7|85RiQZdvBAw;~4SY&ZHYv$mZ{z}DV{5`J8Y(KrmTQ0F2d|QJ)lc>Ka zG2?Su2yDHa3DVSv#U+4H^FKrdM*{0_FR7Y`BocD+@v*Tz$R$D^}zaK25*(D?^UjX`|vY{5y1Gg{nN#mDP#Ye{M_ z;?O@J+O>e*T9wc@6QG=~@B+&`J}g$8K%pxY^~qUDOXh&(XtGJ*c$ri1Qnk>)V1|BG za1Z=RAGCnl(iJIvH${(`T=6zdFvar2&D(LimP%sAtGG~otpG3QWp2NSYl4>)Clb;m zF06Hf%m>>tyZfy>1aKNiGO|>|1Ktfad=%UW)Uhx}mUz!6I3*G4Oh&f|#lWy8mW5{? zTw86hYzOK0h&JmYCTAi%o923#fg6XSVz7dqfgb{r4SAKSHEMN&yKpsy+brVHmfPSM z$ZjUsD`J9;hmZl%Kg(BbTPAcKyy01J?Ja{3Ja9$UENV#YxED(p2pq9edJ>le8WfmF zmqlT$wr(V$rB1E>W9wD)CDOLc$l{3P+9r150gq&};k+#8CUTQ55k*+OYN9=#1!wSBuh>b6a*Cn z$r&U_j*|23!Pl_&x6gOJd+u}pI+jmYuUfULYSpUhnriCT%j5pzaV8QKUnhG2(9#0< z001Ba$RGd!1t|zVHiG=1aj`Vc360Im1~X4&0347{^$!gegwXy&gSij}01sOXyk0{X zf6)~X-apC;V`~7Iz^fi2azfL9^e_(f?>a-AfRpAy{wi2q7^oxmAMwF0062T<=UvGT zWeaE1aYT8d(2giKHf4QrHe)BG9m)p{hzJRb$q0$d2#K)?i^~X0$cRV*08tbG5P)^! z3Wq11oug6&-@&QJXyQK`^hG)ekT8-a~r z1E__ljF6;^h!~rYG?oyO{Es|P6dwZpr~lv}{I(-x@V6Zy6Mxzf2lA`kd7NMRFwmbg z3;^oj9Xk#u_v8NKC4ltAUe?N50OWWXAU{a~cDJx{$3wtffRvDskcg0!h=`PugqVbq zmV%U&g7yqGH7zyu8A{TV@Xzf>;@@Kk83_p)IoT<4@>4YA2+z3$swZwy*1W;jYfP%9V7Z0C+kcgNB^6!}t00;Ur z^ArHVg+Os|aqtN63Gtw$qF^Q^6qlV!7*9#phML1YNCclI`g!3cPA*!#x3;2U9=AJ` z3AkhQSI5_2XmPq1MR#~E#~RqFyi4+Txz*M1YScexd@qFcmJSfjb8^ zo=8wM4OWAa#x(oWl{7)p4;Cw{5$zt-UF zZxxOQ0aEBmo0Nb8@U05QjOtx})GYj&FwRich=IgyYee1+T?(~pbU8Brzj>5;D zR&VzpukTSr2=C^9z@$fR-8n*0f9bg0JfXn+{xel4OQ+da^U}|Sk@n4{pD}g)x#I?d zCc+I2Z%z5(TBmwtxHo$COH9Ukh3gi2&Kbg-yp+aN7nnX@RF*8mv>LSlm@K@up)%Y= z>df->y6F9f<@~m#Bag)@DuQ}9L0z@-t_ok3pt)nX^-_rR+L`+dDb5<{{(6IGB!ewXe%}ORJ^a$?N6CDS=lKIe0)@?y(ivkYg<@Kd@G1*CA|+n zYDW08jQD7A;xT|Y2AcTm@&iPkP~=KlBb8p;3r#hAl}@c}6(bO1?pbDOkq8V=Y2za; zXD(_AAt19}yw6>`G$a>(R4{$Er|OKySF3vL8X$Cm9+_)THJ939~J7vn99u>}l3+RF-lL<1J4*7H5jV z$AL#kB(?4L<19u6%Xq0qf*S94^>bgmmKqh4kV zBHhUfo7y$XZ3btAH>=5p#sX&olR_1e4{38=&Y8q*9E9ZzRVK6-y*B%5eckKUm!%aO zMBq~i%-x|wdZSiu-iNrumpRRbZy!{oOGj{;X@&-*jrAPPXbZ&Ji@K1bNj}%h#V`?N zG@)S08%!f(TBa}a-{;@nPeGI!S}Dv~44@P1HumoqbbrKT?P+ghXQ-MpD>IvGj%hBA z={iLzd)FO&Jb3SXkh-q;{M$Qqe>3(@P47cNw8Z|1eS4>?&SbFq>cgl!ii{n*XS^TU z?#I{cNn|+|&uKPj;I*IfdA)}U+VI}@$q{Z&YHw=t2!jKb;z8bsq1OSFMI`wt(qH=I_@VYx>tj**TYx&4g zIM?dz=-uZA(mp6g(+e`E#3S~H4<$rVn_W+G$b-UTQ@f7=4-T%ykcho~%ZT~@Hvj%s z9-Th;%5v`@*kc#djVGH;b)uBpa6gGYSbo602nHETH0#pj?%;NS!cOVzh<|!{uGyAd zO^+Cb%94E_fq1@G_{f5>{aAWsE9TYVDKC;&f**aG;B<8I11{mU1(iqbfqk%*V*u~4 zRH&H^|3ieMY4t_U@*RbZq@5dLwNGL?Tp9{T@jvCd?HPXeMjZ51b{!R8*X??}Hge4{ zzDN1IFI?tymm%^4ZRLtX&TQ$>;zryP`OvPlp;@DM^CRXt9L<$&{6gN9%iiC7I$-Az z0EJ3WP~4G=iW?ueRJtPj0>t%hMswX(u|^*Qej_PzOob0{6qh~kgU>?p`$M+{-w|_Y zSAOU#nx2@g0jF1m&0Pa?+-cclVvd31j<&fm)9g9d zV(#t=J0ZGqmWIOo_|oK@k0H7a=}Tpc2V49H`LBfBlcTn3-}TZBK~Ysr5;a5CW4umeJJM}tpSwYUx>x!t*8WM2>ztu>l*q(EMQTYkud};2HQy#kZp4B~K zsgy@eA+Kh=B4^8sCYjKaxDjW@$W#p%jseCa*w}T~I^yJf)|W*EMjCxycSiH|w93m~ zLta0Ybg3oZ^OGGa^-wU}E3+P;H#Tg!)yJ?F9!54)Qk4l)5Lg=R6A#-kIR>;eXtzxhseMG^RuVkekmE*rM<9WRCD%s zC5gf^s!{UsIy9zDl^%DiF1w40*h#%~**%|phwZ7@Qr%HZq(ZdHh<>KbwnV52YJ8RO zCJw{0T8FJE7tBClNfD>wqKn*1qvr)kEAuDUTA2F8Uw@Ggqv|Ui8aoCo^pIB2l)1h~ zeKqMV5GuAMpXnp#d#08G4Y0zM>;=ZW+T@0(7g91`AM&{B_U}`*@K;89iBH012_GLt zzYTjWU04kp@ZD2ba~@(?F-$Eft)B2#S5P~8*jm7uUi;RFzhnq)NtR!}g0|2==8>Zl zm(c?&W)uqvOBoBvk+Ck$BgLKRbv0Od4lmO?1`hVJ1Dy8uJKc-ZPMIc{n!xWx>$sGg?unp~ zGj)4$`9@>;dCcZpX~Kks{SBvtw@RwW(%5@3Vk z#2&5iE?v~MCUSxq*=_G*!1B{l{8!1$zT0k3&D=x z#efd;nx<;AZNH)9{hl7wfo;$H4Q5#d{C(kP{D{ch-tTPTs^g_cPxHX%st%P=nUv5{ zTyuJG(A4GLwW`l&>Sq=uz}q>EO0Kl!$JYMGTqyWXse zkDpafm!-F=gz+{18uQTauPW=w%=)T1;h4ld8E2mvzC;e+BiM7!vQAg^#>q}LdQ}my zW2z#qhd1Unx&oxV>N+dyADb6e`)CH77Z@~IkU(r41Df+k1xK-6Dsvb!Ka;tg9%IX8 z@jgQ`nAw1UOTg*U>g8hqcmC=*<+(kU>>vOfp5o+>gUb_AsmZW-1{^Nias`Txq zpVvrrPxeSkdjFd)YJs8e%;ZpAA(VFrsh{h`^d@O9??taf z>Ymy8jr)&FtII{IeD*D#*gDROk+@3wxl}!qw^F@kMgQ()xL0i!KRT~}%j8SI*~*@p z(Z_i!Dhif<)23xr@|Ju-iIt@uKWDpm|bM>%JR02xr z)6iLQ3@is4MOrk@mW@~;sTmFF#Fq;v(aO(UVdR7PLvx5j$=Uu-y+|WbW<)#Q-57P* z1gT<*UF+HG4<4Of7e1uXEle-G_gE;2aTP=lNf7AIA;HIecB~D9(8EylL7){RB2+T8!6%JCf!ozNyas3w`?OH`4J%WhLPL z;;pRzp}1p!)4b|@ekQ~1-d?_t%8|qMje&#d_fO50s+p=Rl!q@ro2aHu8n`u2a!q?d zFze+;(uZ7}$-+Yl&=}>SjVe_E6DuR1ss<5OcpMtil z!mkY9TtCT2ZZx^J)pZ1oc{(r$mbBo%Tw-a?xFpR_puvBq#AnZX7jNL(vc2dKI{Y)E z>BA+>sj?=yE#|i2F}2;ig~uPWCV3ik5^IWpWmb5Y&sG4f3*mhnHYWs(`Yorw+Io_9 zap@#wr)EB0M4zq%-I85oNA+dOxCb$)GZmSXx%Tf^ol4t64DDxR7|Uk^9agd?YAu5& zzAzyjD#$dUPc*Go7P1qj%l0C@pB@AA(7IV^jWdfkaWX|cfLXZcG`K_RTE9IL7ho3+c|j*7-gB>OZr6bKkM&QQ>=9_U3@9pXuf@Bf3ztNl^dWS zx)rSIczs_o&x%{k-=}i3`&006z-ZZ62S&QMOK+3JkCkrwvb#4O9&&Ptu_9$P*xw&h zQl*gF_poqnkz!yjOj7*qM0o&ds9ag~tow?^OwX|9g?;KA*bs~f>Ho~){2)mwH1K^* zUw%20a9nBd{55d_I{%@ijA@yskn*8<Zy{=4 zM)U(Zi4}fTmb}x0Hq#daZm$JV6()rL=PY=VQrBd*}P*YoeAPGT|@v z8J4h!QQWNC9y+);EwvL?Em0)^ZmjeM2N^iQ&1Cz*NWQZP=95)z1~uU)${O;z(80sY z^OE1LdjX(<#3j!RZJ5Fq{F%#9>;A*wPHkUdoG#^BOQ2?LTZ^459f7}ghQ;(!Q~#IG zLnd2wf$ckjGpEmQiYJtK9$YLs(~=@tTmO|sqj0mZJ?|*ZYB1X&qg^8xoY1sKw}fB4 ztacN~Jlo~s@yscJrvb9%7e7?odnj2cJCw$`rH>cEz|1%zxIn)krzV@(qtPTM^TDeC zlie5OvgQCgpVcEfFprUTE{=SH4!Az=n%cQl;`cJsS3VUHx2Ih^v?sV4O8vrfu`Rm0 zDkESl9iq~8jLEy4?xsN8(yaP>*Gi{I~gG?L~T@R$5>~F3-M8N{=sY<{dH*J!`gvr>LNjIg~pBO`C(wGSfq_ zCnR=-1?hVpV`;FI>fMq(s9Aw{|N9Z?gv0@>;&Wd4Vx{rQvKWb#r9kJwx%W*~!`r9d zl-_+zrNJF`u@Y9C8SAo`(JOsdF3%}y$#jlrYiaMAS$ANV@ZH;Hy(Q7jrFr>YkuOUn z`Q4IG9=Dabkb5gr^8+_vW~(sdggDePA`)Hqs30IGLtg{Fgvr)8NK{UmUv%4NUdEQTfT);3=$ z*X^#kvZnby*B2OaVIm|gitO@3pfXqdN9Gmga&zSqMHA8z`tjV>yfiOeL^XixYKv|Ntf!pRbC)_ z1Mkr)bn!7YjD)Hy=uQ%=c6#%JS5*Rd+cE{y81&Ijw(S?eqEFDI0oY-ikl4o4p|3%= zF;?mI(f*1%ng)KcW_?bt&<}PS4C);N!*J*23y!>E3d^ye6F94%@zy1~@?O+5 zz;<8$bMMokx}x%P^VeJy$*0I>e7WieB`Zf~z~55st>785uVPoDY|rlMmV4N7#!JX? zQBRd5P*##7d6;`-s+}9f9$H+;eLVyjucmjXYR25z;& z>~Sr|Tgv4yQ0@bHd-LtOSB|^0o_A zrgwKS(~wQA_wGZ)OKWbGo6dz7oMzE5$l{Tx1MimI^sG}pM0~B;_!3=RJCszc9`q%#Wr#Xib%|S(&|?#e}1F~UF7nS z{&DiCOIB{zb%(hCTZtv)(r66%gz)0c@aiXH2V43>TV}$p1+3`2lGoMUA@L7C9yxtR zeZgd{7>vYLMXIzqxjeB@--=~&UpfX}gd06O?;G;9g>EEK{LK*}^@v?rqzm@ZJwae- zTU?n&qBUuVi)y!*a0}dBtYk}Hq7Ys7nX>hG2mX5YtOp~|tmbXKwQ}{^9V5p;jL`+0 zg{Ll?0te29%vP0Lo=XK~|ABl=TS0keio*WP^zvo9xt&%_hw|n5 z+0Z9S}H*fHj@xgR*#l`RUS2B0I7@Cj54o2#F)Kr{Pmck;_D1}HO z4~=@Dj~W^@*0!||Hw|R%8rSnj#x}}%73Knc+8=ou<%J43C6EIVZ3IUZ#ola5g~`oq_SDc?)z zLG3roXV)XoDMZX(n@SBftm`ZeK&??j?;OGzT}RbQ^MZC?oNbRu)l)L-IvzM);<)|$ z08Lat2#~s@p@oY*d;@?BOb{~w%E+z81RmJoq|Y(oNCJe|BP}6G5ius5ivWp`w2-8b zL6enf%oqVwpmz+GYWw6;l>V$h- zvq8WOR7?y&7Bip&=mFONYw&IcumQZ_shAFUzY5p@XaEj)09U}+6XfUsB7hJe4*s(P zkia>x?1}EO*oq-VVDwvesy}qscJp*XA<bSKk@a@uAV1+ z9bZ>Py_dhkO z4|Dy&*YSWUnqq7CF?!IY6Y|tQN1`}C?dLKXzlm zQa>K$6Iljq5-JTwKl+1B0uU1LiUJ87um{3e2A2D8;SU~G7F*_D!yf{_GOz>i42`jRIK@gx014Lt|PfAUYd zfsb}|g2B;7u2->B81gUe;GN`wZ0y=VaFWot{72mc4jw2kw|`;bqdc4(oRI%K8Kf%u z*xI#Ecwil5HeQ}6H8>LPVdDw60~vt94Y!}mB=HYnEC-vTfpB00Z~uSyAL`}d`p;tf zhw=ZFqlI?(xgh_L!MAbsG_Y~_7b$WW+||_p?(3<6RyWYP`g5Tm{K@_oVIoJAho6$G zlfzF-QT*t<`cF34a{@cKy^Yt&!bRi__wf7=;zmE&|0+&m>!6HsMS1*TT*@EyUsC&( z0TuzSp^#Wx6M3TCz@IWS{LhI)>c8+wz#(@0ckz>_h!@)sKnh+s z3acmdk6$J%bmqqthMdS@B>;vWD+Y*D0TV9ZeEbRkA3z!ehnxYy9)H0gf59Ms!61LZ zAb-Iif59Ms!61LZAb-Iif59Ms!61LZAb-Iif59Ms!61LZAb-Iif59Ms!61LZAb-Ii zf59Ms!61LZAb-Ii|95~vew-+=gJ(tnU&07D@J zeQn$Xg$0BJfr|>hZZc-|H?iw@Xtb^xwN$YbAg{@ zfk0rbcA^W~Q^gxp?Y|p2H1_CJP!Enqd3nI#D&BCUC+E-NcCcS%-N3`+6Z6=?1mUi5 z1Sp0E6%#&b%1uTKW#?pn1B8vh%Ya4@aB{Mf5xJx)ET*KQ zDy4K;R7F%+_>!=Ys+6#_q_BvJkgBMv^3SqAFab^ zZg2cn<3X=H3*Shy5u1{-g<9mhXRr~jjF{HV~! z5e`=O-%O4lVrZ1Tr;m*XT*(16@y~}|=jWsHr~inbO2Hg$kPdKg&;>aJ!CnYrpUEE` z68!hRp5*=U{QeXN7X>W&Yc-PpxoZ5q|Fyth3;eafUkm)Tz+VgeUu1#b?=x^DxV7*B z-&T$%NKL>EqP32mwyMTem6KO5QuV7&NE8kTXhncHZ|siI#MF$9pbZ4H5`kD+5V~pu zL%V6|t70MU0JxiE!)`0F^zX3M`vVNy#jmcz#`c^4KcXmMZXO`u8=?bBi`s#2CLnzm zq+NYH-LQNt4w1&z1xw>#L9{d;pn@QM21`5qpf8-r{Gb)Fv>gHoLRN9GI=k5+?67nr zNZS3S< zBF1qqg1*d19sZzg|DZiVOerV}D5KnNoS-b(cwy(*z!x$pHg&j&gM zAMFWX+xzvp!*=-xD3=X8t6?C>*2{wp4Zh>U+4%o`68|3;{6noj^thl0w}*Sc!Pg}= zBXE{EAsxWsM%p=HUr5-TkpJ>h_D2o>hsFM=0Zaav*C0Wiegx213jn9uX#nU_D}YN) z0zfUEfjN+0<93zE2>f#k02s5*{FwJ34d$Q3{}SOuf=L{-(+SWUP}VbGgL!#){}92& z-tfTh5hwr}fF580IKhu!_`#1{Bmr4K5l{g?e9;CB08_vUfPsI|L4cpa_y9M7ARrhB z1)_jBAPGnT(t#`>A1DIKfj7Wgpb2OJz5qSI5bzcF1}uOM`nG_5&@meUgbYFrp@*9CsD>2#*Yp3GY0f44wv_37!L<4_+`{ zJYEJ~Dc*a$9=vaOTlo0+bogiSCGpkqP4S)a{qe)_pW+wb*W-8KPvUP95D?H4oF|YY z&?c}U@FWN(NF>N5s3Yhk_(rfpNJ7X;C_<=8Xhw)6yiFKSm`zwq*hx4;xKDJ7h?_`; zNSnxx=mt?FQ94l-Q9IE$qJ3gY;uMH)exNm@@jK)OywM#e*?NM=UnNftqtMbC z%~=`^8fThNnmn2|npIjVS}|H9T3^~^+8WxgbWl1TIt@Bkx=6Yrx?Z}y)6A!pPQy<> zIGumG^Yr!^#xsg%;AbA5DLB(}W{;kYUWML;KAOIqeuM#+fsa9#!H3})!+VBBMjA$0 zMi}Em#v;Z+CLAU{COsy9rZlEjrcGuRW;JFv=0xTO=0z4d7DX0kmPahLEOV^Xtn#c* ztdCghSm)Vj*_7B^*%H_q*;d(^*wxv+*q^hvvF~%7< z@Q(}730xJpEl@77EXXBjCKxT)EO;a&F61hdE;J-eC45Erws4j3cM(1jm`Jinwyl3-`=n^3bfm(hK1kz9 zUy{a1zmeXRk&y9}DUw-{<(GAl&6b_Lc=jUvV*15NISx4+x#x0U<=Nz~%cshJRbW@J zQFx&+p~$IdrjyU4HZN>8Z8dD4*sj8qVUJ-8c8Ye7 z?B?Kd@EG`vy_|iF{j7tWL#)G`qk?0+Ug@_M1UB#{-lCo(Dn#Z3Ew7I5BrI-)^bh zdKE+*IMfvLPw=aqm0bZ+js6Ao0P` zL%WBcLWM%(Ll44WVV}ZO#`wid#%jfuJz{(G z@X+p8+ zo%Oq+29t*FM%~7?_nPlNG^sWB%zha>bEtIwd3z$>-6iH8)6&pHgz^fw-8(V z+Yfi>cV6vE?KbZj@6GJ{91t8N9G*L@I?_BEK1P7w|NVCLstE1{ezdKCd(y@K0X03Qc*SNbau5aQ$E5E>$wM=v5n?deqOlBBj!O&|F%Q??6|(f?X{Q}mkrP=s*-9jUPB{e zhN5?!6W{Ibc*fp^rxiDJO`emoU-#mZmQmNZ0&dnE9G#rKeSB~D-3t!6|KQ=HxcJ8j ziAm`%GcsRgWtWtel~+_&HNJ0Z{_ycrcTaC$|G?nXx9OSLx%rLFt?ixNJ+S*&=d`#` zJX~B{e0)3vs4^w!oEA?QAK;)?(j^eFp>Zd?6vP=#tM}ZNPL!yS>ura!$Li_v+hU-P z+B2}rYcGm;#OVzrRP4?YqwmD3dSdl8gnJoD-o1CC@cKE1N9iS4FST($+|=@_8QV+! z@>KiVO|80#qwoEMR}~-nXLqDEOr35#NX)AII54-%Cv(Nj+3#UecGaiB`MrPjCi{Z9 zJ0qo_+;fm>718?UeXe1g@oAyb9bCsQH%!B@4}7e0fWq_(rYXeqeQn@lf#qDr@v^9t z?fCg8?%%oeRqevyKnA|BzxztzP+hA%bfOjh~~?ZlEB)CtfarK2xUNW7i@3E zt65-RWXG(sO_{dhYu3jbHrcnjCv(_Ty`7y5-t{ZHY;>(8k9<-e)9JjNf7f99T8JLy zjyk>muyCWpi)Shk#YDAP+9BnZRE(s#1~|syI@Ee@4PVy8+*fm4k%uq)t7SQrHFUL% zSXYBu38(>x?tX1=fa!c+`SZ(+~-kKHWst)JUYHNrAjhhl415iEG8~YAde@}X69Mh?qK!I`8Q?D3-2}F zoEMcfcJMlFN*rd7qU2E!FDtJ>7oVo^8FsIhDpF~u#ZX-t|6#>pvoZ81FOMN7x03U~IZs6Hwc)_2-}9GoC-UX@x*WTm-_cMPxv z1~l}&eIo~*u_{_fS|0b$D@K@CeP)#Qvd@n)e{C?OL(a^){Goppm0#Mr=ogn3Og2_r zG~{RYB$y$@O-IpVKfpb@C8{0{d(4>l;?A-lH}{niTEdrHcxNI#(lj@U5mYn*yr1@> zAIcf9o5_6B=u&Jr-{=**PdnDJVtl$3S4B!j8y`oND=@&=>f=u3umVThz`{zjTtSt@ z=+qqZSmio~Wn%twR+)@{PFb#}f6P^u&to^<;Pq+6lDj4q^9+$J3anwgnnd%$gN-uAEh>FEtX)G4aV)-`59Wl?H@PVsW zsOK#WeZguM$@dJuTP&T911-8vU}s1a`rSKb7_Yd(5WcpN`PzX89tfTbJA0S`_21( zePdPq)=Is)SL(prTmj!>fW&{>>Wewx6{T0ur6F+)Kv7#Phi2|_s0O5r-}E`fuk3rr zK*-+cq3%L&3G4X6<3UWxF;II9SoLntM_T2xzdg(Bvz4->u)?}l;MZGQW1!l6d-H>C zasb6%J?2Brg4y0?0V(JqYN6@T5#$&MI2s$>jI^o&O+&O0`Li;_?slHbLhk|3tEGje zn1(peZrEnKMjN0ry^TC29Cz~ZqcE>PHWQ}Cf5c^`=Sq-ubf(Es4`NUIAa=#?{(7?& zW%pOF@GQ{s1xK7mZ2p@r&&tQeovxJ*9|b5}U>|tu9=elUidJS$7_0aoxq`IIa!`3p z*0+;X$tSTq5~qA;n=ws1QXIt?E=Wsz@hY(qg)LcdEkp?K+$5LG{Pf47H`_>kA{<=eCw9D8o|y5}m)Lr#8cQ$7@u)tvREv@G-%eC|~s% zTU%drYfLq%CRf}(Q>=k@YfAq#ow9~`yf3{VZmY?B$L`tp8@T2Hx!ei6d~6^0ovu*G zYzQvrJ%3ZyHr>C^11`2t3(KopxN7c&59z(tE#DSEO3 zHrmH)h=p{eYtUvZ7p()XpQ)Q5UwKV6>gVyRM)-GQha+9KXUD&kC&ND6S|h&NNX%rA z{qU&mb+;bWP)+0VGy9C}rWRq9qIYC=nnFDu3Qj{oyYlr9I2OW{KH3~v6(zfuIt=dAnLc;g$y%_dm@4f%qgDtwQ6?AftZ)$Yc<|=S zr(&7~2y`$b7eqb2Pf;FTS9rXWqJ9iKfP;R#6CIQa?x(vU!)Gm%1}&Qnym{Gx)c!da zOy07SMaF&75U(pH*uwj zn2&?wA*2kA7%RE@XP<(ZmdeG2I3FKL`8A|?@k-mPWZX2Vn;daoUvFm$|DIXhr^w|! zx(RcWHg3be7@=Ocox*6EPI~be=+E5sn@p()BalO1>Akakx2{#K2B1(W z3hzEoy|GTy%gTd=EjW8l)+XvZ%Y%a1G`CJjhp*cA*i=RoQmf|9?&IGieh-Wr7 zvJPC5nTs4**$z(`X+-J{i(S~()46l$)Rj|T)*!DGUkY1g*Hu+d79Cw(lF65iCk-Ptax!Fe&F&5lvl_rfxQ zKUL?Io_0xeMyWgorJfH{sNC*S<;z1Vi8cF^v&w969mw3(G_K>M(^XL3Li^PgALdN( z85+-%5M<&HTaB6TpD*@92PDNto}n1b%yRL)kIBOy+*465Sn6RrsN$_L#AN8I8Mj&tAR(i9dEH3MLR2D7f7COpz}7yM}E!LGu`1Uq*u!rHR{tl4FW%5 zLUuh*dF>Bc4$&s;mU)@TsBG*MSNmOWItCPL6}GmvFyKz50(2{;?nV3E@fh&=a+@3$ zdnDVu>p6Y_VLSO<$AhenuI_96-adyaD}~5rMKB(JP;9AS()_U4!&!(+GnjTr0TiWuK-7IqgO$Jz| zSc`$FP4@o7V5L(K&;?F}6l7KcQOo?PNz=-v?CIT(4m__I6QgG)lf4GZ7kgSyKdGr6 zT)r9Z52q}7l=vho+_8e-j=__F%=*&3@ngyN=l%bZ^`5>yt6#ff%lMhztQ zk&*ZLU9g`Vs;)|6r6PVpZuBM} zUu7v@qiKLDFPKFnOl<^te{S1S7u|nh%T$OjG)Q7d&}ia5nUNqaHlHrfzcl=1bi|jH zC^-H0?W9`Ah13xYIyUYxne2y0XLeW5^v1T$zl^zZUxz~XqRFS>=`~Gw#q+rN4SrQ(}Uo-`UNtgHy-*0m8v`Rf{og zLxn*73Q`E*|l zr`UH{hi_&PT&vKu92VL3OC9&fxID98nV6iCa^La}hDespYlSq*EN|0XZ7n2-iwS4HlxyH?d#fx;gQtcN-xYD8UodKjuWn_$ zc_QWX&?B8`A+3mESuLlu>`yCCTlC8_J_<~X$Wl|@QD4(l%1h+qz7L$4eJT+?DtlPf zp0Ks;Q&*yOTBal`UZg4=SI~X6M=eBG&;3eY>XTm4^v4I$)%Bbjc54?R9#Gs9_e>Xh zAa;MEGDf=>HubQnf~(#@zqo5+UP!SQCW4;K5iWiGAvo!(MMuIJ3XYcKhESwq2H*v2uyLQwO>ZNZj%ef~-p`GvZby1wl^&1t_%MMatg znJ#MoThdI&K+RgS{D#F1uL80FnbwlY^`nNhqxzu{%@l!LO0{^u53f0n1XsK;*UBS` z2p^eufz|qL&r7c_n5i*%wX*Nsn;5fR-Cm-d7_l@yvykwh4w`Hcxwc(HGVM2D7RcTw zNOBA)uM8UJ>G*B7FAa_358QiXz=S^d8I+MIn>bTfAjG5whL0kbb6N>z>oD#R{h>{7N^*AycC zzMKzU7*zVIX6f7h4Kqqm=cw>LB1hRwKRxgm7)^G_-I8BfM9i2}jARvhPg{E-8G2s} zO{|u9^mcQx9Rp9Yv(^Yx!_ZvcIY{DJMuLg#lcZoR!kJ48@1(iU(>R%0-hQ>o^#vo^ z_ZhwW@ZiCS0(-S+z)EYLeoM;I)y1JmsqR)6Uhn*26_c{yp{nlOM^bqOK^ZTpG#DFS zNPUf03u)>~zXK=cg!X*F-nul z+Uy-Z3(P5W95H-}PTW_L9;(;&#%Jh@Ju>K_tkHbOwy=~mJ~*6`YFyGooXnOKhtHFa!Gx5 z(JN4tjE>dC{@TXXYpWku&aKsef4wZ##jw0;M##Kjw*S8PktduhmQpFGb=g&3_Eckz zwndKzaGB&K?Y$R~>D6u;l8z~S%!UL@&=3vj^(2;w^(WFCyb6uu-zxK8qIVJ>67~cr z>Y1ciz1(Q)NO9U|YisCj;kUFO`~;ih$;-7*%6MV;UWKOAkXl+qQ%=#NQbi6aB}e^Erb(+KW;-RZ)Tyt?hSNT(~F6brx<1rwpIyp(sowkTcm{i_r zHob5q2OfY4=xG~{LfBbdklHfdj^xglW`B(_)IPAE%)POnA;k0s(tt6UOVNJ87TDEE zG9f_LxBF;AJ??_taPk+(l)pD}-_!^s=qHfQpEFNx5>xOIVU7ZVz4)_jt+jg3{E`0Y?67oqfT{(q2%H4ni0s)C>=wE-k;?x8=hxUBy0p=uYN1bXhrJTM&2HE>T)+rpa-HtGI;42VjLyOlL!+WZ{0Hau&o zblzLXx2UmCAd{D7yQ!4vUkt?=cI+%|LKi=;)N^61ZSHfe?v8%E7`AZG4ZczcTPYUr z)6;&OxQBTX^5RC%^U1}4w^Wy7Z+N#mbv=rP4oXXme*G?`ry(L0n>oWSeaNmK?KUY*-rD->DZLdj#+Ll~9!r5}f~@v0drW@MRB2D6 zQXwiU7@K_a=M|0Eiv<$?PhX^!uUZ{rZ^%&fz#m$<( z)b`a4wPYcp8)Yoc+LGEd=epo>gRfvN*Dm(kw}{(q6Y0)!3zj4pc=jn~2`&|DW9Igq z7`ZSc(S^Im0O2t}p!0HXuENhP>lmQ0KJG|UhzYzXse;D1&KmfnqZ0!tsN&H_|yn(xIHkXbuNSxQwicNaJjlq>HZkg7qBQ+l&Dtg|7 zr5)tkcgV89FKE zrKlH;Bv}#EVD~RVVB8hVVTaY*DR6Ma7c{PDN1+w@Q=$%9jz~Fwny#-dAL)+CF&bC< zG+>kiG%mnYl0|-9R=>v$sk!L)Ru3g4nu(i>)#!rTLS>3Iz#IwJMW}4yC zxk(DJz@(4~AZo2ELc)im7f}>5(Id+P2b;&kC@j}_!u<&VDO>*liT4-Wn50)71toX=+J}UaFa@WozHk)lphQ85Ys%MYr_!BCvsN_aRYV6(kfqDIzd5 z@~vspGhH;$WP#y@75@NANfrE$KvpV(gQGXJf-k$J>wM)+3@~95r~UglT$NTb3_d$z z?R|xS!cO7}xUiDtJo2kX^UXRmi*y0qn)dgV_o2A4l1nCXl0>E3#Ks;$k&2>&KnPk8 zX_3v;&Cc5-R<4M5=z|rMf#Wy~U8H&4)PSLaX$Q4HpfteY*LzBBjf|+;SmutqVp2}E z`vzyKH8~tkI<+2LmJ2BJGR-ScZuVqCWBqllG~so@cg|WZ4+A!`)Vl zxAu#Vh-)ksfN27R3RJ^f{k=oFh@`k(8}q7(z*;1l4HeT)1yC-k{6?-1cS1tIZE`F> zznG>dfUgd- z1V7>a1O6lF?!gJ;j;t5gtcwF4NU;9^c>e%f-t?gPp0}iRoKpQS{_%7E^Zk9;4@B#9 z9-U=cP(Gud_7?vDV{fm$(fvRjcnqITv#bN~zwAIK{lC-Rw3_9rI`*36^^ifw(~t4f z{{Rv%?|K*0uTXkpuEYfY0I&YS_x}K4e|w(m@N@4$br`u_m$t?zUmop=B^4!z(% z)YyH0r}+N>OIzQ%@c{XC$U*)G>GiSa-@5Rq8SCBy{SW)kzjdIZya!(JAMqdWBmKD_ zPk!rqN2gp&2k3v-=l$>L@6_vBSJSRO1NZ~|u>Syxk9wf=>)HpY>w$;;q<^-zKk+{O zPQ5}n9<}ZMecvN$wwF_F{{W7=dah_r?W2Ck?M9-j`)ak>SQ^%&+S_pGWp+E0bE{6t z`hcK`z$#C%2FC)aH!a4rA87k}JlHJ^v&(eUEWMF~p5iL)Pv{|_KCSZWNZq-B%I;0W zmCR=-4Gm6OO1H?gkTfvV?dqzS=g0l8sp0TsW}_k(0c{L&DF#^3(;M%%!p6~JiGi9* zP>vvQKbihSaq4;YtCRl#tef)O-M~iEV@7I>NhcW4`4A{r{$9NsU8Aw&-W!NfQ(`mu z4ZTA6T%PrpZHjnu`0blpp21*iT7ssir6o3FIaifjb}SYQ)pP4m78w~p*0#@Z=qNO+ z4km*q6+i0X^BrWjJM$D=x3S)MH%lJzJ+%J-PCWHT6UbVgfGN+BBc=ZUTww4U<2}}$ z--+1Nop{-LoyUZs*|dXHTSskX_qNB&Vzz5ZA@fSxbz$%pVRn6O#r=rnEd&D9&STw$ zPpvAypQ!2w{aNn!$t9ay@5n0b*r{fTS(yHQT@4h}fpGa6N@Tl1y7ABzVd#oh!a!~o z;2kd={{Yt(x3{+!2Gg94I7+{sM@(|a)6E}uqU}~~o=+^~&7axVbo5IF2HvDkQz68v zjYO4*$xh%fJbT_NN%UaEzwaR| zEiWak69;6ObyM)26E>f=j4S0{v9Io_sy*)2i506C3|VWILIEbAg-}T#R=+BBwO>#F z0DAG=lNRpX*^G7*Y2-GP6x4ehl#e6V|R%aO`dW07sIeHJI8eIHpKtq7ovN)}e?dzTnqL~rXP-Ja`on|K1C8Gydq*<=$&;XD!*}VDtTTd)3>{*0VfLbQtZ9oG)Se17nWE;Ap8

      VJxqT1pc@9;N)Ojz^2U$w*PutGVv1bm`ifPHj-lUj zC!1IaQ%sn-(4bR)I5Amo>C|q0i}!P;#!vLas2`BcdADg$4tzmR`L^9WM~#)DcVVFn zdVu`t(n(-H+K1EFF|N=sP}R@#>nEYvCTnSBk#wP4dhj(g`Qn`}I*z3=J+IakT6HBZ z{@PU_Tq{41J4WS8*o6!}rq}kW2Q4beT-WmGH@{m)Z?oT83?oEneCx-q8~dxbX8!CU zP+^N3Ly^hl=o2GNLt9jpb+F{;mTYbV5~O7Fc^DF49U=komOYZswuJ^^V0N`%PZ7P+M5Aj zND-x|X;*b(o;9b53cS;nKoJ22+Q5B%&D+x|?7PD~G>b`zsi3EZ)v4AMMwl6Bjyj4dMy1LZcOJu^XRut zlSyxifVBev2n|8NR92%jJyuV{EGB-hvhdSZVz$*q6(-%vi6}9QsfShv(zj5*p^BHOMROreai{7RZYX$5#YS0661_uE~&XSn8DSnPL~ zmg`H98V?HtHSr9t29gCqQ&Ecbw072_uH5xqmtR{!p1{-9=DMk zPb6~G^+9SYDDtq+l&Y3!t7#^lil#XMf>{u1_lch5LXB^<#~i_jj^vS^H2(k%I_TH4 z^G&wxv0cd(JWs3A2^>E`b3$?$HyUF+2iZe=lL#Z;_BjDc7&b1M-rE~C}hUUmt!`k=^7|BHjF0-$X$pjza9VP(<&x#0=6-#Q2e-(>_GLp-)pm`wy>B!H6BA zcQBT7I`?Gh8gdOhiC`*68VdPzE$BlGQ~pt|pnX9abgv)kiRajsM@F=YHy4@4P2-c1?^$;97oyGhJrjc z4xW;WA5TM##-qy)HjpB0Lvg`{aF6wy<~4Lyv~>bz)0-;;7rynx*I{$Ay#+ibT> z_^p1bLXd)lD;1|`D1{M5p+<76kSbW_B1=v0f4IB6WSZvjP#GApcRWC;Vpy>Q0C@vW z9V;NEX=GU)gM{Tu@d^?D035~1W;Zu$o&|^0`#bRvpk!dmco0Dc>?4Tz@IGA@6d}!O zKGFWK=hLFXsmoZ~`U~IuKdHa_A8logI=HEz9cGCd#E=6w)C-URCraG?NFQJEC*6v% zpaUIjA@k}=K+XQQ`)~K2J?@CP(uq@Fo)@X_TTY9J?sED4!722r~23%{{X!I0KDJc`u9>6oR8=~+xz!k z>nMbNPrr4#p0Wr>`jh^~-|u95_g<;%kc!_$1O2tX+k5w3sq2uA-#|a&eeWK#Yag=)S#s9=&_V_~PI19`%o2 zwbug(KiLQUkNj`nzdpU!0|Ng5LO#udLSM#6#R$cS*lOvn&u7cgz49#pCV-`2Z zRBlwN$5v#p`vU=x6sfdwv}RbVq{>sg!fIJoI)$i}WQC;AA|maI^KNv8(&j@A%Hddm zQL4m(PBfLM<5eJJtvWT^_g1k6Cxcu>k_h|+&=Ne?Ju zzEzj}ho(&K-l?u#y;)C`%H!!VRkRh^3S3OI@SN0C6sa=eD(d8dq3NjJc*DpeP|^St zuot{JZFL>5i0y2$IT$9rhQAO1ikehrqcx^F&aKmHlXkZHDEA3%<31*>6dJ=LDu!YS z2pH;MGSt&i$Ez9XedoA)SFyYAd+vvgDso*Hx?{%TXwRMESVkV_-aXt~9I_n!YW(T?Qjhj}4|3Nj?VN?Na-T2lG5(x;lx5^2GRo0N z9!4HjI0GS606279el*g${{S)1k8I@Ye#goM(_pTrr~7eF_0m^R9>}*huOo8-r~E}x z`)*+9cke1{paxq10L~W2=hoInkThhn0-%)VkXe_Ht?Vstc-I*04t@cSu+^Na zfg5E10F$h1N&$^l5vS6l`KAV|EE? z-H8T4TuDSvqO>K2&j&O9?-MI>mfUMXH=ppddH(gS#-1Bu-bO84AJtF= zKc8BIK}y4|{zUSqv{}x)4I2;~mfm}o1u6;kXcxcM*Y}rlk^9?j9)2vp@zegtSk&YW zT;{bRtkzJU_nVl1pGQmic!^Vc?WyBUY<7=w(&=Iq7*utJ?LeW4`i(`u#>3bu_^R{H z-leF<;t%-n>Tla2c|Pvbx%gF@pYxRn{$`yNuC#|8{+_dt#T?R8e+BMnWl0H1e~1l% zyv*$$m;V5O@#L24&#E!>=HAA8GQ^;^L9b6%}S)nwR)>4KzB~3{EyU;f;wbv9~2sPSc+mq%7V<`VTDnbP8Rb za8+YZ2Ec%Sq)8Pezdj!>zyH&rubb-By%S8VMyjmtDOeX~lTecOZ|v9zzt`v358KMO zGsb-p&+;8+r@nHme2a9Ep2IXsKbijk1v(+$3^w%ppXE0|;$f82{nv5zy))H{Xlsos zRPKr>%*jJEu`Oi0dJx@9+fdVc%be$N^t`FevjR0P-*UpFiqaM|$NX3{BdjKl6q;xf zL}o(Z5Gla%8UBAN{JPv5zqemr;%hfwMs1zK^%-5M&^wDWgX$@F4LxN}CmB^G1It^1 zq07q$@JO;U(nmc?J!EuY^twY6I~g$xXtv#Dx7+t=psl0d#-?uLnh-%Ex`M9`EI1#K z8*06?-@U%~PJPbxVb>XmxK6~6Qw1ym9}DQz6+xlmNC20=g;e#a-8*X?o7wxGEJV=d zNvX%=Hr95krPB>jJaAE9w)W)6=4yp!fJRm*S+y`0)IcI0b73x7 zQmn`q7^ZrLy|LJ!u;%IxV7IxEB9JV0?#&|;!w#wf)8aL#tuvmsq3gW14|G&^HsQj| z)fg)6*|p-MmFX+!9cILAEJRrvI;?(9nv)|zkfO>}%N0#L(MKc`tE(tred71HVhAJJ z6~IYa0qNoqyxQsY+dOThAaIAbS2vdI~;S)aG%!>!Ip# zGG!=ai*w{2vmuD9N_yC+p}=lwKF$Ppgi7`GVj-l<61pR)Z=$wDa)cK0OTCM@>U;>o z;V;(9na!p;e1Xbz=qFNUd?5N0wfQl4J2v zh|HM*B#}!s+9(>8=+oB~kC({RKml+71oQMO_Nj@z+3n$zxu-&;o&{M)<>_7nk58mE zOWTJeMyNppi43PT`B2xUn(PMd%2jRm#cpc6CO;WiXU^j@SX^FRw>~{)MbZ*L4%wvZ%Nv5G3F3aUL6000@_Iu1L}b0f`jGf6WXvl2=2 z$@>Rg(z4b|J1vbZE3`{Lk~WR%A!kajAXBO%Na$A0^*29{Zbs}{U?UzFr5jK>xYr&) za2~nz>B%ARRxMQ$Fs&$Y>7P3MxNzylnA6mxbJ9-*RXZq=Dk-Llq6t-nlf^tN@koSR z+!8(7Cyr>=Nak0Gg+WpXBh(Rt)ntlToTSmRIN}H({$S*OV07ZJo%Mko8`xD3fP#=El-DMH|E`Q!V z`>%D(Ap8se0I&Y~-uGU;)Qi#6Q}9+keKr z`>$iyuDpNkBmLw3@b~V$k0aM!A^xZR=l(bE-E32?CNcdj{`>rW`>j*ct|mY6BmHsz z03!G9y+S;?V%+hQws$BtAnn}fKkFP-Sp3`D(0^?gABc6drnSX-`LI>*`pg#S>?)m$ zh~4n^PR87o+h=1W+gAZmgZ}HN9@#S&G2x=s$t#~eg#L+pn z&$1z&*6Q~1HG)#Cv}5qQ6%_yy2_Ubfe{Wf(?sq;(KFxp28+Org;l~`Sa_vN*gTQt0 z>PED1;Ij|Faym+FedAl$n~!>Kbi~Vt+dFSPi^Og`bb0O9O+mMEIV^Ou)>Ky}+N#9V zX14_tbWc&3k%KZ<2d0L?1E_S?QNtazsL=C-RH;!@r?#1DQoIkJSj8smCEdp7e^~@F z%Pgvu3=~T2#Xu&WbUw7}HY>5WW@9rZHy*oMr(#Eu`x-s-L%n-Mz$RFhu~G0bM?Q6D z6jN(D-OiXmE*-S{+ibVOK@ZS_cuuVyr0J~-*HtP#IP|J5?`T-s>-X}lvfEIxfpVJsTIufyY?!d=wtnN!UxAD|f5Z2@IvQmxryQ-_yW~t2B+~qYcLkQH> zw6fATnG$Ism6bxioBJu=w(z@F`s+59f;QEL@1;g))CV6vg`9=Gvvbe4c7Zjm-Q0Qz z0+9uEBnsqlHPb;{^kp%z$x*lI0lOpLojB614OFU3C8d z!c@661TUBEKg*+e@k$Ax-5tQ5CMewjxE&ma>mBP>+Uo60hros+2Ob+ z{acp3Al`z6<;>Up+DH2eOVCB}+82-clzecG;G*^>U=<&aFH?4rh*`M+Xn)5aPi$TR zCnR$XPy9z;<#7#v!_vQbPyB*5_a1D+_QL-F=Id*Zw~(pR!nLjlxHeJw91=f1@wydf zj8Ne5>kJvyA3qT5#+=w&PZqwPt^WWzhvweQVQnIwROu@a*gYrfq4KnZAzKmvRS9%0K=rIg^E$_~e=|;rnpve3R6SpbKW`L6TV!X%_9ZPb zcPn`;mD;Vzu(uprGrsQnSCs8pvIg&8$TUCf^fSJ16WZQo)BT}_U)ilX)6}nzWPGHh zXw{iAJ1$V=Nij7aW#pk|QU#D7xzc~AKJyCVgL&J1e0fLwXRK#2v-0;fFc@9A5B;25 zkMN$3FY@SQeetpB^oDw>4$YuM0jwmf>ut)B$VmExX)pf6`g;WK$45I^H>9xt0LRBu zk1sKk?&o@n-P+D6{V16K0EeQj)A&iUzb3Z^A_+_r==lQbLbjv)KVfzyYe#TbO3sv} zFZ~xU_h5*x^cJu4s;{iJkZq@|(8e0ljJhp00L%51)~ zf;nS_r&#N;y~ne1H8nLV9wt~~pr)Vng4(pG9FilxQ<>X$VxuBA$K}>c`}?*eT(Pkr zriGcc5-Y`4rh|{KMGvNS-sF!Vxi=jq3c9xrde?e^TMMl+)zQ~e%TN4LjcOh@$GGk=S*Pqx!f3Ns_4;VLaQBJ4McW!h?(HfNxG5bG6HT5!TS4+_WQPiU1~)N zGUNk;)@JiQ$sXZn40j0Mr#wD1RNhen)0;K#ZOyc(HP@KQjcjAhw=$g zfex-NEN^gsr?pmcv7Q53lHC;Va75Nyipd@fd_LNAhN_^MX!Vy>hB$RYp>O59k&jUX z+E3oGC!3FA7-Uvz>Fy^#>h$U_ytR1Y(i^ZSr9WW*0B5iN)S^%34>WOfuGc^wIV(3^ zA{gCN7D{L;Pm<~N3{&&R=h!dXW!20wH}JsUB0N&1ByhB>90k&bTYQn=Wfd&7l!XmYJBp1$l@!fR7uXJ)dw3N(dzTego&}>Cyw`MFmAh@adsTSdg=4q=Gn&B2{^6 zYL_8JOEpY?wNms^HCt^7#*OHYwsX`)Jnox%AsLc**T7l6|!~DPbTe1HDnule4ZO-&w=In2Zo4W(mHF^HU z+wfCkwuejhMq_QgFZY{nZoSJQq|xjZBbS5pj#9-W#<Z;nwA)%(z0zAICIf@wBy({%RkE!=Nxx3hQ3)!A|cMZbc-f0Jk;iF2xGpv1xsJWzS zbdyRFS*lDTk;S?0me5#FIbUp*CBq=ul#^u}Q%D8INv5~~cy?+-QZdmpviuEWT%-^snmez_sK zGOphoZmB$iNa8*^!p)_^imM7RrAm*Vk@nji)0j5h&wP^G=)mygk{Smtq@dDBBUX~3 z=tCcb9+#OdttM(p7r^ek))t&*Va(RkK~GOMKPN=yVO@)^$Jf)rI?-g+-K18zGDryw zw_kEz@yNftHyyil+WDVz+e%-h+{p{}T`GzTd190@t-AtsM5-!CW0hJ4toea$?e1+i zZIasP2pS|URcP3nhgU*s;DJU501!CWr8dvodw*>0{C*2+?Z`Hk10VM*kHAyV!;ON4 zYHH@Js4&q$%^V9;S5qXU4s|);eLagdxUJx_j@r*_7FLlKRD>*Qs-WPi#!3Zmhyg>M z;255YH=Eo2#{Ns)&vR?b=@m6f%+AJ&01V6ls;CR+KscV2s}KU;Q|!PB^jFqlANs@n zVgCRk_pZIxRgdXm{>0wj>-+axr&)x5)cf^%-jmir5dMSxjnDP}0AAkx*Qx8)K%ds* z{rCGHe(T?0>zI%FFZ&;U{QC6|T!d!dOMkW=_u4x4lk3+Z8UDZVC*P_E0oSzr`sL#P z03Y{{_}{-&{{RT)HpWUhxm{_rCuC zKk$FC*R+pLy77C}SbBBsKQ6uEALIV_?^Qp-I`LnZTuevsf7|=l+t<85^;C7yivIx6 z{{T;@{{V{n(fM_-j69D?&Dw@Nsk&TP6x(^`3`U?WiK{mtn;Uz2-!sHLSaj?tOtFn8 zi0kKL*l9NjC>U!s1Y>W3^+qchjF1I%Q;~c=A zyL?>wu>7S)Rh~iUEi6Grjx=3N9 zmD@udOs3}NQ6xcmIepUDD5jPJ(wXWTwUkRO*dwz>2bBpl{evA6E~eY~T=z-z1}AOq zO3Y5;-F@M;c8=-X<24>mx=fDgrl7^kRg+U*BE~KnJfVLJya!4vJ%!J+V|jUPf4f{< zPG7@?nS8XSp;YD7v=WF0E}Kw%Y`8n4=B>)MS_|>TyxU+JRII00vEZG=0jr zt(CuNwie#qGw*%4l)Z0HNxG(!%QohR6^X5-Ik{$N;*w9kj+C%+0BH2Jx%NwaDqM1x zH%_Ot#>8>pS-pB3dwFAXXYNn5*7vr?8|1uj$VCda2~s^rpP}f-;E)VG4zv;~0@3)( z10>+DjY5C`8i2X_4|t=m1RsXIbxDS)8G}&ZXVBODJstl5iZC?WueF~^l36+fdI
      >wIbb%XK@vH|-}Is!UA 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ⅆ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 HTKoDxd$#jE literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/p2.jpg b/novel-admin/src/main/resources/static/img/p2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..767f89166dbf6537f84167a1bb07a43bff1be4f5 GIT binary patch literal 151080 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𝔯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
      NIw2BMT9 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 bk4keQ9^|vI-$SXE67<9?1eQ7WaN_>}Nnnh% literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/p_big1.jpg b/novel-admin/src/main/resources/static/img/p_big1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..83672fc1a80c53e90f40ecaa3dcf8bb18010e08b GIT binary patch literal 560839 zcmeFZcRXBQ*Eo8{=ry|NK}d++yF|2z5WNdybTb$&1d&3Dl86!n35gaZdJsesL?T4* z1kt;w!_3?>d{dt1eSW|9y}x_!UpL$5?6dY-Yp=cb+WTzh%wBup25=Lsr!@jyod7^j z4-fWbqf0PNuP79w#7Gl1|20sU{8k*>gD^B{f=6c+{Ri2ox$xDEgU$9~?= zIwBq5+y*X4UnI%}>BX&XB+YH+if}{*pa2OmaVZ5cX$3JUZgCj}2{8ppSpXn=001PQ zOhPdU3GoNepKU`N9uWS5{U1V(cpwB&;OS3(aWS!{|JViJyQc&{^@Gkmh5m#IB%lAZ z5!eVmfm%o^h{-BQNO6nF;{h?*|A+%wi6PK``VS7mZ#zPUe%lc;`KKKTAV1rMED-$C zhXw5BVbTV3{5TxmaRazzfb!5@cItWn1h)cEAC>^e>v%rgFmMZ?Bqb#!Bc&uGqok!E zr=Vq|p`@f?WTB^Lq^D=0r94dk+>Q$Wo0h426bv=AsQ1UCwHk{tH|q6%tB1UXEg!uSLQXD1;MF$pOdIR)h3i4cGQ z`jdDJfDl5U1cU@cB*dgdP)bRVNDC!AK_^ah_Od-ak9W8PF~h@WCFgkg7!4a8B&B?A zbgGk_j5AuBScjpcnKDan@}GZX?5OcB%U6cE%VZM1QFiNnx8KwcO@a95x62bg^nBlZ zQPI>py=Cg;ACZ_{+1xj?Evseb91xk5Q`OQxyF&{Q5P;ee9_mCwOeB4%!U=IYLQn&5 z9(p2)@P`a|4H^wQ*ChEICVXzhsT(oEP*UqBiSY`M@Jqkz0+q;OcGNJD@r6(RQsIBC zfxvGSa6`Mv3~Mv}3_>xQfnI0g0+6|uq@FK|GS2{szV^0?6R+$*UYHk&Em zy4Yvrb2MxFP^!xfyG>PF-PxDJw<3m@KFUxwvp>E@BE>8p^Q;IKmO7#wJBXGMq^yis zfvJbHHVhuqg%4K-vtjJo^j{V=R>elJEVM8*H;gW0=>=U?63tc>Sv$~g;9WC@iz>OW zej~ji%J(Ou*wQ$Y6fH|i29zmZsbTF`sKaZ>ayEmpNjb}Ciqg5^1o?e#U) zHwD-U^9vH6i0udNitO4qq&uZWW5hWb#Be|lVN*u_*y^ZX*xjI4+nNThJx`pj#mxM` zx&?_8-GnW@>=S`@!(z+jpYJcl2G=LeoIYQ<;V9R7T(yB42jITW2C1_J^oPW_28Sp@ zQwE8t#hquCG1EgBbN95gc%fGjRlFm>v6%?V5Y?=MvDt!{WPO9$9t7#L#I9~nrdnN! zg3VNfaPgVasw=f2NjM-oe|)Av3)ZjKRU-8EW9!E&DDiO^q#$~mM2Xeb#@)6L?b|TE z5ERzgkoeMxE?xs#aGtmCJM(nYi8gQ6E^8}nY}j6Vq78qWQxE$Lb85u4wpWUW(@b^4 z*)OA;y(yO7?oaFc2R#$aVwBBftY?rI@!*tkqm$U2hH*69h*!AiMNHv~KEr)kW2@W~ zwRYp9Wuu#nsT()H@I*e!qj6!g;j8jk-H}DsZ3l(ofHs4v2<^3d4+?3rci}kTTKcJv z?RON$yT4TFYDA8TQt>e>xz|N@`-URM5nE1jKZI1da(!n=-dM0bfp{0(1c=3-me%Ze z;(%wHjExU3yZEob^s>*td>9UOI?Z<4Ug-oTvv>>#WEx+xfb8f|ICA&=tYG(3cgOX-^P1c0Eg>OA?|Vzq_gULm z=iE2m?^jf&J;6G6jlAxknN(OR)@)YpS9#asHShN&G(&5z88Kdq6%JChnZLNOqg<`; z=jpO(J+%E`rlP$h72~#qnQouL=*;OYFnLJ-4RA@)-4~F;b zxgK|BZl{*LQw+P&`@S`A^E*>zKMCv&RfW<{ahzq}wpE(qq6~+!A`SbLlZB_TL=LgB zOj5TA;v=K{wruZaN`PXQX^DcYelzl!4a%ah?ZgV|u4})0`p$}(GQUjXS76herO#yV zx*0)X0S>r1G@~D z6}?Qa(ZOf(8k|d4yGpR5_aDDSUaEgGv{5>IXUIp>i2Z#1m+Wn`OVTh@25fA*P`_x@ zikEp&7yH@3eO(AKTjSxGUSU7ok%#@1GHx~(b{hwfR)>|=%vZGYccX4!Z@Ght!U5KK z;!`YB?_Uvi-HMt!Z}*%)_1%>3a(kslPYiI=?ic+Z0Sp9cww>pS%fkEg5E+ zoQXiZ6y!3h6P>M-#Q}0v8#Rv`n-Dtg1;X~8k#lj2EJHi{^|5u{Atoi=9T@*>F@O!V{K8W;eh#9))j?Z%4~ZnJMd|&udEARRMg)zz*!q!ykimdW#u}HH*rF@M0ahn+D!V)YF@C*(S9AChu)HI~nAf%fQf{OX* z-B~xZNW5r9RNJ*U&nkzb3&k_jjS`jHrO%EMUrM0{P1$8Itubl_>6edxLs3Da$liaf zi*>%F&E3BYJ@5E1+F+~)5W4xaFIfLxp}OtJn;iKT&lvZV0S_7vge$TEJ925{4FL|& zOIiumNmLL2x*X6|*r4TeTRu&&+rGJ`w!jfxpPWS3iVl(;w{1DK`rZ*^0hc|!@**BS zcuRMB73Ll~L0_^|ml*7O(BvHzkUNOzTfMu?y^aGk;N3}`OI2UrSEeFim1w`TcK7?0 z`zfj^J89|DnL(q@oFn(VeULC&@;ZJJ^atj0nOMCQbg*h#ZCB3DSO$S#cPY8ZQyF-} zo|@v?FgR@1n5(xNtTtZV?HWtdXyf##{A7m%GE77ZRi~gYre;GkTV|FD#8;>{E&C%a z(5l_0i)X@CJ&PTtm(g?Uy+1LXN&x90(Ydu5jCG;Qc zl=axqKcAEKrX%r@8^xF~SCd`Plz2V=ZD8BS;ZBV9+NbH9FF64nDzB$J(JdkE?z+hQ z2V@c<6|asL&taW+P3usb=!;D9A2PaCoNd(W?}r6%1~X@dILyZn>+Pv29K4yZB^IVC zkbl>#*cY5%HgDqmOs}viAZN*%M&C(D0!3m_KG|=oo?M-PE|!TiA39!!F4|G(IIGUX z2e*utL2h&%Yk>;V5t}vbXJpOe0J4`4b}X*eR0bK>3{%;6F2n9_E}|@LHqCoBzu7%P zKGWrR=*Y};2cT*9e=c5#Ev<$R=)En5E^$v=zDNBScfU(i873PW&6%nan*-07V3ggT zZ*|S^yFyi_dZ}Ubyan%zVyP371+SGk8^-QTBw@it2G{i+RTCqlL7YfIRERoLT|_lR zgy`=qiA3$l9&l8wVr}l5<<0mm9SB8J(=e-4nc6~ap0Q=t%2*x5nnZ2lfC*-4BcUqU zuF6h5Q#sT9bUyK-(0*%6Rhew;L(4_EUI*v?NRzft#jN)%+fruX;f;Oh3It}R)=i5N zA*Edymb6xFtzQVs1n~a z+Q)&(Up8BtWL}$9=24<1h6BEi_5|0dZo1z_zuu9hr;Q4BW3sz)^1Jx$QcRm)ELstx z`lDYjB$;KU#AcJZTA&R)J?K*_yq?R4e#TQTF$2Og4eJ_J6ACm_+{ zo|vF_FOn|Dw^S#2@(n>R(pk+9V65D?JqOYHMq6Q*RWG3XyXzaH^^C1&O+V$r*yeA{ zR@5gHBKAWHbGlF&bvWRQ(726QDe~REKfhMCH_J@K-N-?ew9pp?TQdE6sXL`Z7}4De z{f{T%77riQFG8*0lRF9x$T#xEuS{n!TqxyAah<5P;}6T!1wXxqO$C?^tv4aS7VNU-xh9b0kKJ51Sxxr+MG>6$S&wY;g z$f@-3tK0{RR6=9 zYG{V;NR%aHCxqW*zx|*o3gvT#BWyWY7$MD#xw~4}Sm0VY6q5c(&~N;ipC3AP*?6=s zWm3pJ8s5yZp{qu_99BDrVHkN(LzuCqPYQ25b-$i7p$P~0^ey&mx+98ZSt~Ca4eglE z`N3CZB&tFqF!kwQl7d;A&%DW>52;eFG}gV#y?Uj;=Ywh;_FigV&hyVD>z-A9RpitC zZAwY2q8OpN_TtgnuFd+CEVE0n()R6-?nCCwg|5QTfEnrNu&v6|5Zc=oN~-Qs-WO1W zlo^H!7YT1sY-0--LQ@A9aDXh9y5e1rb*G;P zBJyM*j{u_9s>1)OT7T5GQfl(DlbAwX{V*GBY%=WYzWeyWFtg|*BW$OAF5-Twcn(d; z($#~$Wxor3w8se5x`vtsZfI`D&Pv^gP+f|E_Y<@%7F9AWBURF8ZqX*i#vvFSWJ$$S zDMGX?XVqVp+U~TVRogIIN@go^2yUI~TXIyomb3eu>zj28+48Uutz?daFfT>y{rHD> zzV7j$lnjA6xCFTPb^o|A8~R{3I+R{WtB_^kjANMe{fM_JEIp6G=O%x+8@1S6%>Rk~ zlaEDBNVtrbaWtjOZgtC^vDTTsp^tyXa53)#C2(A}4=-lh6nuYZnuYa+? zw5cMz5@EY^hWMC2Cd>c&W6X(Jy+RwBzWd3xB8s1HS~f;ltqeGKe=N0fSAR05Jj|@T zg@SB95vXjq^r^MF@AW*DNZPaFADE%O9ovr$EYjuGg_TLLuGwTSVYsZR-O6}H`zTt& zP`&RO9Gr&ob*F9Rs7tQL9t_lF^t)p?qkiyncASNih>nm z9U9BX_gV zHn=X;@IBf&_z_tYob={1=H0s39+9k2O%g+DFJafb_*CwSN|h?HeXISBZHp4u&9;do zSjk}MH?{?(6>2{ODn*$p)oR(@?qI56t!5gV^F%>Rtdv~{p`P8fPW8HaHQ4I)GOBRU zC`2K73G01dKhxBE4#w5BoVjhrgRCf;8k{xQ1@5erDNKac{OXg6`ZwyU=I<@Ga zo185cEHKLDn0Vhs-rf<53q7#F&fArYBHhpX9p6b!Mqx^pSU}oH{yrqhvu4h6e%ei}4WomzA z8zXESFI}A3O6BX~cM)AvPh;6QbO5`q8)EY%AlFS+zP=g5ntq_)W#)|5co!sV6?IUh zB%RsZGozRsZ0ER$1DI-`yv*}FuGiE8mz_4JTNHAlo1#M`I^5IHdf4m^T^zujq2_L~o5ND;y)G$1v|KQ>s!>oWl!5%A zkDadW_AM%%w4Usv(}@FDg_Vh%Daujy=ibPEjgJfk;DE~}&H1$+A)>+V zuCV5v$8^d9)XSJ2O1jYDOHXXSssI&Qc@Y&uUbFPYQPLNPBj?^-$^ut7T+c+ldxl8` zLehC~K$h-`LPu8XcCbnNb9IH`(A25-u;G0iusu`}(y>7GY8*zCIOZV| zcm-J!v%TapH2%HdqUsAw3O0!y{H%cDfX)kA2ck;;XfBO$eH@^ftLIIP1BM1M$FJgm zktXo9tjHhkcj;!NnQrd5dm+5C|Fu-fjimjeks0MwJGlGp=J_VndTUa}^l$Gj}m*8uu{CEt_kBr5GNd%{YLUX~2G!95HkENob z`T9C=R8^$(^YJ@F8jdPuR=OwNdU_TPg(i+W=V5L?AFi3XVH>Qo$|YU2a%Og)OY2A2 z92Sil#)S2b*XKmf9}L@CtM+>@HM|7KMz~u-eAV}zO%SQ+ij5~dRrj*NhBwnXy09G> zjBx;OMiLssc&Y|N%=;eWEIq25SMIhGGOOQ2g>lahXWOAU9)Q(xX_&8_ZRwh=$qDFU zKd9czam8o^g%$i5y)^tocnhJJZplI>3FxmP0%lLJalMgGA9o>yeuD-orc4(<+H8=l zQq`S4s5pn!?*u>5cik;9QM-W!Ufy<*;0Q|7Z&XD{Y_Pt&_*#b4zdzJ9v07k@^JRB* z;3ju|M9CMRbUd)4JQi8k@Og{zV#BNpS}Eg22Uqez#ifjS%GvaT^}U8xOp~>j zZK}-1eggVaEtljoq~VvkWM0t|do+H2(nY139bG~7<71=q6*Rsu3#W;y;8Yxt-V+pX zkdcb~iMTpvz3ncHqyJDX{Z z^eBX7IB&J69!u0$l?_$P=!|N>4dRx$bANBINQ#I7a_4mP2=QAp0C0vKVhKRmPHM4( z+c^Z!=h+El0aE;ihnTE{6gzc=C}q3fCE0j1u*voF$RDHAO=W-e~thGI1Sc4)LjuT7*YymzjdekLw9{IUsogo z1=8v8oa$b_h@a|!>N@!RDi}JW^nMl8eGuxu3kcueg^Lazs9%&z&c6P?3L2gs=YJJI zi~JUS4(9Hx@8AXl+dniN02peWQwK}nt{n(Fa&tQ({T$Sg-|)r5q~(M7FSv6a|CR5Y zkE5{(!dH{m&;vh8ztTAmNACZGH$-{(9^wrGJ=6?;v6K75VZKP8^Y*^>_#PZ8Y2a*t z`Z>OM7|#se@oEDX;Z8?l{;gSKa3kx_k&8JK87%w*ikf z&Ik@imj94OeV89+s@MM+bE?B4eoAs4avuNJGW5q`nd~qJGsxjg0k_4^#39}i%zyGoA7X@mWAOSwcfm3McmV+JKPKoL zp8Ow4xc?`#LtBvIW&eB@2-LvU0lfaP8z&w*dXx`&S@A{aSui{5555QxNP;-LhQweG z>;MPA6>tW`!SX*-7tix6{ei>R!PouQ^asN)!tVzaK=^s!R|fo^G_eEH58;UVx90@r zi*NdH^}$ar4l^^MA-DarQy_dHoBD80q8c?27p338B<5!b{gb#DOxX?EQR^T5ts1$KDt2 z2qFOEt6o2sOY$RTJO)qE@pR?}Z~tHSAL{4h@z0|B&!FIq|F0N5l=IJp`G|+u-ow|} z-uYj+s9|uh9z4)j2c>PSck$a3_1e z!v&1YAMWG(AJ|QQqW_hh!ogV`>4Eh5!??6Z^3Q4gB7jwZOGpIX)?~g&FYsR)3jXKB zA@=|$(tp8HIv{<)3H4v_6yOlM{5$*M({u{o5I_lD1gdL?@X>!Lyo1Hj6owq~;W+>n zBQV3;_$hdSD+=Tr0OY;}@v;C5=o0YPW#F&Nz+abvzb*rRT?YQT4E%K&`0Fz8*Ja?Z z%fMfkfxj*Te_aOtx(xhv8Tjim@YiMFugkz+mw~@71Akox{<;kObs6~UGH~QFaJ1iW z0^Csm02A;6Pm_Y1@xWPd#~cZ6_F1iZ{`+^th5CS(T0s8-jgBwr>jKF<&{D#Hh z4#v@LAqjXW^so)w1l6{SudkPas3-y@Vvj!R_~8N-6yVe*bVsw&({feL}1UY>AY zd+tC_4+KgfP?_gYxB>{{(V{%uhb+GC$~=b$D!I+|47k;iK5%Yn5iwzyn2Z>=jJSxn zq?D|z>=|y*Jwi-WOhQy#LRef@K~e&AZR7qY@qn%QI65g9p4a@REwH4_^G~M&0s=$= zBt?)u&Z6S-^742Y5)#57hcN0Y!q+}f7=hybDd9XE1@mz|^f}qKuwRj z;OX^C?0>Y?Pe!kw2W$T``!DjLfqzy4&84UJpDX+v3r|nH)edz*`D*xss{QXq4u#)X z6E%dRkbXWexQ0I*;miB8x+CmYT`zEJ@z6YuFj2S%+!JI&fr^PAHsz(Dhjesxx(YfM zz?FIMM}vjMq=m(#jDH>t781h`1zxO|g1QeJWc$S`DJ&){EFoq5^Zf1+lO8zsj-ac; zFSh?yBDg~cx;6ZqCBMCD{y4PE!~M&q3V6Xsnt)Rj?^W|()cDPNxXlRm5bT@epE7jR z)eU@*POcsx0R_5yaO-HO%ZSU%$Oub_h#&StPfy`I66S}umd<&w9rbhSVp0;a64GMw z@{&>#;_71RGH1`rs!L1D%ScPe{;Z>eK>6AuU~qgL&}1U6u8!bj))bdItDz}(_PnHq zq`3GwaWPFfad}yB2@Nq#Nlo>ib&vL^?LGeQwd)8|a6|A9PQxeuq9f;|lHf&-et-XHGB^AFPXKXpUwzw5@4zyKFG zDDGdUlDM>jq}0!;bi{^2I{60J`@qjSgC_oO2LGrA%*7tz3g;pZl$_C;3&k^pq^^aMSi@$bFn z7M9#3?VyV%8R$_8I&<2?P+odQnt11L0DLFr#=jin;ooVy@5tA*TUgtGoBKEZe+1FO zynH}cXovyGE$Ik;je+nj5cUZ0^}^%vo_P!o?s%90?^ep-11bo@EO^-Y2tISja|Em5 zVMk8{=)_5Y*V)U_(-9AU0O33Set73j=tU5Y@OOm=fN&28^LhArx`Hs?517FdZVx(~ z65_r7_*}H3A@?cRX>RZ% zRE}F49^e7@^%XV%KdkM29Kp|CPcM7KRRB2ZGrkr;_g_9d4$(*1|Caa%-~SH8kL?lt z$K}H@gD|!I#{I7O8;8sUeUU+*Yv_aDIEQ2asJadMJ`VlH@jV59xwr)Yl^uWdhY3Gl z{`e?&g~LSf2K|-(TZUhp|7+ln_C)aQ{rYI*K7Zt<%8j4ZFwpJP&xacY{;mP%7XJ51 z{C`~W54HZ#$!CB^ta0Z7P;pmG0tm1YB&r<&JY59kQ|HEp3NWg!Is2pl)c)4fFHyKVl)o--tj@eHwrPI1X?Eyx_4AVet5eET9Oe0UF?u5PiTH zumEfU82BTWCwNFC0JsK(0};S|-~o^TqyQPfb07~W0!o1@;0@3SGy|W3uRt#_415Eo zfkiN|**35b2DBo9P(kP+$01yhlMo?@1Vj#^0?~k6gcw3BAXgyH5Cp^zat(45avu^0 zNr60r!#M;Cb#BRjF#8Jd) z#KpvKi93m>h_^^cNRE>Tktmbslh~8^l0=XslN69NkaUqulkAdGkaCeqkZO`zk|IcN zkS3Dmlh%`VkFNv1%iPv%H=l`NL*Iav)^2iY{)J~=J90J$=`F}WLgIQe7p zBJw8k5%M1t6cjuZ@)VaTTq&+oJf?U>@sVPJVvmxJQjk)e(wfqbGKMmT@-5{c zlMa&yQ!G;{Qy&wWnS=Q(Go1M@a}jeF^9~Ceiy8}@KefL)N?kUf|^i@l9~i-VIxi^Gc}nd3dj z5+@U<8mAj)JZC-UJQqEe3YRNaJXZtP0yiV~S#A&R$J`&d*G{mX&_3aJ;@OGz6Z<>@ zJSIFhc#3&OdC7U@c%69TdEfD_@p19#@m=G4$v1S8?4;aDmy<~+TTbrq3-FuqNAg$k z&k3*y=m-P}yc8HYMRiK`l=rF3Q$44NPs^QlKb>~^s~~}(w4jS%s$ho@fsl-lt5BLy z=NY0i@@EidGSBo2QwpCI_7{FBJR!m)a#7@lNR`NnD4(dM=tI#KQLLD>n1|SNv0-sK z@eATN#B0PiBm^a35~&hBl2nqKl3|jsCD)~dq~KENQUlWT(t6U7((j}(GO{v0GDR}; zvV5{vWS_|P%Q46q$VJJ0lqZruCm$yNMt)C0M!{F1RAE(7SkYZEUvW-JKnbq&Txm*~ zN7-KanesOkZj~!4PgTCDo=~+{%~YLK<5hE1%T}8`d-|-~*@Ckx=fuwWoU1suqpqMH zqW<_gbT}oXe-4xx)i-H$@F4pJ~=v~lzq&ITu!k? zQ!mdLiW^=tY%!uYvNOsz+BQCC9BVvma>~Td5kcXvpBPF=Az~y=ASKC zEnF>LTas9sT4q~rS!q}$SWR0?TSr*;*$CJK+O*oT+Ira5+0oe9+m&4*x?*-E|H^^A zzI~?smV=JN6NfdJIxGpc=&0rx?>G-vhR4BYos^y8oaUUBogX>RyQsP(x-7Y>yQa9V zyJ@>+xb3*>yXUy$Jj^_bJxM*Ucvd6m5blT%NKRxRveQe*E5hrWw}N+q_nMEcPc{mI zvO&G}WdL8M+Wb!W-S(UCSMg8v-wiMgC<~+wLTHl^(2HQgU|8_GYbUOS zUz-Ry8}cj^66z58E{r$qR@n4)t?RkrINSKT=uI)se(ce`aD9ah8A9%yZM{EidF= zh;lg-P^XU~s)N$}F|<$Qs4!Pmm`g|CZ*i=GuT72kgayz+as zP;#ZDuT;16U71{2QTfU8Cl&M+_bMTkS1Z@5T&ljkws_rHeWChYjbcqjtw?Ron-gzR z>lo`|>&feH)#Dn18n)hgyc$ ztqQHxpX5GOeU|xL*(Tjq@kRPeMY~LUWru9X>#y=(YdV!W>$_CD8oSSTH}~lDeD1x} z+u3K*H_&h0|82l=U~bT3aDB*sXn*+n2+_#B(PN{DW9(y@7n>atwHfc0D zJO!It{Eqs5Fnw!=Y9?`(Yc_9AV(!hn=KR+MtA*)Buf_ePh-KR4Co88`%2(A^+t$q2 zrq_MeaT`%Tj{nHnl-hi^Ww152?YX_bb8q+fZtkAkUJKd`J-Z)pKyvUHa~e~F)y0nB zJi(K3ze8lIf$suGAu^8wQ2vi{g5L@HEB#Ru9}tq@7vX;j;P4?b2_&I&PzV@P@^^^L z5HLh0_*x4P6M$hJerLK2|W)$D$a0Lf|rr(@;N4ZK1pUn?{F4}hbPsam8|hg`H&xP z?35OmFp{~k9+!FE7^R^ps|7n{Vrs@(`mSqo!||r?qg(K-viIFnr{$b}_zB7@XzN@6 zU)G#mT;2Qw0>^?rICn1!GkdTm=n8*`UnHCJ{NhD4T@X(*VOd?^=;7xii zocAH4;WGy&NwN~Y#!hvgHRg#MQebRP7TEdq%u;^oG&8MLS^uI>o%&ak=3<{%)C!H2%1B}j{Nm29E+R$so0bJfq?_Kl# z()xnZeKt4dZ7yHPf7SD$^+fk%C}ce^oT|Ed%j)LlcGMaoq3u$V=f6TX*Z{UwdM%Z_K^fXL&%%y|y5xq+sPxvaoMU-s{K6sMvm! zUFo)|6q(NK-N&yfoUc+?XS9@7v$_U6rV|N`Wm zYuFgTl*bupw_B8{T)BN}buW+i$?doq2F?U>7BD2tTw|D|_o>3&#@HMF3>B%7A;+f@ zW|E&X40sq=IG#+I&@+eJr9#LP?u&l^aA(oNuiI~l(92|q4KEwpv1enRbL#F;&pwh@ zVWT)bt(88hWzXfJaM$Rid~1gl#X-QT@CXjz^cTU5ET@c@SG+tmlJ0iLy^3EZ`D9!~ z(5|yqu3H)B1>%0f4Ut%Gg9$ZQ%#;3-K`UK8|5p!Bd0wp7IGe3v!f|QeOdjJj1^0Yy zG5lOo?M^?rOXq{E8jbD@!8*4rZdRignysrVWqW7)<=fjAjH=zXrA^fZu0Q{Rh_0}x zh_TE;Oj}VTr?N%0ihZi!V7e4zuKR`IWHMEJOi0r~Z;7o3dt(UlTB8Wx4U+DK7^uKf zv4!5}TASw2n9B``Xo|@ESlmOT$G3AQZsHAI3MXpJ98n4INh zrrje9pH}CUDj>Tjw|PTZRv>&S8V8hdIa_ErAtr_ji#<8x0Wu%@ts*r!%`@-uztD2|>Z;CL z=F+z^)M_QpBjZEL)rV~rv6gtX7xQfYDxLeSWTIpJSxuEL=WC7JyVj@fGvB4m+LUr7 zkmY^2z%0{H9n-~^;W6w0YlPqcV3A2Sk5zc*@e^-ZdYWMY^BrMI!wz;Ky0UIqVj4@X z3a?P$KvSb*|8YSNjmD}<+2=HV0qo8yEG$#g`!pRd*c&99Jgju2RV(W*f9k;j!iX1p zjT`C#$OU#0+3yZBuc|{PWVV`DE>;eEcD$~qA5UX zi|QZd+f7=Jzv$|5SO9l|8Vqh}=QmR6&@q2jU zd6L1gJ=gLL&&tu-Wu*z>o>*m;z@W>I9q&bYs`ouL=<$094K3gCmXCc^okMrIR%lD5jTaS(i2VHEG7%H?!guI zkQEsprRX~V>{B(PT6OylMdQ=-q*eCxrE@>r$lbo7`p7ZLEut$s4{X#v(S75)o!Bs# z2)O08>n9lqmK#l--awL>fiZu`@=h3?S^s`T)AG&-@!YuVt4bOsYLv6#{-OGN^ufWd zO9dje!ZV$$#cOT(L-7ZBSnBX=v!yS3^upYv?cO$mv4Bo}UpsiEf7Z-l`3d$%-r{Is zR3yV=H=Fl&NB28R^)Ay-<@)=19B1c+&DlqH^V%8Jz;0-Br)xj8E8i%&LN3+h>?^Yq z=koZt1W8*E_;6wS;-zWJnZ)$`LSBEqAMCfZDM9}t%ptM(T!mOp%VTff_|g|t98z(; zrqwVaIRi(YpqwrJhxy4vI({gBk&#!m5>Q25#Yqb)tK|vov*~v^u^K6U$06TXV%x51 z{ZN+cSC?H|c(1EEY(nlDEqv)#Qq$$9kNLz)b=Y!}w7K)XVU(YyGda5SAt}?T=6}rF zWZp_=I$(W^+^k^50aMb8OvFjz)FLSyjr=lMXR`IHP*1e zyW^M2h{RA+MD@>0reo`piB8G+elH<%JF%Q|iI|)8RY}8lnsscV%HTq{a!?z$5*xKj zl@iT1J60K;hE!WT6;85!R@Kg|8*{sQXXQ=4roP2_^;o_7jI%8V_s8>k%WnjI;^9gS zdjK*N6H&ZQ?^Aqq?9D`iX?x)ZAQ`_b63*a=mn?b=Pp zt${lb?2orq`yEw6y|;MvTx04cxq9}ug8C!s(;R8-){$E+4Q9oG?(_W)w4rK~{TRCq z(a>V6wf?Vu@tRrtyqH%z3tQi=do7mGWh~L`@r5-hFVtCSFDAvbTo(!a7FM^u+PgTU zW&K9&y0)!c)huRieKjO7hGDVfn82ne*EjtGtp+~>p?+0n)u(nCdmO+3%BvG7vgO4v zgw^8!2)??$&7H8fVXwF*u=v)N1&YpPpmT9RAlE8v{AGW6dffzc9l1Tet_v!@{ir|m zr0VsseqO9JUUgUH!1E2axt2ta1nowm!?8_B?1t7ME%<|K56zwcR{9?*7+{Iy;1LdB zJ!)3$Z&#wF5iQ89TAN{fCkR zrc@WS_K`nJlZ2eA1B~oA;A0)SE?B>#NaY0fX;>>S_VkfxvDhsNY@;>~xWkF*&kdTI zwA|2ePaP`!E9H75;aMbD~w}B3}5*vx-!D4Ldo^OqZU#M1!dmX|2A|Gb{qR-KhM*+ z*!J0CWF%GqGdqvnUthHeiY(%%S?5{;V@}y`a@mD0+Q0%gxxcxqBy{^&JRT$n-#QZr z_=K_V*9hDfBoFd!dar(L{kWT}={^Z$Z|nKakCeSg0o1kV5xKM~GbU7l%9-!XSGMY9 zZoq`8xArK~W6}a-oHUJnKN@*PMIX=N7n_R@yjt*nrAW(POu67}Gh{C0vy4LvEW?K< zb!I_T7fbK**eBG(_}*3-P%~FKe^xLyIl0_L@uox?e%=dF_9CmdU%0B+O@s@ z4vvfILmNx|MYZvZ=W}0#P-|_>Eibb&WHwHIGd8|@<+{A!x!YP%r?|~yUo;HRTp^QY zb`l`$2}!qc{PKo~gHeu%L(q=BOJ67fO~xB$22@`Gm^Lx01N&tOtbQ~qQCkuzMt5@b zQj5v-_4{fk(+EDgdmZOX6w`VdMwXAXDSjV8=>2gg@Xe`NQ;H{{<06m7pBq`|6MCX= z$Q19l&R;%gR-fYxA)EQZasfiKKOnHBqA=s24mE6F=?8|r8e=9dY#ryBKg?v(*19q z`L268VVAzjBcq?eZlY!CL;I}V)irmM zwRaCYyZQtSw_Yq5t6PSpu6fz^U1hus@_rGF4F7f%lDe6*hQ1EtBh?XtTZsYpx!%5- z8rxpa*v>lOa8we~x}qAJzcO;>;Wn}GV@A_Rx#zZR^)?NOQ8zTgtKEl3?z%~vhvNY1 zNNiD#hEj9R#n&C-q8KYg5gV3%iaBYL>6)xUz$0_E0qo|@o9;CFvm@?1am%wD-?@ZX zRHw2E)Q7W?3uZz&2MV*;V%^@2o)#A2T#gfDJVWKj5S0hv-mCQV_qI%+I&(G)fge(9 zf$xkbg?v*(UtYeTEz4YHz8|k#p0oAdK>z~=)dN)0v+TSf*g{0ZyxD;=S;HxA*m}ns z2r&Lq_F={A&B<){P_3`QU*^nDRSB)Ta5xlg-&)###vYmszBfeoC8gFUbCEy(I9ph(c>*CFA zmzGTt{Y|uow*H;;Agw)x@XOJsAC1r|#PS8-RJpB7_mSGPWJTHwA>2~6B3Fz)i-ml> zA9Q)Y&ppc!I?auMgQ{9hiLqCxCR;f2onOZ#Lymuu`iOqYNp<&Jrxu@Xn8zmeo z`Uty=MAu+~5}(Mpb6(FSt|XFSmhHPP+npNhOGj7lJ1?Adr>GDfoyYU>dC1e4I{~dO zr^JSxT|3{FzAy=0AGyjJ`RcOxN0`eMU&@h0E*RG=I{4THzk%~ClWBgBR)!Tnf4Ur^ zUA&v8Kh%o@L`~%nN<)RWOur9VT-qEjXGkt6`ZT)M=a9++i>0|2^T=r`fI;5!qcsH% zAhAx)<5Zutn50YKms0rzJSq3maAT3B$uQJXK_&F{`|W4Bz8m@AhYbXIwYg>}4#s4t zsGD2;^xuyT1R$12)=ejOWIdIB`IHtZP?ujfdmUu26hMY-% zOS_GVcuo9q!XTAv-F|as?2AY!?N=k1>QrN_Cf$uB4L*_CxrcLhc~@HfyBG#N+5*v! zHh0) z>3!JGFSNF>K8P(YX*p40<`eT+L4P->sr}k*v*2-89B^6yt59da7)1DSnm$%9#4Unv zf!joX3;knh(ik$y87dU^=qX^pRL2q;>|WpQN3#}_upAeNImXKz8sdQZu#XCySpH`j-(^kS7Vt>Uy5*TH`?(6fO1^Na^YMe+SgFss z*rzJ#I~1lfXPmO0R!L7KrghMC z#&P)(vI+CC69>S#2K!Epri_kp?V`eNZAPi8W2BSV9GmP^qf@`2^@M}_nX3-V!pQ~<{9);vQXU2szZfxe&l7nFC z7>jvr<^JEnZv! zD6c09S~lHYk%P1z1V?3`94hP!v7#Y2wf4;n3VwUxf;BPZc9G@x(>5}yYRa!>?zy%U zeuNT)krtb1YzS(Gwts#p@`%z~0|CbI(Rj<>l7R{kAdrby(JDB*BfW)Ue^(8CdJ3a_ zKPaZYUHO!l#Qe*avxb>jtb>7W&e;isU-kK%tUloKET{eK+rcd#ZASd~ zOo+;uvcL$ZMp=UKJuzu6mmHe1!grw(2iMxRXV}2#(&nq=^@*!dNR2I#nYXJ^{4#}= zMWKZy5sbs5cW-3cgD)w5EPY~G;T(P^V{ea1@=4fpZoO%(8beg-ISQ1bTPp}$dJGk} zzV{eKW~hbQB({$Uk9B)hTG%t!B=k^ubI=}y`Z&ugiFeO_Y+qXzX*O2Sf3>5uI9}KVxAYR>^?ikIdtG;7_(xUA}Vp3&U{G5S8#+NuQO0&_%-=5p~8p zKNtu0SN#H*hVq6|xx7{moJ0{O-95cm=5tTpNX&No_^Hug%Ys}}$CBmNb)phODopFx zh@IyHk4I$4uR4>E=aHK#_B6|LFGtd{7k$Q(yCzxUwDY0L5~pV`aV2R8xI0vBcV)*U z=41w6xKLAlL#RCe4vFEBKw2vVt@Q{ULw@;9t-x+|9-i-Bj4e9T)64IZ zx{1;0zEyErA&vg{KkbYBE6{(b%yH?paHqQELKMTIvX1a8dnD&$=>`ISOH>OgP z)ReuxdxT}zDKFwOQ9zu0R+_O3fd-n`!+%DREUWfSf)KLqR4w=#LOXDCybd)IL|$;aF5{#o{(XRcr?k{aq(4n()j4q_f_13Bt!~uQ#kH=(s8PlHfYp!BjNnBXN?aJ?wPZeOkQ*?`T zFQ@7Y+{yAZd~w_6npT`))FrRdp!EeNqvg|84#tG2lbW;?n&*n1n+1LpvD%(Y=#hw{ z5kLpWz%Ne#Dk7!BZtLHtzeg|7fWO)`dt>vrB<-i*^0S|sj4T+Hg*_e_H@_-NzSzZ* z{VYL0@!Y-KN?x5;Q$ttxHAr%-X7+QFoNfLun$9|`ssH`|BNPPz2|;NEMOu)O8X;2B z-3|a<-7tEDgwzO?4jCyWjD`^#o8R;P{I1`1?T>S9*Ez4V*ExIbz8}x$ zeeMo}TQ`*x2kDuFP5x2ND7r=#VK>Vec02m1QFvE(d`PMUX+wFrcJ!({kAL8&DW12w z#mLqoc9({d_C zX5QyIEh%&KeEcZ&Rvu3j?P`VG-Omg-KkBf=(s5HBFf$x9+(wEJDdbmaUgzDY?z)X# z`JLwa9=dk6al7;+9cY}64z~OQ#V`+MFXK$Z`_TvFbPVO3YWlZG5Bc)$dB1GU(%0h9 z8ub1`liEHW@LTL>++TMCFop5Dx&HAD*V~U(1^3mBa;}-KeKrU|j{M(u6yi#6 zNdr#CSz^BKj&z3Z!ZrPxu(=#eh1O51748uV%%410yXEmmBBF|ElVG;aK9I3mMrFoF z6w-L%qqk63p2a7#x-i2Cm6U7Xei`uhq``sXr**>v@kPE>HAUt-(aDCqDX)EcKD`WL zKK-@5H1A|@?a|s#F_Bt0sXA5OR>`I{VVBqtYkuUv$#`&To)qZN*{QGVl>&~sTUg0f z$obiTV}hvH2MAp5$jJGM=?AYJ!D2f*eIO7_jW7REpHH1Zr=)^zIts%}q0`mC=-|xl zTU~{xI~RE|p}=$qqv?%TJ{7|1G7o0)da;|i?)T9p4=9k5io75p-AK|Ym-5t;LL7hv zyhajkpT8d*s3>bxoyvQhegFA#X&fP0lp`)SG()%S|zwB&bHjTr9mneQsXjj|>D7%+8mDb%=%q0( zMJS3TKFt`BsB+W9MDQzagJpS6-XGY04LbtJveEx2+AAp=>0c$+B0Bvq@=+9QQiJToT@ zkIn6MbwA$v1Zub^%j<6SUVZ%hQn~Nry9|)R0D(qL73tt;K2Qupu);=(9* zqx~4lP!m0;M|+D(<>r59e**bo2wrCC2+bTAIbCNXqcW9>qE zZ=ic23m|cy!$#gW11A4Kxr~-4R{$+qwLs+z__x(dow$dhdTILW243SRC%o`IJwA2q zpRzs1uW)>LBs3JY>_r7p1MnR{4uS3a`QUPZi{)Z3El}A}p|1GT5G>4RYyez=@6o(k z?eRHmzth`w4G{uFG>+`2)2FP#fWpMKy zM?;XANIY`2s$LC<>3o!F#;_fdH)O%PtDv1m+3QJbKCH`eDR7 z(DJLGOMTP|80eY=jGF(yk+#|KIhxo|@Fom^Uj7LDG=A|P=!7X~RtaW-g0Y@kUPgmY z*jKBh11~Lr{bI2Fkiig4@jT3D@>85;98MfSzyHlq9~j+(WJO?E$9sG_ST(-c;xk$I z)&GH3E&n@D|8evUu+besn}(=s7Q6b7d0HRovvldiOvC&~Focl4-V=P!^a=*jZ>iB$ z*xo~OOxfc-9mWt@$3VKYI1ip*?LglSTk%0vQ~s64R{5YPcdvV}tiV(UDdQsnK706; zD)Rxc&s;d}&VQF%?DDXA*dPP-IdSa_fmuE23EhjbtqHvaeCF{F^Z)>#p0W3-U(P!I z0|~EY`GBeMB3sXXr#TCw_SbqGodbkP9T4NbLu?Xn{p9JNU8zU0oq85o+d|*>!gO)XM&RsQ%O{ySvl2t zb{V~g*udm!^4WpIPx=h8aW{fV(fQ%KHAxaXRb#8h=HGE^V;e7Mk&Z!*mRCPTPZnFw z57I~N_8RpjRMIO4C-)3g>bFh^edC0G&KSU$ZbLyP=EQzeCgYi@IZw6 z2mjDt%nlCU8_SlhGLI+NK%w6?PrY3Vil)^x3}@KGiqe@R*-?CmbN9<6`^S0_1J~yg zEpV#mPUKpYS9M<-PnF_}hwVzE1Fwy=6ciE*K5x~HZh3kl6k_@}cIRicQ-0V#OU$Qb z%1UPealB$+%p#+c9ap&wLb~Qpx%T0DTlG07j$!hMpmTn;!i(FC&qedJf6E71ik5+nB z1Td-1S2f=6RalYwTIDy=-_ID7-0rU9Lp$y^>QjfXIiD!6Z<(C4I+T^Z&Gko@C$rOTiX3KP_D=K-!pw`n5DNlu#vM8aJ{5T zoolD(!}sqVaoCXKUw-{$c}<{soZs#Ouk|CNiM;|+a72v3!A(^K9W=mCNTg>BlO}Q5 z@|`QY)Du!pFy8GEv`t`PY9l1TkmsYDb3cwb8OB-*2YN|(n@T>hPfYZUTGn~Y9>;1B zZuRhN@cQC#iRd9}TVjMqPvzO;Z&eTpv2A!%d95z4sQ-axTle;XE@3k1o5A2EA;Je~{-bkjC(emL zyP&K!Y`n~=(!h4!&+&ox>m>VA68)$LTw_vQWXIG?DM0^+(!DEo9-XOlYd_F~4|*#% z$Xuf&|C}#u6w+?-l{yj+B^vXQaKaLiKO(N@3<1SoA+STui&;v5EY9L_uv6(bp=&DD znU|X9RbZ%m%!qhgu>T>@ET_k`OSYYk^^l_G3{r8Kn;CGwVPhQ~$2h|2vNUsy0amv} zxQUJ1cl>&hP9~A0?stp3_y^R{?f*cOHj*suKi@xSy$-($EdpO{<`Ff?DyqNSg&#hN zV{zj!W!(c22Z@RZI&t2MM;tJL|8$&6WLiAnCE2p5cPxCpl>61G1^&iE32S*Be7Sk% zQ2})y9^CkxG^7pLC@usGUwOF0C7i+X1lRuB^K}oEBRBnwWeVxYVA0i{)lX%1^)1mb zs+~oZpTv3_7GIW&Io%eFj;X|1&r*^!g!Kl!+L{=m=gr@CxO#b_d}b)wu>N^ZA<05jJBTM|Wu1XKW-0D6 z@hU~=6whCv7hs(%OB=|99K0efpwXqbPMm_-h(y~j6!-TZXsdkH6j~?fe^Ynx!|i8J zi*0a8R;2qMF@yd%x6QMenVKXPQ%fO0i?W18W^p!K>kyBC@OG{&#DjS&%-7tYz8;BoPz+nWbJyh1Nv_5(G1w_0vUXi&i z%gp||ikb(NtjRi7efJ0x91I;pt<~w3Ol@t)Y~JS3+)*qoA6%F0WSbahUVNK6^Hat~ zt=;MYEr?&`mVqn&$es3USo+OW`SrPHsv0LecTotRWBEpDIA28CF!XV{o}NoX*DdGL z@2&!Wo*EIHyYb$|SpLRM?2{Bk_f}y)8>~G^#yj6-{Xu#Tc1rqZJ*Y-$u-cy z>HdL&F6o!<^V@49w1KXED3MlHYV$1HRI{{qJ@nW9Gbj8HEZ6UW`y@t^l}z>{hHF?J?LC%?x4OV2vd!V(5;yaL@2$>^eHW= z%2&Qup};--$%ks3a0P8Hrmed*NhvJ?7DN?$xas^o5bwx&BYg|;H>B;u-CaJO#2AXmietAB z#Ds*N0q!(>|DyD-h~GvYQi1n92cr4*7WJ>LLd}JiLp$8wgL~KhtJ*A+{iK&&brSpy*glDP$ywSD<|NYe*`Vp=J*t# ze&iCNbfW}MpD`RSx@Ob2 zzJcywkjSWrufZ5qgZR*2iJJD>kRHePvu0P-E@#xTG5S&3-xcrL+~qbJ4IoN$!BV?= z3-U?z{G8zQ)mnLB{k`L9?r-5OHYwx*hy!c$Y=Jewb-zkf5y1 z)>zc>J4eH{qHP0pAeGm9i@m%|KBb=91yL1#G%|oIZGWUmCN3*b5ogADhG1Vh8nwxl zdh!KkWO>L#w;hzK!G*U7FFwEEaF4>}5xBfPzlNueWFUsz@u5!MnRFdfV+b*NQJ`-s zfPwdJeF+<_z?-kG;X~-%cn#=yms^M~j!~h|t?!9}yvz@n#Zv=={gk{FNux=VN=5DO z)iUxYN0t2et|^9DIXHq!Aq8es{6BuN$=r5;Wshf2p8h3kxrIqsaR~tVcG&b1nLQ!h zbUGahbickyzYab7%NalTM6Mnl!O_s{rtjkCyIPiBl5$s=S6AD!AelLUEb$2#)X5tQ-YdNJ>ks1o@#)_)YU6ldSa7+FQvh7n*g>EZErZIIA z2~mZe66v$*N(+GzAzq;0bxb=fnUKXY<7X{5CY--_I))(jABeyB$gi%&eQ}dOzJD<+ zXLBv3FMFINEj#;EeE*)$LXK+S=Sm%RULj}F^9|K+v7>u>74+~OjK_ifN=*75FBr*s zhE5W?@>-$ZjK`dZbhB#+`AgiJ)f>tZ(N$j-ZV}?BzIX0@b1pD1~eKgiB-)sya>kIAHPnyDTOvY2+q=KOgiWemtEzP3t~ zB~~*a8Otm~CK$a zZ?wjPlqw;@K(pBPXO7t)t?#=@txDI-XCk-4zSSpg#q!Y9-VNq;AJih`4*OV9E0I?Y zUlcgxXj-oQ#z=FATJ3?9R;jGLtTOXZSxLP2yKdowgU+z426#iKp-^tpE%oI6FM?kd zJjP>V1erA*-8@7>WcUqpOc+#i`VMHxIda&iMB2~~%a?LL!>*wpI=iBUzu0^NwNzDt zDmY^Er*3H)N5bW-ZNI&rla%`h@~M{t-CKPiMQp9b^M);K2JtHo)OOGg^f+&EN=a2N zu%%T~7p^X3d%784*QoSy7E$_2D)Oq?>o}*O0wu%`SI_4+Y)SonK78MxXHY}@@7h5~ zxnk5%ixju}lW!Sx1hRgc546O!dg5?O&5g&E(ze~#Ju9oLH8nri0|S7RxU8m?Ke{Nt zPP|A#r1V}mv7b$``si(HA{>xb!RCJ(`=rWNJvR!U%&4865nw4hV8gYugs^;l%00DS zKZB7E>E>jnE}tQ6*5;>3eTxhS!yr%9Tt>D#fZ0b%H3AOu>H2zh7i zXF$W#)O5A?eu(IU>^q@_(YC1c_IshqMYFmZ->7S%FIfsk@3eGb?v%x1el0#D(4I*v z5v&Qjuc(w+GryyecyRgZV(gO`P{;$JAxtu>eZjNU&rGYawohIP?^d<#nB&G=i=F2g zn|2*zl^(S6G`@;IT!{N%=(>B_Y-}HB@=#DXzy#b{N5-RhCqpIvE>*7j*!(2^VufK& z7tWYKsJ+hVb4!ifSr%3xevRfmjc+{q`lZA4^JD6=4W?A#+M*YY55UnS?SZ>hQzd%m z?lNK*4tq;RBMqG~wbiXsdS6I$-Wo31X{exFiu6+}M*o3q6?k=ZNaT2SJs=0p#CIK$ z{BFmYE2I9lf_vU7WHZ&ziBl;-F0zWwfuC@bn`6?ghhnYU!d-8|nyX}Q5z*Z(nIO5R zz#W@fsxC`Roph}>)3yXQm>8Uv7BEcNul8myO>Q3UG37Hvg&>)eVNUB3d-2pujYUYoK{kdy~IPkbs+#45yEE zr6cV%ZS~-+NQ<2|`J2sPj(N8V+pz8NHk6D}l_S8Ey!tddwgdQ6T{mf*HQ>-{=YKxr6e}YmbyneZp@ptD5Q}X9cK4nJ8VZs>+n7!*(UHDtofvZx579 z%HqTB#wJ3;tsdl>Wp<_<8l9l!m<+aCV+#tHlz|}nEsa8cky^G)KK@uulW9~h9CzPI z70*CQDKX8gsnZk0#8F{imSa`6*yYY-Gb)pl$#n-l!*y9CTtGF<0G2RhbvOBJ_}x!@ zMj3mjjuJ5Hpgx*Q>d)wEb1~5Cq1UMXmOb83p6i8*=vK4c+(APt=$#z2ZpbB!-QDUJ z#{8aKME0MsoDbhp!$6G{IBt>&?r80!GB<1Kj&YB`>$i{2PHy~8#sFgi@ zwYSF7#0!RAh5@UVS=#kX1QUh}X&L8UExSi19LnE!?7OPEqaTnsp91LjbiA zgJyi{$ryaH;fyx=`yAWfY8-RSv55bmUcK*1Wg6BlnSa)%* zN6RiX5i)!>n&>r3KvMpX<2{RuxC4SDeEtV=cMsj2_0d*kK#$1-OCKHq7~Gb{6n5u* ziH^l@PVkp_7ToN>dqro7%~u$J+tuR0Fw6>WHWT~@l^J~#7j$WOJUv}!@r;hH>*yS4 zv5aH}$lf>MbJPkaKJ(Ab$_0QYv6qX1>$^0J41%)fPC+0yq(ve+;YU<>~?KXc1W(rJek8KJ@Vw9D83AJ9q%RHDB#B zCXWY^V37aY0aeSo@&D#pM`dKMlr|@2K9B?rKI&NrI)-IgkQTG~tc2qN}gm( z?`oq2uw&?y%vU2Kd{4*T_<%$kh?F3)?IHQ+mcv`IDemKd1$sD=-6LWT#VrClI}T!Gz-<2;-IMSwH++TBfW-v$Hj2yh-?s&5nU!d%%New0K8u zcP;b;!EUmxb-@3z&=SV)onT4$&$FRobJ7 z_zh(=1#b~u%A0gr#ft0ptIyX4&1dT~aZM)OgN?847{sJU6T~uewX?G}?HE*uZnsP8 z_(6PGUfLkwt$YuBo(b6RS49sgwr!bolx78Je7<}YJNk}DM&0*1TVFJH7)>n?O$}LL z^pNSH)ua0bJs@M6ga`o5h<}iawEIj~h1rG?etIq>>9jSeJaphMc5#F>BEL*6SnQ1R z*;p_8n+V+Uy3bghHZPx1++puK__?l4KzkB0=sc(*s-UOe{J^uM#bm?5UJ@?&-CcQl z5LsO&3u%4xEOJvgO?NpZ#Uj<>ZAY<+oDjTU^Ccc;@iF9cJT$<*WdCjc%7B%aj4$8} zT8jHbSNhX!pEqrz2|FOidi|6ZnW<`@<6jw8?$kdD-Jz`46mk>b>qX|FMvuYXkNhA_gMe=p3YOZf)-%hP8xn`- zX5@Q*ei^jfT3zeYhh z2Hp{v*Ssw^%1Pd}1|6n~E6u9|to_ejXN?&&ddxGB# zfx;g=g6%4$4pY-aE#Z zS#CwG3DPgWWJet!PT!v! zbUsUgME*#SXi_5sRlCa7+Kb7$@k3;Att#uE6bSu&Qhl96D-ng#hU)e&;#yh7tbIkLDFr;i+!Mgz<$Y5#+V%19r__m5@lBpZ{im=-B|B5X zMJ4Rd;We702XkR4E&ua`D*Y;t{OH7*bbt$ePQxj3vg(@ToW3zeKXl!qBH3i#x}ZSV}jdk~fs(q+lzeLPOyc{v*kIG)zR`=eFR@ z-Eo(VvF_{2iT7#Z+&z#!cSqsa?G|*~32&Hl^!8ar06UbxNbwo z=%mN1wB9FQm{Y&dw7jd%e$tfkFvl!67epW?m1i+x{YJwsuc0&+GFv=(PFam~b9f5= zqsMoxXM6BBa|68gIubJl_&>kN?kr@YurlFHJ;?SPzyfH`+VZI9`wix$|KF(Ww{Flu zW})A1M#>cyhw6j-{!B?8iv8gMY~X>_b!mrj0WJ&k-yH8hw!~`%18zF70V1_Vq~}hk zkWO>p8!-w# zB3q2AL}A`Uj+nttlu^{ULoqo7{ffI@{KjKnMZ9$6A4r4p0Epc7#IhsVw8S~D0;xh@ zP3YN6u9i2Xe^j(kYH0l>1J#YvN5JR`;=M)4sO zpWfbD_OD7~UE1*ay>Hhm)cCnVsKxt?TOzH7BrMF${ZQJ&xR*)ExZIw5%pt1oEzu28 zVcdqBG{^q(7cJc}DbxJa&ss=@XG-pFMtw$Uz5(l|tb;v>m5hEfMY)|xl9#4{H1CVM zTQHGyT0mHQFs?|`S>zv-+d^&BrjO{n0WMv?#a+U5US!lneUt(YF)@i zdY7aUW9osXptZ^`;qZ9YZr?6jqw_-PaHRJA-LAeQSSO8%Ztax^yR-e3(p6xXp($#% zcg@2Ed4@+Kt7dehFx<&^IRftc0u}e2i?HAJiqqpY?n3K2wtuPZ+JJ^fwFz^xJ7TXETNf-E3q++c0hW+)I>ieJ!yAe zvspVsiwSz>eR~;k(Ke|08Vr%2*sPT6N{|W{`0&1QWgvu-n$p=V2Er1d>%sh3x^y?O z=igL;nWMjttAY844WNy1en%jK*?x2?Ib1r}hnDJq&x zMfs62QO!NF_ggcfFx`dNmGxnS9YtSO2~gX9AlX)wpcNC`&+>^L^MR-Q{y^N2`RogU zg5LE0UI8}RL;E*lnT6u1ZWse5%#e)`%&O^C&hwm+mt+U8QGW)_?s;i`6CJvE&JYBa zqLdxFGWqH>)nwf_eOM#)e3EB$Rxs)1&?ghsfaK>wjg=`a#)^lUAZpjcDWNCB3uVyj z%c7r~f{lKk)tH?$`Hey)bPe>>ZJ}f#oW@**dToURE1~U&AzF_F7YDf?~2MN>%OSzKkKQKP&wu}Rnui9 z9;Z};lW-ozN%N-)_X(`@atM`)X(ss23>n)RAVQ*bBB>FsX<&67`xoBz9Kz_fpCc)& z=(EFDCd!qzFQ*MlrJlVwWz}}$zsn;kZis1VYiWWM@9czY{?0Fhy4h`wK~Rb%nTi2l z;%_}2vApM>&QL9v3USvnK1B+)KECEOzwQ1ia;S@+oxBeEI0Io@lEC5onQHaO*~5!ZB|eLL`bb_0^t&eXTM&9^zGFlX+*t<#9|Lk| zL12`j-6}_x}!;>oRQy(>$3RF6;hl(!b#*cchy z=zfw89aYpnmp!RhcT&Bea$2Cj2TsrmH+63Dl{>He8W>-h-ehrQ%OHl zO-Arne9;^3wkOfOjX1Om-_G~7lbG6Xp#4ewmFtX_ed~13V)-rIi2tO!h8-#+ZzUP_Z9U11YZux1Vx+o9|R- zCR8KuBEc9W zUOgrCn?`E>z1@*D%OyubdQVD<^4berO}nR1!;lG-ToGdLGVwckUbe-fDq40lM~f~y zpB{<^TR=oFjQ!ZT3Up^&T#MGJpnph8g0)nkfweTljbu-5)jx*q5n>{_Hh@J?i;y#{ zzTAJ~jJ=Sy_Tl|{pI-Dsgwkj2dGfn1*;bGkU)uglwyX9@=HI-zMW5Md|`Buh6#6 zwuQBb`#o>=2D5~%Yd_n*b!L+OAaOC-v0|(UX?Z$w>}DY}x+u>Tk5bTi3DpU;FgFCW ze#mERxgDbYlsN_21g%3nRejb&P%CuK*HB>sN%^CWLdX@_Y?W$sdR$Jbyr__ZKX?!lx89uT;~N3E>fOI zn!K@docZzg<3{y!PA1ury}7_n7X%nXQ_d3H*#~hQ+m}XaxIZnsmgt%VM+^^tngpb%FuM zn^WBqHdaUIYj$5W2biwY9p3G}rlW(W&mW7 zyn7N~^jxp`Ok#re-VAA3Ddf%!xgv>yCcMd?`8urs(2UQ_n90@dg}q=)dg|@icO~&1 zR8RH{6T%;dwav(M54FBD_A;1dUWfDe6R_zElxcQYJx$Jw-t+uKYCZ8D7aWFE`RN!i@&5MC4UV ztfg?1UiOokk?Z7VRRKj+wNw?vNsKQ=>iC}cxBi9G9Ybe_3b)?{hyNrQE2#11^Ku}6 z_bhwFfwX6U<-LlYRz#PAn@_Gwu-)o^#jhY7-Z5>8dbaLJK35_?1G_3!mEz10!>j zV6DH0#n)$h%b~{2MH%g66;Vv#wMmmo=x3{Phb@l1<0iK8Oz1pYZ8Xt;b-gt1fm8is zRkN7kTiuZ>mH$yn^M(BPnpjG|JIXNA-dI^9trnGDl!T(!2VT(5?l_j}a5<ffkI;7)ib}`0XJ(V zy29Yd_bIWAfQzs!>Kv6(`wzt4b7Q#Lv7palZbz!z)m_$0gKy};QU;2jq6YO&n0*TH zZm;lJBsX$5Nr5xqC^U>*T4J=~u0+hlKaebdHv#AviuyyT0n=y%Mp~2uQH?IF03lt_ zq?g$TREQ^)NiRs81ebJ9rw{LPakuE22Q$a4Eu8^QOgGAT0IVSaQ{gZh@oDHc##P+@ ze@Ga$>{$=EGjU#cY?9Bbjrop?6dVZvgK?M))UqEQiQ8ED3-}T*_gFRH0DSFPz`~*JjSPseY(zsyc=NR-vEE)VVG^Llch$-#OgZW$c*W^FNL|tI7ekhx}V@%FAL~L zGf<0$bOP*M0+j&v2@$=lCEJ}<1t2LW#uRsn!Q+6h zF&B+S72L&80<0E?1%^E!N6iOn{>MyNPb@eEPMdv_h9Rq4y1SdgU4! zHErT6luGS*a^a$+oBH_YkC0EcIXyLjPEUR2^@XQXIK z_ZEJoDf%XU(~->o4C?hQd4=u7jxFJpUWC+}jECg1Z5xSIV}XWlW_dw2qJu65JLoZD zQzf5+bNrF-n@6Qd!f5fp{j5U+d#_oyS?%d+1+KW>2Gv7CtWb+lk;I%O#b&L626s{O zIF*ivWgZ2$gs*|?`v)R|I`a9nr?4L%c9CRo(L}Fz6WZwgnaFp(wQ73qG9^nY<|#|& zl#8Y$k7Kbl+Y5CW8-jl>Lq*F}omEP|HBM_+VpXGjjT$vMT|_g zm~w5!idh763+!~)DF?OxOjBerh*;^R>ve|!+_zacRZnFrkT-O5LGR(ZK6m4{apD(m zObsbezPB$f?8h277;m&sw7s^z?uLfpk4EQNkf-QPw2*3p+J&>~&NOEc-wDJ{ttk+> zsllA8yk5T4a@^NQR8uNCU0u!@Mt9Wjv5(9LZx&jYey{Q+uB`T&Pb4sTgAaZA3O6|J4>NLNmijAw zCf%ER64At`)PU9yKA~p@l9l=g(mv2HByHM}2)ylux%yh#Q*7gLn@rK#Q_G|8&>H1v~ysGF8$q0sb zIZ5-sfch@A8h5=TPpOTbymA7sn?jJoKx9Eu)|JGF+Dp^V3lYx&3RG9MsDMvD)we>a$WfUY=&9VBBrT(E>`>x}`>Y!S4O z=I(sl$_Oee9|*n&m8n;JAF9S|K}OkFTVCM+`fb3aBfn<4N4T;&6Qnaj=pw#7sSKfXxwftQ%+9vwpaa@i{H2jS_`~;v@7-ME z{6Q5%NZamFV6EnnYn2i$t2!sExyoGYDVLTUCM*<+3K7TWZ_3{yoqixKS0|iFGR)xZ z0=It;pvHS0`OymWad&&L;nt1#lf)jr`szo<=V6ay1B^4=(J4udw#Xk*M3L)2I-WMs z_iKsOC7>Z`;As@zBn|91Ui2{zycJuVpf$@SdLts$lXkta5WUw8IQSD(hp!|1QE5;BqqJ6)EvAryR;!9fE zYh0eKQs*)4HuGOvcB%l~Ueg0ak99)|A2mREl;VxVL(h<(XmQdx8D`_@6OT)#G{9}p)K0$*Q zy=3~K`UB@MH~+rY{x07Tl_vBa#mDg^@piV=AT_@2^0K0`m8;ij!=^uGy(fNhxZIiD zODKlPXvjpO4k}F1Ha1?>H(hjI@v{4p@nk1_K#&OaKQ{=~)rC-AQ?7XPu!Pe)9e$aU zH49Kw_f8uKXZ-sqgZ}ost05p#xE3c7O4#X+)qq!M`H(|OAixamECJG&)B3e(p=jz+ zQ%PBwd10vm9dCJDoxoWXQ7s=R2v`PuaSnTj59`G@9##*(5A9d=O(&<1beY#@eTsIn zq`ha-i_axv2`O3v*Gn^c9^GW}BJvxiRH^lCZxOL_ymhzfy=BkkfhMK^@I+;y+?;Y- zN%M4mvEK99-A3nI5n-~XXF;sPB!E5u_%e|=izihxK#2H(Wc@wkjT=AT;q3TZ-dhiH zqVp6}=h%10ftZgXpylXrPkDWcD~n@S7%LIAUb6;z6a5%w>sdmfbfb&RkYP!Sw214Q zg~|d>kZO%<0(gUWm*iwiTh;Sj9hjTWh_OVIiio|w#_vA8k(X_3Pf!L^nRJ`SDs5Q~ zV^1lZCdfR^wU_9mILc4=sf;J`>q&ZlW|t88w7sDSvBahN;0t0QEv-tyW(4SxaM-t&rC zkUkg+h(+So&f!QfIh^jtlBt)kou35f ztZGT_vVpuzL2^i9>#gZ#;|VPxz!84e%gZp^k8}w0nMB*3?IICm7aH;y_mzUZV8N9` zaP8$p;S`DX)DM?G$yU)srEEzsh4<`OdX`W zN>t05DW{131!o>M9zi$0ig^34V% zAN)*|eTTxYYt7?3p4eLL7lcy>} zrRorQus7Av>9v`p!-g{n)Jhf`9cdBij#>J1$mR zg2F!g@3tZm6dHN0SC{l<&|}!Hk?s!2GPdTenlnlN2PQm8HBr(aBKBgsvS=r5-XrzW z_IDkZRO_$E!4K>vL+Y;+<>#O=+MHv>4JSd4KN~_Hojc5pDl%;P;`<`WO;8*(&#Ow7 zUJX?HBEM|pR3Mz!xkSpd&BB{PKEG^w>z2N_t~V|1hgfeQa*J^L=Y9iQKiZHb3=S?9cXYYiR_6l?0JjWcZ@ zft)6m*er7&r>CtPBWP#VdvPW%&c&vdsSls;+(_q?@15Srgh@eK04k7GyZV~OH~+VP z9?8WM;GgOB`MBGWN{7I!8SEdp{ltOBtk6ZXu!x9ohH-cE5+g)XQJFF<2&r+63k-qY>(AeW=Vb5=OBvO!*lCJB08$YykxYG z8$*L<@D|+;HD-i!xH4Vj#>9P7D_LR>Gyh#}OseHH(^n314EwvQXKkJPSUn{n#94XP z^FgM3nXJA)!+9cv82iZL{mAVz*B^|!34{f@<2tFU;}vZ=qncLZN9(cqx%47F@2Au>RqheIKI!R^vdlgL zM|mrTFAe3XQ000IV4rlBA+eS-^R;y@h*WRs~ zwL(#&wfENAdsCFyo7mLeu{SXqYOks-HnoX8VkY1B_`TQVkCSko>zwC_oX>NA?y-_A z?B@UdqBBlR=Dp5y+LWT0kZ$@%46s#KUT`hVl4P#!UaKrrtw+f(2pu85Gg7h+B^M~h zH|SwG^}+-q04NT5xYsb6qkRmi)(tk81=n2YV-#<|zivB>?%#S~ycZ?_QgQ^e+W`MD zo(~~r`J8sQH;ke}b`rh442X!GwjsLYyd!|HniwSrgI_2=0fkirXn?CRv{AlX82q!N zB^?tL_W`aepr-o{{LrBFye`^X!u#obWd+D_(Jhy1zb)WC0437FFJ*nl0gM~Vb=b}_ zT&-S__lTzGB_=q^&o71Q*cYMi4V-t?+pO~aju3JInf!n5B3(2V{>+LJ{+;^&zm7NJ z6#5U#pwq&6$`VH=DURz5ijAi0Y#u@Kwvo>gR|z z)WG)=WXBPM5^qPBg2UY|jdVsv!f26anDhUC2hfG5{f9*kii*?=}0yB_4yod55fZXdR^)b0!&I$@rbvt8vXIn0aV~x+~vNGo`=FGd~3p&5Xb~K=ywJHU+OQl z&a}p{A->Vcu7X3tI^6x>>#7$V{fO~lQ zxv{rzWzoCvL%6N+aFsaE6$|UioTI zyXvPL?V4ZUs=>)_#~MH>J-N87eVptMu$&dkjh#bwfh)TSD62^y>$n)>d5mWCgU9N};z@ zJO^zbN9pJlyW!|Zoj#8 z(-KyGuY+A5SDE=l^7MN%wjKJ31UW@TsbG3~ygY22#YI+mj)gUo4;W4Sp>{)RT^Z@= zve+)@!A@!~%;q@h`=8j$Kj!stj^;Wkdo$PgNs7bYJJj2WeN!>8IMQdo+#|N0VHO|u z(x^o+>YR^IB#C@X*IN_n=vRN=(-ogK>bQGc`S?koqU@K&-Va$M%oPb90cR`)#B~CP zs_&+J!dyi)DJPvIBL*BOu1Z;V((9^UD>x@Ls`bkfJs;KA{Y){aE)tsVl{Was(!!M1 zQ84uIq977b9~u+VFgD5El2Z5?ns37l>hZZxFET$p5s5C)2)jOKUpK|ulA-&Q+oy2) z>OU+q+7cD;vTxYRm^<5ie=KxLL-iZmD!(F?iCVqaLrWLj(7L!8vm3}?5X+&$k_w4y;oHg z#I#ykl@7H&*k{x!Rm-f&v|DZo;uTl;{`=X8HYZQZFHGNJ+v99G(*Up%Ya?yL$$bSv zdjz=pES+8ao#V9$W%^V-FB~v6t?AWTM%Df)-{x1bnQ@U0Uk%Gwdb3f zDRW-b@l_T+oa*t%ud6a(x%oYPr|pgg#8}&VR+p)AsOpp@ak9W!a38+pCy*nN`0}A; z^t&(l=Iu`bfWzSYelFb` z&0D;*>QYE~5T<)sL8sZQMY8`lXcd{%6mPv`M~R`Pz5DKN2OegQpY820;x zkGe8dPm4BI?!*e~@=3|omFkpUNBo?njcBbli2VSbh<)_o&DV-Sg^$Gf%#Gbmm>-CIVSp3QBb-J){cmQq2 z?cay*a-)}co{?Zf^N>`Mziu*5vQq;1o;iBR`;l4bI$G4Fvs`8@s5dD8UrEs z$QO<@Bm9l)BQ*x$QseQ2c#I^^rYw?5Z-ogh`cPkp^jVn4s?`qz~0QIm4Z~ z&1122`21qNcId?q)(tnzI zWwa@~srkNTu`$HTDPR@aDgw^exJyQ#UDGH^&(_C5JchUWxA}Vx#tYn&?sxna&{5Le zGYjcq@ylWY{2T}OK~o>z=L!2$Pq76W*Kp@K=92<{@&AXFm`hrs|FtOv58FLa>ICPL zw`0}o@1-_9X@pbE3Z+&Sp=Bxg?29@YxAL3naYZFXl?>YP1Y|e*^U3eZaFm~h{er=6 z4Fx72WcIc%_qI`dWtigl4@)RxbbH$1M{(YO)UUnwWPB?Q37TpZ=i^QFpT#~gzaSjQ z*ZsqxNya}e1!M19-+5B}$llak)EkMv%LM=H8BZ4%AEfCr*bqbyfT;s<>RLiv1>e@ zx`7t0z>mbkYVOryUld=AzBoP}=2Q|A)}<;hrJJp5L=V*QkTjoRgF9!$+i(~?Pa)J4 zf2MK4b;>m^k{1ie1`5u>(ei@`x>du(%7Z843?{}M5kpie8-II};##Nw(~ zGO9P2&aC#dv#`WN@m!2=z&G5-oL<viu}#Wwcz0iNS^xO5?qQR z!%O7zH|a-Aa;FY=fH1tO@^T76Ts`I*`v(Ed;;ZSUuf@JLL(h{O0;{KN&B`jO&KoDX_lp1wT3taYL; zGGqd!RhO%*>gSk|j_QVZo0se@lhfA;^DMKlpTwx_$ABhhr{hPrMdHS``(HBCz;YjD zT_V*Mw-}q+?}H7CWeLOO8Ia0@{uX5i0xkxIHRNM2|96W_`2YIv+}!jZG4UH%OBEmo zI0*@fcl#UH^Od_<=EnQ4o~X*moN7Nbj8E*9k*e`=smg0^D>QU&R_K8-AQ(d=Xw`gE z4~-8+e6y(R0z%QSq}L~tcUibi6QnxjpVH;1qGCasXbHhFjBHH>II1E!t=64o4f%r2 zy7G;vtdre`=B8{A&0;0K+!BrMZ|527XBD37@_;C#IhyE|VrVu28Qh z`^iAdcEBiL39rSWY!q22MaPc zc<9v;^~2%{;08#u15=Sl-xSx0uup29mA?_H; z3J!##-M`m={nj|Z$>mh{`x3Oihcb6*aPjkfSk?OwTns!A3BW7hcA81IurZR{=X;%)aP_Y&@{G|T0Yg`dSp2eV z9Ja=)v4GD@-cuToG>&GYG}j<0{*LdD+RRAlMCd=nF0@u*`v z`7$9xhrzM2-%15v=kXsqS}(YxEW;_4u;T5z_1N%?fLmcojPO{yY?Htyr!`}!?wgOb z){GJ5C2ttZ%L@nx&l^YAbF4h&{W5G8&F*X+dGN==XCbrRtjoDK;r8+E#3TaHKSFtT zCBipUKkTdW=Hfh3w4kz!Q;tGB=Yy}%h%XMfWFKpHC2y@6|HCTu%l`wWxxP9foc)5O z#yohPrI@37tzI(J?GBsw7^g}AbQTR0yEJwj-58Gi_|tL*{q*aoFO5@cA-gx9O+GUc zaWQgfH@6W~iWc9z9R5ro9;cLLurM3>7Z0{EU`pjzrFu&aI=j9Qy47?+P=>u*8RFv& zM<`RMtFHMimx3Cs_Uh1Q?Hi6%8t2Jly|_3BjJayPC5zrF92ve25|?~-cHcJJm~y9~ zBOxHm7uU~c*l#;sfN~B!63_5_YHE*c{Z3SQR@gJY`;|pO0u_xd3xBU@f+V+)Y_V2t zwsA{&m?ocjHyKUaQ*2QmNoS_zdP$lbE-EA<#YSWX$7G@Y=w zuk~SJ<8xH}k{{`Pa26`1NJJo*|^-wY@TWius^Y#8fkTODOpTjAOFCf zmz3Fv6S^+(aZJT@(E24e?p^MHpiq?2+ltge)9Sk$JNF@&jU`4nZj%)t4~fG{WOMJ+V%%Ol)LR= zurlu#g~zuDH_z=qe}o+#)v1lES8+Ida$bwZg5Atqr%8FI)$Olbbxw*uyiUN?G;f{= ze&YHNwQq07wD?7_NqRzhgKhf!+>vO?6YoTPB}bQR$ft05btQ_%Vv#A#tbW!^TVT^a z;47KehC;1J0UgKdm>8k;f?_X(;$!Kx!EQca_a~N@?BBvqQPGPz z*dpK!5X$B%w3nGe63qE7wZbOFnB*ocLS&ITz8Y1+?ST~YnJ}0dd#++z7Whj{Sor`9 z?9#Q?+j{@()!8Xp7vYk~MpWXwrNJhA=BK&Sb&mL^aSG)X}$3B_KZ)aHpdU-lNZ{N93k{*jKmD$eQda z)T`BszJ6arROF|pJU6jvH4&f9R6{5xNv9Jv!k0)5QsLIaY*seCu(vs>9V`+bLX?30 z;y$-7)?pYw`q^RW-G!^*32zsHp^d&Tl8IR7s9mwL?`;!j^)lU8%Y>fRvBxlG=zc2x zW=HDh;DA+wT2*Mq4b!S(`*IN*Poc~tRT(@ljfLx8^!X|Z7hU>uZuI;Cu_GYD!a6`Y zR~jJbvxM@WUkCtPL|fvE_JRd(iPK%>;fgg-QAi7X1VCSoj(mM8+Ii5*S7^X(a8I(D z3IMmPYgQ>~N5xTY815>63PhD8Wi0VMqYqhQNv#((Bl%naU?yS$m+zT`4Id%gE#cQ| zJpjSb0o;ElHdQO`t6s6j?RBGnW_l!@*kA3Q#MIuzfOfpfDY>kIBRGh!U(y~K0Vaw2 zgxPOLZ;zlI?*Fpe=pdc6$lK!w$J9CyNrcg55hPWQK-m!J7<~Q@t4aJa4=%i%h@cBb z%XIW357$IDF6zCsxw1~UTi4qBuRxDSm~ z!G-9n2N>0T@3E5AUy?yDW*ExX3MU=-*?*&BdUwV;N(jh*Bz9p~%EpoQCZfEuW$ zd~&a?2Cz4S1@z(aJ+pDv*x&*Ibc1ohJ_H5+NEu1w%u6@`3mY%*PP+jZqy;7n4Qt&o zR?37L)!rYsVd3E$A*=j;0UXIoJvtgO&q1KXfn3vexaa5MNQ@f6fYE&Zr$5(IQ?x~R zQvv`l-VR(ImJOHvM9zSY!dcKTxVu^sS+!xZ!Wby?1*AnQV80diHvhb1hN9xcsmonJJS{xkDQmOumks_!S{?u$F^<63yS}( zWGyZPwS0gm0~9~4;}}{( zX&vU>`LBVw%L%V5eq@jQaJw4OkC}b_LUO@yIxDE`=CC*=&vf8xDwEO$KyMt+(vDPY zYbuC0&4D~L)F8fU7Fn>j37IRW`!{hA; z*p9NgWutm5VSKN7KgX7bUwA5yXfeyNp?diFNgTwM)C?DU7Q&dAK7I1)?HD`{y1{0k zR(QZcG4`!PJk&Mb)p@;T`W3}55Nl#!fC7b?$&I_wT=XYmr#0J43-P85ce{}+)#yJC zn{%OUv?|0&G;_FO<+t32sz|zVv!Q}FVW|kGhsK)osQjKlv^Oe@q)}1XU9RNH z8g;>ZYdi$*xcqF`?G$C$@SXs#l3y)%EmN3=gJ-XR2=j(YDPA_0JKpS@9YMeVtcJ*L zt5HEE-Oty8L^@&}N0JfyR{U@Cgi2j~Pg$1~`;MWlg)S5JTW2Rb-#rz%&QXQRHU0+_ zxMSmE#+1cJm063%ESEwlsU_a(j)y|R`6%XZv&9(+1e54>!u zhKOQ-0*cI!A@yRj=c2o=?V2fQIN7QEQMUKU z^Rj2@XS4O1bJ9HZ_>%LrR2EJYhxmwf!Pp~$N>x%jyC;WlZ)8G66UGZg3dZo+{lP`T zwI~hu7e31*;^0LM)|ofaFZQha`FGCFliB;#o2)XlO4{E!(&M8VWg})4>1)Ib=uY%! z^-WEF4Km4Ewc7lsS(2wYQ3F|_1Wgz67f?IY(n~sLvJJ5APXVTh&$CrHEA~GL)bGiH zN+_T2BQyEs1(t2&!cZD+x|fde%=6cQ3E-Y&0C!Rx+nu*%%rV=?(#r}$gs9FwRP$^P0QcZAbWgFy-qi8RTSDt*f0p+IWEsTq`*COtk%F-VW(<&12RrM@nM$ zwh}_ePIl#zhmFAI02Sm|{tCBIe$S)ES*G-G8e>#m;M&AMJSPHXXs(-j^@HyN#Zkx5 zCI@|=sWn@1AEL*ot|@Ol@YV7^Uuhi04)Ok(l*^YsK2i_9oPCeC#*JlEhty@gI$FqH zXwrpmA>HEU%AOg{vX_1>vQc`dQ$n^TN3Cys$C97GaKhqBKa8ECILr8~Uz;?+|3c=Q zMS%HxmUzh;j?tRb4lQk0SN>xkUCr1P^6Ha^^5{9!IwU^w656GN9)!WICO@|ZzOa#TH{CwYuA@Kzq4U`W?E?xkT$b7e$()L z0q_B&6F$2$Ix~*-9TaLp9F%+YAoL>0!pTr#IZzmU8zyr566Ql}JGSBcs^!w}V%|Ni zqNOO2CFak5^p?KernN07Y*aOlHe7ct{ml#c8$eeiPlhiv zsyE_r6z)4G#w14X?toEeGPJiVw7Xj@D;BoOhdx{@@MY@s@q3IyN6A&~kMv+~{`NEc zYKK`kJD$V}~7-h+mW-;~$jN0Sg=@;b%4c2iby&g#!0 zrsVI82f!J*rKs(UH8M=~iZ;d?gvOl^07ox%P<@G-(LZn`Pf!|J#Ih!;S}yL-$usi0 zA$DL;T3VMk&e`8h99Ud=p|Jk7jYKW57A|`VJ>3;)y1}iZTheb$DF5ncqtd2aoorSz z?-TlnDBhxtTOl}9-g%g`nq=zJpS%bOBzTH@bEE#dicLgD^Bq?0ziox{Iwkon{&~Cg z4AT}Z65by~>)5ZX27mmE(2f1BN+D>HmfES?-k|gl6bX?rz~v6<~=^ zDp9|TRb9DwNGUU-^u9PJ$7(Ob&qZC`R0+hZ8Cfp8@qes_z+=TAz!)ey6lf$f zflg^57(<{2fw1VEZmhjSX!mGs3GdDRRGvAR8Y)I%f_)OWL5)E7RgQQltiq!;GMSWg z4AePZR_?`oB?yxWSSvXEI}?f5Ea;t8JN;sSFIM}mYZha_FUI^K9Y^#EBPW3lqJH9G zj=P}b`M|OZg5l*f@#`Gt$+aho=db?ywiv;DB8N{qv(A)n=B84RYly|6S<dhDn!_`)Bs>rm3WW;0 zMKV**{l8$MV`gZveo*HS7b?v`gGo5l0tPT99vWPecI%!hGmubin?K$ zq);WKydqhyGpG83laVF{!o-(-@7x{R=V}xJWZziuO(^xk>Zy?P^s~=2L zKrIrOzg)g2j)ui(3)J3#Xh#cuMobqxpDq62#XK#sbsGQ0%(Nqx>&Dx39qt3Ec$Pb|ksbx(xl;=eu663MW?gxR=%I#szQ=^x%= z=NU6UZ4%1a^1DJjO7M25Kq|-?1iT8aB;PA{XDb`7WWOedL+a(`M%nDqeU;7}h~Z|s zJemUK>Kygdrf;-mTOX)UTz%0_d{`S^&yA>6axC2rhnCR2?JghehnK&9sq{1Wtod~G zpjiO5qQR#TSsB$U+sFZgTW~5A<$G;>+waM?KQx)YG@M^Bsg?UyW3D1DL>+P0GmLp! zi(C}9o)uWOUw)IATv^2|uPaq6D!HzV^3H-><;|$kH_BSwrI~XumO|Ulyc2}F67q$` zstAQ{yd_YP>*=2EOkj@#W0W!=THB$@ylx_bGS6bV$5;2LBbOW}M9zq7FO5*8ecJXF zhFaoAy?;K>{Vbzh_wA1EI()@OE6BV!;2W!d<&-&joqr-C8ej8vpRDbW!F>s}wUig} zF;N++PR90vfLf6YoGN9XetwiFfkIh3K8}!+S%s<{|C2n$Se832iA}cFWVyHA1Z~oE zI;UaS)5lx8WXl@bQVpo zViQ=Wnz=OMy7s{mW8 z6fHN31sRxvLw+di5*ccxzqS$%t0*-KwSL7fS`M>bmfNQLfFR^i?`(wM=OvLuz=j6{ z$MrmM`G5D?o*{)%)6Rbpkxi!@6}B-#q#@5j#igIg5@ouTE;Kr+PpV6iPHMRd4+;ma zzKVqClSxDr9xH~C-^A~eBv^eRIHz0A^{O)UddM~wo@f)!Kqrm;h=hNT2$vkwWa4`|4f}|Tr1t5>>O%vCrMy4@p2#%mn&s6y*rlkEv9?nX&_swE{-r3{`{i122+By zZrX;FauZMiu&ABX;55p8KqSv7GwNDD_X`WSfoIuGD>nIPkg0zkF-}R!g$~caS=x>l z`=&VPq8bo?5R6`v69vU~f9VOrEy$kBu=n%1$48jTCtDPOMR{4xP3pQCZ2%Lm3hpM` zXVlA_Hk*cNs)~H8)9nlfCkLmeXFJ=DOU$sDo&9H}Ro@d8HH$=^JXF6vR}rqFxgOZO z)cRb%HjDP6ncuhTL_X;Z$sO1(yEHa1f2X1OifcU+I&4wgt71`B`_tNLk4{dL+*|#P zsI~td;WSEHWC(?6iKrFzkS zMWaTJ+KtG4J6|(|V-;%72WGOf`?=k<1`DFo>?a5}8ouYo@09f=cVb~HcZuFzjk!Gp z;?RcNK~|Q6DWiSNt34iuO0H~eTd7>KfvNW9eOh**0-RbjlAN#ggm*a71>Gm#|KdEf z+sji-WgLCDaXT{>Jt6vMf&oHQ&rAML*#nF3Uw;ADN*3qarWly{^476~-8cy^RMm{& zAtgt8fYf+cq*vKmWSO^Re!3em7bAo;L0yFSOp%kAk%Y9dDq8aLtzNfB$~fg!0^975 zH;uH%Pjiz{9wq!U^*U*trmmXqbuOIRNoFa6BC0o%v%L z4oX#$e0&$+^Yksas6BHYvtz9OT&X&JA`Qt6sixg`9KG%B?{IH#DPaVR9)XS+T0Hx_ zUyh}G=lUW^TK*=(z!$XPL9_6l!oX zzP@{KMklZ&ak`c-5v_+kXza^F zI3jXo4~nk6Kk|M%h>HfQ$QU2M;xi=(Lwf{Zl=rzZ{eXw%(Iw>n4*`(+@;>CpN1}Eb za{??29EkHd;PCO40kBqVw4*Z^_@(>$%T=6501mKWj08p#B{oc2hx8+Y9KcYj+e=N& zNrQ{kj(^v{+%KH^6|A(v40kp#A6CKbFaUdfyy}g*Pg(-6J)%AGLr=RUUbP}+uV{g+ z?HJjW*5=>1Rb60X)XGui{Yss`y}G|L_jTGSfbR+LHt(;#l6D`w3|b=w(uG<9{#hj$ zi2)*ijF1sg$lro@EBDTrKfni!VAy|H5%;(L>76)m=!*eDf-ViM@OPat%qvF*wD;oz z`=qd2Fp%r*{;`q2+JNSt9L~O78UAM4t}6KCo7gmU;xhF6axkGJD)Ia%wD}@CXl-q|j-A3YG z$*wHhlT#Kk&DIxU`VGgr2H8_{4YjMg&LSS=RIWOewMva{kgWc-y+WJF>-RtHOh2x@ zVz#ojhR&#(X)&V$C^RLsdlDZ#&NDUcyffa|_0C@?kb7tmcbTJk$8lQByS+OmgJ{`? zyp)ycK(j_Nm=zs-npb zqJBVnl3P}mAjEJYOE}f2_$6r^$FQI{pA7F+^3R{9Dvw!^uN<@!mX?N{8AE=a%CGs^ z;p2S2$P$GPqcWI>&Fx9u(pb5D^>Vg$bOyd8s@j+Mj}3q6vUng&{z5K#<3Fr2RmT%p z14UZ88;4x-4o;Tr9SwN6Wgyc{Oe=ekS?j8SHn+*%U-htDoq~-TiwYNfEo5TwGj5=8X5B2J7O(Ej{o!x z-q~x$vR_+v6w%!FD7R2%DY6k+;%-hHm0R_4pLeP0lt9+EEhl!qA~g#;?TgLU0R-zs z=glqioHgzH8oM9>(Oh*Xgm{sep*$_8vdU8WAv9ycRx9?@0^>{8^t7DK)LqX4<<$j* zD>yU#NfUk(?~c|hxwumQozIk%!aN@rTuNEyX*!d^BXI*Yv5@Yl9XRRb;InC&XH*IA z>3z%J>$%|mi))w`_c<0!(@W_!UEd={mx%F0(o}{+79TOLfqhv392UP6(r)SSX_ZUH zZ*0yzA?Lu_fXXd?ham%-c=CqUiEJado480HBkH~Pw3{BY->SxYf#vrbT9kRxV58#v zgs)zQt097bJt}9AU93p9Tq7H|0Q(cW>^i6}Z8zxQ>r@~23_1a&rM*+ex)5>2>!twa zJq?Ir3#J`SiRZOv#fCc9|GO$PB--^0++#6%D>bfueNoePxqM`U$r~4sml6 z^s8CPE{99fYwgm-TZqRul6pbaCm+Xq8{Zjs`5gi-=}fGXVt+HJ%Ij}*nx@-ZawM&W zf}zxOUWmW#X~;yav6i-w%Dyr(3b;%l=B_laj5_Mqo54b`Yxu5Br-+QY*cU>^ z52CVw&q&I2aA|4CAL;9&`sRywE#iRbW`e&*NpkJQA;v(rEzPG*aEY&aL?zj; zwqQHr>K79%H3cy{mfvyNO!jm0C~)y?!40LfKs;L=yd|<#Lo10ER@&{rsQ9nVD`$IJ z9mPCd0?>?Ms7ga=yePrU(15kFzVVHJl58f734v8?);2^Y3HdT~@9_7qFIf+?4;tsu z-?$8f)%mW{-j2?|Db8q?o}e32U<8c*T^psZgrC)5OlT@CuV0(51HH%xK4H%4Ydk-# zk3R_SL*_OL2tVsHJ=D%-E!&c4#N%guTyMi9fywToIal=b`Kw){=>1#%E4i--IOi1k ztWtow!>JK%9)U4~gTuqBov^*w0Pf z+x1;S51J1QYVB(I$mlo54|OKe;$jFMz7yq@l#X3KMeshwgy&c;LwFbyi>y=rNuF4fl}DfvmFJW1 zUpQ6*ozh0tLm!h@i*)$tcjzqZ;ER0ePW*FQl-I>_fo)+}R5l~tHu6e*hHI&f;A;5R z+dLT={|01f=tUiXqXlosko(?x`Xnv>;?CzJ;Wa5)(&UEoq{Tb88N9n0_&19*|9p8l zoJEBmeGGxlE^`-Z9pX(GC~B(wb8oM(cJdja(gXDhae>-4ksQrN*Ne54$z8C$%~%x? z#t5#%%2_rupw+Q=ij;bLrP{}1^&eK+Lqi4pSSqN>g}GY~yT8k`ucv88><=3tHtdfA zzA5iAoDAgm{j;nINWS1nE`S!t6$AB%efMU6#W?Co>P?I}Nr^JS8u)Ewk>3yy8`k*a zTV6@n+Nf98L=c(L>W*-0NgjIun~ah-ffZDZ?AL^rQuHeWfn3KCc=QM6+B34cY%Z#T z{VKrwkmB}t(g`XO)=5-waH!Ncw&={Kdv_-t)tmXJ=ljNcGn?c9K%Jz$d#KPt*3t}_ z_y}571m)=5^2n+HhRGO13Tb1O-&aYWbW4G5vtJ@>%3kd#0u5$~Sf$&s_|9EHEUZk^ z?b@DgTJQZs8ge!4#xoZO6g8J(y&EZe(-(!|*5k~5Rb@9{d;jKvi^3uRKGnWh)E0k; zcL*vG^Wj0Zef4!;_Z^(tuQg@iy}!r{jB?o`C6|93f2RPKt^VT6_5{I*I1EAh&0Xs* zapO4lfc{t0#qm;f&WWMEpn)32N&x+{T=l0*i)vFb&j+bxmtyLrYX@Cg$xNZ~5PY@T z2ZXm2J~llL6YWn-xs>ZGTrT%HGY7qguMXDlN{ve1Hmx3e_}%$){qo7-&ZXgeA}=fx z66n7O4r_UOmE78LaHsJfmi7UXHYH@kfx;i7xrc$z7Rm7uO1@oFu<;;Hx&r#9?w16lagE(8~%u&4`~#^iR7Z%4UKZ! z*!^ej@sd&YCGF&n&?SX(;i5odY<;Tf!zQsZy_0Z$5I42yt}cCI!_5tAmFguPd%83K z_$GfMx?zaOD|6d5*hQVvO%vZtq>! zQ6!_+7gGJi7gT5OPi>TDx)^d^nY`s2l7o#)UUJx1VweckBcM8;|L~+P7P?sLtbB)$QI#TRO1gXw>FE6?q!eNVDE-e+AMK${K?U4HyZ7( zaV^bU>>vED5~U7&-3)#C{UNq*1yF>asGedWIib-F{y~|hlV`|gtE`O|&$<-^b7yhn z1nDvsiS34+qUL$Wvr-UmS|Sf(tP0h#JH(4VD?BHv;(vx^Tq>a}$#GsQzMu=x#n&e? zqR3+3P6;=pA465Cy|n3`u&VfCZTKpN(fPQU#VHBPu)hr@U=j|LlaAxH;T$R6`fUTl z-Qxn=gpom?Mob5PwA%FJ-??;TXS;Ol#RM0WmPbZ7yFX@P5_$Y%6jIQS7~}21EqiTQ zo;K*GQvxHvLUGKhW^Y)pE4bsGJ@9Qy!%5H1sR=S3&8MEzafe3H#GWZC%j{j{@w*s%-oLmL$qMT1FQaj-@x{uPNiV#tg%~9?C`Fmr|0EE z_Vb*rA8#!yYwQv|1g>;((wG!T7)2Z@)#QFnmL$hlk%=)yDt2{AeQ(W}ED$lQ<(@Ou zca_4Nuk4a%tu(m*H&d?I`wsG2x?vB8?|?5dSA^uX#ErjdcdR5PN7-pTi`{$Y?|j9j zQl6qWp~z6PntQv1ND#036rLuriCJ-c$f0)JuZ$B6bbch>-B=G1S{3O9zY~KxyZ_6D zY=Q#GQd=g))E z#Eza`_A>iyA{0!D%kpx=7~oB=!-mGZfHO!J3{OxXuJ=*IL|Hz(qWD$2E%KNX8et*la&JbX_n;@p}15tZ! zCG~bsZb!SrC++Mg)c)KxLF87Fxkul6!Ozq0>__w*LdD4@$rq0coc=t0zU+`10cM*1 zm8UK7P_FFV1bYRD%r)8RT%!?E|v#~HO;(LA5~=^y zw=p#E8g}c36we*oS8g_2v+lY^)yIzU3vmjVTg9`nRCG;DU73}{sA$yv6m?GFDak%v zn=sOv^GlyvxE#_GXJ>!O?i@NusI;PPRJ7u#ZI51P=Wj4mf;rH1Fn+|kCOAH=rn=Da z&C&$i4Gnh{o~akAuNIB7#DAuUfrXWy@ichgY?s?QoS9^d!=Ry4NIKuP+7u~kUH|0VPlVeF<={8j)fw(eXzdx_(d>dD4ehTdhCYeQ z--%r7G)G_@C$nW^XaD9cQk*3zD_r_CLR4PMR5_COn&Tg-z7S1rb(7Fo^$b!!tJWnP zN=+pfIUHXd63>INO56X&Ic0xWO;J}%3f-Ozb|V4TA*bTy=^GL*I`sIe%A^`%8l9(! z>9L;CGJKIFf2k(h?3i8oqzL)Dj$9*KX7q*BjGl|{@5C%Yd8UU|Dg(v&>548w=~G+H z$jYCxqT##Tso}K|j59_@E|X4*$y!5CIvT`+zdcM0^?vOtGf@~ROB1{oY4y8abbMFk zkwoa)`pq6a5+h1%Q#HoKN9BeOOCHwX@-~kQR!r#Y5rv`$*7+ZQAfjlZ#9%RZBd<`p z4$-&Cfw`Q^>^TEen7=Xen*|L&OQkix^^d8KZjM)nQdam^&LXh__9#F~@ecUwi+lOP z%e7yjFma=te^8y9-XJ#PU@ZL&abMH^J}s9XYx+-(M|(6{H?%`Rn3V+|zNuf?^h@K7 zufR{Ovy+yX>1c#?$OLBIrHXdBG&?=jn<=MoFk$m{-FFeT4#uNC# z411P_tI%c&#F9ALx}xj*@zZdR`kk2Gvf=x8qC{rIKTDAU!ov)*od^-(440l>l05+E zAiq4w-pm6jvSf8XKYOU6yU9F&KX@uK1unir0mg@ zM8_01xWAryemqSyfcJ~rbSBdHafnLeBbsdAmo#%b``X?Yc(i5?RLh?z%6%#s&Wt14#&YX5=->6C(y||mIz;(HEP>=3(gVGjFovh98}0TDa}^FvtODkd z`+-aepI+pOY6Lu|NDVkF`f($)wbY&JurDAv;Sr`!!6JOQFMoe1;zfk+p|Fo#k6jD8L*^HaBC!Pvxb34XZEam_-#1KIK`Qoq> zYdyQ_q3{;@qOUv<*L66hIU>BGOa30*jRxR8vFSqGQ15B)`y6r-a3xSO`&=5oxDm5e zK??U_-2`A3faDyRth(IEYOP-YpI3JB?CKt@oDXG=>8^}z!2(q_gZ`c00V4c%fN<&S z(X<65wgXo1SN(ex>1l&PS$dGW++lu;L#z1&?|}1pd$csHA3c*wUBpQt)SO1|4UBy z+5lHLI--_=7ne~GAkG)KjC;J(`MJ&l5=NWd(t8*QXuD`;hTXuu%Uk>KmKP(f?-n$jMLsJwOdeLQC-?6kz~eJhWb}S0 zX^T*61m`GxRE(+I@3sr-Ye5v&#C(q5D_GmB)hpUO$f}sI4%O9Eo_8Xi6}=hv@jU$Q zv5ctv`wtoIWr(tA!t1RnG2_>u{1#}FzO>!W`~<40l^`%cLI_*f(X#fk`cbxp7V)B)VCP6tD9v|-{OdxK(1vKrfX!4N|{ zifRW>me1;{Q=MT&i|0;Erh^?G7R#h6;tEzoE)o+X3}s<6eYG;4|H9Ly#oxaAUDjMA zFZ&;sloLk`r?@Xib8|F`QxoVD89RPNTd=%LJg6MkmX{AL>i@@9(?Ho?Zob9J?m_$& z#r)V74^&^1^nXm9byO5z!1osrX%Gce5Ecn(5Tudr?k=Ufmxcut5CoQxmhSHE?(XjH z?)4dd&w0-K{=?a2hPyM%+1Wdv`wdRlv>xSwKkYkEFPnS1PqA{*-}3QRINm+JBdugu zO+`{B>>Y!@gByz?^!DyMU;l_+jR<5OdK+$>yN)dgCLb>uWF0=86Nr?Epy$HW0q0C_ zK6(AD^s`{m=I0;TIUmua#QY@^CP5g6vL!g)@g~Uq(DOA05~@jvUh7^Qg%6RAJ=Mm= ziHs8WewQfSo{su?5tK1n#A!U+R|6&IRiWAB-QK4ZzAzN&nX8g60I)Ai)VcVJVy~Wn z<8*)5af82Y6i{ebe14#_v5~C45^|wR~oRb>r)YYZ`n)lW=ksDv>5~u zw(Sf<-qY2O7Ip8GGjCqJfx5F3`$+ zF}BzscoRV{NtVk`l&6AVc-v^x)E|fGOFWfBC(@&^l?0x=&B{c|!|O=_AZ6$5up#Em z)=7CSQyk7e-E-8f3sn%S9lC@4x|ej!HT?Repk zpk}r}^*yp;Pequ+al=C6Zps$%E3Y}Dkn&3H$0YfEvD^42Xn@jdhkDkPFPtL&PjAvssgzB4-wsdX3>Av`*y}Ygwp~6Ks zMJ@AtH2u8rkLxSG`(=FNGz?_9S?;)Pge+oh<_X?Lqd0?Czj0MzohRN286|%wRJI;m z3JrQDZZ}z`ha{UyRj(|Gqr?xD1O^$!ia~W7^92|#e-=LrsW5sAr@HVSvn!l0KiN|D zqa_bR6m=qBO`^L6!xpCIH?Gx&cd`6iJoMeNJ}BDtDh!`9t z9C3%4{QDp1ydf*hX8Q1g!oE>{^1YNBIbQ`+LIdFhordOQ;5fAPp`*m@Z-3&Oh$z?Y zB&VB2*GCeqd4>Vi2|FLJO7#)JfJdaG9A$@QF5a)NQI%9(w|=}itZyAlJOZ!o8!XJI z^ux8vF81rb`*3(d<_E7C8qGE^EMv_@egzMB<4b;kj9B*$d4CMTH5YSg-Bs!5VhdWWDs0$+9e zN4A68Yn(~duW5EvdyWoX)@Yhk&DQB{(?FHp+W=SezvbXl)1rX9JOe-Epx0mUD|1y< z5#IPK__Yb)qykck$n;(et`Pz0#6FXHj~pr;K&SOGs*Nd`9Lf1Cnb8>ZS@P?hmi&rGn`Z>3kcb$u_mpK* zKiRvPUTC!&7Fo*7TtmK&Xn|CdGt-|yx$zn=Im&3K*Wpuzv8e`z@Jr~>IJvozC7h0! zZ{(W0m)1dz;Zdkc1%#Y$Z2a|!zH=ePw&&}1E+Zoy{O@x?t85VroEDa1sz{O7Ph-b| zKalHPrplDL+^NH{-%>rVon+jcZQ)e~hY(v^RbOj8;ptaAg_ZGoyNYMAKzy*+?N!+T z6*HCoRMV`!jisQa2W?G?JwDJDuS(=Sx+AmTX@hbO*A;mm+MkPPV%awBWvxg}4J~H` zPcp$5mX;s9RSX}drtr}gvxuWm&xTYCmG_nGNTYe9)hpfUfb&BUl#QpJguSj#fpxkuhoOblcXO1S{=Gs z^z%@&7U;-!Y^Ar9XQVfry|gG?={|`*6Gn6QR5k5M__aBcrD)$!t`dnl5ZRR(s(Jat z24!M#txsxi(8EfJ&3FPRl2^VC%ixFVQt()s=Q8&qT(QB3Eti@M&rXOp@H^h!sIBX_ zalB7xl`P|^eS1Sa^t&NK=C%Y*Qufqp>Et>y@d)1B9bHQ|Z$`5rn0gx)+g#DF;JdA9 zdJx(~3IPHC2IF6T&|IWhy`2wj)lqFh@n|N&ar)N zG~IV1jn+UKiJDDW$a~?jtKV*&_{eKm()_Chh&f<<#W~*67!1zz?4?No}R;F|}zbLD`Bgv8FmVti0 zi_wqQZHov^ck10_@79&VCF3lbuhpFCFVuN2RfmmL*m^cn=V(FuV1=2Tx(WU9$osA5 zOWqHNk?B8>PzX5I;8JP_;+7d<)vO*V6r4(7yws}#Ldc}4xy3P2EcnbFD1wz!<=Z1p zcjvmgy_mv$Z-|1Wk!lsKcAMiq^io(B<0||7_24i360(n%IvQ2Q0@s=iuju1PIu6E* zLVqneuM*^R>z{^24E?T_E6O(g+!dbp(@%8MY@bqL1kOls4R3CJtNe%W?fL2R6aW>F{J3HD!xBg3 zHv6luz9G5uTW@+ZOulMBt#=iRuVYkiO>{AmRjghu`{y^HOZMQXAo36feIp5pmE4^QTDimSJ;F$yf4m9ql%N-C0AWlTUd2LZQdr3-ufciN+f{njiC%7=3p3NpFU_3k&nEMD}vG-Dr~GZ43DDk^F)e z`fsKne^yVDEG+^vR46SDF-Ic)n9?3jFR*d{5RiTAzK0+4$0P}b#1|Y<@zmTl5`>)> zz`NnNOQ^-EIyQ-P@8jX|Wov7uRy%L4Aa#VNOiri4uycPuJclFMaOAGL4xXcU6S>RU zg*b6~<>Mk>ybaus$^f^dg?iVnBvHvP|GM*m2Vf*u|3J*#EQIb~l$CghN-(96ddZo0 z@@T0T2+8A70+M%jf$PurL-J#!&c?(c!fx+K`TLqt7q_r=4{>R&buI|Bk)-)&3lOx* zXdN7v-MY>0F?0O&!jO3``iHES(DbBaL?E%YaMXaJEO({J_xJIiBERHPM*FQ69gdYI zN_2?>kq?PRRTA_^b3`QXdbTYe?@OAm!}$kVBI~QlH_V;+xG0i-oZ)D!ZZeJ|PmkB- zz1Xjtw7t7#sAqc81Hz>7Ek?BN)?7(4S8Pn~J+O_U`$X>dYH@y-Go3<&iEoyc#4F(9 z&Ngo#*Pl?{M0c3xGS3mx|4^fprN3>lq-(B_}sN&<9vzwmr5vJ9Z zEODIR&!sv}3Z~r%OxC!T#TP^%u17zdYLl&|Q<8&k{M(z*ORxxgWBiC&ntBYQJ_(>! z9`(}W?+BflUYJSSt3S!E>U_PV@Y|fN-{0y)_XZePigLWecsr546FLUW;74wm%3_O zPFxYT`BatXeAcon*#D_Jk@EDCCm2>(aeLqBujQ3R!CIwZQ7;um*h&>cy%kyJXFg+U z*Xm$}<~JARI3E`LImsJx^8OA&Yb5~H-C1Q{;^;dm#jKNq@G^M8~^<3l+o=5&Er>?3tf4mce(s&a`{4xY1qWynmhe7X=Xr9 z64J7{|7o?_EyaPoO2U3`h1snwL#a zX*x86;sRn!v6+5@xf>1NRJ<_T1al#q#86USDn*5)ktnT7<8WPQJoxNhjH``V(~D>(_<_iO(?IHH7z7T!NB{>pH-+HZ=uz5>rgdyfd+Z)tG9DmZ_a- z)G-62_^uGEwxaIx<#6$cFD9qFJ%kC^p+Sw(6>@qu1QuwR&4^y^|rbu3zR*PL)N zNj(8uHkk;~Y|eF2=xc=g_NaU92;KUssz$YQW^;T|`7?L$+^EUb^#0M7NNV~&kdM=$ zsUL$hIlZ{rAL)R|Zwxs-giF6Zt%8_(E^o@EU(2hEiA>1xLh_5PEh@*AC@(X^$R2(W zQJXl0R8U}MCcei`yTUlp)%^44fPszT6@suFdJ+6Q^J{>)5epB#`DR4YmU|F#AH`|T z-q9Rts^Y{qNkzG&DV#}|;$~UR<*N20|8i3{(=NBCirZDZVaqB9f6A?oeD(c}X0$bM zlVJq~uS)<7Y0`yxQtC1dLN7>?J3D{K)+O`KPERPc7T!znHR5QLwM1**lq%(BW&GJi zP^Gm~pm25IQ64G|(@Q(3da=B6QUdQ-dZZ7zva38uNNf3;($%u5cZ|p2UP_W=d{$S3 zxB`f^$v2j(N&t{Z*6H1%e+mR%20s+MUP0K;&hb6?EbMI!Z@&Qy%r{wBiusiXt!xhV z(*m&{F#dsxq01$=*W1x>+^PD*kBHO!YrQu|bi3SBC_p9po2!lIwwN0MPVAbQ?4V4dO=%7K*zVgr~uZJRF>jBOPKM;C(^GxrwpP<(}{}Hs3XWrK0 zJieUdQKIpX*F#bxzu z5*yxKQ=}50RlH}ZvL;7+9H{f2w zAJc=a)SQ`sIy4aViV{vF8o6?cM0@ z=0DEv>Q0=S0@op{OPl`1cT0Ko9M@F%qQN6u^JUb`=Y}-|h4{ef>qg{z&3Y^+{FuAO%lZqfHSFYYWbr?I)r z(lZy`z<3IiJxXPLSgi92q`QTjKg_7Zk441!X5R`Vke}A|C%h`G#Gfw2GcspLz+~q= zu&q}lD1Ue0EcQsDfDZ1wYXg716lNE5p^RN%bNXVy;!4sz>(N0}lUJtwYpnQeziCfj zQfoV*IOhxARN_T?1D$cUQgV4%nn`3>k)oG^tcze>Ji8gAr(*tl&}sX|<%mltZr8h4 z`3Li6JuqQLm4#2+OUE;oxVzQUY&Dmbqg6o*8b?LJJx5;6A+?RhY{Vbb%RKJ*BH3EB z%Q2vWJ+<5W`_g?z2~rj&3}N`6YJvNmzeIc^hGla-RYzw5!K|n_xrze7bCb1f!AOMsR*mY4Oem~!xXUl!Q9Yr6f=~elCIJuW9cBu>0T~{<;U06ql5Ams z=u0igTSs+{*;&U}hC}w)cjnRWa5^=7bG8ZU3l0>=h3oIFUDO6|t7cj2(5rf_iY{76 zA2coVvEH8EJ=C~vezI_XJtU7TQ$?GtrmA$U(77v1#iMiTy}g{~+VUG-6qY_TVdZ!t z@&+KvLF^~+b6{c^m2p(d%Kf~CDkj9?!+S4=mff@7gw(oH87TCtTY6VX;A%bF^)$l`}?CMQjUTyzkJ_yVvPQy zk{#5K3D79#d#z65I9ki6Oyu0U2bE|3x_LS8ANR_Arhy{-xBp~=5{Ji`u|a_)_RA8Z z1y%KU71*7W?J0*cM}x3>*@796f$hrQ+Vt7QP+4KMqTJl{+}gVJw{3C$FXOP!nc997 z6hIopwbxLF>hSVZZwN5cO%-4At+Z-f#KFmf!Ha5yIE=(7I*v?3gY^sQOF#Kfx#1`s zUSsr(hI==6d3adNeIL2UOu4wxIQmkkbLSz)-!ua+VUi(>HypOk_cCJTL9({6^qbGt z+*j))LCi89xoT;2ZLy{g=7kQ-s5rlPt+6D9VqU9%U!CNT5Q=3jb1$eamK`ctUB_yU zpfXDUooaj1d64P%e-7`jY8UQ(^Qt+_%mwsPYbma8eP`Q(B`+c&2&g|JU;$)dE{#YXU1nAFH$1nWIn zr^kC+oetuyu0wXU(N7D?sq|7svUJ-lU-T<-O>k_IN1|Nll7`pM>e4+lJ4llTjW_8* zG_Ao(sUcy71)DowCOjME(15jk z-Gnv$9wJKWqhef!ySzFJl6^K9H5BDz>#_AU@UQMV9$OVW>CH=_tDPhL1HJe5)f>)< zOrS~k@i%>4ku33~rK=n&TG%|Q8U6vTE5n1)n85Ztox@Sx5R|F7$z(=}yJe<|6j*23#+o z)xc_x>*imag;C-zSI9`$X5^6viL@7R&xCL^+d8Ee)$j_LyK^iEW77 zkG8*ml2N>AkLO;LBMC~pk9%T-PG6rzs9-k{WV78}O@5SqY03VR9`s?q>EsEAYNcr5 z%7}cVM8c^#EO9%M%}WHVU5+i!kPBz(sirijVDlzP31j~r);OHGhp|Uzz~&%(jI#qs zR>HDkh)dpCnttErtj8eiJAXIVCxH~dbNy2) zr5c6-YZR(Ot$&~@%fymX(J_@zHaqNq=ktUa!+*d6_;Z7t!bPf&(z7iUj6$cdp9=} z6U8>go>lrAjUKaqxpMx(q z%fiLrLRJE$Hx&9nv|Z%l>1oe7Rj%0dJQurZBT}sd%2CN(J?4F6TAqh#VLqZ8VM_Tm zUVfp38m>*D^qkM8pW4ia*$0E0r*>X^fs}m5vBNv%u(U4E=#xe{ZtA_V+2!R!bSWv< zp^Y$94q{KmE^v5d01wq>Vq)S$aE_f(oZFsU#gC|YNp@_lWXJoc1t;HwItz*wBK!gR z*JH;?Wg9X5tM9(B5*kHFU{GZ-8Mg83nS;pb^|h4R@_e>>4AKCWsNGcj6f2R<0a<-uLZ5x>g?-N z+`9>ghmY6za>?~oLvHH}@XyPjMdK(eeTwf_^h_Duazz3@noj4eFw+MO@rEF9?nQET zB%?-iZ3TP^;VC2Y6Wtq{G}xy*sg)()7Gt6xeH8CM^tDdhAPDYhlAVy-HZ z6ikeyPc}h$f4dwL{mx#tGp>62Xutxs!B)+h1vXPJ9LD zBgx!+`b5sfI7m|-9^~R7S#80)=dXt(B7T|Y5hPS+N8&$CZ%Pt>wwALIhUHY2(W%P( zxT2Y2I$o9>DysJn!UBQOauQ%44-~jDcwk#8+K_H#=CB^qjDcer!|tkgQrzhE`T6zb zh#z#=n67UJRmPAWs_?D)KrdV=Y8XIYxRdvqvyPU z$xnCp%>Itf$UZ_POT`_$@>FnOXyQ=*dd@ueigB_Po069evHh`?^7bRtv%$)(($ zLv#p!J;f-y(CM2BDZ&t^wpB;@lpHm~$HLNh`jbJMlAbk((xay~_T7#)pONVe3x`Qg ztNING2y0a|XFd0!v6zV1Walrn{J%U1ZXl9Y_?C{ab?-xFg$U5(gbw?aXNSsXlJUYV zENJ`ZlF~HVpaO<;pbLf1r8q0H#j?gEiuS-i5Tnz8jecl6R?ysdU#&|_=izbRL2-9+ zVQx`=cE8Qnm-Z|wb%Xd2o%3y)vv?f>8^7`(qon*YxbhnbJr?-s26SQdEgjSxA-I2) zjto}_8AJ-JBndwn*B-DeThxxxHZStUUpG6>Odz2s`EchX^?-uQNVO^7e`~>V_jOUh zX3!do*I5fv(3geJq;0itp+y+n6-HIaiaV!f-Z6YH7?BiYVCq_0J=K3Ef&4<`@3%;S zlEL*P$>ik$sw-Pp0XA@rkcIny4qa=9n=%6K{NDWtucrBcwE~?9SyOM5?{A6 z02A3s?dRF~uF!nLjXm^L&d=bu?^^Qon$d+4F;t8aKB8GVGOGlWSVf1~J2t*qZAZIl zTmuOi`Xqb?O^AOHzQgs3FpBMnpk>_qImEN9oR4riHgL~9eT9ixT5s>SlEG=#E4(Y~ zje;H{F@k!tyn?)~;9|u6?-6n-_Uun|^N!XLl8a=5q?2eMrBp1op_g=W#Ky5TGwdEQ zJ@zh5g*EDL7>YFeioE}Vwf^2;LU>RzJW`6>ZOg8m-_+U@7o0iTT{UlImDn6b)_G_b zlt!%O6!!@FEop?f%-J4#iJVSMC>2W)a_tQUPe?QTexN0aE?Cl%@%Exiv&{saYkYZ=cTUql~nwL6TjjN5Kt`8~b?ke1aM?J32cMCpsd@MgF zse?@NTYxZ*JBW42-AZEd#kd#Amk0XHG76fi9&W!d$r|!mJyB!SuX$q&pUo38c!i2G z^JCC|$SazTBGlF=2~aEHEs2;O-0}4u7nwvzPES6#f39>@oKdlSKv855k_eH3SH4k zTn~&lZ6LU9dnC>Sj-yvg08lW5s=pu%&%c75(~S0qq%{`6L7uQ2OvCga;~pKzJ}1Z5 z^V)vgAtYOe$&*FazoN~zetV1_dc`8!co)23l+u@VapW=J-CLZfiUPNb1k>x&cd;H31qc_<;OobNxeCfx|-_Kr)FC5I^ zm81o;^lOs5Gg^ZR-2bbo~~PABfDZ( zIzO)aroT-v4;Z{BDcMvu0?;UYpVGdi}+iL$2itwad*+u`fD!mvyfCu6g{_h=r8 zRsNQ((V=ypG#J^C*cfJoQ3cQO0l|AW7Q*BT*~D+Xz0^_21C^q!p;x#3DXG^hfQ)bF zQ63C9rw^74oyi7>Ltxh2uq+T?9%1*r5S*WCAvoEzApb78PMk2;SmF?EvNOWPgrcHl zwE>(5RIuKAtOR&20vVSRh5Id&;I5X`x1~FKxAz{WVF5XTdO13+@E=P-qL+Y?`}h0D zFdNPnK&SPA1}6%y*3{SQXBB*n^z1p_v)uy{AD27|eUa;SfbdN5 zXBnMZ4SUTkAU(X%@r$~B-v1+bd?#h7W&K$nnAp|Jjsz!LS-boXQ-U{apex{#XL#uY zLOQSo(j+~K51++%*3W1Wz;p)<&p*PIo?+$+>>gmYCnV2Oz#cgN3Ha<;!{_|U+wH%y zq5nM5l}rGp^mrcpy8uBc|AsBFhifkX8oZ`y@;x$?N%5pF*V zIzAqv4S-=h1=| znU-gl8jI8#7M6;!_Mw8>0?g*+p_oKHhycSmtL;q>dE(g z$LroH<<`@Z;bdLoqkMX^UwPTVC?mxD8=vEc25OzFN9SGTHxftOZ1QFJR@z@1O4VUb zY&&YA->DisSg|j)8}3^cd?J?;MBrDdY09b`uMBHxZS@RA0~WeOb$SM!KNM6~Z+TFw zx*3MJM;@obMZP^%@}hdRod-HVrYCQ+&M=Bf-yAi9ZJohJ&bD?Zv`%43H(no-5@!{x zhq5q)ytkz|IRE7L%TgmcBJ*-Dy;cxaTW~6L{!7>37T*H30_yFjU zdH2Xh^+YKoIB9pqQuWX|qh#!P(Ib!Qc6Lc>Ba6cX#!MPsr;jVkWGQ+WIy5TzDL*ZJ z@D03{;JDT{#(kP|&x-rPN^_Iqx3QF<}xnDw&AIDy7wqvo0h;eMu%4;?>Ptd`ev3U1f12<{95qyJSLT5?jB` z`%}-03YHx1VU4q zxQ~^3t(7fr+`<*U z90ep`yct(lnymFh4qxjE5o8(rb$+1mksswbVN5Qu-S{w3{O+b+l*=~Zdcg~zWnia%#Dm_AL zxrkJIpEuaKbf7}}_8Y;eQ5$e=o958@mAIH0EOiTQMy0SLl{1qsLFmb@a&6wRonmX% zjV)ip@uCP^n7oK)uj5V-Kt5@`fq5jCw)Xo-7Lekk+|}>H=(%F8{C(4_WKq!l)LN`T zBl2kCH+`(5ktO2hzBRc#v#(~Fv&LQd2L95;&7!kxf|+#;Gp}xfC4?g7=h&Ac%c3+_?#8rJKz4-FYfF%jm5qx2u zjzv;gd26y`pxBf8;8FaMSKTGZyrHDn!tgsu(p}BFmy3J9_wfAx|xXUFhP_2GaL6DjSwL%W*O7mDKmlPnudvJGVfgo_Gn!-9JMcgm7xP1-IXRo zR89|u5Tcz**Tg?vgWwFdr`JWVKI3a8$Gxs+wn(lML<^0pDY%9gW~u+MoW<}WS}0rC zV=GaKG|+hcWy079^wkDmC?iQ&{^bpK$>lv%-`pl+K;g1_*}?~nSB$!>y2*J`ED?9F zWe0Y;G0)2PKF{i}Q<=Xg+K2*eaG`H#>m*lQg*klY1ET!p&XS3PT>hrhrKFAVfJEt6V+c=`+cByw-dpemgxo|e}` znJNuFQS&tsg$_$x#>0O&?VJn~tY49id@8se1)%0Z3vNRSrLjYs+GGug9(R5aN2Qak zil&z(h02xli$#nl*LBa$IhtV}8mbr4a0L0eQH+(@uXNTSZoUj&^4Fg3GYd7TtVUOr58&9?lSrbazCRD&0M8WkHEat9S#tsvjA{J`b|DNCDnw;EOb74C%Io&fc4ge0Fx8994*ePVJ#XJ?KkH{Pe zKNeohuTFf{9f{_Rb(64f9D_a44xGArfUEPbJY><(f!o;{pzkL6!T$4yAsbY{=y8;? zFiCvl1Cu*J#6P^}p4d^__xBc;UG17ur^x7}QC9cx!y%a?azvPbny3@%Vzl8+a>Rx?K`P+C|&f=Sc{MPu!UAX~G^~@0Q z;-6QQibmH|nnro4mpSwJtrKG+x#Xg6wX6&RR+Howlf~=AzY96*76mkM&Q`M!PBS4y^RYxPDeN1LHU!|vm}xP3C7jtw3P$w6%ooI*IEWF);oX~@g?0|e7li6%tFFxRmW@;vfo;%uzYdBE`k@JJTNu^`Jt^jz%YmsTX` zj-NSAy~s4>6ZUtf;;p!#f|%Gxd%P(igIQV4<`poHZDsjyji@P2%bX9fVP46c{KQ8H zMpG13_@zlmDslZN*GX5A@YI9~wO_amWkX0z|1|P3QqweIE5XIwBu0}WK{NADtXo!$ z&7v|EW?hy|GoNqo-;XAV&T3%95bQkF)Up_= zy?{(uYW!qheot|2F>=dI&(9RUK3g|+4hF~hEy&Cew zylC^(5bZvCUq&>N4S9&(ssq917)#M=GV6=eiFKr0b^JTKJ<6uaSff=3Bzq=z* z8x3_72^3i_t9>r8>`+aABK zHer>(Yej!Z7WqzpI$}_ytirsqLhOPT*>G149ZLG3&gm;v>K=8@zrCBOvxwokC^cm$ z1+f9Yw|oD0dS+zlVRG^(`svnNwjQyJf}`#24fieZWK{ecISV)3KNBxmjTAObC2 zI4YQtSh}$i;%LfHm~n-DW+W%a-<_UDqVq)#bmwH_V*L@%Rg3kh3?G@6n1hgYqCHTw zjQ|6@vq(3B%eC~Cv{U3~O_B5$gX|penU@iJA5&1h?M1Hx;|}S4OmxpJXaqcvIr(P* z>)oH&vwKz8gzO>lF}>_D(1VGsgE~%Ou+-`V!OS}Tnm0|27~{n4hQ8kE{$n zuHRNShbzH|{N~{8-A>X=UytR-nu$xeb?(9iw5w?#VvojdXI%jV{+6R~StkDRbL|Ua zm0}ibp!^~S{3o%5Ze}3|?Qhp+#h<&7nE}jU6kN?f_YkMrv&i`cwHOO1tyHACVmlts z{<%204?2GBHTNb~sm@_!_dqT|e7@%|2lwEnt(~Qdm>W60ius(FcRRsL?-)f^(lNvt zEQ>7ILLs#M=%YTOp-ykV9edr>xDcCc7e4g=CD_SpuM(AIW1w;O^rR_Hl^4ZR;4h4s zG9iPf;?&qwtGXteeKKSTE+sVw^4&cC)OGJTmM7hys-jnY)|k1TyfiGWBm4@~e^8rz z5vsy>iY&wasWLujkj$@v9HK;7a!GpDQ>pE=k}ZwB7IMj+B%o0Y0!yqH$Ok7w9uFo4 zCSnkJEAmSzyd;qJ?0ZQTlbLB*Q^x{xw1os&k;G$5l+1lKHZZ+7H~@zza&yW$!_k1+ zUm?qcu*AP8S>ih7%xt2_LPfLbUvfVns&QE{T`B>9#r4{}zO1gg?!{P}{uN1qDcNs- z)eh`P$Xw0*ZGZovT-WfiET4OD=RCOefbM`Qn4ID_J%0QLFX1T}JldSxeOiXQ8+t44 z(e<0&l~6aSFUC9){9r@8`3iGJ-L$vC)r$)l7nun|Jw3&?mrG$n+*{oN|gsI zZ@==x`Yf1szBglk{HQj&fV*?yR3#U!B1!vw`rS(*x6Cw)x!fT(&&tWOM%)7WbTttn zdWlcVU0>IRwW%l;r0Y&@7>ENZL%tDAwr67EDhfd`eK==Qv*#*Tjx^ zp(|iosCjYPAO>W&@cqE9IDU#=9_thLDd@A#pk%{W`u^p!l3|UP?w4-bs{|_d&h&J% zLcHz~o^IO*9gh$<Epg4?$!OR^JkRkmm%;}lqzU3bC~#NtIi zFg9y^wIwH@Y!6>9n6v)mutH;{lbh&g<;;ia!j$LhVuyp2r5nc}#v^dGF)Hk~tvliz zJimN2daHw~`r@hb{hpuM zQ&P1(imR>;rVgSQLL_o#D11Ox0-=I#XyEYy+pFFizysTnPr#N+EH%mrFqEE+r}gD| zR7vjoCA!Y5k-g*g&!}t%^Wu324R3D0!l5LK`-{xeqVhSwi!?&30T?(f5O~S}ZwGQK z0T|i)3d0+^+_KyRFv>xiM{NGt|NPFQQ2wL988{6bUL&e~NQDjIU|t^Y14n_`@Ub zf%>I5z(#R)fz^nygC+Nld+jINYjQZ%a{Z0o2YXOD|x7AaQ@~dX2wx=e=Dr9SV%kvy9 zAg-8C$9>XyMwB^3k{rT#oCER^)Vy(`Rjj+$@o=^FN^a|soBd| zeJSnjK37{jzi7hjsQnB2I}+0!y{hU2>O9)W3vpZ@8KVR>=Jtq>UJg8os2iawkv%@h zBP4y%m(?-gY&+De%LB%F5e=p1nSmfB?1R@|x{F=Qz2xitkx=a~^?W)u!II}ZjaFe5 zdrV^Awk>fsHO<_5#~nA$oCZ}8 z@mL;j&Er8P2Q*pZzq0=W9cg_C+wD`Xs84FD%&U1V7apGRG1kIDFjxAcpebX4&Y=rI z;l7rpBtnb7Io#rk;323^?`V0)=3;KKTozMd&t6Eaj4Yf^F+x#~tdi(bys^B5tjXZ_;yhwU%7xoWo6#h#viYGt?q;Y)ZvzE%%5E7rJgmIa9= zyIsRk!ugU=))!5ZMHAeTHYd?2HpAzenSQAUpzi9yioCT9H49jr9wIFWEnMPv3XT?w zzOtSw1xhN#geyzS(2$E#LXhcYefZ|h3VVVL5?DT%hVs)poiA!7juaYycYM@J$ZCX< zkmuAB7GF4ZvnVF8Z>tbYkb0o0Skfg55sGxAy$3z@l;9ah!G{3$jR2|Q=3BY zQl@{FUv*4^+h>Na25P$4g(40mldr6g*QZCBBNX1V#pF#p?mgar<_T-i&!}56wp3x& zcoZ`xo%u!KgECN@8P#O@>D6ZL`JH)k((blrfT5w(+J^|5(`oDNpOt?PK<<5CH6G5Y zJTg^qI|qLzufib*3*M{j67t6lbqv|8?XMBgX_W8O({RA>ILho`tKzp@YGuOMeAM~F zef?%R>6rn+VG)L&K-QI%1-DZuu2orQa6Z03)dxN8udhf|^|1m_A64%j?;Sptk94q8-|Hio$f^%^~7*Ya%2Bn18AC(-2+zvvlJ=;TZp<`n`wxbr+%Li z|K=|9QN7bYkOK)ZjxjEBZ9^I3^DTHJh-mZ-x}Rl0UreTPlR&v zXNKiBj<906NL@Ly7oFKZs*4!}H36xDNM|EuTXiPocATToz`WP?`DljcX0zT?yqY(U zR8Yy=qlH$cJRX8f44nlv$-w)?g}tlmcQ>v4S7994VpF!TfkO0cwSS=S8%BlGhKJ1m7~#+R25qxIn|gO`0re-IA#Fa1_j6Id49LG`N==Z^yJdleO3 z%ZwfiGF{f~m-K-#NH90teq7vPp8uiitizi61Ajk6KoLZgZlznKyQBrA8&tZx zHedqMF&Y8s?(UQtDK&D0ba$us@crHUJoo-_|J$?A*>lcz&bH5aecpiu9g7J%A(!@f z;7eHgDh)Cdg9_8%rGB>els4W!7&UmSe0k{dM6}xZXR#CE9eTM_>b_5r#=GyhQ^I=N z3Vc6FcHp!6kJ@kcDRuSp_QBg0Gh4cR;u8f^eC%R1HIpVIXwJHg*nMN=*zq?TxresS z=BSAw9$;-#!v3bA72EUuRf@YnSB9ma9%UMU1VuH*!amPpd59(te1=Y0s=t9=h`^`O zD=W{XDG#Xt8*>4*xz&N5t4GauXfIp_Rs>wB&d0fOSXCN3*ghIoM2u?C3qVi8Ip(h8 z*vtJ76nQ>&Xr3GFq)~*JG>hj0_gOzsRtIS@9{Z)PT?sDXGyREXH&c`T%;Fv^^|Hg0 zcr7vE6$VyOJtPgII#TSdr{8R)8qSs64#DMhw)ZhX!;R=ky*k>701vFC8O5$kQ!^xD zW~Q=R1^mK>I2FcdMjveFv4r3mY}T^phxw*w z()D5F z8L)#Ns|31vQ7q(at}K=g6?DD*2TOL>13v5tmD<0e75Qa8GMKY5m!F9Ht5cmmT>isM z51qQ!M;&I%<>*=EygrJ%C=|kWiqX!SoKMFXK-nzbDQnD2g9W_sFddvdRWKej6`gD1 zZn50x(-WVP-H_24CKNJ$DYLh7RY~u@VXQ$CJbfg1SX;0nSOL|tUE^gN(6MEv(?@G1 zGVUZ$cosgX)z+91uo;tiwJSdv#oSV1Lk?_e@G9f=|U zhOxj)LP|hetyEfFp}1*(tkr0WN?Fw^u$tve6E}gc{cupC@h-x))I46NkwrU@Zkm4k z;9aZzG|dtA6m;)Ng68L4xx2~eT(Me4rV@k5Qk zNH^nHc5jHoSN+_VUN_HjyG*z1!$-K<;$fs>EDpVc{L>pf zRXzk2#&kjPbFkc>6c(Gm<>#O$Ym^xRK52&qR{ADqur5R_eUQ}1%cxon{7A;a{L-RW zN^zQYODURDVQyxP3ag;}e6#mGEJGR1D21gXl}zzRGGFL^fkQT{36OEI((>?PYGRRg zTY*G97M1u{TVMKu`effuD@K&qTHkwMAT5dc>HKrm1U@cDX*}x}UEB6E9-&kf&7{)X z!a;>ujauzrpDDO3%=!6G{~IqOZ&l#>2XZIff$g7AX>Xs=NMUAT;xU?GOgdZN`qA!x z!!ZzU@K_1uclC)5FW=l&5>5ZOyCHik93A!c_vvH<6Afz)u}0!|5K1kC_~ZlU!R{7l zhxF3)jzSBRwt{nop*|xD_jiW>b%L%4uc_Wq@9jQ&epTF?UuI#mW$QpLhq@#7#YVLI zwz$B>g;h)(|Eys3+I8(qWTcct6x3YH^e(>cf{^w!l;yzQew9fNKWK6IM;Nzs>~O$f ze-$Tp+_eDTn#AauMKr1mZ7ZFks#kBnpP%KGY6e>)}VfEK}{Yx3n_uV#I7F!u$EKT>XwnNrRhl)>^7Jt<(W+tht zv7AVsIjz@PSU-QZDL;SP!wj(}HxJ)2JNi}k>`B;~a?j?`bcsugvHS4FuEXG2Wt;{m zayo;y=%v&%`aaL=GkG^9RqqL$zJ-aXvIkaDujIo$6VGRBS{S5$i*b6+iZ{=sD6;>GFtlvC}<9~xrPUxp%8o|aoh z^ob;&;>t-2;ySj!8OX+7kXmauI-BaXE>7`dQqc?&PxvRGREU`Qmk4b@ZR^s^+UMQ9 zgB;!)Di=XtdKxoP)8A6(D;gF~0)YFz4(!&^Z3m z`DlSY8yi=UsL1eIn1zgtk1g`-rD!2BP$KJs5jMvIDww>EWipjExy0i8BVq*Z=;xAQ;NdE0G_7 za%bmSzTnK9$PMuk`GEwZG~{s9WkolLd=H=ry@4qOv}7_ZIvcUb6^cP-FcIJ7Vv z*3ibK6jAa71aAv#O$#&6nR=8~Wl_p-&#<-b-*$*BQ&`5rmo_7UM~jp1b6`i2RTwrD zn089-bEJ(gKQIidL|>dmmA;_mlny+uo$dvxK4i!~jS(~Idr153J`@=~R>2_32D4>? z>7bPF{{vwtMqiDk^jm{HS+d7E+0yLfy+z@3vU%VHJ973IUW-0d(Vg?{RlA>N^B$>M zOtGJi{qlOo6Wmligk~TH6+aR^>WsTzL*I^LZ&leO!uzO?baDI5so5^w&P{W5 zH(XPOU5*u>XLTN8mQKl|Nun9oRIHwB5fhQr*Y}aA*R{8QkF-J3y>`S>c)wW+ZHw-W ze6c01EX(^6`DEr-vVFwlN(6#-t)ZPK{7++Em?dS?Xc%j`nxTfEinGdZ6LXQj9BalC z@TC%@2A8lu2swc+Rz6|Tyh$E~aVV>FLld(u)K-|o)lrq1C^=3vHl53|-uNj-&#-p1bv7;beQBxb1>8I9N#8z2h_7qz!pN^&3pf)1DwXL;k znKo_!&N0kfjL($AiB4PdiXkg`M4ZC(yS=LSr_&y?siPktW=*lI(C0)?J%729Qp@=* zd>EUsW1<$eW$CO+#Qtn7`&DjA*8cM(t}lPF?|`iO>!J%iT&T&f^)`rkgR|XiUklP{ z{9v0XfscgWg~QAGgIbr>6RnV3uw-TGKae$&e!k=@Od*2(ZIm^YJ6m)yiY$JQ+-d$N zh<)Zwv*kenZys_6>27OB0v1}p-o5c>tfCHAe2(S4Q{5I%6UTDCPi9SJn7G(FqQ$qCl7Q{rCKQQZ$%=U4pqy^& zMh6nEc?*BUJv*ECAEAM8JMGkRG~nmTN8d7WUc0F4$g&ool_vq-&OZc8-{I+xK&^cZ z_hD%3jo?S%XG19u(zuB#pB^#Sk~J&&QmDip8@TU_J2n zp5+9Darepxr#{pIMfPp`Nc3IP5o$2G+%vh&`@{6Bbk`k3xenKhd;a!wKqUz%JI`@+ z@SnFHh|a)#c7dTMC|~$R4|(rS0B^YK(Azs8juKK*Oui4leU06g2JpE7Y7n%C?-6{i z;XQ&yBLFcP0E}?A;`z-ZU`zlCK2aX2CO|Al0Hz4AJ@1Fd%@1WMeg6;2TzZ6j-+cTY zfall$2Vyn?cR_`ZrvDY7jOQGDCvd^x@ZY%RW#_iHA@UphXZJrxaXbVt| zl(}0BKv0A*c=3L^!0To`4=~jO9Z7n!yK~SE;P>}Y1-b~Hwl6mv1tK@6+s(_}Zq66| zAL?%pk1qGl50(s@f#ZkW9s&`RX{~_Fx&^xWaC=`5Y^dU`Z1{hTNu3Kr#O~5BI?{on zpAp0T^W8;JU>JzX4~1NS&k3g=`{UvFm$&x7Xx2?y!}iA1BNHt-Z(D30g?2zIp8zad z6ux*m6`9sFVW)g2^LRApyU?Ipc&mBoB>14)Tm15%e)_fWVNsOzv?f4J3&6X|=cxCq zkEh7M(r8QcKPX-5Iu-B;Xr)B+fzW{e_^t~taMjuZ5eAnl1KDb!1*=n&p-~;`Ft*yP z2gv#7Z}poRc8purCn~movKEp;9IqNyQ)so6B^#`mHghxmEDJLe%3Qt&Pv(jl&fg1{ zGzJ{9l-Ovav0aU1=2H&2#w@uDp4QGme4DjCe-|6d??e0b*HJW4HygMGbwAteGgz;7 zxW=wW>I|`2JFFK2T37A!$kBB01-W$B9Kv&xBVOwm>rEp+Vj1{{8+`=QzBX&tl*it)qm?4g&87 zO|+QoyV{c-!a<`bLFe@Yd#{ZP9GSz2fXO70-kpe%+IpqqIl(lGi$LaYU#j$^12VhL zALiz3Ua78S8(~h!L`k2~sO&QJpr^c?Aai#gAAyk6By8}j=ol%=<}xTcD^c2irnqde ze?EAZiT1Gc&Q5b-`6r3|hS3|<*iaPzEeGdOXp3Myds6{31X=0S41HV6v#y9fJ4-Gn zUdMTBP1@M}BzQQj*VaOMqpWa9%k`mmVBKtJv#4)OFR>&Bwct-K0aANbSCS^< zzxKykP`294T}i-ZYNargL_dxTk-Ka4q=dr|u!_{ivd)K#AYC~yB6kn25a>V0KO-S9T@^x3GbG+=1 zA>7_;-M5>4p=UE%1%#xI+~Ab%Bh&ia!({7IU{5CCs&EC0fzT*WIS!lf>racF2lDy{ z;8?4RLz9DWJCPW#GCEAw;|6zh8OpG%=uD5(+NiZJd48Ezmf;0NRvc9+1~Rp7Q#R4; zhr+Gzl9EGb-<(xNrOe_3tlKM*c5S`ID8jULp5tB5}_$qIDOE2fgp(v~B53i;4p zS0A`d9ZJsDuWR)+)I7{_i?<4|&2L~sQ<+#ZoJr_-7g)O|#r{1dTse(2B#XxxF#J0i zJ#!_zPX1CrUufo8qF~h)uP`|)!|Y~37?bWJ!@MT`RT*B5j8 zY)i478V%OYL8csr(ld8fA`<()yQQ039FJrvW_V`Y&W1;FYNiy}sw6}Am#c~GmyMjT zz|m=)C&$;oI>|IrS^8<=uz((xZw`q7BneeTT>@klnn2V+5kveIc4TWtJxA>NQdkgE zbyLj?n4@2wR2flvY%Vj238FePVC7T=4D2`BJR@l45CZs5+ujqmKZdBVY3NAAD9%Es zGP_Qd!ws;WwHo8%yVno{E;%8_l>guA!6{h5HC2qcFBNd?VJY=JjleIxn=!3W?cAES^quwdq; zfbtcNChQ;R`O;G_pMwTb@tU6Qe$x|tR|9-Gl`NS5L%F-`fh)ZdH)r364_f)C! z9boagC{a3KiReCdUa@qBu?MV$1;V!DL=Z}T;eUGSBggZQ@dSIMW)rYQ35&^Q?qG-9 zM9@bm`Cbtc+}wL3UMpq8^ZQL0rGyJn&$2ZC!20% z?2O(+E9ffsfVOK$8TFn^cyexxDSo2eok+!Aj@5|f2krhji*lpVKhXUE_&N$|uYGFQ zF{?*5`U=W~J9>>!<@BOIY!d6!fpmRE#L=GTr4{Wp_**<*6&S?FhD3V*s5g5)#3RtM zDthiJ5Z#FWhP7UBOP_80{66Es10zUdGkl|+%uZ^T5yfJqsVHSg%hu#i{=2S1yD;=@IqV81jfs~noo~= zzA)}P%>G%@FWd&qrC=19eV?Sf8ytawgfyi;y8}8Q7CVA3jJrNlo0^TW?ez4p zMJT)rJnoZic=uNyLfzoNYJxEepxoR6>hS(wg(I4^Crg%Ue?<(vBC~UKRQ<7$$f?M9 zdh-Nh%45~OLq<@|GA&xfcl!IF2D|${Y|Q#_`|{wG`F5_+ zh4=zg5BVE(Xk7>Y#94wbm#HOy-m zt`y{yS%t;n4!_HOJ%EC-V6Xe;X|$m4yRxkIV4Smd!bD81oD}UQ-eSk6Bx|8x ziy9~tyZ?rgAdK@Psz0B{>&V9{(+E^?Kb7PRF~oLif#JqWlq4%?zX!c1tZ(RoMDo!x zFp;!8_FFt= zp_ny1)1uZ`(8KR1FmtDuli!g;R|?HmE;SV2p?lz#ApI^9kTUyA6(>KQbb=h!{%^AN zAfxL;iK>ZLfehtHKGWDcPp%i%5xA&0V(g|^a{oZ8fRjy`B+!n(Tso1JAw<92;=w>h z$|T?$192&{ytsf4dhWQ~U9_EWV?p9mFRHUne2X>aZrF*-cMci#UUY+(wWmtCWm|h1h*QehrOsjnqZOM1+2Si+A)qQ7SB*nLU`oMy9}l z|00Xg{};udXail`OpM=#*&7ARxmNfAHp2>}LnxbiH)Wl`-OeSrD?vh(&b#$mpN>uC8FL;VN`NDw=_ zjEdVY*VfTRq#IUs$`8Ll$JDg=$#KJ|gYQpyL~to%V6naP>^{4g`O2mWMK!OzTG*)m zL}5VPEb)Ju3nj-;Xu$!e8jXs6Z<5t#%P(Rl%kZLK5Bm4aGbzf|kTBtvTQ-)V zTX(mMr#dgokRCfi_Ik$khI(~77u+AOLj~jsOTb=DuIGxHBB4ptk;zG){OCMW)JqSP z_G=Yu_CMQRSd+JuP-6qV;$d9M^4231)Fpq`{P7kSB^!J5e?z`5GpVzyFqdTj2CyRP(ZNL3n>SuDNt}UjM3Z6b)lVe!82o!l4%& zLQ@+TFh&)_RT#Oeg%{mADIXMR@h9n>fZW8nA&c$az~bUeU5IT$`ZmUO({mYDcXr>b z3!C<1iZbJ6be!jU0gDZLc^~|F1BTsvyv&?_o~N-1>@W?G)D+|u_bMx^ zR&om!e0`RKe~InvZQEGkK@-n2{6hduNL&mWnAR{k<#cP;kHeNSixE1^B`^2K>xlq& zYS^)H-c2G#LshD40|dv+hOBLS=1TrgK*s@o+0JrHHR-LLWWAHeo~Bh=J#GCK|D`1_6#`#^0--yVIgNgIVlJn`d)*SuUuayrL|{KHwrG{3O;9D}L?f8l)$LDTnqGpu6YyK{UH(Zvk>h;ihfzWcp1?S zA5N-m<}AESqxLdB797FRLZ-&A=*}_Z-ZB=tqmIc4EV9GrX2F;QtTASA0P7g*8 zmv|Iz7gUlK^9#G$x*2||Td{Fg?}>_$m{1@#`O;@gjkLXW=W^iwmGT7dg_@_V=#Oh_arx^t z<4nbDU3;E(J+mkM@_pIg!BO&1vC+?F5ye~?m;&lNPo@|dsphryU$fqOUfMRA;Jkqa zwh|8CSp7ZTVoVndHbl%fJpXW&Gr}`8=lSftlZizvr$&Ts#2j6pco-+b2Zn|; zgp=tto6AgXz;Nrj41ICkSY4p}Zh+riDDZN&EF}|rEFs^maem5?k~X4bMIVNtObO3q zt`BIG;w66FINQ#9yIU+2%kIRsS-d@B?k0*FPy8YW852!pXo*Vi~wXyUF=gMqTb z!IEVu-vW4!?ios%h*+})7_t!_SoLadYCxc=3kyLe#w#{q>tdp zoTP?UfY>L_`6v$1jzj^7yFFo{8rXKmQthP zn>C21F_m_cn4%c8JD>?${o@;^^kAEnRSF1LbqoVdB=OpkrCb*O8IVg4yr{XrE(q3z+`D>g&#}r7=vk#wFjH0-TYE!jYEvK0O@vJ;7C|?AVH%hBRrSYbVR=2rfOHNuzan zN{(wXtv~T(;DI;0&JQy{1^My8f^|t~`zRp4ynS@xm-ynW-CpXUr z5{#*S0ACtj8n#YrK6XA$*Wal<0&RSZ7*XIb%3a}#asQ(C6)J{j-%rQ0xUt(d`a|aqXcCZ)F~sWlAnCFl zb;kTm;#2si1=k9zrjcB;U6wL?#)w=bB#2b5fs+dz9G*ku+UfQnAwM8s5-FeD;-})X z_bk+elj&*oEAO9k?GZze)*+{+LiMA#2yWd1x-=INZxrDU976gNE(fWCfVdsHoZYxe ze9A6ewe?AT^C}JUYa}TIHT3sLeG?KNmRJr>EVr^+4{gS&+bOC7TXAy#iQZk9CI5}O zR=wxR%^muDR0Ypdq@7^LvNtI(8K+iEbg&?j!6%vjQ(ojB$H{G}DaFXGw9M`eCMvIU zLPHyU4Ts$D8qPHiZQjr-*>e`#6;ER}ZZuv;AHEC1gsqT2UN;RW^`mZ1Cgfy)R>(Hgk8jo3NKh~VrNNcNx7L7?$#pEBj zq6vjjcs8E=%yw0hY$2RtMP zdhm%EBI!28cr#Vd-$?J&{bP%{Y-lWWvTIZt2>B1(#9cmbKRw#UndT~qRpgSzNl3Sy zjCqFnu6XW>U*k7nP9qSL;ce4G~tNGp~Q3_%mi+ zu=(0Yk12|pVURYOB^`fiQw(M9EbF~bd)RG=_f+o!kSTUL2VE^4rC$gF#GR9cCpUlt zAyQ$SzJ_C9smIIch{ogt+dx-htp%uRbnUcV*BFWjy&MkjP~f&g#H**enuI4aQ`{hrXVufno{4FnBPU91&>ES)0TaHz>AMhUP(4kU^sg^xBcUeTl-N+VTJ;Cl zocjLWUb)Cfy>krB(wAXL`L}oNU&c$s{6J=9hV0uKMwyd`9Ie5WC%E&#d?v0JI63rc zl+2TjM%E0_71yPEy}GT)JGNqC@5<9O%DSmD?>DlQuOw+Dzh2gd&_P}Vx-xCdNff0( z(s_8shV{_+lJxG#L9M45$VM+7-SS(Pa&_VpU0gyRx6WdH^8G{yKIYqDvR~S07}MwV zBI~wYtD0n7`Bwt)7pm=2pa+y z0=vE70)O$eRhxh1-6NWe_pW|Hf4;GFRR_58V!&m|*hUZuyeCWU3c2<-DSr|O+bPqX z@RI7jan1oNt5ds#7n>9A^@GLCT+nkzu%NKiF48Vp9XION4vrJ6P@0%+*XuPLhahg8 zODo{wm4dFex~R=M8O7OQd(89Smn;~#cMeIb;)Jv_IG;6u@BH8mm3a0SqupaY;e|P! zaGmJF7*&v8oKFO`4rHq}1X#{xAQxPS^}I3$f;-_$s)Z0tUYs2Jqk47zle`$+@~D(W zObeQ{+@kj!($P=$y8jl)(oHXa2PT&y8^couTA0x6DYl+hw&O!rcLWDSv7%b+r#|_l?1Qkl z(ZIw*8CSbkq~cQ8_}0ITUbc^GN)#={$Um?S(R*3_5nW#p?VpyqubLpFbrSdo8qAl1 zl2iODW8-Fot`H@NU5slTe*LC*%Y$IEhd>li?qy-f2h`F0pK;_V?o@79_Kzi5KcMLg z3eA^6o@U1owKr-h^Vhb~H4Kh=U`+Pr;y&gYZohQ2zv=4nY1%p3fa7U#PFz*)lJ8_8 zS$VM8bTH~E(}-G!dqv@LWaHo;!gc%28oy_2Y1;VcdE@E`(+^DW08SX2FI&x3x<>Cz?%0d;<=oB zw5PrV0WA+CCBUvRYt^9<0x`YYFNChS*2s0{USpimL%(@DY<9_6q z^zL>u{C+ZzBQkLRfoz?u+c%9aMC9^!hYyUA72VMv6yDAF>F5MEeuccyp2vk=rkkEG zk9K}(qmHML%+Z4jYAO~G;Bud3-ajw&^CL=mEyJ^Rt4s9k=QKI$94>A5517a=W{em< z%g+H-E!9>6tqeV*Po(xsphmVm^icV{A3|>h%oKIW6*z2P&r0~|N)YV`IiR-REFy4# zyY0lRKnjv3-*qMb@k4U;s`{K=raL`^xN<&EYimf2b>Q23itHri0A~l8V~R9VI%Wo4 z;*XZXN{TO13Do@<@bPMUhQP7D(BsRDG!hbuAYh8Ut@Fb4w(Y#IPh zF5uwpk_nV4r;`+1Oww{TB*-z#U&Eu`YDD~^dZ}2mxaQk`Nd@uvaX>Qx`)uAa4x5+T zofL;Tuf9^&4w%wLFU(YBBe96{y+%XeKAawEpDs^0MZJrQj-bCIH{?B$ixmOn3GR5L zq7EvyrL$VosVzw7x5=I4UG*z{Wk|T#O9*Bo%g4zpc;+d3B>zfu&NzPD$=gE+Vz4ja z(@I@fgQUvC{26gmTXj{COW>vh#57?Xc* zHths^)KRh|@xs}X^jOrdm5~T7_x_Z|jTZ(;i}~!fIiwDv8$*VPi^ZR>JdNo+C|6;m zYq&Xb4oX>1pj&zoDdTCs_%L#Te!E1xVS{W+4zlzL7lyRk+ zkSpdNB~VSuae>T*Uy<*p4Xs1ctE^Lf_NLt^PB~=s@FiEhT$8*?&>J)Iliyo?IVl-S z)zviB6hPoplahXO8$?wVl^HzQ{pCL0xjbd8NVl{;asM&bGJ-dO(d>t;kOYK-4b+V0 zEyii2jDRYeX`X9fdYrxf!Qp}Fa4b4Fx#7h#JBw-cYKX8iBFKr3bOn* z+0|Sbx~-^Ge8vu+NOzciFNb!>IiK^BBQJfHYL}ytLgyiDM+@_#^+~}GfYiVDDqOg> zF_iqa`gOthjY9gh&aspQP#2#&nc=KiTBWO}O0>=P(v%OWxZ?KH5c) zyMz$(YpmtdXo)+1u1AjD?yWY;^+ci3>{POdI}&%^Tk=H@ejn=A2K58CwkWRPNo|6+Ns~zf1?$RZt21U-&v1epjYkuPl3;<86XSNe@}BzH z2)vlPpJzdu*3^d5yl+Flv-WK)_L&m=ky4hKI+e4_#kI=MH8<+mZK;gA3A4!U50bX_ z&5Bsj6wfhApe$IL$&Y@g38XtH2T4NxvncGqP7Al51jedkg7Ke>F48 z{Rcwc#!O-oqwph^)_3S9R`7Db-!t?3u+BdVk3PJW)+hiDX5T}m??ZfJy2M??F~xE436xLloI_K z6`8^AX1;!#<~p}uUP^A4>r1lWd-ch2$N01}EnEiPHa2|jZqRuPn8KA+DyvBA!6sRI z2er9C*)0Q;)ur^Owcb6X4ek6)@b*rYo7E(~%R1ZM)-#I5_SPF#H~AmGml*&VuC!1k zUbU^;27!)3d(!wul_Rc6{Tz{Zs{q*|@Nhlk-Inja<|eo%VIP4VYTi(W2r%t~vIZAS;5_p+$UD-w4d! zCrQG&?!6sP?ty3B-4YykuTfff9vmknIDJCE4$Dm*A@HfZnCiI}5 zyxG3JA;r0pWgU4DyBV2U2xNqR4b@r9lZ|4D?F%Cv>bkWF*?Rg9Q~?MY=4L0nAYgE%sH#d$V>JQmmv)n`06ZtT9Wcpo2oq-k zElXW3Cw={ykr`jz8pVre2$4pf*PIKbS-0Nnq}wKSff}%`44ow3%%V$6^q*XOTXJnD zhL?kvnhEu6Li|#a*68WhmKpb{bWY@jb?Ie<9$n?X4qAH?J z^CDesC%o~V7j;bz$4S18XCE?n=apN6>V1%Q$0wKE-Y(NM5sQ2oAHKif7-VLB&*0eY z;$8)DZ#jG=)GYD)EogEmJ+EdpLp3)j-JO!{M`~?qw>_CnlD=9$o8YiUl=pg>Z$*4-y=i@9Hf>|)*)(f5lys(U75kaV*hj-6}my9F;?~{qXKWKQ225Nrx&*f2b#iz;tDEg?u@s^P9a_@2>a(C_l{7^f48oq*Rg(?POXXZm2 zH!I~rT?|sR%H|iA)1Nrd{5?cg>u&5`W8Kcy|C|y;v!he21Y*Qnj!ugtQ{Tpt!?Vuf zJJ$h$o($>A*bfTDaIkpNr0*WG&xU9myY|)g@WBSB3tnr6`dMZfzg<>By-PK(q(R<8 z!Np|Nua`uGE&SeloJSkq_$c4P0VS$yS@n;H{QLUNd+2{?l@<8Qa<;z^c|@`H9gnaT ztb8WA|HxMR=mBj-$z#dX;A5qPLGld|;PnSe zn9oit7!a%iDP@m4ff_-`06q%zD%Qn6u(eK`=wc9SAS=h}aUih@SrXtdgJ|(A6nl zmTw<^;K%ZO+R{!NzLj$7KW7R^3@{%{VsrAL6>E%K(4@v%zrxF|2Hfa?;psQ za;5#hz61?w zwlrEL_bA95F&y{FA%&J6q*~yJG%>VK0Fq(nLj%3C8ss*Rj)1;-Z~b`UO6hNKE(ig@ zdjpvfkQLUkE>MH%0wH|-tg96_BkR09Wm9`Cikg4tQpKmd3+G1ax4*`e>9;u>+op94 z*n%y#jCG_Gtq)K^x#p7O!jdd|GQl6xXC!EX?0(>cT0)Zyb12jmg4RU9&k!QCY2x{D zt!k8#Zs^L5m-!l(1mFaJ@|1lWx8tS8IejOO0*l>CEe(5?Qblr(sGZ1I5~~_!S#f5H zI;zSGv3`ann%Wm}(TVqK6D7e*FQoQNc(%Fx5;S`%H?T||3{drotHEZ%znhts_pwuG zg*Ep&Oe~pMmh<+`iaT3JbmRK<@A`7^hbpI~~mg0Vy?F7iW;8~$#_ zCS~(V6(FHlb#5{>!!Ai?+#6VB>-;}Z*44rLtOqL@mHo+XR(J4@2tRSqhEP*I`Ms}X z{Y3;fv&w2R3?mRWtQsRPq%1r1`}O;0F(#NTDGR0d-hQd@@Q$;G(G27#cmR0XeM1xe zseWKbo}@P`FQ>5M+z>ynRQahyEUku!i2N$EXe9Rg%5VDLlkI%cdU;-UStlzP1&6w1 zu!i5ZMwD$nthQ9PbVHxnpQ28dyZoWFRdqE}v-)ez(`qJZA-Ooo&E-LoOqS8J>`v`E zEHWFTJLJ<4*7T+548CS=gxi)X@i*mT>yL%GrD=_xZkN^0(yohZ7r{#m$2t4!p^=IR zL3t@MYk8kn)?FLmVxRaO#pSkJYHQbnjy_u}@}<-{WVW+-;|CX)6Q0GM{UW2)q+e+t zNan~&@eNnQY$qn~lhU3Wb7!Ijbd@BzJ0);xSBmCMlR&?T2t?%8210zk#Tbi46Wn!` z;~*z1>?3`LToQXCSKxNo!wtNOb`QGu$CAl^mK})5l1H_cw<=u13?k-!&KtfXG6_O0 zr0k3ts6wafU89CL&@7Y^i)Bhvj^uh}J0-fC`U+@F1Lron(VZru%5Cj6qS+ULB%q>! z$_Bf(y+r%?q&sV7rhdJxt@qaHAE-$dc4i9XMn;UGuj7RL`M~XXZu}r5Ku||CCN7yF z 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 O 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

      y%j;s%M3!Z_BipEg+_K9ca>BYt;T~D@>L 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 z Vo%@UXuGoC`(xtB6f#;_=>PcY7V{hgjC#u3EE?#IN8eAlZtlZky9@v*?O+l7G z$?^^UZk)5`2YF00#zg-BI)9&}T~~8vcaBOY%@I#YT}ewzQ%Jg+k}9fr=7B2Jh_n*S zBwwY}U;S@;XyJ+njax|-KR%DGC%&I@vNt-unTT2nX~FZ)oq97nKN@4j<8Kgx3E_1p zwpDoAJuT=1MVW1TgMZEa#&?&RZr-!K0mUoFtgPDhi%;F~0k^6%0a_?5%0@|`J)A4& z!=R6}Ha^p&rGm07Rx=S;m63RAX(5JI9g`1kl$YkbclAeL8mOs!YW`>&H)n+tro25X!ZcpyRRP zB|1VhvLnx^xVX}UkUfTZfo+7Rcew91otfpjj|nR%NXObA zOH=)?R;SmwJ>N}_uQ}=(YTC(V)r^LT)(RS0Xwa+_Pf+)oQ0?kxwxOtvAlQ40w`jJT zsVpS7n24cT5Z@8c%A@)9lN%(w&1i4p+@Q9SStbrNe`dXkv;+*CXXnt(i;J-H@H)O* z8MSFDBha+?nj?|PQ^4@}{#4aL=Q$#8zw2c{548WBno7LUBZ&TeyLU@G|jpk5MxL1i4 zAJ3@HU9qkqn&95t-%4!3Q;@MBWhGv;6s=w&l!ix(X^h3^kRzYacZ*%Gcy7XbhO@3Ys{~ zlGHponVv=g%xH!%NHzkKS=~WAkl0-PEx1rv3g_&>%`^6N#FzUo?(2!$WSZtwZw+P& z%%pgwxS!~neZMZ3`z8zqL3gk4O!Yo>>M#a_FHhlQj|)SOIeNOxehw;Xn4rbwDy5P* znXKkGl~e)l9_L6_&wJSsm8Ow*1aqVKNR06`72{m_^salmoz_?+TTiEqpg`TAe5wJj zn65f0S;x!fqlX8wcLwF_w8U3#T5s}cy7PF{RT$&P&$r;9hcQEklNnW5YN|f;NL{0N z)omk6vI%uBxqc;9p3&Z7fEL#30rVg+T8}eAPp?vT&B=V)XL?*gC8Y7G5~7xMiOL;X7QL_RxKBgaNEyJKEIB)#NvU5vqMB86VE!vuqRDcT9YAU_i zzy~?>=tAvn$=2N)xbc{7>)ppOk*UMJUW+#l&&rHGGAy)H(Tb=tw2;=x6t1$fPO!=3 zR#MCYkflYHq&Du-#^f)dJHPJb=(s$!lCwq#b9+ zUb1bSxa*+6Wi$BN$S8BvIjy@{R39a-o@#+QHb$;S!OK$}I$lVrS~>Y)>L=M&=XGOi zaxPoN60zY!PNWV{_a~n3V|z<&(#*sdAZddr8hBSqS2XAZ-+fa@mD~FdVfBW0dTs5~ zzq>0BimJwM6q7N5#o?vL=V~&0f@*pyNUOIZ;$Wa^c-Ai+>Z&8wKtc(g-!|1t>#34) z3L>+3bOo!zfRJ(LT70?^-t+H0?JXtO?)wQMW@_qs)YR%AEnbA=R19>j>;9?VKOFZB zWJd{Czv(x`iAB7y`wuOK+8H|f+&n%Fqqy+9S94~m@eN8a?KCyZJyfmtFmSk(zy(}{w{YMQ> zBCcMA??FjhRg$I0gAi zF6#qOQ%Z&UqKQcN3ZTzFWZfwz5cy43M4L}e)@JRiGJq_O;H@4XB9r+H-&+L8G zf}`DidA%zrW~|(p3AWbg!(�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

      ' + val.title + '
      \n'; + leftMenuHtml += '
        \n'; + var menuList = val.child; + $.each(menuList, function (index, menu) { + leftMenuHtml += '
      • \n'; + if (menu.child != undefined && menu.child != []) { + leftMenuHtml += ' ' + menu.title + ' '; + var buildChildHtml = function (html, child, menuParameId) { + html += '
        \n'; + $.each(child, function (childIndex, childMenu) { + html += '
        \n'; + if (childMenu.child != undefined && childMenu.child != []) { + html += ' ' + childMenu.title + ''; + html = buildChildHtml(html, childMenu.child, menuParameId); + } else { + html += ' ' + childMenu.title + '\n'; + menuParameId++; + window.menuParameId = menuParameId; + } + html += '
        \n'; + }); + html += '
        \n'; + return html; + }; + leftMenuHtml = buildChildHtml(leftMenuHtml, menu.child, menuParameId); + } else { + leftMenuHtml += ' ' + menu.title + '\n'; + menuParameId++; + } + leftMenuHtml += '
      • \n'; + }); + leftMenuHtml += '
      \n'; + headerMenuCheckDefault = ''; + leftMenuCheckDefault = 'layui-hide'; + }); + $('.layui-header-pc-menu').html(headerMenuHtml); //电脑 + $('.layui-header-mini-menu').html(headerMobileMenuHtml); //手机 + $('.layui-left-menu').html(leftMenuHtml); + element.init(); + }; + + /** + * 初始化选项卡 + */ + this.initTab = function () { + var locationHref = window.location.href; + var urlArr = locationHref.split("#"); + if (urlArr.length >= 2) { + var href = urlArr.pop(); + + // 判断链接是否有效 + var checkUrl = layuimini.checkUrl(href); + if (checkUrl != true) { + return layuimini.msg_error(checkUrl); + } + + // 判断tab是否存在 + var checkTab = layuimini.checkTab(href); + if (!checkTab) { + var title = href, + tabId = href; + $("[data-tab]").each(function () { + var checkHref = $(this).attr("data-tab"); + + // 判断是否带参数了 + if (layuimini.config('urlSuffixDefault')) { + if (href.indexOf("mpi=") > -1) { + var menuParameId = $(this).attr('data-tab-mpi'); + if (checkHref.indexOf("?") > -1) { + checkHref = checkHref + '&mpi=' + menuParameId; + } else { + checkHref = checkHref + '?mpi=' + menuParameId; + } + } + } + + if (checkHref == tabId) { + title = $(this).html(); + title = title.replace('style="display: none;"', ''); + + // 自动展开菜单栏 + var addMenuClass = function ($element, type) { + if (type == 1) { + $element.addClass('layui-this'); + if ($element.attr('class') != 'layui-nav-item layui-this') { + addMenuClass($element.parent().parent(), 2); + } else { + var moduleId = $element.parent().attr('id'); + $(".layui-header-menu li").attr('class', 'layui-nav-item'); + $("#" + moduleId + "HeaderId").addClass("layui-this"); + $(".layui-left-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); + $("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); + } + } else { + $element.addClass('layui-nav-itemed'); + if ($element.attr('class') != 'layui-nav-item layui-nav-itemed') { + addMenuClass($element.parent().parent(), 2); + } else { + var moduleId = $element.parent().attr('id'); + $(".layui-header-menu li").attr('class', 'layui-nav-item'); + $("#" + moduleId + "HeaderId").addClass("layui-this"); + $(".layui-left-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); + $("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); + } + } + }; + addMenuClass($(this).parent(), 1); + } + }); + var layuiminiHomeTab = $('#layuiminiHomeTab').attr('lay-id'), + layuiminiHomeHref = sessionStorage.getItem('layuiminiHomeHref'); + + // 非菜单打开的tab窗口 + if (href == title) { + var layuiminiTabInfo = JSON.parse(sessionStorage.getItem("layuiminiTabInfo")); + if (layuiminiTabInfo != null) { + var check = layuiminiTabInfo[tabId]; + if (check != undefined || check != null) { + title = check['title']; + } + } + } + + if (layuiminiHomeTab != href && layuiminiHomeHref != href) { + layuimini.addTab(tabId, href, title, true); + layuimini.changeTab(tabId); + } + } + } + if (layuimini.config('urlHashLocation')) { + layuimini.hashTab(); + } + }; + + /** + * 配色方案配置项(默认选中第一个方案) + * @param bgcolorId + */ + this.bgColorConfig = function (bgcolorId) { + var bgColorConfig = [ + { + headerRight: '#1aa094', + headerRightThis: '#197971', + headerLogo: '#243346', + menuLeft: '#2f4056', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + }, + { + headerRight: '#23262e', + headerRightThis: '#0c0c0c', + headerLogo: '#0c0c0c', + menuLeft: '#23262e', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + }, + { + headerRight: '#ffa4d1', + headerRightThis: '#bf7b9d', + headerLogo: '#e694bd', + menuLeft: '#1f1f1f', + menuLeftThis: '#ffa4d1', + menuLeftHover: '#1f1f1f', + }, + { + headerRight: '#1aa094', + headerRightThis: '#197971', + headerLogo: '#0c0c0c', + menuLeft: '#23262e', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + }, + { + headerRight: '#1e9fff', + headerRightThis: '#0069b7', + headerLogo: '#0c0c0c', + menuLeft: '#1f1f1f', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + }, + + { + headerRight: '#ffb800', + headerRightThis: '#d09600', + headerLogo: '#243346', + menuLeft: '#2f4056', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + }, + { + headerRight: '#e82121', + headerRightThis: '#ae1919', + headerLogo: '#0c0c0c', + menuLeft: '#1f1f1f', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + }, + { + headerRight: '#963885', + headerRightThis: '#772c6a', + headerLogo: '#243346', + menuLeft: '#2f4056', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + }, + { + headerRight: '#1e9fff', + headerRightThis: '#0069b7', + headerLogo: '#0069b7', + menuLeft: '#1f1f1f', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + }, + { + headerRight: '#ffb800', + headerRightThis: '#d09600', + headerLogo: '#d09600', + menuLeft: '#2f4056', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + }, + { + headerRight: '#e82121', + headerRightThis: '#ae1919', + headerLogo: '#d91f1f', + menuLeft: '#1f1f1f', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + }, + { + headerRight: '#963885', + headerRightThis: '#772c6a', + headerLogo: '#772c6a', + menuLeft: '#2f4056', + menuLeftThis: '#1aa094', + menuLeftHover: '#3b3f4b', + } + ]; + + if (bgcolorId == undefined) { + return bgColorConfig; + } else { + return bgColorConfig[bgcolorId]; + } + }; + + /** + * 构建背景颜色选择 + * @returns {string} + */ + this.buildBgColorHtml = function () { + var html = ''; + var bgcolorId = sessionStorage.getItem('layuiminiBgcolorId'); + if (bgcolorId == null || bgcolorId == undefined || bgcolorId == '') { + bgcolorId = 0; + } + var bgColorConfig = layuimini.bgColorConfig(); + $.each(bgColorConfig, function (key, val) { + if (key == bgcolorId) { + html += '
    1. \n'; + } else { + html += '
    2. \n'; + } + html += '\n' + + '
      \n' + + '
      \n' + + '
      \n' + + '
    3. '; + }); + return html; + }; + + /** + * 判断窗口是否已打开 + * @param tabId + **/ + this.checkTab = function (tabId, isIframe) { + // 判断选项卡上是否有 + var checkTab = false; + if (isIframe == undefined || isIframe == false) { + $(".layui-tab-title li").each(function () { + checkTabId = $(this).attr('lay-id'); + if (checkTabId != null && checkTabId == tabId) { + checkTab = true; + } + }); + } else { + parent.layui.$(".layui-tab-title li").each(function () { + checkTabId = $(this).attr('lay-id'); + if (checkTabId != null && checkTabId == tabId) { + checkTab = true; + } + }); + } + if (checkTab == false) { + return false; + } + + // 判断sessionStorage是否有 + var layuiminiTabInfo = JSON.parse(sessionStorage.getItem("layuiminiTabInfo")); + if (layuiminiTabInfo == null) { + layuiminiTabInfo = {}; + } + var check = layuiminiTabInfo[tabId]; + if (check == undefined || check == null) { + return false; + } + return true; + }; + + /** + * 打开新窗口 + * @param tabId + * @param href + * @param title + */ + this.addTab = function (tabId, href, title, addSession) { + if (addSession == undefined || addSession == true) { + var layuiminiTabInfo = JSON.parse(sessionStorage.getItem("layuiminiTabInfo")); + if (layuiminiTabInfo == null) { + layuiminiTabInfo = {}; + } + layuiminiTabInfo[tabId] = {href: href, title: title} + sessionStorage.setItem("layuiminiTabInfo", JSON.stringify(layuiminiTabInfo)); + } + element.tabAdd('layuiminiTab', { + title: title + '' //用于演示 + , content: '' + , id: tabId + }); + }; + + /** + * 删除窗口 + * @param tabId + */ + this.delTab = function (tabId) { + var layuiminiTabInfo = JSON.parse(sessionStorage.getItem("layuiminiTabInfo")); + if (layuiminiTabInfo != null) { + delete layuiminiTabInfo[tabId]; + sessionStorage.setItem("layuiminiTabInfo", JSON.stringify(layuiminiTabInfo)) + } + element.tabDelete('layuiminiTab', tabId); + }; + + /** + * 切换选项卡 + **/ + this.changeTab = function (tabId) { + element.tabChange('layuiminiTab', tabId); + }; + + /** + * Hash地址的定位 + */ + this.hashTab = function () { + var layId = location.hash.replace(/^#/, ''); + element.tabChange('layuiminiTab', layId); + element.on('tab(layuiminiTab)', function (elem) { + location.hash = $(this).attr('lay-id'); + }); + }; + + /** + * 判断是否为手机 + */ + this.checkMobile = function () { + var ua = navigator.userAgent.toLocaleLowerCase(); + var pf = navigator.platform.toLocaleLowerCase(); + var isAndroid = (/android/i).test(ua) || ((/iPhone|iPod|iPad/i).test(ua) && (/linux/i).test(pf)) + || (/ucweb.*linux/i.test(ua)); + var isIOS = (/iPhone|iPod|iPad/i).test(ua) && !isAndroid; + var isWinPhone = (/Windows Phone|ZuneWP7/i).test(ua); + var clientWidth = document.documentElement.clientWidth; + if (!isAndroid && !isIOS && !isWinPhone && clientWidth > 768) { + return false; + } else { + return true; + } + }; + + /** + * 判断链接是否有效 + * @param url + * @returns {boolean} + */ + this.checkUrl = function (url) { + var msg = true; + $.ajax({ + url: url, + type: 'get', + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + async: false, + error: function (xhr, textstatus, thrown) { + msg = 'Status:' + xhr.status + ',' + xhr.statusText + ',请稍后再试!'; + } + }); + return msg; + }; + + /** + * 成功 + * @param title + * @returns {*} + */ + this.msg_success = function (title) { + return layer.msg(title, {icon: 1, shade: this.shade, scrollbar: false, time: 2000, shadeClose: true}); + }; + + /** + * 失败 + * @param title + * @returns {*} + */ + this.msg_error = function (title) { + return layer.msg(title, {icon: 2, shade: this.shade, scrollbar: false, time: 3000, shadeClose: true}); + }; + + /** + * 选项卡滚动 + */ + this.tabRoll = function () { + $(window).on("resize", function (event) { + var topTabsBox = $("#top_tabs_box"), + topTabsBoxWidth = $("#top_tabs_box").width(), + topTabs = $("#top_tabs"), + topTabsWidth = $("#top_tabs").width(), + tabLi = topTabs.find("li.layui-this"), + top_tabs = document.getElementById("top_tabs"), + event = event || window.event; + + if (topTabsWidth > topTabsBoxWidth) { + if (tabLi.position().left > topTabsBoxWidth || tabLi.position().left + topTabsBoxWidth > topTabsWidth) { + topTabs.css("left", topTabsBoxWidth - topTabsWidth); + } else { + topTabs.css("left", -tabLi.position().left); + } + //拖动效果 + var flag = false; + var cur = { + x: 0, + y: 0 + } + var nx, dx, x; + + function down(event) { + flag = true; + var touch; + if (event.touches) { + touch = event.touches[0]; + } else { + touch = event; + } + cur.x = touch.clientX; + dx = top_tabs.offsetLeft; + } + + function move(event) { + var self = this; + if (flag) { + window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty(); + var touch; + if (event.touches) { + touch = event.touches[0]; + } else { + touch = event; + } + nx = touch.clientX - cur.x; + x = dx + nx; + if (x > 0) { + x = 0; + } else { + if (x < topTabsBoxWidth - topTabsWidth) { + x = topTabsBoxWidth - topTabsWidth; + } else { + x = dx + nx; + } + } + top_tabs.style.left = x + "px"; + //阻止页面的滑动默认事件 + document.addEventListener("touchmove", function () { + event.preventDefault(); + }, false); + } + } + + //鼠标释放时候的函数 + function end() { + flag = false; + } + + //pc端拖动效果 + topTabs.on("mousedown", down); + topTabs.on("mousemove", move); + $(document).on("mouseup", end); + //移动端拖动效果 + topTabs.on("touchstart", down); + topTabs.on("touchmove", move); + topTabs.on("touchend", end); + } else { + //移除pc端拖动效果 + topTabs.off("mousedown", down); + topTabs.off("mousemove", move); + topTabs.off("mouseup", end); + //移除移动端拖动效果 + topTabs.off("touchstart", down); + topTabs.off("touchmove", move); + topTabs.off("touchend", end); + topTabs.removeAttr("style"); + return false; + } + }).resize(); + }; + + + }; + + /** + * 关闭选项卡 + **/ + $('body').on('click', '[data-tab-close]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + $parent = $(this).parent(); + tabId = $parent.attr('lay-id'); + if (tabId != undefined || tabId != null) { + layuimini.delTab(tabId); + } + layuimini.tabRoll(); + layer.close(loading); + }); + + /** + * 打开新窗口 + */ + $('body').on('click', '[data-tab]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var tabId = $(this).attr('data-tab'), + href = $(this).attr('data-tab'), + title = $(this).html(), + target = $(this).attr('target'); + if (target == '_blank') { + layer.close(loading); + window.open(href, "_blank"); + return false; + } + title = title.replace('style="display: none;"', ''); + + // 拼接参数 + if (layuimini.config('urlSuffixDefault')) { + var menuParameId = $(this).attr('data-tab-mpi'); + if (href.indexOf("?") > -1) { + href = href + '&mpi=' + menuParameId; + tabId = href; + } else { + href = href + '?mpi=' + menuParameId; + tabId = href; + } + } + + // 判断链接是否有效 + var checkUrl = layuimini.checkUrl(href); + if (checkUrl != true) { + return layuimini.msg_error(checkUrl); + } + + if (tabId == null || tabId == undefined) { + tabId = new Date().getTime(); + } + // 判断该窗口是否已经打开过 + var checkTab = layuimini.checkTab(tabId); + if (!checkTab) { + layuimini.addTab(tabId, href, title, true); + } + element.tabChange('layuiminiTab', tabId); + layuimini.initDevice(); + layuimini.tabRoll(); + layer.close(loading); + }); + + /** + * 在iframe子菜单上打开新窗口 + */ + $('body').on('click', '[data-iframe-tab]', function () { + var loading = parent.layer.load(0, {shade: false, time: 2 * 1000}); + var tabId = $(this).attr('data-iframe-tab'), + href = $(this).attr('data-iframe-tab'), + icon = $(this).attr('data-icon'), + title = $(this).attr('data-title'), + target = $(this).attr('target'); + if (target == '_blank') { + parent.layer.close(loading); + window.open(href, "_blank"); + return false; + } + title = ' ' + title + ''; + if (tabId == null || tabId == undefined) { + tabId = new Date().getTime(); + } + // 判断该窗口是否已经打开过 + var checkTab = layuimini.checkTab(tabId, true); + if (!checkTab) { + var layuiminiTabInfo = JSON.parse(sessionStorage.getItem("layuiminiTabInfo")); + if (layuiminiTabInfo == null) { + layuiminiTabInfo = {}; + } + layuiminiTabInfo[tabId] = {href: href, title: title} + sessionStorage.setItem("layuiminiTabInfo", JSON.stringify(layuiminiTabInfo)); + parent.layui.element.tabAdd('layuiminiTab', { + title: title + '' //用于演示 + , content: '' + , id: tabId + }); + } + parent.layui.element.tabChange('layuiminiTab', tabId); + layuimini.tabRoll(); + parent.layer.close(loading); + }); + + /** + * 左侧菜单的切换 + */ + $('body').on('click', '[data-menu]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + $parent = $(this).parent(); + menuId = $(this).attr('data-menu'); + // header + $(".layui-header-menu .layui-nav-item.layui-this").removeClass('layui-this'); + $(this).addClass('layui-this'); + // left + $(".layui-left-menu .layui-nav.layui-nav-tree.layui-this").addClass('layui-hide'); + $(".layui-left-menu .layui-nav.layui-nav-tree.layui-this.layui-hide").removeClass('layui-this'); + $("#" + menuId).removeClass('layui-hide'); + $("#" + menuId).addClass('layui-this'); + layer.close(loading); + }); + + /** + * 清理 + */ + $('body').on('click', '[data-clear]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + sessionStorage.clear(); + + // 判断是否清理服务端 + var clearUrl = $(this).attr('data-href'); + if (clearUrl != undefined && clearUrl != '' && clearUrl != null) { + $.getJSON(clearUrl, function (data, status) { + layer.close(loading); + if (data.code != 1) { + return layuimini.msg_error(data.msg); + } else { + return layuimini.msg_success(data.msg); + } + }).fail(function () { + layer.close(loading); + return layuimini.msg_error('清理缓存接口有误'); + }); + } else { + layer.close(loading); + return layuimini.msg_success('清除缓存成功'); + } + }); + + /** + * 刷新 + */ + $('body').on('click', '[data-refresh]', function () { + $(".layui-tab-item.layui-show").find("iframe")[0].contentWindow.location.reload(); + layuimini.msg_success('刷新成功'); + }); + + /** + * 选项卡操作 + */ + $('body').on('click', '[data-page-close]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var closeType = $(this).attr('data-page-close'); + $(".layui-tab-title li").each(function () { + tabId = $(this).attr('lay-id'); + var id = $(this).attr('id'); + if (id != 'layuiminiHomeTabId') { + var tabClass = $(this).attr('class'); + if (closeType == 'all') { + layuimini.delTab(tabId); + } else { + if (tabClass != 'layui-this') { + layuimini.delTab(tabId); + } + } + } + }); + layuimini.tabRoll(); + layer.close(loading); + }); + + /** + * 菜单栏缩放 + */ + $('body').on('click', '[data-side-fold]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var isShow = $(this).attr('data-side-fold'); + if (isShow == 1) { // 缩放 + $(this).attr('data-side-fold', 0); + $('.layuimini-tool i').attr('class', 'fa fa-indent'); + $('.layui-layout-body').attr('class', 'layui-layout-body layuimini-mini'); + } else { // 正常 + $(this).attr('data-side-fold', 1); + $('.layuimini-tool i').attr('class', 'fa fa-outdent'); + $('.layui-layout-body').attr('class', 'layui-layout-body layuimini-all'); + } + layuimini.tabRoll(); + element.init(); + layer.close(loading); + }); + + /** + * 监听提示信息 + */ + $("body").on("mouseenter", ".layui-menu-tips", function () { + var classInfo = $(this).attr('class'), + tips = $(this).children('span').text(), + isShow = $('.layuimini-tool i').attr('data-side-fold'); + if (isShow == 0) { + openTips = layer.tips(tips, $(this), {tips: [2, '#2f4056'], time: 30000}); + } + }); + $("body").on("mouseleave", ".layui-menu-tips", function () { + var isShow = $('.layuimini-tool i').attr('data-side-fold'); + if (isShow == 0) { + try { + layer.close(openTips); + } catch (e) { + console.log(e.message); + } + } + }); + + /** + * 弹出配色方案 + */ + $('body').on('click', '[data-bgcolor]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var clientHeight = (document.documentElement.clientHeight) - 95; + var bgColorHtml = layuimini.buildBgColorHtml(); + var html = '
      \n' + + '
      \n' + + '配色方案\n' + + '
      \n' + + '
      \n' + + '
        \n' + bgColorHtml + '
      \n' + + '
      \n' + + '
      '; + layer.open({ + type: 1, + title: false, + closeBtn: 0, + shade: 0.2, + anim: 2, + shadeClose: true, + id: 'layuiminiBgColor', + area: ['340px', clientHeight + 'px'], + offset: 'rb', + content: html, + }); + layer.close(loading); + }); + + /** + * 选择配色方案 + */ + $('body').on('click', '[data-select-bgcolor]', function () { + var bgcolorId = $(this).attr('data-select-bgcolor'); + $('.layuimini-color .color-content ul .layui-this').attr('class', ''); + $(this).attr('class', 'layui-this'); + sessionStorage.setItem('layuiminiBgcolorId', bgcolorId); + layuimini.initBgColor(); + }); + + exports("layuimini", layuimini); +}); diff --git a/novel-admin/src/main/resources/static/layuimini/js/lay-module/step-lay/step.css b/novel-admin/src/main/resources/static/layuimini/js/lay-module/step-lay/step.css new file mode 100644 index 0000000..cc5e2ce --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/js/lay-module/step-lay/step.css @@ -0,0 +1,79 @@ +.lay-step { + font-size: 0; + width: 400px; + margin: 0 auto; + max-width: 100%; + padding-left: 200px; +} + +.step-item { + display: inline-block; + line-height: 26px; + position: relative; + font-size: 14px; +} + +.step-item-tail { + width: 100%; + padding: 0 10px; + position: absolute; + left: 0; + top: 13px; +} + +.step-item-tail i { + display: inline-block; + width: 100%; + height: 1px; + vertical-align: top; + background: #c2c2c2; + position: relative; +} + +.step-item-tail .step-item-tail-done { + background: #009688; +} + +.step-item-head { + position: relative; + display: inline-block; + height: 26px; + width: 26px; + text-align: center; + vertical-align: top; + color: #009688; + border: 1px solid #009688; + border-radius: 50%; + background: #ffffff; +} + +.step-item-head.step-item-head-active { + background: #009688; + color: #ffffff; +} + +.step-item-main { + display: block; + position: relative; + margin-left: -50%; + margin-right: 50%; + padding-left: 26px; + text-align: center; +} + +.step-item-main-title { + font-weight: bolder; + color: #555555; +} + +.step-item-main-desc { + color: #aaaaaa; +} + +.lay-step + [carousel-item]:before { + display: none; +} + +.lay-step + [carousel-item] > * { + background-color: transparent; +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/js/lay-module/step-lay/step.js b/novel-admin/src/main/resources/static/layuimini/js/lay-module/step-lay/step.js new file mode 100644 index 0000000..baa015b --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/js/lay-module/step-lay/step.js @@ -0,0 +1,101 @@ +layui.define(['layer', 'carousel'], function (exports) { + var $ = layui.jquery; + var layer = layui.layer; + var carousel = layui.carousel; + + // 添加步骤条dom节点 + var renderDom = function (elem, stepItems, postion) { + var stepDiv = '
      '; + for (var i = 0; i < stepItems.length; i++) { + stepDiv += '
      '; + // 线 + if (i < (stepItems.length - 1)) { + if (i < postion) { + stepDiv += '
      '; + } else { + stepDiv += '
      '; + } + } + + // 数字 + var number = stepItems[i].number; + if (!number) { + number = i + 1; + } + if (i == postion) { + stepDiv += '
      ' + number + '
      '; + } else if (i < postion) { + stepDiv += '
      '; + } else { + stepDiv += '
      ' + number + '
      '; + } + + // 标题和描述 + var title = stepItems[i].title; + var desc = stepItems[i].desc; + if (title || desc) { + stepDiv += '
      '; + if (title) { + stepDiv += '
      ' + title + '
      '; + } + if (desc) { + stepDiv += '
      ' + desc + '
      '; + } + stepDiv += '
      '; + } + stepDiv += '
      '; + } + stepDiv += '
      '; + + $(elem).prepend(stepDiv); + + // 计算每一个条目的宽度 + var bfb = 100 / stepItems.length; + $('.step-item').css('width', bfb + '%'); + }; + + var step = { + // 渲染步骤条 + render: function (param) { + param.indicator = 'none'; // 不显示指示器 + param.arrow = 'always'; // 始终显示箭头 + param.autoplay = false; // 关闭自动播放 + if (!param.stepWidth) { + param.stepWidth = '400px'; + } + + // 渲染轮播图 + carousel.render(param); + + // 渲染步骤条 + var stepItems = param.stepItems; + renderDom(param.elem, stepItems, 0); + $('.lay-step').css('width', param.stepWidth); + + //监听轮播切换事件 + carousel.on('change(' + param.filter + ')', function (obj) { + $(param.elem).find('.lay-step').remove(); + renderDom(param.elem, stepItems, obj.index); + $('.lay-step').css('width', param.stepWidth); + }); + + // 隐藏左右箭头按钮 + $(param.elem).find('.layui-carousel-arrow').css('display', 'none'); + + // 去掉轮播图的背景颜色 + $(param.elem).css('background-color', 'transparent'); + }, + // 下一步 + next: function (elem) { + $(elem).find('.layui-carousel-arrow[lay-type=add]').trigger('click'); + }, + // 上一步 + pre: function (elem) { + $(elem).find('.layui-carousel-arrow[lay-type=sub]').trigger('click'); + } + }; + + layui.link(layui.cache.base + 'step-lay/step.css'); + + exports('step', step); +}); diff --git a/novel-admin/src/main/resources/static/layuimini/js/lay-module/tableSelect/tableSelect.js b/novel-admin/src/main/resources/static/layuimini/js/lay-module/tableSelect/tableSelect.js new file mode 100644 index 0000000..fbcbaac --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/js/lay-module/tableSelect/tableSelect.js @@ -0,0 +1,255 @@ +layui.define(['table', 'jquery', 'form'], function (exports) { + "use strict"; + + var MOD_NAME = 'tableSelect', + $ = layui.jquery, + table = layui.table, + form = layui.form; + var tableSelect = function () { + this.v = '1.1.0'; + }; + + /** + * 初始化表格选择器 + */ + tableSelect.prototype.render = function (opt) { + var elem = $(opt.elem); + var tableDone = opt.table.done || function(){}; + + //默认设置 + opt.searchKey = opt.searchKey || 'keyword'; + opt.searchPlaceholder = opt.searchPlaceholder || '关键词搜索'; + opt.checkedKey = opt.checkedKey; + opt.table.page = opt.table.page || true; + opt.table.height = opt.table.height || 315; + + elem.off('click').on('click', function(e) { + e.stopPropagation(); + + if($('div.tableSelect').length >= 1){ + return false; + } + + var t = elem.offset().top + elem.outerHeight()+"px"; + var l = elem.offset().left +"px"; + var tableName = "tableSelect_table_" + new Date().getTime(); + var tableBox = '
      '; + tableBox += '
      '; + tableBox += ''; + tableBox += ''; + tableBox += ''; + tableBox += ''; + tableBox += '
      '; + tableBox += '
      '; + tableBox += '
      '; + tableBox = $(tableBox); + $('body').append(tableBox); + + //数据缓存 + var checkedData = []; + + //渲染TABLE + opt.table.elem = "#"+tableName; + opt.table.id = tableName; + opt.table.done = function(res, curr, count){ + defaultChecked(res, curr, count); + setChecked(res, curr, count); + tableDone(res, curr, count); + }; + var tableSelect_table = table.render(opt.table); + + //分页选中保存数组 + table.on('radio('+tableName+')', function(obj){ + if(opt.checkedKey){ + checkedData = table.checkStatus(tableName).data + } + updataButton(table.checkStatus(tableName).data.length) + }) + table.on('checkbox('+tableName+')', function(obj){ + if(opt.checkedKey){ + if(obj.checked){ + for (var i=0;i $(window).height(); + var overWidth = (elem.offset().left + tableBox.outerWidth()) > $(window).width(); + overHeight && tableBox.css({'top':'auto','bottom':'0px'}); + overWidth && tableBox.css({'left':'auto','right':'5px'}) + + //关键词搜索 + form.on('submit(tableSelect_btn_search)', function(data){ + tableSelect_table.reload({ + where: data.field, + page: { + curr: 1 + } + }); + return false; + }); + + //双击行选中 + table.on('rowDouble('+tableName+')', function(obj){ + var checkStatus = {data:[obj.data]}; + selectDone(checkStatus); + }) + + //按钮选中 + tableBox.find('.tableSelect_btn_select').on('click', function() { + var checkStatus = table.checkStatus(tableName); + if(checkedData.length > 1){ + checkStatus.data = checkedData; + } + selectDone(checkStatus); + }) + + //写值回调和关闭 + function selectDone (checkStatus){ + if(opt.checkedKey){ + var selected = []; + for(var i=0;i 0 && mData[len - 1].id == s_pid) { + mData[len - 1].isParent = true; + } + mData.push(data[i]); + sort(data[i].id, data); + } + } + }; + sort(param.treeSpid, tNodes); + + // 重写参数 + param.url = undefined; + param.data = mData; + param.page = { + count: param.data.length, + limit: param.data.length + }; + param.cols[0][param.treeColIndex].templet = function (d) { + var mId = d.id; + var mPid = d.pid; + var isDir = d.isParent; + var emptyNum = treetable.getEmptyNum(mPid, mData); + var iconHtml = ''; + for (var i = 0; i < emptyNum; i++) { + iconHtml += ''; + } + if (isDir) { + iconHtml += ' '; + } else { + iconHtml += ''; + } + iconHtml += '  '; + var ttype = isDir ? 'dir' : 'file'; + var vg = ''; + return vg + iconHtml + d[param.cols[0][param.treeColIndex].field] + '' + }; + + param.done = function (res, curr, count) { + $(param.elem).next().addClass('treeTable'); + $('.treeTable .layui-table-page').css('display', 'none'); + $(param.elem).next().attr('treeLinkage', param.treeLinkage); + // 绑定事件换成对body绑定 + /*$('.treeTable .treeTable-icon').click(function () { + treetable.toggleRows($(this), param.treeLinkage); + });*/ + if (param.treeDefaultClose) { + treetable.foldAll(param.elem); + } + if (doneCallback) { + doneCallback(res, curr, count); + } + }; + + // 渲染表格 + table.render(param); + }, + // 计算缩进的数量 + getEmptyNum: function (pid, data) { + var num = 0; + if (!pid) { + return num; + } + var tPid; + for (var i = 0; i < data.length; i++) { + if (pid == data[i].id) { + num += 1; + tPid = data[i].pid; + break; + } + } + return num + treetable.getEmptyNum(tPid, data); + }, + // 展开/折叠行 + toggleRows: function ($dom, linkage) { + var type = $dom.attr('lay-ttype'); + if ('file' == type) { + return; + } + var mId = $dom.attr('lay-tid'); + var isOpen = $dom.hasClass('open'); + if (isOpen) { + $dom.removeClass('open'); + } else { + $dom.addClass('open'); + } + $dom.closest('tbody').find('tr').each(function () { + var $ti = $(this).find('.treeTable-icon'); + var pid = $ti.attr('lay-tpid'); + var ttype = $ti.attr('lay-ttype'); + var tOpen = $ti.hasClass('open'); + if (mId == pid) { + if (isOpen) { + $(this).hide(); + if ('dir' == ttype && tOpen == isOpen) { + $ti.trigger('click'); + } + } else { + $(this).show(); + if (linkage && 'dir' == ttype && tOpen == isOpen) { + $ti.trigger('click'); + } + } + } + }); + }, + // 检查参数 + checkParam: function (param) { + if (!param.treeSpid && param.treeSpid != 0) { + layer.msg('参数treeSpid不能为空', {icon: 5}); + return false; + } + + if (!param.treeColIndex && param.treeColIndex != 0) { + layer.msg('参数treeColIndex不能为空', {icon: 5}); + return false; + } + return true; + }, + // 展开所有 + expandAll: function (dom) { + $(dom).next('.treeTable').find('.layui-table-body tbody tr').each(function () { + var $ti = $(this).find('.treeTable-icon'); + var ttype = $ti.attr('lay-ttype'); + var tOpen = $ti.hasClass('open'); + if ('dir' == ttype && !tOpen) { + $ti.trigger('click'); + } + }); + }, + // 折叠所有 + foldAll: function (dom) { + $(dom).next('.treeTable').find('.layui-table-body tbody tr').each(function () { + var $ti = $(this).find('.treeTable-icon'); + var ttype = $ti.attr('lay-ttype'); + var tOpen = $ti.hasClass('open'); + if ('dir' == ttype && tOpen) { + $ti.trigger('click'); + } + }); + } + }; + + layui.link(layui.cache.base + 'treetable-lay/treetable.css'); + + // 给图标列绑定事件 + $('body').on('click', '.treeTable .treeTable-icon', function () { + var treeLinkage = $(this).parents('.treeTable').attr('treeLinkage'); + if ('true' == treeLinkage) { + treetable.toggleRows($(this), true); + } else { + treetable.toggleRows($(this), false); + } + }); + + exports('treetable', treetable); +}); diff --git a/novel-admin/src/main/resources/static/layuimini/js/lay-module/wangEditor/fonts/w-e-icon.woff b/novel-admin/src/main/resources/static/layuimini/js/lay-module/wangEditor/fonts/w-e-icon.woff new file mode 100644 index 0000000000000000000000000000000000000000..6dc5b5a33ab856629748dba686540870da73e89f GIT binary patch literal 6224 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 0 && matches.item(i) !== this) {} + return i > -1; + }; + } +}; + +/* + DOM 操作 API +*/ + +// 根据 html 代码片段创建 dom 对象 +function createElemByHTML(html) { + var div = void 0; + div = document.createElement('div'); + div.innerHTML = html; + return div.children; +} + +// 是否是 DOM List +function isDOMList(selector) { + if (!selector) { + return false; + } + if (selector instanceof HTMLCollection || selector instanceof NodeList) { + return true; + } + return false; +} + +// 封装 document.querySelectorAll +function querySelectorAll(selector) { + var result = document.querySelectorAll(selector); + if (isDOMList(result)) { + return result; + } else { + return [result]; + } +} + +// 记录所有的事件绑定 +var eventList = []; + +// 创建构造函数 +function DomElement(selector) { + if (!selector) { + return; + } + + // selector 本来就是 DomElement 对象,直接返回 + if (selector instanceof DomElement) { + return selector; + } + + this.selector = selector; + var nodeType = selector.nodeType; + + // 根据 selector 得出的结果(如 DOM,DOM List) + var selectorResult = []; + if (nodeType === 9) { + // document 节点 + selectorResult = [selector]; + } else if (nodeType === 1) { + // 单个 DOM 节点 + selectorResult = [selector]; + } else if (isDOMList(selector) || selector instanceof Array) { + // DOM List 或者数组 + selectorResult = selector; + } else if (typeof selector === 'string') { + // 字符串 + selector = selector.replace('/\n/mg', '').trim(); + if (selector.indexOf('<') === 0) { + // 如
      + selectorResult = createElemByHTML(selector); + } else { + // 如 #id .class + selectorResult = querySelectorAll(selector); + } + } + + var length = selectorResult.length; + if (!length) { + // 空数组 + return this; + } + + // 加入 DOM 节点 + var i = void 0; + for (i = 0; i < length; i++) { + this[i] = selectorResult[i]; + } + this.length = length; +} + +// 修改原型 +DomElement.prototype = { + constructor: DomElement, + + // 类数组,forEach + forEach: function forEach(fn) { + var i = void 0; + for (i = 0; i < this.length; i++) { + var elem = this[i]; + var result = fn.call(elem, elem, i); + if (result === false) { + break; + } + } + return this; + }, + + // clone + clone: function clone(deep) { + var cloneList = []; + this.forEach(function (elem) { + cloneList.push(elem.cloneNode(!!deep)); + }); + return $(cloneList); + }, + + // 获取第几个元素 + get: function get(index) { + var length = this.length; + if (index >= length) { + index = index % length; + } + return $(this[index]); + }, + + // 第一个 + first: function first() { + return this.get(0); + }, + + // 最后一个 + last: function last() { + var length = this.length; + return this.get(length - 1); + }, + + // 绑定事件 + on: function on(type, selector, fn) { + // selector 不为空,证明绑定事件要加代理 + if (!fn) { + fn = selector; + selector = null; + } + + // type 是否有多个 + var types = []; + types = type.split(/\s+/); + + return this.forEach(function (elem) { + types.forEach(function (type) { + if (!type) { + return; + } + + // 记录下,方便后面解绑 + eventList.push({ + elem: elem, + type: type, + fn: fn + }); + + if (!selector) { + // 无代理 + elem.addEventListener(type, fn); + return; + } + + // 有代理 + elem.addEventListener(type, function (e) { + var target = e.target; + if (target.matches(selector)) { + fn.call(target, e); + } + }); + }); + }); + }, + + // 取消事件绑定 + off: function off(type, fn) { + return this.forEach(function (elem) { + elem.removeEventListener(type, fn); + }); + }, + + // 获取/设置 属性 + attr: function attr(key, val) { + if (val == null) { + // 获取值 + return this[0].getAttribute(key); + } else { + // 设置值 + return this.forEach(function (elem) { + elem.setAttribute(key, val); + }); + } + }, + + // 添加 class + addClass: function addClass(className) { + if (!className) { + return this; + } + return this.forEach(function (elem) { + var arr = void 0; + if (elem.className) { + // 解析当前 className 转换为数组 + arr = elem.className.split(/\s/); + arr = arr.filter(function (item) { + return !!item.trim(); + }); + // 添加 class + if (arr.indexOf(className) < 0) { + arr.push(className); + } + // 修改 elem.class + elem.className = arr.join(' '); + } else { + elem.className = className; + } + }); + }, + + // 删除 class + removeClass: function removeClass(className) { + if (!className) { + return this; + } + return this.forEach(function (elem) { + var arr = void 0; + if (elem.className) { + // 解析当前 className 转换为数组 + arr = elem.className.split(/\s/); + arr = arr.filter(function (item) { + item = item.trim(); + // 删除 class + if (!item || item === className) { + return false; + } + return true; + }); + // 修改 elem.class + elem.className = arr.join(' '); + } + }); + }, + + // 修改 css + css: function css(key, val) { + var currentStyle = key + ':' + val + ';'; + return this.forEach(function (elem) { + var style = (elem.getAttribute('style') || '').trim(); + var styleArr = void 0, + resultArr = []; + if (style) { + // 将 style 按照 ; 拆分为数组 + styleArr = style.split(';'); + styleArr.forEach(function (item) { + // 对每项样式,按照 : 拆分为 key 和 value + var arr = item.split(':').map(function (i) { + return i.trim(); + }); + if (arr.length === 2) { + resultArr.push(arr[0] + ':' + arr[1]); + } + }); + // 替换或者新增 + resultArr = resultArr.map(function (item) { + if (item.indexOf(key) === 0) { + return currentStyle; + } else { + return item; + } + }); + if (resultArr.indexOf(currentStyle) < 0) { + resultArr.push(currentStyle); + } + // 结果 + elem.setAttribute('style', resultArr.join('; ')); + } else { + // style 无值 + elem.setAttribute('style', currentStyle); + } + }); + }, + + // 显示 + show: function show() { + return this.css('display', 'block'); + }, + + // 隐藏 + hide: function hide() { + return this.css('display', 'none'); + }, + + // 获取子节点 + children: function children() { + var elem = this[0]; + if (!elem) { + return null; + } + + return $(elem.children); + }, + + // 获取子节点(包括文本节点) + childNodes: function childNodes() { + var elem = this[0]; + if (!elem) { + return null; + } + + return $(elem.childNodes); + }, + + // 增加子节点 + append: function append($children) { + return this.forEach(function (elem) { + $children.forEach(function (child) { + elem.appendChild(child); + }); + }); + }, + + // 移除当前节点 + remove: function remove() { + return this.forEach(function (elem) { + if (elem.remove) { + elem.remove(); + } else { + var parent = elem.parentElement; + parent && parent.removeChild(elem); + } + }); + }, + + // 是否包含某个子节点 + isContain: function isContain($child) { + var elem = this[0]; + var child = $child[0]; + return elem.contains(child); + }, + + // 尺寸数据 + getSizeData: function getSizeData() { + var elem = this[0]; + return elem.getBoundingClientRect(); // 可得到 bottom height left right top width 的数据 + }, + + // 封装 nodeName + getNodeName: function getNodeName() { + var elem = this[0]; + return elem.nodeName; + }, + + // 从当前元素查找 + find: function find(selector) { + var elem = this[0]; + return $(elem.querySelectorAll(selector)); + }, + + // 获取当前元素的 text + text: function text(val) { + if (!val) { + // 获取 text + var elem = this[0]; + return elem.innerHTML.replace(/<.*?>/g, function () { + return ''; + }); + } else { + // 设置 text + return this.forEach(function (elem) { + elem.innerHTML = val; + }); + } + }, + + // 获取 html + html: function html(value) { + var elem = this[0]; + if (value == null) { + return elem.innerHTML; + } else { + elem.innerHTML = value; + return this; + } + }, + + // 获取 value + val: function val() { + var elem = this[0]; + return elem.value.trim(); + }, + + // focus + focus: function focus() { + return this.forEach(function (elem) { + elem.focus(); + }); + }, + + // parent + parent: function parent() { + var elem = this[0]; + return $(elem.parentElement); + }, + + // parentUntil 找到符合 selector 的父节点 + parentUntil: function parentUntil(selector, _currentElem) { + var results = document.querySelectorAll(selector); + var length = results.length; + if (!length) { + // 传入的 selector 无效 + return null; + } + + var elem = _currentElem || this[0]; + if (elem.nodeName === 'BODY') { + return null; + } + + var parent = elem.parentElement; + var i = void 0; + for (i = 0; i < length; i++) { + if (parent === results[i]) { + // 找到,并返回 + return $(parent); + } + } + + // 继续查找 + return this.parentUntil(selector, parent); + }, + + // 判断两个 elem 是否相等 + equal: function equal($elem) { + if ($elem.nodeType === 1) { + return this[0] === $elem; + } else { + return this[0] === $elem[0]; + } + }, + + // 将该元素插入到某个元素前面 + insertBefore: function insertBefore(selector) { + var $referenceNode = $(selector); + var referenceNode = $referenceNode[0]; + if (!referenceNode) { + return this; + } + return this.forEach(function (elem) { + var parent = referenceNode.parentNode; + parent.insertBefore(elem, referenceNode); + }); + }, + + // 将该元素插入到某个元素后面 + insertAfter: function insertAfter(selector) { + var $referenceNode = $(selector); + var referenceNode = $referenceNode[0]; + if (!referenceNode) { + return this; + } + return this.forEach(function (elem) { + var parent = referenceNode.parentNode; + if (parent.lastChild === referenceNode) { + // 最后一个元素 + parent.appendChild(elem); + } else { + // 不是最后一个元素 + parent.insertBefore(elem, referenceNode.nextSibling); + } + }); + } +}; + +// new 一个对象 +function $(selector) { + return new DomElement(selector); +} + +// 解绑所有事件,用于销毁编辑器 +$.offAll = function () { + eventList.forEach(function (item) { + var elem = item.elem; + var type = item.type; + var fn = item.fn; + // 解绑 + elem.removeEventListener(type, fn); + }); +}; + +/* + 配置信息 +*/ + +var config = { + + // 默认菜单配置 + menus: ['head', 'bold', 'fontSize', 'fontName', 'italic', 'underline', 'strikeThrough', 'foreColor', 'backColor', 'link', 'list', 'justify', 'quote', 'emoticon', 'image', 'table', 'video', 'code', 'undo', 'redo'], + + fontNames: ['宋体', '微软雅黑', 'Arial', 'Tahoma', 'Verdana'], + + colors: ['#000000', '#eeece0', '#1c487f', '#4d80bf', '#c24f4a', '#8baa4a', '#7b5ba1', '#46acc8', '#f9963b', '#ffffff'], + + // // 语言配置 + // lang: { + // '设置标题': 'title', + // '正文': 'p', + // '链接文字': 'link text', + // '链接': 'link', + // '插入': 'insert', + // '创建': 'init' + // }, + + // 表情 + emotions: [{ + // tab 的标题 + title: '默认', + // type -> 'emoji' / 'image' + type: 'image', + // content -> 数组 + content: [{ + alt: '[坏笑]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/50/pcmoren_huaixiao_org.png' + }, { + alt: '[舔屏]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/pcmoren_tian_org.png' + }, { + alt: '[污]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/3c/pcmoren_wu_org.png' + }] + }, { + // tab 的标题 + title: '新浪', + // type -> 'emoji' / 'image' + type: 'image', + // content -> 数组 + content: [{ + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/7a/shenshou_thumb.gif', + alt: '[草泥马]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/60/horse2_thumb.gif', + alt: '[神马]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/bc/fuyun_thumb.gif', + alt: '[浮云]' + }] + }, { + // tab 的标题 + title: 'emoji', + // type -> 'emoji' / 'image' + type: 'emoji', + // content -> 数组 + content: '😀 😃 😄 😁 😆 😅 😂 😊 😇 🙂 🙃 😉 😓 😪 😴 🙄 🤔 😬 🤐'.split(/\s/) + }], + + // 编辑区域的 z-index + zIndex: 10000, + + // 是否开启 debug 模式(debug 模式下错误会 throw error 形式抛出) + debug: false, + + // 插入链接时候的格式校验 + linkCheck: function linkCheck(text, link) { + // text 是插入的文字 + // link 是插入的链接 + return true; // 返回 true 即表示成功 + // return '校验失败' // 返回字符串即表示失败的提示信息 + }, + + // 插入网络图片的校验 + linkImgCheck: function linkImgCheck(src) { + // src 即图片的地址 + return true; // 返回 true 即表示成功 + // return '校验失败' // 返回字符串即表示失败的提示信息 + }, + + // 粘贴过滤样式,默认开启 + pasteFilterStyle: true, + + // 粘贴内容时,忽略图片。默认关闭 + pasteIgnoreImg: false, + + // 对粘贴的文字进行自定义处理,返回处理后的结果。编辑器会将处理后的结果粘贴到编辑区域中。 + // IE 暂时不支持 + pasteTextHandle: function pasteTextHandle(content) { + // content 即粘贴过来的内容(html 或 纯文本),可进行自定义处理然后返回 + return content; + }, + + // onchange 事件 + // onchange: function (html) { + // // html 即变化之后的内容 + // console.log(html) + // }, + + // 是否显示添加网络图片的 tab + showLinkImg: true, + + // 插入网络图片的回调 + linkImgCallback: function linkImgCallback(url) { + // console.log(url) // url 即插入图片的地址 + }, + + // 默认上传图片 max size: 5M + uploadImgMaxSize: 5 * 1024 * 1024, + + // 配置一次最多上传几个图片 + // uploadImgMaxLength: 5, + + // 上传图片,是否显示 base64 格式 + uploadImgShowBase64: false, + + // 上传图片,server 地址(如果有值,则 base64 格式的配置则失效) + // uploadImgServer: '/upload', + + // 自定义配置 filename + uploadFileName: '', + + // 上传图片的自定义参数 + uploadImgParams: { + // token: 'abcdef12345' + }, + + // 上传图片的自定义header + uploadImgHeaders: { + // 'Accept': 'text/x-json' + }, + + // 配置 XHR withCredentials + withCredentials: false, + + // 自定义上传图片超时时间 ms + uploadImgTimeout: 10000, + + // 上传图片 hook + uploadImgHooks: { + // customInsert: function (insertLinkImg, result, editor) { + // console.log('customInsert') + // // 图片上传并返回结果,自定义插入图片的事件,而不是编辑器自动插入图片 + // const data = result.data1 || [] + // data.forEach(link => { + // insertLinkImg(link) + // }) + // }, + before: function before(xhr, editor, files) { + // 图片上传之前触发 + + // 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传 + // return { + // prevent: true, + // msg: '放弃上传' + // } + }, + success: function success(xhr, editor, result) { + // 图片上传并返回结果,图片插入成功之后触发 + }, + fail: function fail(xhr, editor, result) { + // 图片上传并返回结果,但图片插入错误时触发 + }, + error: function error(xhr, editor) { + // 图片上传出错时触发 + }, + timeout: function timeout(xhr, editor) { + // 图片上传超时时触发 + } + }, + + // 是否上传七牛云,默认为 false + qiniu: false + +}; + +/* + 工具 +*/ + +// 和 UA 相关的属性 +var UA = { + _ua: navigator.userAgent, + + // 是否 webkit + isWebkit: function isWebkit() { + var reg = /webkit/i; + return reg.test(this._ua); + }, + + // 是否 IE + isIE: function isIE() { + return 'ActiveXObject' in window; + } +}; + +// 遍历对象 +function objForEach(obj, fn) { + var key = void 0, + result = void 0; + for (key in obj) { + if (obj.hasOwnProperty(key)) { + result = fn.call(obj, key, obj[key]); + if (result === false) { + break; + } + } + } +} + +// 遍历类数组 +function arrForEach(fakeArr, fn) { + var i = void 0, + item = void 0, + result = void 0; + var length = fakeArr.length || 0; + for (i = 0; i < length; i++) { + item = fakeArr[i]; + result = fn.call(fakeArr, item, i); + if (result === false) { + break; + } + } +} + +// 获取随机数 +function getRandom(prefix) { + return prefix + Math.random().toString().slice(2); +} + +// 替换 html 特殊字符 +function replaceHtmlSymbol(html) { + if (html == null) { + return ''; + } + return html.replace(//gm, '>').replace(/"/gm, '"').replace(/(\r\n|\r|\n)/g, '
      '); +} + +// 返回百分比的格式 + + +// 判断是不是 function +function isFunction(fn) { + return typeof fn === 'function'; +} + +/* + bold-menu +*/ +// 构造函数 +function Bold(editor) { + this.editor = editor; + this.$elem = $('
      \n \n
      '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Bold.prototype = { + constructor: Bold, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 bold 命令 + editor.cmd.do('bold'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('bold')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + 替换多语言 + */ + +var replaceLang = function (editor, str) { + var langArgs = editor.config.langArgs || []; + var result = str; + + langArgs.forEach(function (item) { + var reg = item.reg; + var val = item.val; + + if (reg.test(result)) { + result = result.replace(reg, function () { + return val; + }); + } + }); + + return result; +}; + +/* + droplist +*/ +var _emptyFn = function _emptyFn() {}; + +// 构造函数 +function DropList(menu, opt) { + var _this = this; + + // droplist 所依附的菜单 + var editor = menu.editor; + this.menu = menu; + this.opt = opt; + // 容器 + var $container = $('
      '); + + // 标题 + var $title = opt.$title; + var titleHtml = void 0; + if ($title) { + // 替换多语言 + titleHtml = $title.html(); + titleHtml = replaceLang(editor, titleHtml); + $title.html(titleHtml); + + $title.addClass('w-e-dp-title'); + $container.append($title); + } + + var list = opt.list || []; + var type = opt.type || 'list'; // 'list' 列表形式(如“标题”菜单) / 'inline-block' 块状形式(如“颜色”菜单) + var onClick = opt.onClick || _emptyFn; + + // 加入 DOM 并绑定事件 + var $list = $('
        '); + $container.append($list); + list.forEach(function (item) { + var $elem = item.$elem; + + // 替换多语言 + var elemHtml = $elem.html(); + elemHtml = replaceLang(editor, elemHtml); + $elem.html(elemHtml); + + var value = item.value; + var $li = $('
      • '); + if ($elem) { + $li.append($elem); + $list.append($li); + $li.on('click', function (e) { + onClick(value); + + // 隐藏 + _this.hideTimeoutId = setTimeout(function () { + _this.hide(); + }, 0); + }); + } + }); + + // 绑定隐藏事件 + $container.on('mouseleave', function (e) { + _this.hideTimeoutId = setTimeout(function () { + _this.hide(); + }, 0); + }); + + // 记录属性 + this.$container = $container; + + // 基本属性 + this._rendered = false; + this._show = false; +} + +// 原型 +DropList.prototype = { + constructor: DropList, + + // 显示(插入DOM) + show: function show() { + if (this.hideTimeoutId) { + // 清除之前的定时隐藏 + clearTimeout(this.hideTimeoutId); + } + + var menu = this.menu; + var $menuELem = menu.$elem; + var $container = this.$container; + if (this._show) { + return; + } + if (this._rendered) { + // 显示 + $container.show(); + } else { + // 加入 DOM 之前先定位位置 + var menuHeight = $menuELem.getSizeData().height || 0; + var width = this.opt.width || 100; // 默认为 100 + $container.css('margin-top', menuHeight + 'px').css('width', width + 'px'); + + // 加入到 DOM + $menuELem.append($container); + this._rendered = true; + } + + // 修改属性 + this._show = true; + }, + + // 隐藏(移除DOM) + hide: function hide() { + if (this.showTimeoutId) { + // 清除之前的定时显示 + clearTimeout(this.showTimeoutId); + } + + var $container = this.$container; + if (!this._show) { + return; + } + // 隐藏并需改属性 + $container.hide(); + this._show = false; + } +}; + +/* + menu - header +*/ +// 构造函数 +function Head(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
        '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 100, + $title: $('

        设置标题

        '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $('

        H1

        '), value: '

        ' }, { $elem: $('

        H2

        '), value: '

        ' }, { $elem: $('

        H3

        '), value: '

        ' }, { $elem: $('

        H4

        '), value: '

        ' }, { $elem: $('

        H5
        '), value: '
        ' }, { $elem: $('

        正文

        '), value: '

        ' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 Head 对象 + _this._command(value); + } + }); +} + +// 原型 +Head.prototype = { + constructor: Head, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (editor.$textElem.equal($selectionElem)) { + // 不能选中多行来设置标题,否则会出现问题 + // 例如选中的是

        xxx

        yyy

        来设置标题,设置之后会成为

        xxx
        yyy

        不符合预期 + return; + } + + editor.cmd.do('formatBlock', value); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var reg = /^h/i; + var cmdValue = editor.cmd.queryCommandValue('formatBlock'); + if (reg.test(cmdValue)) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - fontSize +*/ + +// 构造函数 +function FontSize(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
        '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 160, + $title: $('

        字号

        '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $('x-small'), value: '1' }, { $elem: $('small'), value: '2' }, { $elem: $('normal'), value: '3' }, { $elem: $('large'), value: '4' }, { $elem: $('x-large'), value: '5' }, { $elem: $('xx-large'), value: '6' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 FontSize 对象 + _this._command(value); + } + }); +} + +// 原型 +FontSize.prototype = { + constructor: FontSize, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do('fontSize', value); + } +}; + +/* + menu - fontName +*/ + +// 构造函数 +function FontName(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
        '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 获取配置的字体 + var config = editor.config; + var fontNames = config.fontNames || []; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 100, + $title: $('

        字体

        '), + type: 'list', // droplist 以列表形式展示 + list: fontNames.map(function (fontName) { + return { $elem: $('' + fontName + ''), value: fontName }; + }), + onClick: function onClick(value) { + // 注意 this 是指向当前的 FontName 对象 + _this._command(value); + } + }); +} + +// 原型 +FontName.prototype = { + constructor: FontName, + + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do('fontName', value); + } +}; + +/* + panel +*/ + +var emptyFn = function emptyFn() {}; + +// 记录已经显示 panel 的菜单 +var _isCreatedPanelMenus = []; + +// 构造函数 +function Panel(menu, opt) { + this.menu = menu; + this.opt = opt; +} + +// 原型 +Panel.prototype = { + constructor: Panel, + + // 显示(插入DOM) + show: function show() { + var _this = this; + + var menu = this.menu; + if (_isCreatedPanelMenus.indexOf(menu) >= 0) { + // 该菜单已经创建了 panel 不能再创建 + return; + } + + var editor = menu.editor; + var $body = $('body'); + var $textContainerElem = editor.$textContainerElem; + var opt = this.opt; + + // panel 的容器 + var $container = $('
        '); + var width = opt.width || 300; // 默认 300px + $container.css('width', width + 'px').css('margin-left', (0 - width) / 2 + 'px'); + + // 添加关闭按钮 + var $closeBtn = $(''); + $container.append($closeBtn); + $closeBtn.on('click', function () { + _this.hide(); + }); + + // 准备 tabs 容器 + var $tabTitleContainer = $('
          '); + var $tabContentContainer = $('
          '); + $container.append($tabTitleContainer).append($tabContentContainer); + + // 设置高度 + var height = opt.height; + if (height) { + $tabContentContainer.css('height', height + 'px').css('overflow-y', 'auto'); + } + + // tabs + var tabs = opt.tabs || []; + var tabTitleArr = []; + var tabContentArr = []; + tabs.forEach(function (tab, tabIndex) { + if (!tab) { + return; + } + var title = tab.title || ''; + var tpl = tab.tpl || ''; + + // 替换多语言 + title = replaceLang(editor, title); + tpl = replaceLang(editor, tpl); + + // 添加到 DOM + var $title = $('
        • ' + title + '
        • '); + $tabTitleContainer.append($title); + var $content = $(tpl); + $tabContentContainer.append($content); + + // 记录到内存 + $title._index = tabIndex; + tabTitleArr.push($title); + tabContentArr.push($content); + + // 设置 active 项 + if (tabIndex === 0) { + $title._active = true; + $title.addClass('w-e-active'); + } else { + $content.hide(); + } + + // 绑定 tab 的事件 + $title.on('click', function (e) { + if ($title._active) { + return; + } + // 隐藏所有的 tab + tabTitleArr.forEach(function ($title) { + $title._active = false; + $title.removeClass('w-e-active'); + }); + tabContentArr.forEach(function ($content) { + $content.hide(); + }); + + // 显示当前的 tab + $title._active = true; + $title.addClass('w-e-active'); + $content.show(); + }); + }); + + // 绑定关闭事件 + $container.on('click', function (e) { + // 点击时阻止冒泡 + e.stopPropagation(); + }); + $body.on('click', function (e) { + _this.hide(); + }); + + // 添加到 DOM + $textContainerElem.append($container); + + // 绑定 opt 的事件,只有添加到 DOM 之后才能绑定成功 + tabs.forEach(function (tab, index) { + if (!tab) { + return; + } + var events = tab.events || []; + events.forEach(function (event) { + var selector = event.selector; + var type = event.type; + var fn = event.fn || emptyFn; + var $content = tabContentArr[index]; + $content.find(selector).on(type, function (e) { + e.stopPropagation(); + var needToHide = fn(e); + // 执行完事件之后,是否要关闭 panel + if (needToHide) { + _this.hide(); + } + }); + }); + }); + + // focus 第一个 elem + var $inputs = $container.find('input[type=text],textarea'); + if ($inputs.length) { + $inputs.get(0).focus(); + } + + // 添加到属性 + this.$container = $container; + + // 隐藏其他 panel + this._hideOtherPanels(); + // 记录该 menu 已经创建了 panel + _isCreatedPanelMenus.push(menu); + }, + + // 隐藏(移除DOM) + hide: function hide() { + var menu = this.menu; + var $container = this.$container; + if ($container) { + $container.remove(); + } + + // 将该 menu 记录中移除 + _isCreatedPanelMenus = _isCreatedPanelMenus.filter(function (item) { + if (item === menu) { + return false; + } else { + return true; + } + }); + }, + + // 一个 panel 展示时,隐藏其他 panel + _hideOtherPanels: function _hideOtherPanels() { + if (!_isCreatedPanelMenus.length) { + return; + } + _isCreatedPanelMenus.forEach(function (menu) { + var panel = menu.panel || {}; + if (panel.hide) { + panel.hide(); + } + }); + } +}; + +/* + menu - link +*/ +// 构造函数 +function Link(editor) { + this.editor = editor; + this.$elem = $('
          '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Link.prototype = { + constructor: Link, + + // 点击事件 + onClick: function onClick(e) { + var editor = this.editor; + var $linkelem = void 0; + + if (this._active) { + // 当前选区在链接里面 + $linkelem = editor.selection.getSelectionContainerElem(); + if (!$linkelem) { + return; + } + // 将该元素都包含在选取之内,以便后面整体替换 + editor.selection.createRangeByElem($linkelem); + editor.selection.restoreSelection(); + // 显示 panel + this._createPanel($linkelem.text(), $linkelem.attr('href')); + } else { + // 当前选区不在链接里面 + if (editor.selection.isSelectionEmpty()) { + // 选区是空的,未选中内容 + this._createPanel('', ''); + } else { + // 选中内容了 + this._createPanel(editor.selection.getSelectionText(), ''); + } + } + }, + + // 创建 panel + _createPanel: function _createPanel(text, link) { + var _this = this; + + // panel 中需要用到的id + var inputLinkId = getRandom('input-link'); + var inputTextId = getRandom('input-text'); + var btnOkId = getRandom('btn-ok'); + var btnDelId = getRandom('btn-del'); + + // 是否显示“删除链接” + var delBtnDisplay = this._active ? 'inline-block' : 'none'; + + // 初始化并显示 panel + var panel = new Panel(this, { + width: 300, + // panel 中可包含多个 tab + tabs: [{ + // tab 的标题 + title: '链接', + // 模板 + tpl: '
          \n \n \n
          \n \n \n
          \n
          ', + // 事件绑定 + events: [ + // 插入链接 + { + selector: '#' + btnOkId, + type: 'click', + fn: function fn() { + // 执行插入链接 + var $link = $('#' + inputLinkId); + var $text = $('#' + inputTextId); + var link = $link.val(); + var text = $text.val(); + _this._insertLink(text, link); + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, + // 删除链接 + { + selector: '#' + btnDelId, + type: 'click', + fn: function fn() { + // 执行删除链接 + _this._delLink(); + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // tab end + ] // tabs end + }); + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 删除当前链接 + _delLink: function _delLink() { + if (!this._active) { + return; + } + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var selectionText = editor.selection.getSelectionText(); + editor.cmd.do('insertHTML', '' + selectionText + ''); + }, + + // 插入链接 + _insertLink: function _insertLink(text, link) { + var editor = this.editor; + var config = editor.config; + var linkCheck = config.linkCheck; + var checkResult = true; // 默认为 true + if (linkCheck && typeof linkCheck === 'function') { + checkResult = linkCheck(text, link); + } + if (checkResult === true) { + editor.cmd.do('insertHTML', '' + text + ''); + } else { + alert(checkResult); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + if ($selectionELem.getNodeName() === 'A') { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + italic-menu +*/ +// 构造函数 +function Italic(editor) { + this.editor = editor; + this.$elem = $('
          \n \n
          '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Italic.prototype = { + constructor: Italic, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 italic 命令 + editor.cmd.do('italic'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('italic')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + redo-menu +*/ +// 构造函数 +function Redo(editor) { + this.editor = editor; + this.$elem = $('
          \n \n
          '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Redo.prototype = { + constructor: Redo, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + + // 执行 redo 命令 + editor.cmd.do('redo'); + } +}; + +/* + strikeThrough-menu +*/ +// 构造函数 +function StrikeThrough(editor) { + this.editor = editor; + this.$elem = $('
          \n \n
          '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +StrikeThrough.prototype = { + constructor: StrikeThrough, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 strikeThrough 命令 + editor.cmd.do('strikeThrough'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('strikeThrough')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + underline-menu +*/ +// 构造函数 +function Underline(editor) { + this.editor = editor; + this.$elem = $('
          \n \n
          '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Underline.prototype = { + constructor: Underline, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 underline 命令 + editor.cmd.do('underline'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('underline')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + undo-menu +*/ +// 构造函数 +function Undo(editor) { + this.editor = editor; + this.$elem = $('
          \n \n
          '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Undo.prototype = { + constructor: Undo, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + + // 执行 undo 命令 + editor.cmd.do('undo'); + } +}; + +/* + menu - list +*/ +// 构造函数 +function List(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
          '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 120, + $title: $('

          设置列表

          '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $(' 有序列表'), value: 'insertOrderedList' }, { $elem: $(' 无序列表'), value: 'insertUnorderedList' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 List 对象 + _this._command(value); + } + }); +} + +// 原型 +List.prototype = { + constructor: List, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + var $textElem = editor.$textElem; + editor.selection.restoreSelection(); + if (editor.cmd.queryCommandState(value)) { + return; + } + editor.cmd.do(value); + + // 验证列表是否被包裹在

          之内 + var $selectionElem = editor.selection.getSelectionContainerElem(); + if ($selectionElem.getNodeName() === 'LI') { + $selectionElem = $selectionElem.parent(); + } + if (/^ol|ul$/i.test($selectionElem.getNodeName()) === false) { + return; + } + if ($selectionElem.equal($textElem)) { + // 证明是顶级标签,没有被

          包裹 + return; + } + var $parent = $selectionElem.parent(); + if ($parent.equal($textElem)) { + // $parent 是顶级标签,不能删除 + return; + } + + $selectionElem.insertAfter($parent); + $parent.remove(); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('insertUnOrderedList') || editor.cmd.queryCommandState('insertOrderedList')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - justify +*/ +// 构造函数 +function Justify(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('

          '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 100, + $title: $('

          对齐方式

          '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $(' 靠左'), value: 'justifyLeft' }, { $elem: $(' 居中'), value: 'justifyCenter' }, { $elem: $(' 靠右'), value: 'justifyRight' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 List 对象 + _this._command(value); + } + }); +} + +// 原型 +Justify.prototype = { + constructor: Justify, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do(value); + } +}; + +/* + menu - Forecolor +*/ +// 构造函数 +function ForeColor(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
          '); + this.type = 'droplist'; + + // 获取配置的颜色 + var config = editor.config; + var colors = config.colors || []; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 120, + $title: $('

          文字颜色

          '), + type: 'inline-block', // droplist 内容以 block 形式展示 + list: colors.map(function (color) { + return { $elem: $(''), value: color }; + }), + onClick: function onClick(value) { + // 注意 this 是指向当前的 ForeColor 对象 + _this._command(value); + } + }); +} + +// 原型 +ForeColor.prototype = { + constructor: ForeColor, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do('foreColor', value); + } +}; + +/* + menu - BackColor +*/ +// 构造函数 +function BackColor(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
          '); + this.type = 'droplist'; + + // 获取配置的颜色 + var config = editor.config; + var colors = config.colors || []; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 120, + $title: $('

          背景色

          '), + type: 'inline-block', // droplist 内容以 block 形式展示 + list: colors.map(function (color) { + return { $elem: $(''), value: color }; + }), + onClick: function onClick(value) { + // 注意 this 是指向当前的 BackColor 对象 + _this._command(value); + } + }); +} + +// 原型 +BackColor.prototype = { + constructor: BackColor, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do('backColor', value); + } +}; + +/* + menu - quote +*/ +// 构造函数 +function Quote(editor) { + this.editor = editor; + this.$elem = $('
          \n \n
          '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Quote.prototype = { + constructor: Quote, + + onClick: function onClick(e) { + var editor = this.editor; + var $selectionElem = editor.selection.getSelectionContainerElem(); + var nodeName = $selectionElem.getNodeName(); + + if (!UA.isIE()) { + if (nodeName === 'BLOCKQUOTE') { + // 撤销 quote + editor.cmd.do('formatBlock', '

          '); + } else { + // 转换为 quote + editor.cmd.do('formatBlock', '

          '); + } + return; + } + + // IE 中不支持 formatBlock
          ,要用其他方式兼容 + var content = void 0, + $targetELem = void 0; + if (nodeName === 'P') { + // 将 P 转换为 quote + content = $selectionElem.text(); + $targetELem = $('
          ' + content + '
          '); + $targetELem.insertAfter($selectionElem); + $selectionElem.remove(); + return; + } + if (nodeName === 'BLOCKQUOTE') { + // 撤销 quote + content = $selectionElem.text(); + $targetELem = $('

          ' + content + '

          '); + $targetELem.insertAfter($selectionElem); + $selectionElem.remove(); + } + }, + + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var reg = /^BLOCKQUOTE$/i; + var cmdValue = editor.cmd.queryCommandValue('formatBlock'); + if (reg.test(cmdValue)) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - code +*/ +// 构造函数 +function Code(editor) { + this.editor = editor; + this.$elem = $('
          \n \n
          '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Code.prototype = { + constructor: Code, + + onClick: function onClick(e) { + var editor = this.editor; + var $startElem = editor.selection.getSelectionStartElem(); + var $endElem = editor.selection.getSelectionEndElem(); + var isSeleEmpty = editor.selection.isSelectionEmpty(); + var selectionText = editor.selection.getSelectionText(); + var $code = void 0; + + if (!$startElem.equal($endElem)) { + // 跨元素选择,不做处理 + editor.selection.restoreSelection(); + return; + } + if (!isSeleEmpty) { + // 选取不是空,用 包裹即可 + $code = $('' + selectionText + ''); + editor.cmd.do('insertElem', $code); + editor.selection.createRangeByElem($code, false); + editor.selection.restoreSelection(); + return; + } + + // 选取是空,且没有夸元素选择,则插入
          
          +        if (this._active) {
          +            // 选中状态,将编辑内容
          +            this._createPanel($startElem.html());
          +        } else {
          +            // 未选中状态,将创建内容
          +            this._createPanel();
          +        }
          +    },
          +
          +    _createPanel: function _createPanel(value) {
          +        var _this = this;
          +
          +        // value - 要编辑的内容
          +        value = value || '';
          +        var type = !value ? 'new' : 'edit';
          +        var textId = getRandom('texxt');
          +        var btnId = getRandom('btn');
          +
          +        var panel = new Panel(this, {
          +            width: 500,
          +            // 一个 Panel 包含多个 tab
          +            tabs: [{
          +                // 标题
          +                title: '插入代码',
          +                // 模板
          +                tpl: '
          \n \n
          \n \n
          \n
          ', + // 事件绑定 + events: [ + // 插入代码 + { + selector: '#' + btnId, + type: 'click', + fn: function fn() { + var $text = $('#' + textId); + var text = $text.val() || $text.html(); + text = replaceHtmlSymbol(text); + if (type === 'new') { + // 新插入 + _this._insertCode(text); + } else { + // 编辑更新 + _this._updateCode(text); + } + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // first tab end + ] // tabs end + }); // new Panel end + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入代码 + _insertCode: function _insertCode(value) { + var editor = this.editor; + editor.cmd.do('insertHTML', '
          ' + value + '


          '); + }, + + // 更新代码 + _updateCode: function _updateCode(value) { + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + $selectionELem.html(value); + editor.selection.restoreSelection(); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var $parentElem = $selectionELem.parent(); + if ($selectionELem.getNodeName() === 'CODE' && $parentElem.getNodeName() === 'PRE') { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - emoticon +*/ +// 构造函数 +function Emoticon(editor) { + this.editor = editor; + this.$elem = $('
          \n \n
          '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Emoticon.prototype = { + constructor: Emoticon, + + onClick: function onClick() { + this._createPanel(); + }, + + _createPanel: function _createPanel() { + var _this = this; + + var editor = this.editor; + var config = editor.config; + // 获取表情配置 + var emotions = config.emotions || []; + + // 创建表情 dropPanel 的配置 + var tabConfig = []; + emotions.forEach(function (emotData) { + var emotType = emotData.type; + var content = emotData.content || []; + + // 这一组表情最终拼接出来的 html + var faceHtml = ''; + + // emoji 表情 + if (emotType === 'emoji') { + content.forEach(function (item) { + if (item) { + faceHtml += '' + item + ''; + } + }); + } + // 图片表情 + if (emotType === 'image') { + content.forEach(function (item) { + var src = item.src; + var alt = item.alt; + if (src) { + // 加一个 data-w-e 属性,点击图片的时候不再提示编辑图片 + faceHtml += '' + alt + ''; + } + }); + } + + tabConfig.push({ + title: emotData.title, + tpl: '
          ' + faceHtml + '
          ', + events: [{ + selector: 'span.w-e-item', + type: 'click', + fn: function fn(e) { + var target = e.target; + var $target = $(target); + var nodeName = $target.getNodeName(); + + var insertHtml = void 0; + if (nodeName === 'IMG') { + // 插入图片 + insertHtml = $target.parent().html(); + } else { + // 插入 emoji + insertHtml = '' + $target.html() + ''; + } + + _this._insert(insertHtml); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + }); + }); + + var panel = new Panel(this, { + width: 300, + height: 200, + // 一个 Panel 包含多个 tab + tabs: tabConfig + }); + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入表情 + _insert: function _insert(emotHtml) { + var editor = this.editor; + editor.cmd.do('insertHTML', emotHtml); + } +}; + +/* + menu - table +*/ +// 构造函数 +function Table(editor) { + this.editor = editor; + this.$elem = $('
          '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Table.prototype = { + constructor: Table, + + onClick: function onClick() { + if (this._active) { + // 编辑现有表格 + this._createEditPanel(); + } else { + // 插入新表格 + this._createInsertPanel(); + } + }, + + // 创建插入新表格的 panel + _createInsertPanel: function _createInsertPanel() { + var _this = this; + + // 用到的 id + var btnInsertId = getRandom('btn'); + var textRowNum = getRandom('row'); + var textColNum = getRandom('col'); + + var panel = new Panel(this, { + width: 250, + // panel 包含多个 tab + tabs: [{ + // 标题 + title: '插入表格', + // 模板 + tpl: '
          \n

          \n \u521B\u5EFA\n \n \u884C\n \n \u5217\u7684\u8868\u683C\n

          \n
          \n \n
          \n
          ', + // 事件绑定 + events: [{ + // 点击按钮,插入表格 + selector: '#' + btnInsertId, + type: 'click', + fn: function fn() { + var rowNum = parseInt($('#' + textRowNum).val()); + var colNum = parseInt($('#' + textColNum).val()); + + if (rowNum && colNum && rowNum > 0 && colNum > 0) { + // form 数据有效 + _this._insert(rowNum, colNum); + } + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // first tab end + ] // tabs end + }); // panel end + + // 展示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入表格 + _insert: function _insert(rowNum, colNum) { + // 拼接 table 模板 + var r = void 0, + c = void 0; + var html = ''; + for (r = 0; r < rowNum; r++) { + html += ''; + if (r === 0) { + for (c = 0; c < colNum; c++) { + html += ''; + } + } else { + for (c = 0; c < colNum; c++) { + html += ''; + } + } + html += ''; + } + html += '
            


          '; + + // 执行命令 + var editor = this.editor; + editor.cmd.do('insertHTML', html); + + // 防止 firefox 下出现 resize 的控制点 + editor.cmd.do('enableObjectResizing', false); + editor.cmd.do('enableInlineTableEditing', false); + }, + + // 创建编辑表格的 panel + _createEditPanel: function _createEditPanel() { + var _this2 = this; + + // 可用的 id + var addRowBtnId = getRandom('add-row'); + var addColBtnId = getRandom('add-col'); + var delRowBtnId = getRandom('del-row'); + var delColBtnId = getRandom('del-col'); + var delTableBtnId = getRandom('del-table'); + + // 创建 panel 对象 + var panel = new Panel(this, { + width: 320, + // panel 包含多个 tab + tabs: [{ + // 标题 + title: '编辑表格', + // 模板 + tpl: '
          \n
          \n \n \n \n \n
          \n
          \n \n \n
          ', + // 事件绑定 + events: [{ + // 增加行 + selector: '#' + addRowBtnId, + type: 'click', + fn: function fn() { + _this2._addRow(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 增加列 + selector: '#' + addColBtnId, + type: 'click', + fn: function fn() { + _this2._addCol(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 删除行 + selector: '#' + delRowBtnId, + type: 'click', + fn: function fn() { + _this2._delRow(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 删除列 + selector: '#' + delColBtnId, + type: 'click', + fn: function fn() { + _this2._delCol(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 删除表格 + selector: '#' + delTableBtnId, + type: 'click', + fn: function fn() { + _this2._delTable(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + }] + }); + // 显示 panel + panel.show(); + }, + + // 获取选中的单元格的位置信息 + _getLocationData: function _getLocationData() { + var result = {}; + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var nodeName = $selectionELem.getNodeName(); + if (nodeName !== 'TD' && nodeName !== 'TH') { + return; + } + + // 获取 td index + var $tr = $selectionELem.parent(); + var $tds = $tr.children(); + var tdLength = $tds.length; + $tds.forEach(function (td, index) { + if (td === $selectionELem[0]) { + // 记录并跳出循环 + result.td = { + index: index, + elem: td, + length: tdLength + }; + return false; + } + }); + + // 获取 tr index + var $tbody = $tr.parent(); + var $trs = $tbody.children(); + var trLength = $trs.length; + $trs.forEach(function (tr, index) { + if (tr === $tr[0]) { + // 记录并跳出循环 + result.tr = { + index: index, + elem: tr, + length: trLength + }; + return false; + } + }); + + // 返回结果 + return result; + }, + + // 增加行 + _addRow: function _addRow() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var $currentTr = $(trData.elem); + var tdData = locationData.td; + var tdLength = tdData.length; + + // 拼接即将插入的字符串 + var newTr = document.createElement('tr'); + var tpl = '', + i = void 0; + for (i = 0; i < tdLength; i++) { + tpl += ' '; + } + newTr.innerHTML = tpl; + // 插入 + $(newTr).insertAfter($currentTr); + }, + + // 增加列 + _addCol: function _addCol() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var tdData = locationData.td; + var tdIndex = tdData.index; + var $currentTr = $(trData.elem); + var $trParent = $currentTr.parent(); + var $trs = $trParent.children(); + + // 遍历所有行 + $trs.forEach(function (tr) { + var $tr = $(tr); + var $tds = $tr.children(); + var $currentTd = $tds.get(tdIndex); + var name = $currentTd.getNodeName().toLowerCase(); + + // new 一个 td,并插入 + var newTd = document.createElement(name); + $(newTd).insertAfter($currentTd); + }); + }, + + // 删除行 + _delRow: function _delRow() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var $currentTr = $(trData.elem); + $currentTr.remove(); + }, + + // 删除列 + _delCol: function _delCol() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var tdData = locationData.td; + var tdIndex = tdData.index; + var $currentTr = $(trData.elem); + var $trParent = $currentTr.parent(); + var $trs = $trParent.children(); + + // 遍历所有行 + $trs.forEach(function (tr) { + var $tr = $(tr); + var $tds = $tr.children(); + var $currentTd = $tds.get(tdIndex); + // 删除 + $currentTd.remove(); + }); + }, + + // 删除表格 + _delTable: function _delTable() { + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var $table = $selectionELem.parentUntil('table'); + if (!$table) { + return; + } + $table.remove(); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var nodeName = $selectionELem.getNodeName(); + if (nodeName === 'TD' || nodeName === 'TH') { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - video +*/ +// 构造函数 +function Video(editor) { + this.editor = editor; + this.$elem = $('
          '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Video.prototype = { + constructor: Video, + + onClick: function onClick() { + this._createPanel(); + }, + + _createPanel: function _createPanel() { + var _this = this; + + // 创建 id + var textValId = getRandom('text-val'); + var btnId = getRandom('btn'); + + // 创建 panel + var panel = new Panel(this, { + width: 350, + // 一个 panel 多个 tab + tabs: [{ + // 标题 + title: '插入视频', + // 模板 + tpl: '
          \n \n
          \n \n
          \n
          ', + // 事件绑定 + events: [{ + selector: '#' + btnId, + type: 'click', + fn: function fn() { + var $text = $('#' + textValId); + var val = $text.val().trim(); + + // 测试用视频地址 + // + + if (val) { + // 插入视频 + _this._insert(val); + } + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // first tab end + ] // tabs end + }); // panel end + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入视频 + _insert: function _insert(val) { + var editor = this.editor; + editor.cmd.do('insertHTML', val + '


          '); + } +}; + +/* + menu - img +*/ +// 构造函数 +function Image(editor) { + this.editor = editor; + var imgMenuId = getRandom('w-e-img'); + this.$elem = $('
          '); + editor.imgMenuId = imgMenuId; + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Image.prototype = { + constructor: Image, + + onClick: function onClick() { + var editor = this.editor; + var config = editor.config; + if (config.qiniu) { + return; + } + if (this._active) { + this._createEditPanel(); + } else { + this._createInsertPanel(); + } + }, + + _createEditPanel: function _createEditPanel() { + var editor = this.editor; + + // id + var width30 = getRandom('width-30'); + var width50 = getRandom('width-50'); + var width100 = getRandom('width-100'); + var delBtn = getRandom('del-btn'); + + // tab 配置 + var tabsConfig = [{ + title: '编辑图片', + tpl: '
          \n
          \n \u6700\u5927\u5BBD\u5EA6\uFF1A\n \n \n \n
          \n
          \n \n \n
          ', + events: [{ + selector: '#' + width30, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.css('max-width', '30%'); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + selector: '#' + width50, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.css('max-width', '50%'); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + selector: '#' + width100, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.css('max-width', '100%'); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + selector: '#' + delBtn, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.remove(); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + }]; + + // 创建 panel 并显示 + var panel = new Panel(this, { + width: 300, + tabs: tabsConfig + }); + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + _createInsertPanel: function _createInsertPanel() { + var editor = this.editor; + var uploadImg = editor.uploadImg; + var config = editor.config; + + // id + var upTriggerId = getRandom('up-trigger'); + var upFileId = getRandom('up-file'); + var linkUrlId = getRandom('link-url'); + var linkBtnId = getRandom('link-btn'); + + // tabs 的配置 + var tabsConfig = [{ + title: '上传图片', + tpl: '
          \n
          \n \n
          \n
          \n \n
          \n
          ', + events: [{ + // 触发选择图片 + selector: '#' + upTriggerId, + type: 'click', + fn: function fn() { + var $file = $('#' + upFileId); + var fileElem = $file[0]; + if (fileElem) { + fileElem.click(); + } else { + // 返回 true 可关闭 panel + return true; + } + } + }, { + // 选择图片完毕 + selector: '#' + upFileId, + type: 'change', + fn: function fn() { + var $file = $('#' + upFileId); + var fileElem = $file[0]; + if (!fileElem) { + // 返回 true 可关闭 panel + return true; + } + + // 获取选中的 file 对象列表 + var fileList = fileElem.files; + if (fileList.length) { + uploadImg.uploadImg(fileList); + } + + // 返回 true 可关闭 panel + return true; + } + }] + }, // first tab end + { + title: '网络图片', + tpl: '
          \n \n
          \n \n
          \n
          ', + events: [{ + selector: '#' + linkBtnId, + type: 'click', + fn: function fn() { + var $linkUrl = $('#' + linkUrlId); + var url = $linkUrl.val().trim(); + + if (url) { + uploadImg.insertLinkImg(url); + } + + // 返回 true 表示函数执行结束之后关闭 panel + return true; + } + }] + } // second tab end + ]; // tabs end + + // 判断 tabs 的显示 + var tabsConfigResult = []; + if ((config.uploadImgShowBase64 || config.uploadImgServer || config.customUploadImg) && window.FileReader) { + // 显示“上传图片” + tabsConfigResult.push(tabsConfig[0]); + } + if (config.showLinkImg) { + // 显示“网络图片” + tabsConfigResult.push(tabsConfig[1]); + } + + // 创建 panel 并显示 + var panel = new Panel(this, { + width: 300, + tabs: tabsConfigResult + }); + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor._selectedImg) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + 所有菜单的汇总 +*/ + +// 存储菜单的构造函数 +var MenuConstructors = {}; + +MenuConstructors.bold = Bold; + +MenuConstructors.head = Head; + +MenuConstructors.fontSize = FontSize; + +MenuConstructors.fontName = FontName; + +MenuConstructors.link = Link; + +MenuConstructors.italic = Italic; + +MenuConstructors.redo = Redo; + +MenuConstructors.strikeThrough = StrikeThrough; + +MenuConstructors.underline = Underline; + +MenuConstructors.undo = Undo; + +MenuConstructors.list = List; + +MenuConstructors.justify = Justify; + +MenuConstructors.foreColor = ForeColor; + +MenuConstructors.backColor = BackColor; + +MenuConstructors.quote = Quote; + +MenuConstructors.code = Code; + +MenuConstructors.emoticon = Emoticon; + +MenuConstructors.table = Table; + +MenuConstructors.video = Video; + +MenuConstructors.image = Image; + +/* + 菜单集合 +*/ +// 构造函数 +function Menus(editor) { + this.editor = editor; + this.menus = {}; +} + +// 修改原型 +Menus.prototype = { + constructor: Menus, + + // 初始化菜单 + init: function init() { + var _this = this; + + var editor = this.editor; + var config = editor.config || {}; + var configMenus = config.menus || []; // 获取配置中的菜单 + + // 根据配置信息,创建菜单 + configMenus.forEach(function (menuKey) { + var MenuConstructor = MenuConstructors[menuKey]; + if (MenuConstructor && typeof MenuConstructor === 'function') { + // 创建单个菜单 + _this.menus[menuKey] = new MenuConstructor(editor); + } + }); + + // 添加到菜单栏 + this._addToToolbar(); + + // 绑定事件 + this._bindEvent(); + }, + + // 添加到菜单栏 + _addToToolbar: function _addToToolbar() { + var editor = this.editor; + var $toolbarElem = editor.$toolbarElem; + var menus = this.menus; + var config = editor.config; + // config.zIndex 是配置的编辑区域的 z-index,菜单的 z-index 得在其基础上 +1 + var zIndex = config.zIndex + 1; + objForEach(menus, function (key, menu) { + var $elem = menu.$elem; + if ($elem) { + // 设置 z-index + $elem.css('z-index', zIndex); + $toolbarElem.append($elem); + } + }); + }, + + // 绑定菜单 click mouseenter 事件 + _bindEvent: function _bindEvent() { + var menus = this.menus; + var editor = this.editor; + objForEach(menus, function (key, menu) { + var type = menu.type; + if (!type) { + return; + } + var $elem = menu.$elem; + var droplist = menu.droplist; + var panel = menu.panel; + + // 点击类型,例如 bold + if (type === 'click' && menu.onClick) { + $elem.on('click', function (e) { + if (editor.selection.getRange() == null) { + return; + } + menu.onClick(e); + }); + } + + // 下拉框,例如 head + if (type === 'droplist' && droplist) { + $elem.on('mouseenter', function (e) { + if (editor.selection.getRange() == null) { + return; + } + // 显示 + droplist.showTimeoutId = setTimeout(function () { + droplist.show(); + }, 200); + }).on('mouseleave', function (e) { + // 隐藏 + droplist.hideTimeoutId = setTimeout(function () { + droplist.hide(); + }, 0); + }); + } + + // 弹框类型,例如 link + if (type === 'panel' && menu.onClick) { + $elem.on('click', function (e) { + e.stopPropagation(); + if (editor.selection.getRange() == null) { + return; + } + // 在自定义事件中显示 panel + menu.onClick(e); + }); + } + }); + }, + + // 尝试修改菜单状态 + changeActive: function changeActive() { + var menus = this.menus; + objForEach(menus, function (key, menu) { + if (menu.tryChangeActive) { + setTimeout(function () { + menu.tryChangeActive(); + }, 100); + } + }); + } +}; + +/* + 粘贴信息的处理 +*/ + +// 获取粘贴的纯文本 +function getPasteText(e) { + var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData; + var pasteText = void 0; + if (clipboardData == null) { + pasteText = window.clipboardData && window.clipboardData.getData('text'); + } else { + pasteText = clipboardData.getData('text/plain'); + } + + return replaceHtmlSymbol(pasteText); +} + +// 获取粘贴的html +function getPasteHtml(e, filterStyle, ignoreImg) { + var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData; + var pasteText = void 0, + pasteHtml = void 0; + if (clipboardData == null) { + pasteText = window.clipboardData && window.clipboardData.getData('text'); + } else { + pasteText = clipboardData.getData('text/plain'); + pasteHtml = clipboardData.getData('text/html'); + } + if (!pasteHtml && pasteText) { + pasteHtml = '

          ' + replaceHtmlSymbol(pasteText) + '

          '; + } + if (!pasteHtml) { + return; + } + + // 过滤word中状态过来的无用字符 + var docSplitHtml = pasteHtml.split(''); + if (docSplitHtml.length === 2) { + pasteHtml = docSplitHtml[0]; + } + + // 过滤无用标签 + pasteHtml = pasteHtml.replace(/<(meta|script|link).+?>/igm, ''); + // 去掉注释 + pasteHtml = pasteHtml.replace(//mg, ''); + // 过滤 data-xxx 属性 + pasteHtml = pasteHtml.replace(/\s?data-.+?=('|").+?('|")/igm, ''); + + if (ignoreImg) { + // 忽略图片 + pasteHtml = pasteHtml.replace(//igm, ''); + } + + if (filterStyle) { + // 过滤样式 + pasteHtml = pasteHtml.replace(/\s?(class|style)=('|").*?('|")/igm, ''); + } else { + // 保留样式 + pasteHtml = pasteHtml.replace(/\s?class=('|").*?('|")/igm, ''); + } + + return pasteHtml; +} + +// 获取粘贴的图片文件 +function getPasteImgs(e) { + var result = []; + var txt = getPasteText(e); + if (txt) { + // 有文字,就忽略图片 + return result; + } + + var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData || {}; + var items = clipboardData.items; + if (!items) { + return result; + } + + objForEach(items, function (key, value) { + var type = value.type; + if (/image/i.test(type)) { + result.push(value.getAsFile()); + } + }); + + return result; +} + +/* + 编辑区域 +*/ + +// 获取一个 elem.childNodes 的 JSON 数据 +function getChildrenJSON($elem) { + var result = []; + var $children = $elem.childNodes() || []; // 注意 childNodes() 可以获取文本节点 + $children.forEach(function (curElem) { + var elemResult = void 0; + var nodeType = curElem.nodeType; + + // 文本节点 + if (nodeType === 3) { + elemResult = curElem.textContent; + elemResult = replaceHtmlSymbol(elemResult); + } + + // 普通 DOM 节点 + if (nodeType === 1) { + elemResult = {}; + + // tag + elemResult.tag = curElem.nodeName.toLowerCase(); + // attr + var attrData = []; + var attrList = curElem.attributes || {}; + var attrListLength = attrList.length || 0; + for (var i = 0; i < attrListLength; i++) { + var attr = attrList[i]; + attrData.push({ + name: attr.name, + value: attr.value + }); + } + elemResult.attrs = attrData; + // children(递归) + elemResult.children = getChildrenJSON($(curElem)); + } + + result.push(elemResult); + }); + return result; +} + +// 构造函数 +function Text(editor) { + this.editor = editor; +} + +// 修改原型 +Text.prototype = { + constructor: Text, + + // 初始化 + init: function init() { + // 绑定事件 + this._bindEvent(); + }, + + // 清空内容 + clear: function clear() { + this.html('


          '); + }, + + // 获取 设置 html + html: function html(val) { + var editor = this.editor; + var $textElem = editor.$textElem; + var html = void 0; + if (val == null) { + html = $textElem.html(); + // 未选中任何内容的时候点击“加粗”或者“斜体”等按钮,就得需要一个空的占位符 ​ ,这里替换掉 + html = html.replace(/\u200b/gm, ''); + return html; + } else { + $textElem.html(val); + + // 初始化选取,将光标定位到内容尾部 + editor.initSelection(); + } + }, + + // 获取 JSON + getJSON: function getJSON() { + var editor = this.editor; + var $textElem = editor.$textElem; + return getChildrenJSON($textElem); + }, + + // 获取 设置 text + text: function text(val) { + var editor = this.editor; + var $textElem = editor.$textElem; + var text = void 0; + if (val == null) { + text = $textElem.text(); + // 未选中任何内容的时候点击“加粗”或者“斜体”等按钮,就得需要一个空的占位符 ​ ,这里替换掉 + text = text.replace(/\u200b/gm, ''); + return text; + } else { + $textElem.text('

          ' + val + '

          '); + + // 初始化选取,将光标定位到内容尾部 + editor.initSelection(); + } + }, + + // 追加内容 + append: function append(html) { + var editor = this.editor; + var $textElem = editor.$textElem; + $textElem.append($(html)); + + // 初始化选取,将光标定位到内容尾部 + editor.initSelection(); + }, + + // 绑定事件 + _bindEvent: function _bindEvent() { + // 实时保存选取 + this._saveRangeRealTime(); + + // 按回车建时的特殊处理 + this._enterKeyHandle(); + + // 清空时保留


          + this._clearHandle(); + + // 粘贴事件(粘贴文字,粘贴图片) + this._pasteHandle(); + + // tab 特殊处理 + this._tabHandle(); + + // img 点击 + this._imgHandle(); + + // 拖拽事件 + this._dragHandle(); + }, + + // 实时保存选取 + _saveRangeRealTime: function _saveRangeRealTime() { + var editor = this.editor; + var $textElem = editor.$textElem; + + // 保存当前的选区 + function saveRange(e) { + // 随时保存选区 + editor.selection.saveRange(); + // 更新按钮 ative 状态 + editor.menus.changeActive(); + } + // 按键后保存 + $textElem.on('keyup', saveRange); + $textElem.on('mousedown', function (e) { + // mousedown 状态下,鼠标滑动到编辑区域外面,也需要保存选区 + $textElem.on('mouseleave', saveRange); + }); + $textElem.on('mouseup', function (e) { + saveRange(); + // 在编辑器区域之内完成点击,取消鼠标滑动到编辑区外面的事件 + $textElem.off('mouseleave', saveRange); + }); + }, + + // 按回车键时的特殊处理 + _enterKeyHandle: function _enterKeyHandle() { + var editor = this.editor; + var $textElem = editor.$textElem; + + function insertEmptyP($selectionElem) { + var $p = $('


          '); + $p.insertBefore($selectionElem); + editor.selection.createRangeByElem($p, true); + editor.selection.restoreSelection(); + $selectionElem.remove(); + } + + // 将回车之后生成的非

          的顶级标签,改为

          + function pHandle(e) { + var $selectionElem = editor.selection.getSelectionContainerElem(); + var $parentElem = $selectionElem.parent(); + + if ($parentElem.html() === '
          ') { + // 回车之前光标所在一个

          .....

          ,忽然回车生成一个空的


          + // 而且继续回车跳不出去,因此只能特殊处理 + insertEmptyP($selectionElem); + return; + } + + if (!$parentElem.equal($textElem)) { + // 不是顶级标签 + return; + } + + var nodeName = $selectionElem.getNodeName(); + if (nodeName === 'P') { + // 当前的标签是 P ,不用做处理 + return; + } + + if ($selectionElem.text()) { + // 有内容,不做处理 + return; + } + + // 插入

          ,并将选取定位到

          ,删除当前标签 + insertEmptyP($selectionElem); + } + + $textElem.on('keyup', function (e) { + if (e.keyCode !== 13) { + // 不是回车键 + return; + } + // 将回车之后生成的非

          的顶级标签,改为

          + pHandle(e); + }); + + //

          回车时 特殊处理 + function codeHandle(e) { + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var $parentElem = $selectionElem.parent(); + var selectionNodeName = $selectionElem.getNodeName(); + var parentNodeName = $parentElem.getNodeName(); + + if (selectionNodeName !== 'CODE' || parentNodeName !== 'PRE') { + // 不符合要求 忽略 + return; + } + + if (!editor.cmd.queryCommandSupported('insertHTML')) { + // 必须原生支持 insertHTML 命令 + return; + } + + // 处理:光标定位到代码末尾,联系点击两次回车,即跳出代码块 + if (editor._willBreakCode === true) { + // 此时可以跳出代码块 + // 插入

          ,并将选取定位到

          + var $p = $('


          '); + $p.insertAfter($parentElem); + editor.selection.createRangeByElem($p, true); + editor.selection.restoreSelection(); + + // 修改状态 + editor._willBreakCode = false; + + e.preventDefault(); + return; + } + + var _startOffset = editor.selection.getRange().startOffset; + + // 处理:回车时,不能插入
          而是插入 \n ,因为是在 pre 标签里面 + editor.cmd.do('insertHTML', '\n'); + editor.selection.saveRange(); + if (editor.selection.getRange().startOffset === _startOffset) { + // 没起作用,再来一遍 + editor.cmd.do('insertHTML', '\n'); + } + + var codeLength = $selectionElem.html().length; + if (editor.selection.getRange().startOffset + 1 === codeLength) { + // 说明光标在代码最后的位置,执行了回车操作 + // 记录下来,以便下次回车时候跳出 code + editor._willBreakCode = true; + } + + // 阻止默认行为 + e.preventDefault(); + } + + $textElem.on('keydown', function (e) { + if (e.keyCode !== 13) { + // 不是回车键 + // 取消即将跳转代码块的记录 + editor._willBreakCode = false; + return; + } + //
          回车时 特殊处理 + codeHandle(e); + }); + }, + + // 清空时保留


          + _clearHandle: function _clearHandle() { + var editor = this.editor; + var $textElem = editor.$textElem; + + $textElem.on('keydown', function (e) { + if (e.keyCode !== 8) { + return; + } + var txtHtml = $textElem.html().toLowerCase().trim(); + if (txtHtml === '


          ') { + // 最后剩下一个空行,就不再删除了 + e.preventDefault(); + return; + } + }); + + $textElem.on('keyup', function (e) { + if (e.keyCode !== 8) { + return; + } + var $p = void 0; + var txtHtml = $textElem.html().toLowerCase().trim(); + + // firefox 时用 txtHtml === '
          ' 判断,其他用 !txtHtml 判断 + if (!txtHtml || txtHtml === '
          ') { + // 内容空了 + $p = $('


          '); + $textElem.html(''); // 一定要先清空,否则在 firefox 下有问题 + $textElem.append($p); + editor.selection.createRangeByElem($p, false, true); + editor.selection.restoreSelection(); + } + }); + }, + + // 粘贴事件(粘贴文字 粘贴图片) + _pasteHandle: function _pasteHandle() { + var editor = this.editor; + var config = editor.config; + var pasteFilterStyle = config.pasteFilterStyle; + var pasteTextHandle = config.pasteTextHandle; + var ignoreImg = config.pasteIgnoreImg; + var $textElem = editor.$textElem; + + // 粘贴图片、文本的事件,每次只能执行一个 + // 判断该次粘贴事件是否可以执行 + var pasteTime = 0; + function canDo() { + var now = Date.now(); + var flag = false; + if (now - pasteTime >= 100) { + // 间隔大于 100 ms ,可以执行 + flag = true; + } + pasteTime = now; + return flag; + } + function resetTime() { + pasteTime = 0; + } + + // 粘贴文字 + $textElem.on('paste', function (e) { + if (UA.isIE()) { + return; + } else { + // 阻止默认行为,使用 execCommand 的粘贴命令 + e.preventDefault(); + } + + // 粘贴图片和文本,只能同时使用一个 + if (!canDo()) { + return; + } + + // 获取粘贴的文字 + var pasteHtml = getPasteHtml(e, pasteFilterStyle, ignoreImg); + var pasteText = getPasteText(e); + pasteText = pasteText.replace(/\n/gm, '
          '); + + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var nodeName = $selectionElem.getNodeName(); + + // code 中只能粘贴纯文本 + if (nodeName === 'CODE' || nodeName === 'PRE') { + if (pasteTextHandle && isFunction(pasteTextHandle)) { + // 用户自定义过滤处理粘贴内容 + pasteText = '' + (pasteTextHandle(pasteText) || ''); + } + editor.cmd.do('insertHTML', '

          ' + pasteText + '

          '); + return; + } + + // 先放开注释,有问题再追查 ———— + // // 表格中忽略,可能会出现异常问题 + // if (nodeName === 'TD' || nodeName === 'TH') { + // return + // } + + if (!pasteHtml) { + // 没有内容,可继续执行下面的图片粘贴 + resetTime(); + return; + } + try { + // firefox 中,获取的 pasteHtml 可能是没有
            包裹的
          • + // 因此执行 insertHTML 会报错 + if (pasteTextHandle && isFunction(pasteTextHandle)) { + // 用户自定义过滤处理粘贴内容 + pasteHtml = '' + (pasteTextHandle(pasteHtml) || ''); + } + editor.cmd.do('insertHTML', pasteHtml); + } catch (ex) { + // 此时使用 pasteText 来兼容一下 + if (pasteTextHandle && isFunction(pasteTextHandle)) { + // 用户自定义过滤处理粘贴内容 + pasteText = '' + (pasteTextHandle(pasteText) || ''); + } + editor.cmd.do('insertHTML', '

            ' + pasteText + '

            '); + } + }); + + // 粘贴图片 + $textElem.on('paste', function (e) { + if (UA.isIE()) { + return; + } else { + e.preventDefault(); + } + + // 粘贴图片和文本,只能同时使用一个 + if (!canDo()) { + return; + } + + // 获取粘贴的图片 + var pasteFiles = getPasteImgs(e); + if (!pasteFiles || !pasteFiles.length) { + return; + } + + // 获取当前的元素 + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var nodeName = $selectionElem.getNodeName(); + + // code 中粘贴忽略 + if (nodeName === 'CODE' || nodeName === 'PRE') { + return; + } + + // 上传图片 + var uploadImg = editor.uploadImg; + uploadImg.uploadImg(pasteFiles); + }); + }, + + // tab 特殊处理 + _tabHandle: function _tabHandle() { + var editor = this.editor; + var $textElem = editor.$textElem; + + $textElem.on('keydown', function (e) { + if (e.keyCode !== 9) { + return; + } + if (!editor.cmd.queryCommandSupported('insertHTML')) { + // 必须原生支持 insertHTML 命令 + return; + } + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var $parentElem = $selectionElem.parent(); + var selectionNodeName = $selectionElem.getNodeName(); + var parentNodeName = $parentElem.getNodeName(); + + if (selectionNodeName === 'CODE' && parentNodeName === 'PRE') { + //
             里面
            +                editor.cmd.do('insertHTML', '    ');
            +            } else {
            +                // 普通文字
            +                editor.cmd.do('insertHTML', '    ');
            +            }
            +
            +            e.preventDefault();
            +        });
            +    },
            +
            +    // img 点击
            +    _imgHandle: function _imgHandle() {
            +        var editor = this.editor;
            +        var $textElem = editor.$textElem;
            +
            +        // 为图片增加 selected 样式
            +        $textElem.on('click', 'img', function (e) {
            +            var img = this;
            +            var $img = $(img);
            +
            +            if ($img.attr('data-w-e') === '1') {
            +                // 是表情图片,忽略
            +                return;
            +            }
            +
            +            // 记录当前点击过的图片
            +            editor._selectedImg = $img;
            +
            +            // 修改选区并 restore ,防止用户此时点击退格键,会删除其他内容
            +            editor.selection.createRangeByElem($img);
            +            editor.selection.restoreSelection();
            +        });
            +
            +        // 去掉图片的 selected 样式
            +        $textElem.on('click  keyup', function (e) {
            +            if (e.target.matches('img')) {
            +                // 点击的是图片,忽略
            +                return;
            +            }
            +            // 删除记录
            +            editor._selectedImg = null;
            +        });
            +    },
            +
            +    // 拖拽事件
            +    _dragHandle: function _dragHandle() {
            +        var editor = this.editor;
            +
            +        // 禁用 document 拖拽事件
            +        var $document = $(document);
            +        $document.on('dragleave drop dragenter dragover', function (e) {
            +            e.preventDefault();
            +        });
            +
            +        // 添加编辑区域拖拽事件
            +        var $textElem = editor.$textElem;
            +        $textElem.on('drop', function (e) {
            +            e.preventDefault();
            +            var files = e.dataTransfer && e.dataTransfer.files;
            +            if (!files || !files.length) {
            +                return;
            +            }
            +
            +            // 上传图片
            +            var uploadImg = editor.uploadImg;
            +            uploadImg.uploadImg(files);
            +        });
            +    }
            +};
            +
            +/*
            +    命令,封装 document.execCommand
            +*/
            +
            +// 构造函数
            +function Command(editor) {
            +    this.editor = editor;
            +}
            +
            +// 修改原型
            +Command.prototype = {
            +    constructor: Command,
            +
            +    // 执行命令
            +    do: function _do(name, value) {
            +        var editor = this.editor;
            +
            +        // 使用 styleWithCSS
            +        if (!editor._useStyleWithCSS) {
            +            document.execCommand('styleWithCSS', null, true);
            +            editor._useStyleWithCSS = true;
            +        }
            +
            +        // 如果无选区,忽略
            +        if (!editor.selection.getRange()) {
            +            return;
            +        }
            +
            +        // 恢复选取
            +        editor.selection.restoreSelection();
            +
            +        // 执行
            +        var _name = '_' + name;
            +        if (this[_name]) {
            +            // 有自定义事件
            +            this[_name](value);
            +        } else {
            +            // 默认 command
            +            this._execCommand(name, value);
            +        }
            +
            +        // 修改菜单状态
            +        editor.menus.changeActive();
            +
            +        // 最后,恢复选取保证光标在原来的位置闪烁
            +        editor.selection.saveRange();
            +        editor.selection.restoreSelection();
            +
            +        // 触发 onchange
            +        editor.change && editor.change();
            +    },
            +
            +    // 自定义 insertHTML 事件
            +    _insertHTML: function _insertHTML(html) {
            +        var editor = this.editor;
            +        var range = editor.selection.getRange();
            +
            +        if (this.queryCommandSupported('insertHTML')) {
            +            // W3C
            +            this._execCommand('insertHTML', html);
            +        } else if (range.insertNode) {
            +            // IE
            +            range.deleteContents();
            +            range.insertNode($(html)[0]);
            +        } else if (range.pasteHTML) {
            +            // IE <= 10
            +            range.pasteHTML(html);
            +        }
            +    },
            +
            +    // 插入 elem
            +    _insertElem: function _insertElem($elem) {
            +        var editor = this.editor;
            +        var range = editor.selection.getRange();
            +
            +        if (range.insertNode) {
            +            range.deleteContents();
            +            range.insertNode($elem[0]);
            +        }
            +    },
            +
            +    // 封装 execCommand
            +    _execCommand: function _execCommand(name, value) {
            +        document.execCommand(name, false, value);
            +    },
            +
            +    // 封装 document.queryCommandValue
            +    queryCommandValue: function queryCommandValue(name) {
            +        return document.queryCommandValue(name);
            +    },
            +
            +    // 封装 document.queryCommandState
            +    queryCommandState: function queryCommandState(name) {
            +        return document.queryCommandState(name);
            +    },
            +
            +    // 封装 document.queryCommandSupported
            +    queryCommandSupported: function queryCommandSupported(name) {
            +        return document.queryCommandSupported(name);
            +    }
            +};
            +
            +/*
            +    selection range API
            +*/
            +
            +// 构造函数
            +function API(editor) {
            +    this.editor = editor;
            +    this._currentRange = null;
            +}
            +
            +// 修改原型
            +API.prototype = {
            +    constructor: API,
            +
            +    // 获取 range 对象
            +    getRange: function getRange() {
            +        return this._currentRange;
            +    },
            +
            +    // 保存选区
            +    saveRange: function saveRange(_range) {
            +        if (_range) {
            +            // 保存已有选区
            +            this._currentRange = _range;
            +            return;
            +        }
            +
            +        // 获取当前的选区
            +        var selection = window.getSelection();
            +        if (selection.rangeCount === 0) {
            +            return;
            +        }
            +        var range = selection.getRangeAt(0);
            +
            +        // 判断选区内容是否在编辑内容之内
            +        var $containerElem = this.getSelectionContainerElem(range);
            +        if (!$containerElem) {
            +            return;
            +        }
            +
            +        // 判断选区内容是否在不可编辑区域之内
            +        if ($containerElem.attr('contenteditable') === 'false' || $containerElem.parentUntil('[contenteditable=false]')) {
            +            return;
            +        }
            +
            +        var editor = this.editor;
            +        var $textElem = editor.$textElem;
            +        if ($textElem.isContain($containerElem)) {
            +            // 是编辑内容之内的
            +            this._currentRange = range;
            +        }
            +    },
            +
            +    // 折叠选区
            +    collapseRange: function collapseRange(toStart) {
            +        if (toStart == null) {
            +            // 默认为 false
            +            toStart = false;
            +        }
            +        var range = this._currentRange;
            +        if (range) {
            +            range.collapse(toStart);
            +        }
            +    },
            +
            +    // 选中区域的文字
            +    getSelectionText: function getSelectionText() {
            +        var range = this._currentRange;
            +        if (range) {
            +            return this._currentRange.toString();
            +        } else {
            +            return '';
            +        }
            +    },
            +
            +    // 选区的 $Elem
            +    getSelectionContainerElem: function getSelectionContainerElem(range) {
            +        range = range || this._currentRange;
            +        var elem = void 0;
            +        if (range) {
            +            elem = range.commonAncestorContainer;
            +            return $(elem.nodeType === 1 ? elem : elem.parentNode);
            +        }
            +    },
            +    getSelectionStartElem: function getSelectionStartElem(range) {
            +        range = range || this._currentRange;
            +        var elem = void 0;
            +        if (range) {
            +            elem = range.startContainer;
            +            return $(elem.nodeType === 1 ? elem : elem.parentNode);
            +        }
            +    },
            +    getSelectionEndElem: function getSelectionEndElem(range) {
            +        range = range || this._currentRange;
            +        var elem = void 0;
            +        if (range) {
            +            elem = range.endContainer;
            +            return $(elem.nodeType === 1 ? elem : elem.parentNode);
            +        }
            +    },
            +
            +    // 选区是否为空
            +    isSelectionEmpty: function isSelectionEmpty() {
            +        var range = this._currentRange;
            +        if (range && range.startContainer) {
            +            if (range.startContainer === range.endContainer) {
            +                if (range.startOffset === range.endOffset) {
            +                    return true;
            +                }
            +            }
            +        }
            +        return false;
            +    },
            +
            +    // 恢复选区
            +    restoreSelection: function restoreSelection() {
            +        var selection = window.getSelection();
            +        selection.removeAllRanges();
            +        selection.addRange(this._currentRange);
            +    },
            +
            +    // 创建一个空白(即 ​ 字符)选区
            +    createEmptyRange: function createEmptyRange() {
            +        var editor = this.editor;
            +        var range = this.getRange();
            +        var $elem = void 0;
            +
            +        if (!range) {
            +            // 当前无 range
            +            return;
            +        }
            +        if (!this.isSelectionEmpty()) {
            +            // 当前选区必须没有内容才可以
            +            return;
            +        }
            +
            +        try {
            +            // 目前只支持 webkit 内核
            +            if (UA.isWebkit()) {
            +                // 插入 ​
            +                editor.cmd.do('insertHTML', '​');
            +                // 修改 offset 位置
            +                range.setEnd(range.endContainer, range.endOffset + 1);
            +                // 存储
            +                this.saveRange(range);
            +            } else {
            +                $elem = $('');
            +                editor.cmd.do('insertElem', $elem);
            +                this.createRangeByElem($elem, true);
            +            }
            +        } catch (ex) {
            +            // 部分情况下会报错,兼容一下
            +        }
            +    },
            +
            +    // 根据 $Elem 设置选区
            +    createRangeByElem: function createRangeByElem($elem, toStart, isContent) {
            +        // $elem - 经过封装的 elem
            +        // toStart - true 开始位置,false 结束位置
            +        // isContent - 是否选中Elem的内容
            +        if (!$elem.length) {
            +            return;
            +        }
            +
            +        var elem = $elem[0];
            +        var range = document.createRange();
            +
            +        if (isContent) {
            +            range.selectNodeContents(elem);
            +        } else {
            +            range.selectNode(elem);
            +        }
            +
            +        if (typeof toStart === 'boolean') {
            +            range.collapse(toStart);
            +        }
            +
            +        // 存储 range
            +        this.saveRange(range);
            +    }
            +};
            +
            +/*
            +    上传进度条
            +*/
            +
            +function Progress(editor) {
            +    this.editor = editor;
            +    this._time = 0;
            +    this._isShow = false;
            +    this._isRender = false;
            +    this._timeoutId = 0;
            +    this.$textContainer = editor.$textContainerElem;
            +    this.$bar = $('
            '); +} + +Progress.prototype = { + constructor: Progress, + + show: function show(progress) { + var _this = this; + + // 状态处理 + if (this._isShow) { + return; + } + this._isShow = true; + + // 渲染 + var $bar = this.$bar; + if (!this._isRender) { + var $textContainer = this.$textContainer; + $textContainer.append($bar); + } else { + this._isRender = true; + } + + // 改变进度(节流,100ms 渲染一次) + if (Date.now() - this._time > 100) { + if (progress <= 1) { + $bar.css('width', progress * 100 + '%'); + this._time = Date.now(); + } + } + + // 隐藏 + var timeoutId = this._timeoutId; + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function () { + _this._hide(); + }, 500); + }, + + _hide: function _hide() { + var $bar = this.$bar; + $bar.remove(); + + // 修改状态 + this._time = 0; + this._isShow = false; + this._isRender = false; + } +}; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { + return typeof obj; +} : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; +}; + +/* + 上传图片 +*/ + +// 构造函数 +function UploadImg(editor) { + this.editor = editor; +} + +// 原型 +UploadImg.prototype = { + constructor: UploadImg, + + // 根据 debug 弹出不同的信息 + _alert: function _alert(alertInfo, debugInfo) { + var editor = this.editor; + var debug = editor.config.debug; + var customAlert = editor.config.customAlert; + + if (debug) { + throw new Error('wangEditor: ' + (debugInfo || alertInfo)); + } else { + if (customAlert && typeof customAlert === 'function') { + customAlert(alertInfo); + } else { + alert(alertInfo); + } + } + }, + + // 根据链接插入图片 + insertLinkImg: function insertLinkImg(link) { + var _this2 = this; + + if (!link) { + return; + } + var editor = this.editor; + var config = editor.config; + + // 校验格式 + var linkImgCheck = config.linkImgCheck; + var checkResult = void 0; + if (linkImgCheck && typeof linkImgCheck === 'function') { + checkResult = linkImgCheck(link); + if (typeof checkResult === 'string') { + // 校验失败,提示信息 + alert(checkResult); + return; + } + } + + editor.cmd.do('insertHTML', ''); + + // 验证图片 url 是否有效,无效的话给出提示 + var img = document.createElement('img'); + img.onload = function () { + var callback = config.linkImgCallback; + if (callback && typeof callback === 'function') { + callback(link); + } + + img = null; + }; + img.onerror = function () { + img = null; + // 无法成功下载图片 + _this2._alert('插入图片错误', 'wangEditor: \u63D2\u5165\u56FE\u7247\u51FA\u9519\uFF0C\u56FE\u7247\u94FE\u63A5\u662F "' + link + '"\uFF0C\u4E0B\u8F7D\u8BE5\u94FE\u63A5\u5931\u8D25'); + return; + }; + img.onabort = function () { + img = null; + }; + img.src = link; + }, + + // 上传图片 + uploadImg: function uploadImg(files) { + var _this3 = this; + + if (!files || !files.length) { + return; + } + + // ------------------------------ 获取配置信息 ------------------------------ + var editor = this.editor; + var config = editor.config; + var uploadImgServer = config.uploadImgServer; + var uploadImgShowBase64 = config.uploadImgShowBase64; + + var maxSize = config.uploadImgMaxSize; + var maxSizeM = maxSize / 1024 / 1024; + var maxLength = config.uploadImgMaxLength || 10000; + var uploadFileName = config.uploadFileName || ''; + var uploadImgParams = config.uploadImgParams || {}; + var uploadImgParamsWithUrl = config.uploadImgParamsWithUrl; + var uploadImgHeaders = config.uploadImgHeaders || {}; + var hooks = config.uploadImgHooks || {}; + var timeout = config.uploadImgTimeout || 3000; + var withCredentials = config.withCredentials; + if (withCredentials == null) { + withCredentials = false; + } + var customUploadImg = config.customUploadImg; + + if (!customUploadImg) { + // 没有 customUploadImg 的情况下,需要如下两个配置才能继续进行图片上传 + if (!uploadImgServer && !uploadImgShowBase64) { + return; + } + } + + // ------------------------------ 验证文件信息 ------------------------------ + var resultFiles = []; + var errInfo = []; + arrForEach(files, function (file) { + var name = file.name; + var size = file.size; + + // chrome 低版本 name === undefined + if (!name || !size) { + return; + } + + if (/\.(jpg|jpeg|png|bmp|gif|webp)$/i.test(name) === false) { + // 后缀名不合法,不是图片 + errInfo.push('\u3010' + name + '\u3011\u4E0D\u662F\u56FE\u7247'); + return; + } + if (maxSize < size) { + // 上传图片过大 + errInfo.push('\u3010' + name + '\u3011\u5927\u4E8E ' + maxSizeM + 'M'); + return; + } + + // 验证通过的加入结果列表 + resultFiles.push(file); + }); + // 抛出验证信息 + if (errInfo.length) { + this._alert('图片验证未通过: \n' + errInfo.join('\n')); + return; + } + if (resultFiles.length > maxLength) { + this._alert('一次最多上传' + maxLength + '张图片'); + return; + } + + // ------------------------------ 自定义上传 ------------------------------ + if (customUploadImg && typeof customUploadImg === 'function') { + customUploadImg(resultFiles, this.insertLinkImg.bind(this)); + + // 阻止以下代码执行 + return; + } + + // 添加图片数据 + var formdata = new FormData(); + arrForEach(resultFiles, function (file) { + var name = uploadFileName || file.name; + formdata.append(name, file); + }); + + // ------------------------------ 上传图片 ------------------------------ + if (uploadImgServer && typeof uploadImgServer === 'string') { + // 添加参数 + var uploadImgServerArr = uploadImgServer.split('#'); + uploadImgServer = uploadImgServerArr[0]; + var uploadImgServerHash = uploadImgServerArr[1] || ''; + objForEach(uploadImgParams, function (key, val) { + // 因使用者反应,自定义参数不能默认 encode ,由 v3.1.1 版本开始注释掉 + // val = encodeURIComponent(val) + + // 第一,将参数拼接到 url 中 + if (uploadImgParamsWithUrl) { + if (uploadImgServer.indexOf('?') > 0) { + uploadImgServer += '&'; + } else { + uploadImgServer += '?'; + } + uploadImgServer = uploadImgServer + key + '=' + val; + } + + // 第二,将参数添加到 formdata 中 + formdata.append(key, val); + }); + if (uploadImgServerHash) { + uploadImgServer += '#' + uploadImgServerHash; + } + + // 定义 xhr + var xhr = new XMLHttpRequest(); + xhr.open('POST', uploadImgServer); + + // 设置超时 + xhr.timeout = timeout; + xhr.ontimeout = function () { + // hook - timeout + if (hooks.timeout && typeof hooks.timeout === 'function') { + hooks.timeout(xhr, editor); + } + + _this3._alert('上传图片超时'); + }; + + // 监控 progress + if (xhr.upload) { + xhr.upload.onprogress = function (e) { + var percent = void 0; + // 进度条 + var progressBar = new Progress(editor); + if (e.lengthComputable) { + percent = e.loaded / e.total; + progressBar.show(percent); + } + }; + } + + // 返回数据 + xhr.onreadystatechange = function () { + var result = void 0; + if (xhr.readyState === 4) { + if (xhr.status < 200 || xhr.status >= 300) { + // hook - error + if (hooks.error && typeof hooks.error === 'function') { + hooks.error(xhr, editor); + } + + // xhr 返回状态错误 + _this3._alert('上传图片发生错误', '\u4E0A\u4F20\u56FE\u7247\u53D1\u751F\u9519\u8BEF\uFF0C\u670D\u52A1\u5668\u8FD4\u56DE\u72B6\u6001\u662F ' + xhr.status); + return; + } + + result = xhr.responseText; + if ((typeof result === 'undefined' ? 'undefined' : _typeof(result)) !== 'object') { + try { + result = JSON.parse(result); + } catch (ex) { + // hook - fail + if (hooks.fail && typeof hooks.fail === 'function') { + hooks.fail(xhr, editor, result); + } + + _this3._alert('上传图片失败', '上传图片返回结果错误,返回结果是: ' + result); + return; + } + } + if (!hooks.customInsert && result.errno != '0') { + // hook - fail + if (hooks.fail && typeof hooks.fail === 'function') { + hooks.fail(xhr, editor, result); + } + + // 数据错误 + _this3._alert('上传图片失败', '上传图片返回结果错误,返回结果 errno=' + result.errno); + } else { + if (hooks.customInsert && typeof hooks.customInsert === 'function') { + // 使用者自定义插入方法 + hooks.customInsert(_this3.insertLinkImg.bind(_this3), result, editor); + } else { + // 将图片插入编辑器 + var data = result.data || []; + data.forEach(function (link) { + _this3.insertLinkImg(link); + }); + } + + // hook - success + if (hooks.success && typeof hooks.success === 'function') { + hooks.success(xhr, editor, result); + } + } + } + }; + + // hook - before + if (hooks.before && typeof hooks.before === 'function') { + var beforeResult = hooks.before(xhr, editor, resultFiles); + if (beforeResult && (typeof beforeResult === 'undefined' ? 'undefined' : _typeof(beforeResult)) === 'object') { + if (beforeResult.prevent) { + // 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传 + this._alert(beforeResult.msg); + return; + } + } + } + + // 自定义 headers + objForEach(uploadImgHeaders, function (key, val) { + xhr.setRequestHeader(key, val); + }); + + // 跨域传 cookie + xhr.withCredentials = withCredentials; + + // 发送请求 + xhr.send(formdata); + + // 注意,要 return 。不去操作接下来的 base64 显示方式 + return; + } + + // ------------------------------ 显示 base64 格式 ------------------------------ + if (uploadImgShowBase64) { + arrForEach(files, function (file) { + var _this = _this3; + var reader = new FileReader(); + reader.readAsDataURL(file); + reader.onload = function () { + _this.insertLinkImg(this.result); + }; + }); + } + } +}; + +/* + 编辑器构造函数 +*/ + +// id,累加 +var editorId = 1; + +// 构造函数 +function Editor(toolbarSelector, textSelector) { + if (toolbarSelector == null) { + // 没有传入任何参数,报错 + throw new Error('错误:初始化编辑器时候未传入任何参数,请查阅文档'); + } + // id,用以区分单个页面不同的编辑器对象 + this.id = 'wangEditor-' + editorId++; + + this.toolbarSelector = toolbarSelector; + this.textSelector = textSelector; + + // 自定义配置 + this.customConfig = {}; +} + +// 修改原型 +Editor.prototype = { + constructor: Editor, + + // 初始化配置 + _initConfig: function _initConfig() { + // _config 是默认配置,this.customConfig 是用户自定义配置,将它们 merge 之后再赋值 + var target = {}; + this.config = Object.assign(target, config, this.customConfig); + + // 将语言配置,生成正则表达式 + var langConfig = this.config.lang || {}; + var langArgs = []; + objForEach(langConfig, function (key, val) { + // key 即需要生成正则表达式的规则,如“插入链接” + // val 即需要被替换成的语言,如“insert link” + langArgs.push({ + reg: new RegExp(key, 'img'), + val: val + + }); + }); + this.config.langArgs = langArgs; + }, + + // 初始化 DOM + _initDom: function _initDom() { + var _this = this; + + var toolbarSelector = this.toolbarSelector; + var $toolbarSelector = $(toolbarSelector); + var textSelector = this.textSelector; + + var config$$1 = this.config; + var zIndex = config$$1.zIndex; + + // 定义变量 + var $toolbarElem = void 0, + $textContainerElem = void 0, + $textElem = void 0, + $children = void 0; + + if (textSelector == null) { + // 只传入一个参数,即是容器的选择器或元素,toolbar 和 text 的元素自行创建 + $toolbarElem = $('
            '); + $textContainerElem = $('
            '); + + // 将编辑器区域原有的内容,暂存起来 + $children = $toolbarSelector.children(); + + // 添加到 DOM 结构中 + $toolbarSelector.append($toolbarElem).append($textContainerElem); + + // 自行创建的,需要配置默认的样式 + $toolbarElem.css('background-color', '#f1f1f1').css('border', '1px solid #ccc'); + $textContainerElem.css('border', '1px solid #ccc').css('border-top', 'none').css('height', '300px'); + } else { + // toolbar 和 text 的选择器都有值,记录属性 + $toolbarElem = $toolbarSelector; + $textContainerElem = $(textSelector); + // 将编辑器区域原有的内容,暂存起来 + $children = $textContainerElem.children(); + } + + // 编辑区域 + $textElem = $('
            '); + $textElem.attr('contenteditable', 'true').css('width', '100%').css('height', '100%'); + + // 初始化编辑区域内容 + if ($children && $children.length) { + $textElem.append($children); + } else { + $textElem.append($('


            ')); + } + + // 编辑区域加入DOM + $textContainerElem.append($textElem); + + // 设置通用的 class + $toolbarElem.addClass('w-e-toolbar'); + $textContainerElem.addClass('w-e-text-container'); + $textContainerElem.css('z-index', zIndex); + $textElem.addClass('w-e-text'); + + // 添加 ID + var toolbarElemId = getRandom('toolbar-elem'); + $toolbarElem.attr('id', toolbarElemId); + var textElemId = getRandom('text-elem'); + $textElem.attr('id', textElemId); + + // 记录属性 + this.$toolbarElem = $toolbarElem; + this.$textContainerElem = $textContainerElem; + this.$textElem = $textElem; + this.toolbarElemId = toolbarElemId; + this.textElemId = textElemId; + + // 记录输入法的开始和结束 + var compositionEnd = true; + $textContainerElem.on('compositionstart', function () { + // 输入法开始输入 + compositionEnd = false; + }); + $textContainerElem.on('compositionend', function () { + // 输入法结束输入 + compositionEnd = true; + }); + + // 绑定 onchange + $textContainerElem.on('click keyup', function () { + // 输入法结束才出发 onchange + compositionEnd && _this.change && _this.change(); + }); + $toolbarElem.on('click', function () { + this.change && this.change(); + }); + + //绑定 onfocus 与 onblur 事件 + if (config$$1.onfocus || config$$1.onblur) { + // 当前编辑器是否是焦点状态 + this.isFocus = false; + + $(document).on('click', function (e) { + //判断当前点击元素是否在编辑器内 + var isChild = $textElem.isContain($(e.target)); + + //判断当前点击元素是否为工具栏 + var isToolbar = $toolbarElem.isContain($(e.target)); + var isMenu = $toolbarElem[0] == e.target ? true : false; + + if (!isChild) { + //若为选择工具栏中的功能,则不视为成blur操作 + if (isToolbar && !isMenu) { + return; + } + + if (_this.isFocus) { + _this.onblur && _this.onblur(); + } + _this.isFocus = false; + } else { + if (!_this.isFocus) { + _this.onfocus && _this.onfocus(); + } + _this.isFocus = true; + } + }); + } + }, + + // 封装 command + _initCommand: function _initCommand() { + this.cmd = new Command(this); + }, + + // 封装 selection range API + _initSelectionAPI: function _initSelectionAPI() { + this.selection = new API(this); + }, + + // 添加图片上传 + _initUploadImg: function _initUploadImg() { + this.uploadImg = new UploadImg(this); + }, + + // 初始化菜单 + _initMenus: function _initMenus() { + this.menus = new Menus(this); + this.menus.init(); + }, + + // 添加 text 区域 + _initText: function _initText() { + this.txt = new Text(this); + this.txt.init(); + }, + + // 初始化选区,将光标定位到内容尾部 + initSelection: function initSelection(newLine) { + var $textElem = this.$textElem; + var $children = $textElem.children(); + if (!$children.length) { + // 如果编辑器区域无内容,添加一个空行,重新设置选区 + $textElem.append($('


            ')); + this.initSelection(); + return; + } + + var $last = $children.last(); + + if (newLine) { + // 新增一个空行 + var html = $last.html().toLowerCase(); + var nodeName = $last.getNodeName(); + if (html !== '
            ' && html !== '' || nodeName !== 'P') { + // 最后一个元素不是


            ,添加一个空行,重新设置选区 + $textElem.append($('


            ')); + this.initSelection(); + return; + } + } + + this.selection.createRangeByElem($last, false, true); + this.selection.restoreSelection(); + }, + + // 绑定事件 + _bindEvent: function _bindEvent() { + // -------- 绑定 onchange 事件 -------- + var onChangeTimeoutId = 0; + var beforeChangeHtml = this.txt.html(); + var config$$1 = this.config; + + // onchange 触发延迟时间 + var onchangeTimeout = config$$1.onchangeTimeout; + onchangeTimeout = parseInt(onchangeTimeout, 10); + if (!onchangeTimeout || onchangeTimeout <= 0) { + onchangeTimeout = 200; + } + + var onchange = config$$1.onchange; + if (onchange && typeof onchange === 'function') { + // 触发 change 的有三个场景: + // 1. $textContainerElem.on('click keyup') + // 2. $toolbarElem.on('click') + // 3. editor.cmd.do() + this.change = function () { + // 判断是否有变化 + var currentHtml = this.txt.html(); + + if (currentHtml.length === beforeChangeHtml.length) { + // 需要比较每一个字符 + if (currentHtml === beforeChangeHtml) { + return; + } + } + + // 执行,使用节流 + if (onChangeTimeoutId) { + clearTimeout(onChangeTimeoutId); + } + onChangeTimeoutId = setTimeout(function () { + // 触发配置的 onchange 函数 + onchange(currentHtml); + beforeChangeHtml = currentHtml; + }, onchangeTimeout); + }; + } + + // -------- 绑定 onblur 事件 -------- + var onblur = config$$1.onblur; + if (onblur && typeof onblur === 'function') { + this.onblur = function () { + var currentHtml = this.txt.html(); + onblur(currentHtml); + }; + } + + // -------- 绑定 onfocus 事件 -------- + var onfocus = config$$1.onfocus; + if (onfocus && typeof onfocus === 'function') { + this.onfocus = function () { + onfocus(); + }; + } + }, + + // 创建编辑器 + create: function create() { + // 初始化配置信息 + this._initConfig(); + + // 初始化 DOM + this._initDom(); + + // 封装 command API + this._initCommand(); + + // 封装 selection range API + this._initSelectionAPI(); + + // 添加 text + this._initText(); + + // 初始化菜单 + this._initMenus(); + + // 添加 图片上传 + this._initUploadImg(); + + // 初始化选区,将光标定位到内容尾部 + this.initSelection(true); + + // 绑定事件 + this._bindEvent(); + }, + + // 解绑所有事件(暂时不对外开放) + _offAllEvent: function _offAllEvent() { + $.offAll(); + } +}; + +// 检验是否浏览器环境 +try { + document; +} catch (ex) { + throw new Error('请在浏览器环境下运行'); +} + +// polyfill +polyfill(); + +// 这里的 `inlinecss` 将被替换成 css 代码的内容,详情可去 ./gulpfile.js 中搜索 `inlinecss` 关键字 +var inlinecss = '.w-e-toolbar,.w-e-text-container,.w-e-menu-panel { padding: 0; margin: 0; box-sizing: border-box;}.w-e-toolbar *,.w-e-text-container *,.w-e-menu-panel * { padding: 0; margin: 0; box-sizing: border-box;}.w-e-clear-fix:after { content: ""; display: table; clear: both;}.w-e-toolbar .w-e-droplist { position: absolute; left: 0; top: 0; background-color: #fff; border: 1px solid #f1f1f1; border-right-color: #ccc; border-bottom-color: #ccc;}.w-e-toolbar .w-e-droplist .w-e-dp-title { text-align: center; color: #999; line-height: 2; border-bottom: 1px solid #f1f1f1; font-size: 13px;}.w-e-toolbar .w-e-droplist ul.w-e-list { list-style: none; line-height: 1;}.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item { color: #333; padding: 5px 0;}.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item:hover { background-color: #f1f1f1;}.w-e-toolbar .w-e-droplist ul.w-e-block { list-style: none; text-align: left; padding: 5px;}.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item { display: inline-block; *display: inline; *zoom: 1; padding: 3px 5px;}.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item:hover { background-color: #f1f1f1;}@font-face { font-family: \'w-e-icon\'; src: url(data:application/x-font-woff;charset=utf-8;base64,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) format(\'truetype\'); font-weight: normal; font-style: normal;}[class^="w-e-icon-"],[class*=" w-e-icon-"] { /* use !important to prevent issues with browser extensions that change fonts */ font-family: \'w-e-icon\' !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}.w-e-icon-close:before { content: "\\f00d";}.w-e-icon-upload2:before { content: "\\e9c6";}.w-e-icon-trash-o:before { content: "\\f014";}.w-e-icon-header:before { content: "\\f1dc";}.w-e-icon-pencil2:before { content: "\\e906";}.w-e-icon-paint-brush:before { content: "\\f1fc";}.w-e-icon-image:before { content: "\\e90d";}.w-e-icon-play:before { content: "\\e912";}.w-e-icon-location:before { content: "\\e947";}.w-e-icon-undo:before { content: "\\e965";}.w-e-icon-redo:before { content: "\\e966";}.w-e-icon-quotes-left:before { content: "\\e977";}.w-e-icon-list-numbered:before { content: "\\e9b9";}.w-e-icon-list2:before { content: "\\e9bb";}.w-e-icon-link:before { content: "\\e9cb";}.w-e-icon-happy:before { content: "\\e9df";}.w-e-icon-bold:before { content: "\\ea62";}.w-e-icon-underline:before { content: "\\ea63";}.w-e-icon-italic:before { content: "\\ea64";}.w-e-icon-strikethrough:before { content: "\\ea65";}.w-e-icon-table2:before { content: "\\ea71";}.w-e-icon-paragraph-left:before { content: "\\ea77";}.w-e-icon-paragraph-center:before { content: "\\ea78";}.w-e-icon-paragraph-right:before { content: "\\ea79";}.w-e-icon-terminal:before { content: "\\f120";}.w-e-icon-page-break:before { content: "\\ea68";}.w-e-icon-cancel-circle:before { content: "\\ea0d";}.w-e-icon-font:before { content: "\\ea5c";}.w-e-icon-text-heigh:before { content: "\\ea5f";}.w-e-toolbar { display: -webkit-box; display: -ms-flexbox; display: flex; padding: 0 5px; /* flex-wrap: wrap; */ /* 单个菜单 */}.w-e-toolbar .w-e-menu { position: relative; text-align: center; padding: 5px 10px; cursor: pointer;}.w-e-toolbar .w-e-menu i { color: #999;}.w-e-toolbar .w-e-menu:hover i { color: #333;}.w-e-toolbar .w-e-active i { color: #1e88e5;}.w-e-toolbar .w-e-active:hover i { color: #1e88e5;}.w-e-text-container .w-e-panel-container { position: absolute; top: 0; left: 50%; border: 1px solid #ccc; border-top: 0; box-shadow: 1px 1px 2px #ccc; color: #333; background-color: #fff; /* 为 emotion panel 定制的样式 */ /* 上传图片的 panel 定制样式 */}.w-e-text-container .w-e-panel-container .w-e-panel-close { position: absolute; right: 0; top: 0; padding: 5px; margin: 2px 5px 0 0; cursor: pointer; color: #999;}.w-e-text-container .w-e-panel-container .w-e-panel-close:hover { color: #333;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title { list-style: none; display: -webkit-box; display: -ms-flexbox; display: flex; font-size: 14px; margin: 2px 10px 0 10px; border-bottom: 1px solid #f1f1f1;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-item { padding: 3px 5px; color: #999; cursor: pointer; margin: 0 3px; position: relative; top: 1px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-active { color: #333; border-bottom: 1px solid #333; cursor: default; font-weight: 700;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content { padding: 10px 15px 10px 15px; font-size: 16px; /* 输入框的样式 */ /* 按钮的样式 */}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content button:focus { outline: none;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea { width: 100%; border: 1px solid #ccc; padding: 5px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus { border-color: #1e88e5;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text] { border: none; border-bottom: 1px solid #ccc; font-size: 14px; height: 20px; color: #333; text-align: left;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].small { width: 30px; text-align: center;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].block { display: block; width: 100%; margin: 10px 0;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text]:focus { border-bottom: 2px solid #1e88e5;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button { font-size: 14px; color: #1e88e5; border: none; padding: 5px 10px; background-color: #fff; cursor: pointer; border-radius: 3px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.left { float: left; margin-right: 10px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.right { float: right; margin-left: 10px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.gray { color: #999;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.red { color: #c24f4a;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button:hover { background-color: #f1f1f1;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container:after { content: ""; display: table; clear: both;}.w-e-text-container .w-e-panel-container .w-e-emoticon-container .w-e-item { cursor: pointer; font-size: 18px; padding: 0 3px; display: inline-block; *display: inline; *zoom: 1;}.w-e-text-container .w-e-panel-container .w-e-up-img-container { text-align: center;}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn { display: inline-block; *display: inline; *zoom: 1; color: #999; cursor: pointer; font-size: 60px; line-height: 1;}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn:hover { color: #333;}.w-e-text-container { position: relative;}.w-e-text-container .w-e-progress { position: absolute; background-color: #1e88e5; bottom: 0; left: 0; height: 1px;}.w-e-text { padding: 0 10px; overflow-y: scroll;}.w-e-text p,.w-e-text h1,.w-e-text h2,.w-e-text h3,.w-e-text h4,.w-e-text h5,.w-e-text table,.w-e-text pre { margin: 10px 0; line-height: 1.5;}.w-e-text ul,.w-e-text ol { margin: 10px 0 10px 20px;}.w-e-text blockquote { display: block; border-left: 8px solid #d0e5f2; padding: 5px 10px; margin: 10px 0; line-height: 1.4; font-size: 100%; background-color: #f1f1f1;}.w-e-text code { display: inline-block; *display: inline; *zoom: 1; background-color: #f1f1f1; border-radius: 3px; padding: 3px 5px; margin: 0 3px;}.w-e-text pre code { display: block;}.w-e-text table { border-top: 1px solid #ccc; border-left: 1px solid #ccc;}.w-e-text table td,.w-e-text table th { border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; padding: 3px 5px;}.w-e-text table th { border-bottom: 2px solid #ccc; text-align: center;}.w-e-text:focus { outline: none;}.w-e-text img { cursor: pointer;}.w-e-text img:hover { box-shadow: 0 0 5px #333;}'; + +// 将 css 代码添加到 "].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

            ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

            "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

            "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

              ','
            • ','','
              ','',"
              ","
            • ",'
            • ','','
              ','",'","
              ","
            • ",'
            • ','','',"
            • ","
            "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
          • '+e+'
          • ')}),'
              '+t.join("")+"
            "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
              ','
            • ','','
              ','","
              ","
            • ",'
            • ','','
              ','',"
              ","
            • ",'
            • ','','',"
            • ","
            "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/layer.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/layer.js new file mode 100644 index 0000000..8056ff1 --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/layer.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'
            '+(f?r.title[0]:r.title)+"
            ":"";return r.zIndex=s,t([r.shade?'
            ':"",'
            '+(e&&2!=r.type?"":u)+'
            '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
            '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
            '+e+"
            "}():"")+(r.resize?'':"")+"
            "],u,i('
            ')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
              '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
            • '+(t[0].content||"no content")+"
            • ";i'+(t[i].content||"no content")+"";return a}()+"
            ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
            '+(u.length>1?'':"")+'
            '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
          ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
          是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["static/layuimini/lib/layui-v2.5.4/lay/modules/jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/laypage.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/laypage.js new file mode 100644 index 0000000..0ddc3cb --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/laypage.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),refresh:['','',""].join(""),skip:function(){return['到第','','页',""].join("")}()};return['
          ',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
          "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/laytpl.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/laytpl.js new file mode 100644 index 0000000..7590e08 --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/laytpl.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/mobile.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/mobile.js new file mode 100644 index 0000000..4b3e7ae --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/mobile.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;layui.define(function(i){i("layui.mobile",layui.v)});layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var t=(window,document),i="querySelectorAll",n="getElementsByClassName",a=function(e){return t[i](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var i in e)t[i]=e[i];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var o=0,r=["layui-m-layer"],d=function(e){var t=this;t.config=l.extend(e),t.view()};d.prototype.view=function(){var e=this,i=e.config,s=t.createElement("div");e.id=s.id=r[0]+o,s.setAttribute("class",r[0]+" "+r[0]+(i.type||0)),s.setAttribute("index",o);var l=function(){var e="object"==typeof i.title;return i.title?'

          '+(e?i.title[0]:i.title)+"

          ":""}(),d=function(){"string"==typeof i.btn&&(i.btn=[i.btn]);var e,t=(i.btn||[]).length;return 0!==t&&i.btn?(e=''+i.btn[0]+"",2===t&&(e=''+i.btn[1]+""+e),'
          '+e+"
          "):""}();if(i.fixed||(i.top=i.hasOwnProperty("top")?i.top:100,i.style=i.style||"",i.style+=" top:"+(t.body.scrollTop+i.top)+"px"),2===i.type&&(i.content='

          '+(i.content||"")+"

          "),i.skin&&(i.anim="up"),"msg"===i.skin&&(i.shade=!1),s.innerHTML=(i.shade?"
          ':"")+'
          "+l+'
          '+i.content+"
          "+d+"
          ",!i.type||2===i.type){var y=t[n](r[0]+i.type),u=y.length;u>=1&&c.close(y[0].getAttribute("index"))}document.body.appendChild(s);var m=e.elem=a("#"+e.id)[0];i.success&&i.success(m),e.index=o++,e.action(i,m)},d.prototype.action=function(e,t){var i=this;e.time&&(l.timer[i.index]=setTimeout(function(){c.close(i.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),c.close(i.index)):e.yes?e.yes(i.index):c.close(i.index)};if(e.btn)for(var s=t[n]("layui-m-layerbtn")[0].children,o=s.length,r=0;r0&&e-1 in t)}function s(t){return A.call(t,function(t){return null!=t})}function u(t){return t.length>0?T.fn.concat.apply([],t):t}function c(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function l(t){return t in F?F[t]:F[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function f(t,e){return"number"!=typeof e||k[c(t)]?e:e+"px"}function h(t){var e,n;return $[t]||(e=L.createElement(t),L.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),$[t]=n),$[t]}function p(t){return"children"in t?D.call(t.children):T.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function d(t,e){var n,r=t?t.length:0;for(n=0;n]*>/,R=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Z=/^(?:body|html)$/i,q=/([A-Z])/g,H=["val","css","html","text","data","width","height","offset"],I=["after","prepend","before","append"],V=L.createElement("table"),_=L.createElement("tr"),B={tr:L.createElement("tbody"),tbody:V,thead:V,tfoot:V,td:_,th:_,"*":L.createElement("div")},U=/complete|loaded|interactive/,X=/^[\w-]*$/,J={},W=J.toString,Y={},G=L.createElement("div"),K={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},Q=Array.isArray||function(t){return t instanceof Array};return Y.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=G).appendChild(t),r=~Y.qsa(i,e).indexOf(t),o&&G.removeChild(t),r},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return A.call(t,function(e,n){return t.indexOf(e)==n})},Y.fragment=function(t,e,n){var r,i,a;return R.test(t)&&(r=T(L.createElement(RegExp.$1))),r||(t.replace&&(t=t.replace(z,"<$1>")),e===E&&(e=M.test(t)&&RegExp.$1),e in B||(e="*"),a=B[e],a.innerHTML=""+t,r=T.each(D.call(a.childNodes),function(){a.removeChild(this)})),o(n)&&(i=T(r),T.each(n,function(t,e){H.indexOf(t)>-1?i[t](e):i.attr(t,e)})),r},Y.Z=function(t,e){return new d(t,e)},Y.isZ=function(t){return t instanceof Y.Z},Y.init=function(t,n){var r;if(!t)return Y.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&M.test(t))r=Y.fragment(t,RegExp.$1,n),t=null;else{if(n!==E)return T(n).find(t);r=Y.qsa(L,t)}else{if(e(t))return T(L).ready(t);if(Y.isZ(t))return t;if(Q(t))r=s(t);else if(i(t))r=[t],t=null;else if(M.test(t))r=Y.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==E)return T(n).find(t);r=Y.qsa(L,t)}}return Y.Z(r,t)},T=function(t,e){return Y.init(t,e)},T.extend=function(t){var e,n=D.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){m(t,n,e)}),t},Y.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,a=X.test(o);return t.getElementById&&a&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:D.call(a&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},T.contains=L.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},T.type=t,T.isFunction=e,T.isWindow=n,T.isArray=Q,T.isPlainObject=o,T.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},T.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},T.inArray=function(t,e,n){return O.indexOf.call(e,t,n)},T.camelCase=C,T.trim=function(t){return null==t?"":String.prototype.trim.call(t)},T.uuid=0,T.support={},T.expr={},T.noop=function(){},T.map=function(t,e){var n,r,i,o=[];if(a(t))for(r=0;r=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return O.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return e(t)?this.not(this.not(t)):T(A.call(this,function(e){return Y.matches(e,t)}))},add:function(t,e){return T(N(this.concat(T(t,e))))},is:function(t){return this.length>0&&Y.matches(this[0],t)},not:function(t){var n=[];if(e(t)&&t.call!==E)this.each(function(e){t.call(this,e)||n.push(this)});else{var r="string"==typeof t?this.filter(t):a(t)&&e(t.item)?D.call(t):T(t);this.forEach(function(t){r.indexOf(t)<0&&n.push(t)})}return T(n)},has:function(t){return this.filter(function(){return i(t)?T.contains(this,t):T(this).find(t).size()})},eq:function(t){return t===-1?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!i(t)?t:T(t)},last:function(){var t=this[this.length-1];return t&&!i(t)?t:T(t)},find:function(t){var e,n=this;return e=t?"object"==typeof t?T(t).filter(function(){var t=this;return O.some.call(n,function(e){return T.contains(e,t)})}):1==this.length?T(Y.qsa(this[0],t)):this.map(function(){return Y.qsa(this,t)}):T()},closest:function(t,e){var n=[],i="object"==typeof t&&T(t);return this.each(function(o,a){for(;a&&!(i?i.indexOf(a)>=0:Y.matches(a,t));)a=a!==e&&!r(a)&&a.parentNode;a&&n.indexOf(a)<0&&n.push(a)}),T(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=T.map(n,function(t){if((t=t.parentNode)&&!r(t)&&e.indexOf(t)<0)return e.push(t),t});return v(e,t)},parent:function(t){return v(N(this.pluck("parentNode")),t)},children:function(t){return v(this.map(function(){return p(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||D.call(this.childNodes)})},siblings:function(t){return v(this.map(function(t,e){return A.call(p(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return T.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=h(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var n=e(t);if(this[0]&&!n)var r=T(t).get(0),i=r.parentNode||this.length>1;return this.each(function(e){T(this).wrapAll(n?t.call(this,e):i?r.cloneNode(!0):r)})},wrapAll:function(t){if(this[0]){T(this[0]).before(t=T(t));for(var e;(e=t.children()).length;)t=e.first();T(t).append(this)}return this},wrapInner:function(t){var n=e(t);return this.each(function(e){var r=T(this),i=r.contents(),o=n?t.call(this,e):t;i.length?i.wrapAll(o):r.append(o)})},unwrap:function(){return this.parent().each(function(){T(this).replaceWith(T(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=T(this);(t===E?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return T(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return T(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;T(this).empty().append(g(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=g(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,e){var n;return"string"!=typeof t||1 in arguments?this.each(function(n){if(1===this.nodeType)if(i(t))for(j in t)y(this,j,t[j]);else y(this,t,g(this,e,n,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(n=this[0].getAttribute(t))?n:E},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){y(this,t)},this)})},prop:function(t,e){return t=K[t]||t,1 in arguments?this.each(function(n){this[t]=g(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=K[t]||t,this.each(function(){delete this[t]})},data:function(t,e){var n="data-"+t.replace(q,"-$1").toLowerCase(),r=1 in arguments?this.attr(n,e):this.attr(n);return null!==r?b(r):E},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=g(this,t,e,this.value)})):this[0]&&(this[0].multiple?T(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var n=T(this),r=g(this,t,e,n.offset()),i=n.offsetParent().offset(),o={top:r.top-i.top,left:r.left-i.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)});if(!this.length)return null;if(L.documentElement!==this[0]&&!T.contains(L.documentElement,this[0]))return{top:0,left:0};var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(e,n){if(arguments.length<2){var r=this[0];if("string"==typeof e){if(!r)return;return r.style[C(e)]||getComputedStyle(r,"").getPropertyValue(e)}if(Q(e)){if(!r)return;var i={},o=getComputedStyle(r,"");return T.each(e,function(t,e){i[e]=r.style[C(e)]||o.getPropertyValue(e)}),i}}var a="";if("string"==t(e))n||0===n?a=c(e)+":"+f(e,n):this.each(function(){this.style.removeProperty(c(e))});else for(j in e)e[j]||0===e[j]?a+=c(j)+":"+f(j,e[j])+";":this.each(function(){this.style.removeProperty(c(j))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(T(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&O.some.call(this,function(t){return this.test(x(t))},l(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){S=[];var n=x(this),r=g(this,t,e,n);r.split(/\s+/g).forEach(function(t){T(this).hasClass(t)||S.push(t)},this),S.length&&x(this,n+(n?" ":"")+S.join(" "))}}):this},removeClass:function(t){return this.each(function(e){if("className"in this){if(t===E)return x(this,"");S=x(this),g(this,t,e,S).split(/\s+/g).forEach(function(t){S=S.replace(l(t)," ")}),x(this,S.trim())}})},toggleClass:function(t,e){return t?this.each(function(n){var r=T(this),i=g(this,t,n,x(this));i.split(/\s+/g).forEach(function(t){(e===E?!r.hasClass(t):e)?r.addClass(t):r.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var e="scrollTop"in this[0];return t===E?e?this[0].scrollTop:this[0].pageYOffset:this.each(e?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var e="scrollLeft"in this[0];return t===E?e?this[0].scrollLeft:this[0].pageXOffset:this.each(e?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),r=Z.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(T(t).css("margin-top"))||0,n.left-=parseFloat(T(t).css("margin-left"))||0,r.top+=parseFloat(T(e[0]).css("border-top-width"))||0,r.left+=parseFloat(T(e[0]).css("border-left-width"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||L.body;t&&!Z.test(t.nodeName)&&"static"==T(t).css("position");)t=t.offsetParent;return t})}},T.fn.detach=T.fn.remove,["width","height"].forEach(function(t){var e=t.replace(/./,function(t){return t[0].toUpperCase()});T.fn[t]=function(i){var o,a=this[0];return i===E?n(a)?a["inner"+e]:r(a)?a.documentElement["scroll"+e]:(o=this.offset())&&o[t]:this.each(function(e){a=T(this),a.css(t,g(this,i,e,a[t]()))})}}),I.forEach(function(e,n){var r=n%2;T.fn[e]=function(){var e,i,o=T.map(arguments,function(n){var r=[];return e=t(n),"array"==e?(n.forEach(function(t){return t.nodeType!==E?r.push(t):T.zepto.isZ(t)?r=r.concat(t.get()):void(r=r.concat(Y.fragment(t)))}),r):"object"==e||null==n?n:Y.fragment(n)}),a=this.length>1;return o.length<1?this:this.each(function(t,e){i=r?e:e.parentNode,e=0==n?e.nextSibling:1==n?e.firstChild:2==n?e:null;var s=T.contains(L.documentElement,i);o.forEach(function(t){if(a)t=t.cloneNode(!0);else if(!i)return T(t).remove();i.insertBefore(t,e),s&&w(t,function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var e=t.ownerDocument?t.ownerDocument.defaultView:window;e.eval.call(e,t.innerHTML)}})})})},T.fn[r?e+"To":"insert"+(n?"Before":"After")]=function(t){return T(t)[e](this),this}}),Y.Z.prototype=d.prototype=T.fn,Y.uniq=N,Y.deserializeValue=b,T.zepto=Y,T}();!function(t){function e(t){return t._zid||(t._zid=h++)}function n(t,n,o,a){if(n=r(n),n.ns)var s=i(n.ns);return(v[e(t)]||[]).filter(function(t){return t&&(!n.e||t.e==n.e)&&(!n.ns||s.test(t.ns))&&(!o||e(t.fn)===e(o))&&(!a||t.sel==a)})}function r(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function i(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function o(t,e){return t.del&&!y&&t.e in x||!!e}function a(t){return b[t]||y&&x[t]||t}function s(n,i,s,u,l,h,p){var d=e(n),m=v[d]||(v[d]=[]);i.split(/\s/).forEach(function(e){if("ready"==e)return t(document).ready(s);var i=r(e);i.fn=s,i.sel=l,i.e in b&&(s=function(e){var n=e.relatedTarget;if(!n||n!==this&&!t.contains(this,n))return i.fn.apply(this,arguments)}),i.del=h;var d=h||s;i.proxy=function(t){if(t=c(t),!t.isImmediatePropagationStopped()){t.data=u;var e=d.apply(n,t._args==f?[t]:[t].concat(t._args));return e===!1&&(t.preventDefault(),t.stopPropagation()),e}},i.i=m.length,m.push(i),"addEventListener"in n&&n.addEventListener(a(i.e),i.proxy,o(i,p))})}function u(t,r,i,s,u){var c=e(t);(r||"").split(/\s/).forEach(function(e){n(t,e,i,s).forEach(function(e){delete v[c][e.i],"removeEventListener"in t&&t.removeEventListener(a(e.e),e.proxy,o(e,u))})})}function c(e,n){return!n&&e.isDefaultPrevented||(n||(n=e),t.each(T,function(t,r){var i=n[t];e[t]=function(){return this[r]=w,i&&i.apply(n,arguments)},e[r]=E}),e.timeStamp||(e.timeStamp=Date.now()),(n.defaultPrevented!==f?n.defaultPrevented:"returnValue"in n?n.returnValue===!1:n.getPreventDefault&&n.getPreventDefault())&&(e.isDefaultPrevented=w)),e}function l(t){var e,n={originalEvent:t};for(e in t)j.test(e)||t[e]===f||(n[e]=t[e]);return c(n,t)}var f,h=1,p=Array.prototype.slice,d=t.isFunction,m=function(t){return"string"==typeof t},v={},g={},y="onfocusin"in window,x={focus:"focusin",blur:"focusout"},b={mouseenter:"mouseover",mouseleave:"mouseout"};g.click=g.mousedown=g.mouseup=g.mousemove="MouseEvents",t.event={add:s,remove:u},t.proxy=function(n,r){var i=2 in arguments&&p.call(arguments,2);if(d(n)){var o=function(){return n.apply(r,i?i.concat(p.call(arguments)):arguments)};return o._zid=e(n),o}if(m(r))return i?(i.unshift(n[r],n),t.proxy.apply(null,i)):t.proxy(n[r],n);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var w=function(){return!0},E=function(){return!1},j=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,T={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,n,r,i,o){var a,c,h=this;return e&&!m(e)?(t.each(e,function(t,e){h.on(t,n,r,e,o)}),h):(m(n)||d(i)||i===!1||(i=r,r=n,n=f),i!==f&&r!==!1||(i=r,r=f),i===!1&&(i=E),h.each(function(f,h){o&&(a=function(t){return u(h,t.type,i),i.apply(this,arguments)}),n&&(c=function(e){var r,o=t(e.target).closest(n,h).get(0);if(o&&o!==h)return r=t.extend(l(e),{currentTarget:o,liveFired:h}),(a||i).apply(o,[r].concat(p.call(arguments,1)))}),s(h,e,i,r,n,c||a)}))},t.fn.off=function(e,n,r){var i=this;return e&&!m(e)?(t.each(e,function(t,e){i.off(t,n,e)}),i):(m(n)||d(r)||r===!1||(r=n,n=f),r===!1&&(r=E),i.each(function(){u(this,e,r,n)}))},t.fn.trigger=function(e,n){return e=m(e)||t.isPlainObject(e)?t.Event(e):c(e),e._args=n,this.each(function(){e.type in x&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,r){var i,o;return this.each(function(a,s){i=l(m(e)?t.Event(e):e),i._args=r,i.target=s,t.each(n(s,e.type||e),function(t,e){if(o=e.proxy(i),i.isImmediatePropagationStopped())return!1})}),o},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}}),t.Event=function(t,e){m(t)||(e=t,t=e.type);var n=document.createEvent(g[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),c(n)}}(e),function(t){function e(e,n,r){var i=t.Event(n);return t(e).trigger(i,r),!i.isDefaultPrevented()}function n(t,n,r,i){if(t.global)return e(n||x,r,i)}function r(e){e.global&&0===t.active++&&n(e,null,"ajaxStart")}function i(e){e.global&&!--t.active&&n(e,null,"ajaxStop")}function o(t,e){var r=e.context;return e.beforeSend.call(r,t,e)!==!1&&n(e,r,"ajaxBeforeSend",[t,e])!==!1&&void n(e,r,"ajaxSend",[t,e])}function a(t,e,r,i){var o=r.context,a="success";r.success.call(o,t,a,e),i&&i.resolveWith(o,[t,a,e]),n(r,o,"ajaxSuccess",[e,r,t]),u(a,e,r)}function s(t,e,r,i,o){var a=i.context;i.error.call(a,r,e,t),o&&o.rejectWith(a,[r,e,t]),n(i,a,"ajaxError",[r,i,t||e]),u(e,r,i)}function u(t,e,r){var o=r.context;r.complete.call(o,e,t),n(r,o,"ajaxComplete",[e,r]),i(r)}function c(t,e,n){if(n.dataFilter==l)return t;var r=n.context;return n.dataFilter.call(r,t,e)}function l(){}function f(t){return t&&(t=t.split(";",2)[0]),t&&(t==T?"html":t==j?"json":w.test(t)?"script":E.test(t)&&"xml")||"text"}function h(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function p(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()&&"jsonp"!=e.dataType||(e.url=h(e.url,e.data),e.data=void 0)}function d(e,n,r,i){return t.isFunction(n)&&(i=r,r=n,n=void 0),t.isFunction(r)||(i=r,r=void 0),{url:e,data:n,success:r,dataType:i}}function m(e,n,r,i){var o,a=t.isArray(n),s=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),i&&(n=r?i:i+"["+(s||"object"==o||"array"==o?n:"")+"]"),!i&&a?e.add(u.name,u.value):"array"==o||!r&&"object"==o?m(e,u,r,n):e.add(n,u)})}var v,g,y=+new Date,x=window.document,b=/)<[^<]*)*<\/script>/gi,w=/^(?:text|application)\/javascript/i,E=/^(?:text|application)\/xml/i,j="application/json",T="text/html",S=/^\s*$/,C=x.createElement("a");C.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,n){if(!("type"in e))return t.ajax(e);var r,i,u=e.jsonpCallback,c=(t.isFunction(u)?u():u)||"Zepto"+y++,l=x.createElement("script"),f=window[c],h=function(e){t(l).triggerHandler("error",e||"abort")},p={abort:h};return n&&n.promise(p),t(l).on("load error",function(o,u){clearTimeout(i),t(l).off().remove(),"error"!=o.type&&r?a(r[0],p,e,n):s(null,u||"error",p,e,n),window[c]=f,r&&t.isFunction(f)&&f(r[0]),f=r=void 0}),o(p,e)===!1?(h("abort"),p):(window[c]=function(){r=arguments},l.src=e.url.replace(/\?(.+)=\?/,"?$1="+c),x.head.appendChild(l),e.timeout>0&&(i=setTimeout(function(){h("timeout")},e.timeout)),p)},t.ajaxSettings={type:"GET",beforeSend:l,success:l,error:l,complete:l,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:j,xml:"application/xml, text/xml",html:T,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:l},t.ajax=function(e){var n,i,u=t.extend({},e||{}),d=t.Deferred&&t.Deferred();for(v in t.ajaxSettings)void 0===u[v]&&(u[v]=t.ajaxSettings[v]);r(u),u.crossDomain||(n=x.createElement("a"),n.href=u.url,n.href=n.href,u.crossDomain=C.protocol+"//"+C.host!=n.protocol+"//"+n.host),u.url||(u.url=window.location.toString()),(i=u.url.indexOf("#"))>-1&&(u.url=u.url.slice(0,i)),p(u);var m=u.dataType,y=/\?.+=\?/.test(u.url);if(y&&(m="jsonp"),u.cache!==!1&&(e&&e.cache===!0||"script"!=m&&"jsonp"!=m)||(u.url=h(u.url,"_="+Date.now())),"jsonp"==m)return y||(u.url=h(u.url,u.jsonp?u.jsonp+"=?":u.jsonp===!1?"":"callback=?")),t.ajaxJSONP(u,d);var b,w=u.accepts[m],E={},j=function(t,e){E[t.toLowerCase()]=[t,e]},T=/^([\w-]+:)\/\//.test(u.url)?RegExp.$1:window.location.protocol,N=u.xhr(),O=N.setRequestHeader;if(d&&d.promise(N),u.crossDomain||j("X-Requested-With","XMLHttpRequest"),j("Accept",w||"*/*"),(w=u.mimeType||w)&&(w.indexOf(",")>-1&&(w=w.split(",",2)[0]),N.overrideMimeType&&N.overrideMimeType(w)),(u.contentType||u.contentType!==!1&&u.data&&"GET"!=u.type.toUpperCase())&&j("Content-Type",u.contentType||"application/x-www-form-urlencoded"),u.headers)for(g in u.headers)j(g,u.headers[g]);if(N.setRequestHeader=j,N.onreadystatechange=function(){if(4==N.readyState){N.onreadystatechange=l,clearTimeout(b);var e,n=!1;if(N.status>=200&&N.status<300||304==N.status||0==N.status&&"file:"==T){if(m=m||f(u.mimeType||N.getResponseHeader("content-type")),"arraybuffer"==N.responseType||"blob"==N.responseType)e=N.response;else{e=N.responseText;try{e=c(e,m,u),"script"==m?(0,eval)(e):"xml"==m?e=N.responseXML:"json"==m&&(e=S.test(e)?null:t.parseJSON(e))}catch(r){n=r}if(n)return s(n,"parsererror",N,u,d)}a(e,N,u,d)}else s(N.statusText||null,N.status?"error":"abort",N,u,d)}},o(N,u)===!1)return N.abort(),s(null,"abort",N,u,d),N;var P=!("async"in u)||u.async;if(N.open(u.type,u.url,P,u.username,u.password),u.xhrFields)for(g in u.xhrFields)N[g]=u.xhrFields[g];for(g in E)O.apply(N,E[g]);return u.timeout>0&&(b=setTimeout(function(){N.onreadystatechange=l,N.abort(),s(null,"timeout",N,u,d)},u.timeout)),N.send(u.data?u.data:null),N},t.get=function(){return t.ajax(d.apply(null,arguments))},t.post=function(){var e=d.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=d.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,r){if(!this.length)return this;var i,o=this,a=e.split(/\s/),s=d(e,n,r),u=s.success;return a.length>1&&(s.url=a[0],i=a[1]),s.success=function(e){o.html(i?t("
          ").html(e.replace(b,"")).find(i):e),u&&u.apply(o,arguments)},t.ajax(s),this};var N=encodeURIComponent;t.param=function(e,n){var r=[];return r.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(N(e)+"="+N(n))},m(r,e,n),r.join("&").replace(/%20/g,"+")}}(e),function(t){t.fn.serializeArray=function(){var e,n,r=[],i=function(t){return t.forEach?t.forEach(i):void r.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(r,o){n=o.type,e=o.name,e&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||o.checked)&&i(t(o).val())}),r},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(e),function(){try{getComputedStyle(void 0)}catch(t){var e=getComputedStyle;window.getComputedStyle=function(t,n){try{return e(t,n)}catch(r){return null}}}}(),t("zepto",e)});layui.define(["layer-mobile","zepto"],function(e){"use strict";var t=layui.zepto,a=layui["layer-mobile"],i=(layui.device(),"layui-upload-enter"),n="layui-upload-iframe",r={icon:2,shift:6},o={file:"文件",video:"视频",audio:"音频"};a.msg=function(e){return a.open({content:e||"",skin:"msg",time:2})};var s=function(e){this.options=e};s.prototype.init=function(){var e=this,a=e.options,r=t("body"),s=t(a.elem||".layui-upload-file"),u=t('');return t("#"+n)[0]||r.append(u),s.each(function(r,s){s=t(s);var u='
          ',l=s.attr("lay-type")||a.type;a.unwrap||(u='
          '+u+''+(s.attr("lay-title")||a.title||"上传"+(o[l]||"图片"))+"
          "),u=t(u),a.unwrap||u.on("dragover",function(e){e.preventDefault(),t(this).addClass(i)}).on("dragleave",function(){t(this).removeClass(i)}).on("drop",function(){t(this).removeClass(i)}),s.parent("form").attr("target")===n&&(a.unwrap?s.unwrap():(s.parent().next().remove(),s.unwrap().unwrap())),s.wrap(u),s.off("change").on("change",function(){e.action(this,l)})})},s.prototype.action=function(e,i){var o=this,s=o.options,u=e.value,l=t(e),p=l.attr("lay-ext")||s.ext||"";if(u){switch(i){case"file":if(p&&!RegExp("\\w\\.("+p+")$","i").test(escape(u)))return a.msg("不支持该文件格式",r),e.value="";break;case"video":if(!RegExp("\\w\\.("+(p||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(u)))return a.msg("不支持该视频格式",r),e.value="";break;case"audio":if(!RegExp("\\w\\.("+(p||"mp3|wav|mid")+")$","i").test(escape(u)))return a.msg("不支持该音频格式",r),e.value="";break;default:if(!RegExp("\\w\\.("+(p||"jpg|png|gif|bmp|jpeg")+")$","i").test(escape(u)))return a.msg("不支持该图片格式",r),e.value=""}s.before&&s.before(e),l.parent().submit();var c=t("#"+n),f=setInterval(function(){var t;try{t=c.contents().find("body").text()}catch(i){a.msg("上传接口存在跨域",r),clearInterval(f)}if(t){clearInterval(f),c.contents().find("body").html("");try{t=JSON.parse(t)}catch(i){return t={},a.msg("请对上传接口返回JSON字符",r)}"function"==typeof s.success&&s.success(t,e)}},30);e.value=""}},e("upload-mobile",function(e){var t=new s(e=e||{});t.init()})});layui.define(function(i){i("layim-mobile",layui.v)});layui["layui.mobile"]||layui.config({base:layui.cache.dir+"lay/modules/mobile/"}).extend({"layer-mobile":"layer-mobile",zepto:"zepto","upload-mobile":"upload-mobile","layim-mobile":"layim-mobile"}),layui.define(["layer-mobile","zepto","layim-mobile"],function(l){l("mobile",{layer:layui["layer-mobile"],layim:layui["layim-mobile"]})}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/rate.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/rate.js new file mode 100644 index 0000000..7ba3f14 --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/rate.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;layui.define("jquery",function(e){"use strict";var a=layui.jquery,i={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,a){return layui.onevent.call(this,n,e,a)}},l=function(){var e=this,a=e.config;return{setvalue:function(a){e.setvalue.call(e,a)},config:a}},n="rate",t="layui-rate",o="layui-icon-rate",s="layui-icon-rate-solid",u="layui-icon-rate-half",r="layui-icon-rate-solid layui-icon-rate-half",c="layui-icon-rate-solid layui-icon-rate",f="layui-icon-rate layui-icon-rate-half",v=function(e){var l=this;l.index=++i.index,l.config=a.extend({},l.config,i.config,e),l.render()};v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},v.prototype.render=function(){var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':"";i.elem=a(i.elem),parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value)));for(var n='
            ",u=1;u<=i.length;u++){var r='
          • ";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'
          • ":n+=r}n+="
          "+(i.text?''+i.value+"星":"")+"";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/slider.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/slider.js new file mode 100644 index 0000000..54d6d00 --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/slider.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;layui.define("jquery",function(e){"use strict";var i=layui.jquery,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,n,e,i)}},a=function(){var e=this,i=e.config;return{setValue:function(i,t){return e.slide("set",i,t||0)},config:i}},n="slider",l="layui-disabled",s="layui-slider",r="layui-slider-bar",o="layui-slider-wrap",u="layui-slider-wrap-btn",d="layui-slider-tips",v="layui-slider-input",c="layui-slider-input-txt",m="layui-slider-input-btn",p="layui-slider-hover",f=function(e){var a=this;a.index=++t.index,a.config=i.extend({},a.config,t.config,e),a.render()};f.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},f.prototype.render=function(){var e=this,t=e.config;if(t.step<1&&(t.step=1),t.maxt.min?a:t.min,t.value[1]=n>t.min?n:t.min,t.value[0]=t.value[0]>t.max?t.max:t.value[0],t.value[1]=t.value[1]>t.max?t.max:t.value[1];var r=Math.floor((t.value[0]-t.min)/(t.max-t.min)*100),v=Math.floor((t.value[1]-t.min)/(t.max-t.min)*100),m=v-r+"%";r+="%",v+="%"}else{"object"==typeof t.value&&(t.value=Math.min.apply(null,t.value)),t.valuet.max&&(t.value=t.max);var m=Math.floor((t.value-t.min)/(t.max-t.min)*100)+"%"}var p=t.disabled?"#c2c2c2":t.theme,f='
          '+(t.tips?'
          ':"")+'
          '+(t.range?'
          ':"")+"
          ",h=i(t.elem),y=h.next("."+s);if(y[0]&&y.remove(),e.elemTemp=i(f),t.range?(e.elemTemp.find("."+o).eq(0).data("value",t.value[0]),e.elemTemp.find("."+o).eq(1).data("value",t.value[1])):e.elemTemp.find("."+o).data("value",t.value),h.html(e.elemTemp),"vertical"===t.type&&e.elemTemp.height(t.height+"px"),t.showstep){for(var g=(t.max-t.min)/t.step,b="",x=1;x
          ')}e.elemTemp.append(b)}if(t.input&&!t.range){var w=i('
          ');h.css("position","relative"),h.append(w),h.find("."+c).children("input").val(t.value),"vertical"===t.type?w.css({left:0,top:-48}):e.elemTemp.css("margin-right",w.outerWidth()+15)}t.disabled?(e.elemTemp.addClass(l),e.elemTemp.find("."+u).addClass(l)):e.slide(),e.elemTemp.find("."+u).on("mouseover",function(){var a="vertical"===t.type?t.height:e.elemTemp[0].offsetWidth,n=e.elemTemp.find("."+o),l="vertical"===t.type?a-i(this).parent()[0].offsetTop-n.height():i(this).parent()[0].offsetLeft,s=l/a*100,r=i(this).parent().data("value"),u=t.setTips?t.setTips(r):r;e.elemTemp.find("."+d).html(u),"vertical"===t.type?e.elemTemp.find("."+d).css({bottom:s+"%","margin-bottom":"20px",display:"inline-block"}):e.elemTemp.find("."+d).css({left:s+"%",display:"inline-block"})}).on("mouseout",function(){e.elemTemp.find("."+d).css("display","none")})},f.prototype.slide=function(e,t,a){var n=this,l=n.config,s=n.elemTemp,f=function(){return"vertical"===l.type?l.height:s[0].offsetWidth},h=s.find("."+o),y=s.next("."+v),g=y.children("."+c).children("input").val(),b=100/((l.max-l.min)/Math.ceil(l.step)),x=function(e,i){e=Math.ceil(e)*b>100?Math.ceil(e)*b:Math.round(e)*b,e=e>100?100:e,h.eq(i).css("vertical"===l.type?"bottom":"left",e+"%");var t=T(h[0].offsetLeft),a=l.range?T(h[1].offsetLeft):0;"vertical"===l.type?(s.find("."+d).css({bottom:e+"%","margin-bottom":"20px"}),t=T(f()-h[0].offsetTop-h.height()),a=l.range?T(f()-h[1].offsetTop-h.height()):0):s.find("."+d).css("left",e+"%"),t=t>100?100:t,a=a>100?100:a;var n=Math.min(t,a),o=Math.abs(t-a);"vertical"===l.type?s.find("."+r).css({height:o+"%",bottom:n+"%"}):s.find("."+r).css({width:o+"%",left:n+"%"});var u=l.min+Math.round((l.max-l.min)*e/100);if(g=u,y.children("."+c).children("input").val(g),h.eq(i).data("value",u),u=l.setTips?l.setTips(u):u,s.find("."+d).html(u),l.range){var v=[h.eq(0).data("value"),h.eq(1).data("value")];v[0]>v[1]&&v.reverse()}l.change&&l.change(l.range?v:u)},T=function(e){var i=e/f()*100/b,t=Math.round(i)*b;return e==f()&&(t=Math.ceil(i)*b),t},w=i(['
          f()&&(r=f());var o=r/f()*100/b;x(o,e),t.addClass(p),s.find("."+d).show(),i.preventDefault()},o=function(){t.removeClass(p),s.find("."+d).hide()};M(r,o)})}),s.on("click",function(e){var t=i("."+u);if(!t.is(event.target)&&0===t.has(event.target).length&&t.length){var a,n="vertical"===l.type?f()-e.clientY+i(this).offset().top:e.clientX-i(this).offset().left;n<0&&(n=0),n>f()&&(n=f());var s=n/f()*100/b;a=l.range?"vertical"===l.type?Math.abs(n-parseInt(i(h[0]).css("bottom")))>Math.abs(n-parseInt(i(h[1]).css("bottom")))?1:0:Math.abs(n-h[0].offsetLeft)>Math.abs(n-h[1].offsetLeft)?1:0:0,x(s,a),e.preventDefault()}}),y.hover(function(){var e=i(this);e.children("."+m).fadeIn("fast")},function(){var e=i(this);e.children("."+m).fadeOut("fast")}),y.children("."+m).children("i").each(function(e){i(this).on("click",function(){g=1==e?g-l.stepl.max?l.max:Number(g)+l.step;var i=(g-l.min)/(l.max-l.min)*100/b;x(i,0)})});var q=function(){var e=this.value;e=isNaN(e)?0:e,e=el.max?l.max:e,this.value=e;var i=(e-l.min)/(l.max-l.min)*100/b;x(i,0)};y.children("."+c).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),q.call(this))}).on("change",q)},f.prototype.events=function(){var e=this;e.config},t.render=function(e){var i=new f(e);return a.call(i)},e(n,t)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/table.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/table.js new file mode 100644 index 0000000..52a1f65 --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/table.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;layui.define(["laytpl","laypage","layer","form","util"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=(layui.util,layui.hint()),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,y,e,t)}},c=function(){var e=this,t=e.config,i=t.id||t.index;return i&&(c.that[i]=e,c.config[i]=t),{config:t,reload:function(t){e.reload.call(e,t)},setColsWidth:function(){e.setColsWidth.call(e)},resize:function(){e.resize.call(e)}}},s=function(e){var t=c.config[e];return t||o.error("The ID option was not found in the table instance"),t||null},u=function(e,a,l,n){var o=e.templet?function(){return"function"==typeof e.templet?e.templet(l):i(t(e.templet).html()||String(a)).render(l)}():a;return n?t("
          "+o+"
          ").text():o},y="table",h=".layui-table",f="layui-hide",p="layui-none",v="layui-table-view",m=".layui-table-tool",g=".layui-table-box",b=".layui-table-init",x=".layui-table-header",k=".layui-table-body",C=".layui-table-main",w=".layui-table-fixed",T=".layui-table-fixed-l",A=".layui-table-fixed-r",L=".layui-table-total",N=".layui-table-page",S=".layui-table-sort",W="layui-table-edit",_="layui-table-hover",E=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),"{{# var isSort = !(item2.colGroup) && item2.sort; }}",'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
          ','
          ','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(isSort){ }}",'',"{{# } }}","{{# } }}","
          ","
          "].join("")},z=['',"","
          "].join(""),H=['
          ',"{{# if(d.data.toolbar){ }}",'
          ','
          ','
          ',"
          ","{{# } }}",'
          ',"{{# if(d.data.loading){ }}",'
          ','',"
          ","{{# } }}","{{# var left, right; }}",'
          ',E(),"
          ",'
          ',z,"
          ","{{# if(left){ }}",'
          ','
          ',E({fixed:!0}),"
          ",'
          ',z,"
          ","
          ","{{# }; }}","{{# if(right){ }}",'
          ','
          ',E({fixed:"right"}),'
          ',"
          ",'
          ',z,"
          ","
          ","{{# }; }}","
          ","{{# if(d.data.totalRow){ }}",'
          ','','',"
          ","
          ","{{# } }}","{{# if(d.data.page){ }}",'
          ','
          ',"
          ","{{# } }}","","
          "].join(""),R=t(window),F=t(document),I=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};I.prototype.config={limit:10,loading:!0,cellMinWidth:60,defaultToolbar:["filter","exports","print"],autoSort:!0,text:{none:"无数据"}},I.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id")||e.index,a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;a.height&&/^full-\d+$/.test(a.height)&&(e.fullHeightGap=a.height.split("-")[1],a.height=R.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+v),o=e.elem=t(i(H).render({VIEW_CLASS:v,data:a,index:e.index}));if(a.index=e.index,e.key=a.id||a.index,n[0]&&n.remove(),l.after(o),e.layTool=o.find(m),e.layBox=o.find(g),e.layHeader=o.find(x),e.layMain=o.find(C),e.layBody=o.find(k),e.layFixed=o.find(w),e.layFixLeft=o.find(T),e.layFixRight=o.find(A),e.layTotal=o.find(L),e.layPage=o.find(N),e.renderToolbar(),e.fullSize(),a.cols.length>1){var r=e.layFixed.find(x).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},I.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,radio:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},I.prototype.setInit=function(e){var t=this,i=t.config;return i.clientWidth=i.width||function(){var e=function(t){var a,l;t=t||i.elem.parent(),a=t.width();try{l="none"===t.css("display")}catch(n){}return!t[0]||a&&!l?a:e(t.parent())};return e()}(),"width"===e?i.clientWidth:void layui.each(i.cols,function(e,a){layui.each(a,function(l,n){if(!n)return void a.splice(l,1);if(n.key=e+"-"+l,n.hide=n.hide||!1,n.colGroup||n.colspan>1){var o=0;layui.each(i.cols[e+1],function(t,i){i.HAS_PARENT||o>1&&o==n.colspan||(i.HAS_PARENT=!0,i.parentKey=e+"-"+l,o+=parseInt(i.colspan>1?i.colspan:1))}),n.colGroup=!0}t.initOpts(n)})})},I.prototype.renderToolbar=function(){var e=this,a=e.config,l=['
          ','
          ','
          '].join(""),n=e.layTool.find(".layui-table-tool-temp");if("default"===a.toolbar)n.html(l);else if("string"==typeof a.toolbar){var o=t(a.toolbar).html()||"";o&&n.html(i(o).render(a))}var r={filter:{title:"筛选列",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"导出",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"打印",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}},d=[];"object"==typeof a.defaultToolbar&&layui.each(a.defaultToolbar,function(e,t){var i=r[t];i&&d.push('
          ')}),e.layTool.find(".layui-table-tool-self").html(d.join(""))},I.prototype.setParentCol=function(e,t){var i=this,a=i.config,l=i.layHeader.find('th[data-key="'+a.index+"-"+t+'"]'),n=parseInt(l.attr("colspan"))||0;if(l[0]){var o=t.split("-"),r=a.cols[o[0]][o[1]];e?n--:n++,l.attr("colspan",n),l[n<1?"addClass":"removeClass"](f),r.colspan=n,r.hide=n<1;var d=l.data("parentkey");d&&i.setParentCol(e,d)}},I.prototype.setColsPatch=function(){var e=this,t=e.config;layui.each(t.cols,function(t,i){layui.each(i,function(t,i){i.hide&&e.setParentCol(i.hide,i.parentKey)})})},I.prototype.setColsWidth=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=e.setInit("width");e.eachCols(function(e,t){t.hide||i++}),o=o-function(){return"line"===t.skin||"nob"===t.skin?2:i+1}()-e.getScrollWidth(e.layMain[0])-1;var r=function(e){layui.each(t.cols,function(i,r){layui.each(r,function(i,d){var c=0,s=d.minWidth||t.cellMinWidth;return d?void(d.colGroup||d.hide||(e?l&&ln&&a&&(l=(o-n)/a)};r(),r(!0),e.autoColNums=a,e.eachCols(function(i,a){var n=a.minWidth||t.cellMinWidth;a.colGroup||a.hide||(0===a.width?e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(l>=n?l:n)+"px"}):/\d+%$/.test(a.width)&&e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(parseFloat(a.width)/100*o)+"px"}))});var d=e.layMain.width()-e.getScrollWidth(e.layMain[0])-e.layMain.children("table").outerWidth();if(e.autoColNums&&d>=-i&&d<=i){var c=function(t){var i;return t=t||e.layHeader.eq(0).find("thead th:last-child"),i=t.data("field"),!i&&t.prev()[0]?c(t.prev()):t},s=c(),u=s.data("key");e.getCssRule(u,function(t){var i=t.style.width||s.outerWidth();t.style.width=parseFloat(i)+d+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px")})}e.loading(!0)},I.prototype.resize=function(){var e=this;e.fullSize(),e.setColsWidth(),e.scrollPatch()},I.prototype.reload=function(e){var i=this;e=e||{},delete i.haveInit,e.data&&e.data.constructor===Array&&delete i.config.data,i.config=t.extend(!0,{},i.config,e),i.render()},I.prototype.errorView=function(e){var i=this,a=i.layMain.find("."+p),l=t('
          '+(e||"Error")+"
          ");a[0]&&(i.layNone.remove(),a.remove()),i.layFixed.addClass(f),i.layMain.find("tbody").html(""),i.layMain.append(i.layNone=l),d.cache[i.key]=[]},I.prototype.page=1,I.prototype.pullData=function(e){var i=this,a=i.config,l=a.request,n=a.response,o=function(){"object"==typeof a.initSort&&i.sort(a.initSort.field,a.initSort.type)};if(i.startTime=(new Date).getTime(),a.url){var r={};r[l.pageName]=e,r[l.limitName]=a.limit;var d=t.extend(r,a.where);a.contentType&&0==a.contentType.indexOf("application/json")&&(d=JSON.stringify(d)),i.loading(),t.ajax({type:a.method||"get",url:a.url,contentType:a.contentType,data:d,dataType:"json",headers:a.headers||{},success:function(t){"function"==typeof a.parseData&&(t=a.parseData(t)||t),t[n.statusName]!=n.statusCode?(i.renderForm(),i.errorView(t[n.msgName]||'返回的数据不符合规范,正确的成功状态码应为:"'+n.statusName+'": '+n.statusCode)):(i.renderData(t,e,t[n.countName]),o(),a.time=(new Date).getTime()-i.startTime+" ms"),i.setColsWidth(),"function"==typeof a.done&&a.done(t,e,t[n.countName])},error:function(e,t){i.errorView("数据接口请求异常:"+t),i.renderForm(),i.setColsWidth()}})}else if(a.data&&a.data.constructor===Array){var c={},s=e*a.limit-a.limit;c[n.dataName]=a.data.concat().splice(s,a.limit),c[n.countName]=a.data.length,i.renderData(c,e,c[n.countName]),o(),i.setColsWidth(),"function"==typeof a.done&&a.done(c,e,c[n.countName])}},I.prototype.eachCols=function(e){var t=this;return d.eachCols(null,e,t.config.cols),t},I.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,y=e[s.response.dataName]||[],h=[],v=[],m=[],g=function(){var e;return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(y,function(a,l){var o=[],y=[],p=[],g=a+s.limit*(n-1)+1;0!==l.length&&(r||(l[d.config.indexName]=a),c.eachCols(function(n,r){var c=r.field||n,h=s.index+"-"+r.key,v=l[c];if(void 0!==v&&null!==v||(v=""),!r.colGroup){var m=['','
          '+function(){var n=t.extend(!0,{LAY_INDEX:g},l),o=d.config.checkName;switch(r.type){case"checkbox":return'";case"radio":return n[o]&&(e=a),'';case"numbers":return g}return r.toolbar?i(t(r.toolbar).html()||"").render(n):u(r,v,n)}(),"
          "].join("");o.push(m),r.fixed&&"right"!==r.fixed&&y.push(m),"right"===r.fixed&&p.push(m)}}),h.push(''+o.join("")+""),v.push(''+y.join("")+""),m.push(''+p.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+p).remove(),c.layMain.find("tbody").html(h.join("")),c.layFixLeft.find("tbody").html(v.join("")),c.layFixRight.find("tbody").html(m.join("")),c.renderForm(),"number"==typeof e&&c.setThisRowChecked(e),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,l.close(c.tipsIndex),s.HAS_SET_COLS_PATCH||c.setColsPatch(),void(s.HAS_SET_COLS_PATCH=!0))};return d.cache[c.key]=y,c.layPage[0==o||0===y.length&&1==n?"addClass":"removeClass"](f),r?g():0===y.length?(c.renderForm(),c.errorView(s.text.none)):(c.layFixed.removeClass(f),g(),c.renderTotal(y),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.pullData(e.curr))}},s.page),s.page.count=o,a.render(s.page))))},I.prototype.renderTotal=function(e){var t=this,i=t.config,a={};if(i.totalRow){layui.each(e,function(e,i){0!==i.length&&t.eachCols(function(e,t){var l=t.field||e,n=i[l];t.totalRow&&(a[l]=(a[l]||0)+(parseFloat(n)||0))})});var l=[];t.eachCols(function(e,t){var n=t.field||e,o=['','
          '+function(){var e=t.totalRowText||"";return t.totalRow?parseFloat(a[n]).toFixed(2)||e:e}(),"
          "].join("");l.push(o)}),t.layTotal.find("tbody").html(""+l.join("")+"")}},I.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},I.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},I.prototype.setThisRowChecked=function(e){var t=this,i=(t.config,"layui-table-click"),a=t.layBody.find('tr[data-index="'+e+'"]');a.addClass(i).siblings("tr").removeClass(i)},I.prototype.sort=function(e,i,a,l){var n,r,c=this,s={},u=c.config,h=u.elem.attr("lay-filter"),f=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field"),p=e.data("key");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var v=c.layHeader.find("th .laytable-cell-"+p).find(S);c.layHeader.find("th").find(S).removeAttr("lay-sort"),v.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},u.autoSort&&("asc"===i?r=layui.sort(f,n):"desc"===i?r=layui.sort(f,n,!0):(r=layui.sort(f,d.config.indexName),delete c.sortKey)),s[u.response.dataName]=r||f,c.renderData(s,c.page,c.count,!0),l&&layui.event.call(e,y,"sort("+h+")",{field:n,type:i})},I.prototype.loading=function(e){var i=this,a=i.config;a.loading&&(e?(i.layInit&&i.layInit.remove(),delete i.layInit,i.layBox.find(b).remove()):(i.layInit=t(['
          ','',"
          "].join("")),i.layBox.append(i.layInit)))},I.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},I.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},I.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(i,a){if(a.selectorText===".laytable-cell-"+e)return t(a),!0})},I.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=R.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),a&&(e=parseFloat(a)-(t.layHeader.outerHeight()||38),i.toolbar&&(e-=t.layTool.outerHeight()||50),i.totalRow&&(e-=t.layTotal.outerHeight()||40),i.page&&(e-=t.layPage.outerHeight()||41),t.layMain.css("height",e-2))},I.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},I.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=(e.getScrollWidth(e.layMain[0]),i.outerWidth()-e.layMain.width()),o=function(e){if(a&&l){if(e=e.eq(0),!e.find(".layui-table-patch")[0]){var i=t('
          ');i.find("div").css({width:a}),e.find("tr").append(i)}}else e.find(".layui-table-patch").remove()};o(e.layHeader),o(e.layTotal);var r=e.layMain.height(),d=r-l;e.layFixed.find(k).css("height",i.height()>=d?d:"auto"),e.layFixRight[n>0?"removeClass":"addClass"](f),e.layFixRight.css("right",a-1)},I.prototype.events=function(){var e,a=this,o=a.config,c=t("body"),s={},u=a.layHeader.find("th"),h=".layui-table-cell",p=o.elem.attr("lay-filter");a.layTool.on("click","*[lay-event]",function(e){var i=t(this),c=i.attr("lay-event"),s=function(e){var l=t(e.list),n=t('
            ');n.html(l),o.height&&n.css("max-height",o.height-(a.layTool.outerHeight()||50)),i.find(".layui-table-tool-panel")[0]||i.append(n),a.renderForm(),n.on("click",function(e){layui.stope(e)}),e.done&&e.done(n,l)};switch(layui.stope(e),F.trigger("table.tool.panel.remove"),l.close(a.tipsIndex),c){case"LAYTABLE_COLS":s({list:function(){var e=[];return a.eachCols(function(t,i){i.field&&"normal"==i.type&&e.push('
          • ')}),e.join("")}(),done:function(){n.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var i=t(e.elem),l=this.checked,n=i.data("key"),r=i.data("parentkey");layui.each(o.cols,function(e,t){layui.each(t,function(t,i){if(e+"-"+t===n){var d=i.hide;i.hide=!l,a.elem.find('*[data-key="'+o.index+"-"+n+'"]')[l?"removeClass":"addClass"](f),d!=i.hide&&a.setParentCol(!l,r),a.resize()}})})})}});break;case"LAYTABLE_EXPORT":r.ie?l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出",this,{tips:3}):s({list:function(){return['
          • 导出到 Csv 文件
          • ','
          • 导出到 Excel 文件
          • '].join("")}(),done:function(e,i){i.on("click",function(){var e=t(this).data("type");d.exportFile(o.id,null,e)})}});break;case"LAYTABLE_PRINT":var u=window.open("打印窗口","_blank"),h=[""].join(""),v=t(a.layHeader.html());v.append(a.layMain.find("table").html()),v.append(a.layTotal.find("table").html()),v.find("th.layui-table-patch").remove(),v.find(".layui-table-col-special").remove(),u.document.write(h+v.prop("outerHTML")),u.document.close(),u.print(),u.close()}layui.event.call(this,y,"toolbar("+p+")",t.extend({event:c,config:o},{}))}),u.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||s.resizeStart||(s.allowResize=i.width()-l<=10,c.css("cursor",s.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);s.resizeStart||c.css("cursor","")}).on("mousedown",function(e){var i=t(this);if(s.allowResize){var l=i.data("key");e.preventDefault(),s.resizeStart=!0,s.offset=[e.clientX,e.clientY],a.getCssRule(l,function(e){var t=e.style.width||i.outerWidth();s.rule=e,s.ruleWidth=parseFloat(t),s.minWidth=i.data("minwidth")||o.cellMinWidth})}}),F.on("mousemove",function(t){if(s.resizeStart){if(t.preventDefault(),s.rule){var i=s.ruleWidth+t.clientX-s.offset[0];i');return n[0].value=i.data("content")||l.text(),i.find("."+W)[0]||i.append(n),n.focus(),void layui.stope(e)}}).on("mouseenter","td",function(){b.call(this)}).on("mouseleave","td",function(){b.call(this,"hide")});var g="layui-table-grid-down",b=function(e){var i=t(this),a=i.children(h);if(!i.data("off"))if(e)i.find(".layui-table-grid-down").remove();else if(a.prop("scrollWidth")>a.outerWidth()){if(a.find("."+g)[0])return;i.append('
            ')}};a.layBody.on("click","."+g,function(e){var i=t(this),n=i.parent(),d=n.children(h);a.tipsIndex=l.tips(['
            ',d.html(),"
            ",''].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:a.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}),layui.stope(e)}),a.layBody.on("click","*[lay-event]",function(){var e=t(this),i=e.parents("tr").eq(0).data("index");layui.event.call(this,y,"tool("+p+")",v.call(this,{event:e.attr("lay-event")})),a.setThisRowChecked(i)}),a.layMain.on("scroll",function(){var e=t(this),i=e.scrollLeft(),n=e.scrollTop();a.layHeader.scrollLeft(i),a.layTotal.scrollLeft(i),a.layFixed.find(k).scrollTop(n),l.close(a.tipsIndex)}),F.on("click",function(){F.trigger("table.remove.tool.panel")}),F.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()}),R.on("resize",function(){a.resize()})},d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':h+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},c.that={},c.config={},d.eachCols=function(e,i,a){var l=c.config[e]||{},n=[],o=0;a=t.extend(!0,[],a||l.cols),layui.each(a,function(e,t){layui.each(t,function(t,i){if(i.colGroup){var l=0;o++,i.CHILD_COLS=[],layui.each(a[e+1],function(e,t){t.PARENT_COL_INDEX||l>1&&l==i.colspan||(t.PARENT_COL_INDEX=o,i.CHILD_COLS.push(t),l+=parseInt(t.colspan>1?t.colspan:1))})}i.PARENT_COL_INDEX||n.push(i)})});var r=function(e){layui.each(e||n,function(e,t){return t.CHILD_COLS?r(t.CHILD_COLS):void("function"==typeof i&&i(e,t))})};r()},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},d.exportFile=function(e,t,i){t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var a=c.config[e]||{},l={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],n=document.createElement("a");return r.ie?o.error("IE_NOT_SUPPORT_EXPORTS"):(n.href="data:"+l+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],a=[];return layui.each(t,function(t,l){var n=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(l),function(e,t){n.push('"'+(t||"")+'"')})):d.eachCols(e,function(e,a){a.field&&"normal"==a.type&&!a.hide&&(0==t&&i.push(a.title||""),n.push('"'+u(a,l[a.field],l,"text")+'"'))}),a.push(n.join(","))}),i.join(",")+"\r\n"+a.join("\r\n")}()),n.download=(a.title||"table_"+(a.index||""))+"."+i,document.body.appendChild(n),n.click(),void document.body.removeChild(n))},d.resize=function(e){if(e){var t=s(e);if(!t)return;c.that[e].resize()}else layui.each(c.that,function(){this.resize()})},d.reload=function(e,t){var i=s(e);if(i){var a=c.that[e];return a.reload(t),c.call(a)}},d.render=function(e){var t=new I(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(y,d)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/transfer.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/transfer.js new file mode 100644 index 0000000..3d19012 --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/transfer.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;layui.define(["laytpl","form"],function(e){"use strict";var a=layui.$,t=layui.laytpl,n=layui.form,i="transfer",l={config:{},index:layui[i]?layui[i].index+1e4:0,set:function(e){var t=this;return t.config=a.extend({},t.config,e),t},on:function(e,a){return layui.onevent.call(this,i,e,a)}},r=function(){var e=this,a=e.config,t=a.id||e.index;return r.that[t]=e,r.config[t]=a,{config:a,reload:function(a){e.reload.call(e,a)},getData:function(){return e.getData.call(e)}}},c="layui-hide",o="layui-btn-disabled",d="layui-none",s="layui-transfer-box",u="layui-transfer-header",h="layui-transfer-search",f="layui-transfer-active",y="layui-transfer-data",p=function(e){return e=e||{},['
            ','
            ','","
            ","{{# if(d.data.showSearch){ }}",'","{{# } }}",'
              ',"
              "].join("")},v=['
              ',p({index:0,checkAllName:"layTransferLeftCheckAll"}),'
              ','",'","
              ",p({index:1,checkAllName:"layTransferRightCheckAll"}),"
              "].join(""),x=function(e){var t=this;t.index=++l.index,t.config=a.extend({},t.config,l.config,e),t.render()};x.prototype.config={title:["列表一","列表二"],width:200,height:360,data:[],value:[],showSearch:!1,id:"",text:{none:"无数据",searchNone:"无匹配数据"}},x.prototype.reload=function(e){var t=this;layui.each(e,function(e,a){a.constructor===Array&&delete t.config[e]}),t.config=a.extend(!0,{},t.config,e),t.render()},x.prototype.render=function(){var e=this,n=e.config,i=e.elem=a(t(v).render({data:n,index:e.index})),l=n.elem=a(n.elem);l[0]&&(n.data=n.data||[],n.value=n.value||[],e.key=n.id||e.index,l.html(e.elem),e.layBox=e.elem.find("."+s),e.layHeader=e.elem.find("."+u),e.laySearch=e.elem.find("."+h),e.layData=i.find("."+y),e.layBtn=i.find("."+f+" .layui-btn"),e.layBox.css({width:n.width,height:n.height}),e.layData.css({height:function(){return n.height-e.layHeader.outerHeight()-e.laySearch.outerHeight()-2}()}),e.renderData(),e.events())},x.prototype.renderData=function(){var e=this,a=(e.config,[{checkName:"layTransferLeftCheck",views:[]},{checkName:"layTransferRightCheck",views:[]}]);e.parseData(function(e){var t=e.selected?1:0,n=["
            • ",'',"
            • "].join("");a[t].views.push(n),delete e.selected}),e.layData.eq(0).html(a[0].views.join("")),e.layData.eq(1).html(a[1].views.join("")),e.renderCheckBtn()},x.prototype.renderForm=function(e){n.render(e,"LAY-transfer-"+this.index)},x.prototype.renderCheckBtn=function(e){var t=this,n=t.config;e=e||{},t.layBox.each(function(i){var l=a(this),r=l.find("."+y),d=l.find("."+u).find('input[type="checkbox"]'),s=r.find('input[type="checkbox"]'),h=0,f=!1;if(s.each(function(){var e=a(this).data("hide");(this.checked||this.disabled||e)&&h++,this.checked&&!e&&(f=!0)}),d.prop("checked",f&&h===s.length),t.layBtn.eq(i)[f?"removeClass":"addClass"](o),!e.stopNone){var p=r.children("li:not(."+c+")").length;t.noneView(r,p?"":n.text.none)}}),t.renderForm("checkbox")},x.prototype.noneView=function(e,t){var n=a('

              '+(t||"")+"

              ");e.find("."+d)[0]&&e.find("."+d).remove(),t.replace(/\s/g,"")&&e.append(n)},x.prototype.setValue=function(){var e=this,t=e.config,n=[];return e.layBox.eq(1).find("."+y+' input[type="checkbox"]').each(function(){var e=a(this).data("hide");e||n.push(this.value)}),t.value=n,e},x.prototype.parseData=function(e){var t=this,n=t.config,i=[];return layui.each(n.data,function(t,l){l=("function"==typeof n.parseData?n.parseData(l):l)||l,i.push(l=a.extend({},l)),layui.each(n.value,function(e,a){a==l.value&&(l.selected=!0)}),e&&e(l)}),n.data=i,t},x.prototype.getData=function(e){var a=this,t=a.config,n=[];return layui.each(e||t.value,function(e,a){layui.each(t.data,function(e,t){delete t.selected,a==t.value&&n.push(t)})}),n},x.prototype.events=function(){var e=this,t=e.config;e.elem.on("click",'input[lay-filter="layTransferCheckbox"]+',function(){var t=a(this).prev(),n=t[0].checked,i=t.parents("."+s).eq(0).find("."+y);t[0].disabled||("all"===t.attr("lay-type")&&i.find('input[type="checkbox"]').each(function(){this.disabled||(this.checked=n)}),e.renderCheckBtn({stopNone:!0}))}),e.layBtn.on("click",function(){var n=a(this),i=n.data("index"),l=e.layBox.eq(i),r=[];if(!n.hasClass(o)){e.layBox.eq(i).each(function(t){var n=a(this),i=n.find("."+y);i.children("li").each(function(){var t=a(this),n=t.find('input[type="checkbox"]'),i=n.data("hide");n[0].checked&&!i&&(n[0].checked=!1,l.siblings("."+s).find("."+y).append(t.clone()),t.remove(),r.push(n[0].value)),e.setValue()})}),e.renderCheckBtn();var c=l.siblings("."+s).find("."+h+" input");""===c.val()||c.trigger("keyup"),t.onchange&&t.onchange(e.getData(r),i)}}),e.laySearch.find("input").on("keyup",function(){var n=this.value,i=a(this).parents("."+h).eq(0).siblings("."+y),l=i.children("li");l.each(function(){var e=a(this),t=e.find('input[type="checkbox"]'),i=t[0].title.indexOf(n)!==-1;e[i?"removeClass":"addClass"](c),t.data("hide",!i)}),e.renderCheckBtn();var r=l.length===i.children("li."+c).length;e.noneView(i,r?t.text.searchNone:"")})},r.that={},r.config={},l.reload=function(e,a){var t=r.that[e];return t.reload(a),r.call(t)},l.getData=function(e){var a=r.that[e];return a.getData()},l.render=function(e){var a=new x(e);return r.call(a)},e(i,l)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/tree.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/tree.js new file mode 100644 index 0000000..07d3a9f --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/tree.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;layui.define("form",function(e){"use strict";var i=layui.$,a=layui.form,n="tree",r={config:{},index:layui[n]?layui[n].index+1e4:0,set:function(e){var a=this;return a.config=i.extend({},a.config,e),a},on:function(e,i){return layui.onevent.call(this,n,e,i)}},l=function(){var e=this,i=e.config,a=i.id||e.index;return l.that[a]=e,l.config[a]=i,{config:i,reload:function(i){e.reload.call(e,i)},getChecked:function(){return e.getChecked.call(e)},setChecked:function(i){return e.setChecked.call(e,i)}}},t="layui-hide",d="layui-disabled",s="layui-tree-set",c="layui-tree-iconClick",o="layui-icon-addition",h="layui-icon-subtraction",u="layui-tree-entry",f="layui-tree-main",p="layui-tree-txt",y="layui-tree-pack",v="layui-tree-spread",C="layui-tree-setLineShort",m="layui-tree-showLine",k="layui-tree-lineExtend",g=function(e){var a=this;a.index=++r.index,a.config=i.extend({},a.config,r.config,e),a.render()};g.prototype.config={data:[],showCheckbox:!1,showLine:!0,accordion:!1,onlyIconControl:!1,isJump:!1,edit:!1,text:{defaultNodeName:"未命名",none:"无数据"}},g.prototype.reload=function(e){var a=this;layui.each(e,function(e,i){i.constructor===Array&&delete a.config[e]}),a.config=i.extend(!0,{},a.config,e),a.render()},g.prototype.render=function(){var e=this,a=e.config,n=i('
              ');e.tree(n);var r=a.elem=i(a.elem);if(r[0]){if(a.showSearch&&n.prepend(''),e.key=a.id||e.index,e.elem=n,e.elemNone=i('
              '+a.text.none+"
              "),r.html(e.elem),0==e.elem.find(".layui-tree-set").length)return e.elem.append(e.elemNone);a.drag&&e.drag(),a.showCheckbox&&e.renderForm("checkbox"),e.elem.find(".layui-tree-set").each(function(){var e=i(this);e.parent(".layui-tree-pack")[0]||e.addClass("layui-tree-setHide"),!e.next()[0]&&e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend")&&e.addClass(C),e.next()[0]||e.parents(".layui-tree-set").eq(0).next()[0]||e.addClass(C)}),e.events()}},g.prototype.renderForm=function(e){a.render(e,"LAY-tree-"+this.index)},g.prototype.tree=function(e,a){var n=this,r=n.config,l=a||r.data;layui.each(l,function(a,l){var c=l.children&&l.children.length>0,o=i('
              '),h=i(['
              ',"
              ','
              ',function(){return r.showLine?c?'':'':''}(),function(){return r.showCheckbox?'':""}(),function(){return r.isJump&&l.href?''+(l.title||l.label||r.text.defaultNodeName)+"":''+(l.title||l.label||r.text.defaultNodeName)+""}(),"
              ",function(){if(!r.edit)return"";var e={add:'',update:'',del:''},i=['
              '];return r.edit===!0&&(r.edit=["update","del"]),"object"==typeof r.edit?(layui.each(r.edit,function(a,n){i.push(e[n]||"")}),i.join("")+"
              "):void 0}(),"
              "].join(""));c&&(h.append(o),n.tree(o,l.children)),e.append(h),h.prev("."+s)[0]&&h.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"),c||h.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"),n.spread(h,l),r.showCheckbox&&n.checkClick(h,l),r.edit&&n.operate(h,l)})},g.prototype.spread=function(e,a){var n=this,r=n.config,l=e.children("."+u),t=l.children("."+f),C=l.find("."+c),m=l.find("."+p),k=r.onlyIconControl?C:t,g="";k.on("click",function(i){var a=e.children("."+y),n=k.children(".layui-icon")[0]?k.children(".layui-icon"):k.find(".layui-tree-icon").children(".layui-icon");if(a[0]){if(e.hasClass(v))e.removeClass(v),a.slideUp(200),n.removeClass(h).addClass(o);else if(e.addClass(v),a.slideDown(200),n.addClass(h).removeClass(o),r.accordion){var l=e.siblings("."+s);l.removeClass(v),l.children("."+y).slideUp(200),l.find(".layui-tree-icon").children(".layui-icon").removeClass(h).addClass(o)}}else g="normal"}),m.on("click",function(){var n=i(this);n.hasClass(d)||(g=e.hasClass(v)?r.onlyIconControl?"open":"close":r.onlyIconControl?"close":"open",r.click&&r.click({elem:e,state:g,data:a}))})},g.prototype.setCheckbox=function(e,i,a){var n=this,r=(n.config,a.prop("checked"));if("object"==typeof i.children||e.find("."+y)[0]){var l=e.find("."+y).find('input[name="layuiTreeCheck"]');l.each(function(){this.disabled||(this.checked=r)})}var t=function(e){if(e.parents("."+s)[0]){var i,a=e.parent("."+y),n=a.parent(),l=a.prev().find('input[name="layuiTreeCheck"]');r?l.prop("checked",r):(a.find('input[name="layuiTreeCheck"]').each(function(){this.checked&&(i=!0)}),i||l.prop("checked",!1)),t(n)}};t(e),n.renderForm("checkbox")},g.prototype.checkClick=function(e,a){var n=this,r=n.config,l=e.children("."+u),t=l.children("."+f);t.on("click",'input[name="layuiTreeCheck"]+',function(l){layui.stope(l);var t=i(this).prev(),d=t.prop("checked");t.prop("disabled")||(n.setCheckbox(e,a,t),r.oncheck&&r.oncheck({elem:e,checked:d,data:a}))})},g.prototype.operate=function(e,a){var n=this,r=n.config,l=e.children("."+u),d=l.children("."+f);l.children(".layui-tree-btnGroup").on("click",".layui-icon",function(l){layui.stope(l);var f=i(this).data("type"),g=e.children("."+y),x={data:a,type:f,elem:e};if("add"==f){g[0]||(r.showLine?(d.find("."+c).addClass("layui-tree-icon"),d.find("."+c).children(".layui-icon").addClass(o).removeClass("layui-icon-file")):d.find(".layui-tree-iconArrow").removeClass(t),e.append('
              '));var b=r.operate&&r.operate(x),w={};if(w.title=r.text.defaultNodeName,w.id=b,n.tree(e.children("."+y),[w]),r.showLine)if(g[0])g.hasClass(k)||g.addClass(k),e.find("."+y).each(function(){i(this).children("."+s).last().addClass(C)}),g.children("."+s).last().prev().hasClass(C)?g.children("."+s).last().prev().removeClass(C):g.children("."+s).last().removeClass(C),!e.parent("."+y)[0]&&e.next()[0]&&g.children("."+s).last().removeClass(C);else{var T=e.siblings("."+s),L=1,N=e.parent("."+y);layui.each(T,function(e,a){i(a).children("."+y)[0]||(L=0)}),1==L?(T.children("."+y).addClass(m),T.children("."+y).children("."+s).removeClass(C),e.children("."+y).addClass(m),N.removeClass(k),N.children("."+s).last().children("."+y).children("."+s).last().addClass(C)):e.children("."+y).children("."+s).addClass(C)}if(!r.showCheckbox)return;if(d.find('input[name="layuiTreeCheck"]')[0].checked){var A=e.children("."+y).children("."+s).last();A.find('input[name="layuiTreeCheck"]')[0].checked=!0}n.renderForm("checkbox")}else if("update"==f){var q=d.children("."+p).html();d.children("."+p).html(""),d.append(''),d.children(".layui-tree-editInput").val(q).focus();var F=function(e){var i=e.val().trim();i=i?i:r.text.defaultNodeName,e.remove(),d.children("."+p).html(i),x.data.title=i,r.operate&&r.operate(x)};d.children(".layui-tree-editInput").blur(function(){F(i(this))}),d.children(".layui-tree-editInput").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),F(i(this)))})}else{if(r.operate&&r.operate(x),x.status="remove",!e.prev("."+s)[0]&&!e.next("."+s)[0]&&!e.parent("."+y)[0])return e.remove(),void n.elem.append(n.elemNone);if(e.siblings("."+s).children("."+u)[0]){if(r.showCheckbox){var I=function(e){if(e.parents("."+s)[0]){var a=e.siblings("."+s).children("."+u),r=e.parent("."+y).prev(),l=r.find('input[name="layuiTreeCheck"]')[0],t=1,d=0;0==l.checked&&(a.each(function(e,a){var n=i(a).find('input[name="layuiTreeCheck"]')[0];0!=n.checked||n.disabled||(t=0),n.disabled||(d=1)}),1==t&&1==d&&(l.checked=!0,n.renderForm("checkbox"),I(r.parent("."+s))))}};I(e)}if(r.showLine){var T=e.siblings("."+s),L=1,N=e.parent("."+y);layui.each(T,function(e,a){i(a).children("."+y)[0]||(L=0)}),1==L?(g[0]||(N.removeClass(k),T.children("."+y).addClass(m),T.children("."+y).children("."+s).removeClass(C)),e.next()[0]?N.children("."+s).last().children("."+y).children("."+s).last().addClass(C):e.prev().children("."+y).children("."+s).last().addClass(C),e.next()[0]||e.parents("."+s)[1]||e.parents("."+s).eq(0).next()[0]||e.prev("."+s).addClass(C)):!e.next()[0]&&e.hasClass(C)&&e.prev().addClass(C)}}else{var H=e.parent("."+y).prev();if(r.showLine){H.find("."+c).removeClass("layui-tree-icon"),H.find("."+c).children(".layui-icon").removeClass(h).addClass("layui-icon-file");var S=H.parents("."+y).eq(0);S.addClass(k),S.children("."+s).each(function(){i(this).children("."+y).children("."+s).last().addClass(C)})}else H.find(".layui-tree-iconArrow").addClass(t);e.parents("."+s).eq(0).removeClass(v),e.parent("."+y).remove()}e.remove()}})},g.prototype.drag=function(){var e=this,a=e.config;e.elem.on("dragstart","."+u,function(){var e=i(this).parent("."+s),n=e.parents("."+s)[0]?e.parents("."+s).eq(0):"未找到父节点";a.dragstart&&a.dragstart(e,n)}),e.elem.on("dragend","."+u,function(n){var n=n||event,r=n.clientY,l=i(this),d=l.parent("."+s),f=d.height(),p=d.offset().top,g=e.elem.find("."+s),x=e.elem.height(),b=e.elem.offset().top,w=x+b-13,T=d.parents("."+s)[0],L=d.next()[0];if(T)var N=d.parent("."+y),A=d.parents("."+s).eq(0),q=A.parent("."+y),F=A.offset().top,I=d.siblings(),H=A.children("."+y).children("."+s).length;var S=function(n){if(T||L||e.elem.children("."+s).last().children("."+y).children("."+s).last().addClass(C),!T)return void d.removeClass("layui-tree-setHide");if(1==H)a.showLine?(n.find("."+c).removeClass("layui-tree-icon"),n.find("."+c).children(".layui-icon").removeClass(h).addClass("layui-icon-file"),q.addClass(k),q.children("."+s).children("."+y).each(function(){i(this).children("."+s).last().addClass(C)})):n.find(".layui-tree-iconArrow").addClass(t),n.children("."+y).remove(),n.removeClass(v);else{if(a.showLine){var r=1;layui.each(I,function(e,a){i(a).children("."+y)[0]||(r=0)}),1==r?(d.children("."+y)[0]||(N.removeClass(k),I.children("."+y).addClass(m),I.children("."+y).children("."+s).removeClass(C)),N.children("."+s).last().children("."+y).children("."+s).last().addClass(C),L||n.parents("."+s)[0]||n.next()[0]||N.children("."+s).last().addClass(C)):!L&&d.hasClass(C)&&N.children("."+s).last().addClass(C)}if(a.showCheckbox){var l=function(a){if(a){if(!a.parents("."+s)[0])return}else if(!n[0])return;var r=a?a.siblings().children("."+u):I.children("."+u),t=a?a.parent("."+y).prev():N.prev(),d=t.find('input[name="layuiTreeCheck"]')[0],c=1,o=0;0==d.checked&&(r.each(function(e,a){var n=i(a).find('input[name="layuiTreeCheck"]')[0];0!=n.checked||n.disabled||(c=0),n.disabled||(o=1)}),1==c&&1==o&&(d.checked=!0,e.renderForm("checkbox"),l(t.parent("."+s)||n)))};l()}}};g.each(function(){if(0!=i(this).height()){if(r>p&&rF&&rn&&r
              ')),i(this).children("."+y).append(d),S(A),a.showLine){var l=i(this).children("."+y).children("."+s);if(d.children("."+y).children("."+s).last().addClass(C),1==l.length){var h=i(this).siblings("."+s),v=1,g=i(this).parent("."+y);layui.each(h,function(e,a){i(a).children("."+y)[0]||(v=0)}),1==v?(h.children("."+y).addClass(m),h.children("."+y).children("."+s).removeClass(C),i(this).children("."+y).addClass(m),g.removeClass(k),g.children("."+s).last().children("."+y).children("."+s).last().addClass(C).removeClass("layui-tree-setHide")):i(this).children("."+y).children("."+s).addClass(C).removeClass("layui-tree-setHide")}else d.prev("."+s).hasClass(C)?(d.prev("."+s).removeClass(C),d.addClass(C)):(d.removeClass("layui-tree-setLineShort layui-tree-setHide"),d.children("."+y)[0]?d.prev("."+s).children("."+y).children("."+s).last().removeClass(C):d.siblings("."+s).find("."+y).each(function(){i(this).children("."+s).last().addClass(C)})),i(this).next()[0]||d.addClass(C)}if(a.showCheckbox&&i(this).children("."+u).find('input[name="layuiTreeCheck"]')[0].checked){var x=d.children("."+u);x.find('input[name="layuiTreeCheck"]+').click()}return a.dragend&&a.dragend("drag success",d,i(this)),!1}if(rw)return e.elem.children("."+s).last().children("."+y).addClass(m),e.elem.append(d),S(A),d.prev().children("."+y).children("."+s).last().removeClass(C),d.addClass("layui-tree-setHide"),d.children("."+y).children("."+s).last().addClass(C),a.dragend&&a.dragend("拖拽成功,插入最外层节点",d,e.elem),!1}})})},g.prototype.events=function(){var e=this,a=e.config,n=e.elem.find(".layui-tree-checkedFirst");layui.each(n,function(e,a){i(a).children("."+u).find('input[name="layuiTreeCheck"]+').trigger("click")}),e.elem.find(".layui-tree-search").on("keyup",function(){var n=i(this),r=n.val(),l=n.nextAll(),d=[];l.find("."+p).each(function(){var e=i(this).parents("."+u);if(i(this).html().indexOf(r)!=-1){d.push(i(this).parent());var a=function(e){e.addClass("layui-tree-searchShow"),e.parent("."+y)[0]&&a(e.parent("."+y).parent("."+s))};a(e.parent("."+s))}}),l.find("."+u).each(function(){var e=i(this).parent("."+s);e.hasClass("layui-tree-searchShow")||e.addClass(t)}),0==l.find(".layui-tree-searchShow").length&&e.elem.append(e.elemNone),a.onsearch&&a.onsearch({elem:d})}),e.elem.find(".layui-tree-search").on("keydown",function(){i(this).nextAll().find("."+u).each(function(){var e=i(this).parent("."+s);e.removeClass("layui-tree-searchShow "+t)}),i(".layui-tree-emptyText")[0]&&i(".layui-tree-emptyText").remove()})},g.prototype.getChecked=function(){var e=this,a=e.config,n=[],r=[];e.elem.find(".layui-form-checked").each(function(){n.push(i(this).prev()[0].value)});var l=function(e,a){layui.each(e,function(e,r){layui.each(n,function(e,n){if(r.id==n){var t=i.extend({},r);return delete t.children,a.push(t),r.children&&(t.children=[],l(r.children,t.children)),!0}})})};return l(i.extend({},a.data),r),r},g.prototype.setChecked=function(e){var a=this;a.config;a.elem.find("."+s).each(function(a,n){var r=i(this).data("id"),l=i(n).children("."+u).find('input[name="layuiTreeCheck"]'),t=l.next();if("number"==typeof e){if(r==e)return l[0].checked||t.click(),!1}else i.inArray(r,e)!=-1&&(l[0].checked||t.click())})},l.that={},l.config={},r.reload=function(e,i){var a=l.that[e];return a.reload(i),l.call(a)},r.getChecked=function(e){var i=l.that[e];return i.getChecked()},r.setChecked=function(e,i){var a=l.that[e];return a.setChecked(i)},r.render=function(e){var i=new g(e);return l.call(i)},e(n,r)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/upload.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/upload.js new file mode 100644 index 0000000..4dee81b --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/upload.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,r,e,t)}},l=function(){var e=this;return{upload:function(t){e.upload.call(e,t)},reload:function(t){e.reload.call(e,t)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var i=this;i.config=t.extend({},i.config,o.config,e),i.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",acceptMime:"",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var i=this,e=i.config;e.elem=t(e.elem),e.bindAction=t(e.bindAction),i.file(),i.events()},p.prototype.file=function(){var e=this,i=e.config,n=e.elemFile=t(['"].join("")),o=i.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&i.elem.wrap('
              '),e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,i=e.config,n=t(''),a=t(['
              ',"
              "].join(""));t("#"+f)[0]||t("body").append(n),i.elem.next().hasClass(c)||(e.elemFile.wrap(a),i.elem.next("."+c).append(function(){var e=[];return layui.each(i.data,function(t,i){i="function"==typeof i?i():i,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return i.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var t=this;window.FileReader&&layui.each(t.chooseFiles,function(t,i){var n=new FileReader;n.readAsDataURL(i),n.onload=function(){e&&e(t,i,this.result)}})},p.prototype.upload=function(e,i){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var i=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&i+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:i,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,t){t="function"==typeof t?t():t,r.append(e,t)}),t.ajax({url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(t){i++,d(e,t),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=t("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var t,i=e.contents().find("body");try{t=i.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}t&&(clearInterval(p.timer),i.html(""),d(0,t))},30)},d=function(e,t){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof t)try{t=JSON.parse(t)}catch(i){return t={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(t,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var t=[];return layui.each(e||o.chooseFiles,function(e,i){t.push(i.name)}),t}(),g={preview:function(e){o.preview(e)},upload:function(e,t){var i={};i[e]=t,o.upload(i)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,t){o.files[e]=t}),o.files},resetFile:function(e,t,i){var n=new File([t],i);o.files=o.files||{},o.files[e]=n}},y=function(){if("choose"!==i&&!l.auto||(l.choose&&l.choose(g),"choose"!==i))return l.before&&l.before(g),a.ie?a.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,t){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(t))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var t=0,i=e||o.files||o.chooseFiles||r.files;return layui.each(i,function(){t++}),t}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,t){if(t.size>1024*l.size){var i=l.size/1024;i=i>=1?i.toFixed(2)+"MB":l.size+"KB",r.value="",F=i}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.reload=function(e){e=e||{},delete e.elem,delete e.bindAction;var i=this,e=i.config=t.extend({},i.config,o.config,e),n=e.elem.next();n.attr({name:e.name,accept:e.acceptMime,multiple:e.multiple})},p.prototype.events=function(){var e=this,i=e.config,o=function(t){e.chooseFiles={},layui.each(t,function(t,i){var n=(new Date).getTime();e.chooseFiles[n+"-"+t]=i})},l=function(t,n){var a=e.elemFile,o=t.length>1?t.length+"个文件":(t[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||i.choose||a.after(''+o+"")};i.elem.off("upload.start").on("upload.start",function(){var a=t(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=t.extend({},i,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||i.elem.off("upload.over").on("upload.over",function(){var e=t(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=t(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=t(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),i.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var t=this.files||[];o(t),i.auto?e.upload():l(t)}),i.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),i.elem.data("haveEvents")||(e.elemFile.on("change",function(){t(this).trigger("upload.change")}),i.elem.on("click",function(){e.isFile()||t(this).trigger("upload.start")}),i.drag&&i.elem.on("dragover",function(e){e.preventDefault(),t(this).trigger("upload.over")}).on("dragleave",function(e){t(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),t(this).trigger("upload.drop",e)}),i.bindAction.on("click",function(){t(this).trigger("upload.action")}),i.elem.data("haveEvents",!0))},o.render=function(e){var t=new p(e);return l.call(t)},e(r,o)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/util.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/util.js new file mode 100644 index 0000000..4148c2c --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/lay/modules/util.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,n,a="layui-fixbar",o="layui-fixbar-top",r=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"":t.bar1,t.bar2=t.bar2===!0?"":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,""],g=e(['
                ',t.bar1?'
              • '+c[0]+"
              • ":"",t.bar2?'
              • '+c[1]+"
              • ":"",'
              • '+c[2]+"
              • ","
              "].join("")),s=g.find("."+o),u=function(){var e=r.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+a)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),n=i.attr("lay-type");"top"===n&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,n)}),r.on("scroll",function(){clearTimeout(n),n=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var n=this,a="function"==typeof e,o=new Date(t).getTime(),r=new Date(!e||a?(new Date).getTime():e).getTime(),l=o-r,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=e);var g=setTimeout(function(){n.countdown(t,r+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,n=[[],[]],a=(new Date).getTime()-new Date(t).getTime();return a>6912e5?(a=new Date(t),n[0][0]=i.digit(a.getFullYear(),4),n[0][1]=i.digit(a.getMonth()+1),n[0][2]=i.digit(a.getDate()),e||(n[1][0]=i.digit(a.getHours()),n[1][1]=i.digit(a.getMinutes()),n[1][2]=i.digit(a.getSeconds())),n[0].join("-")+" "+n[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=12e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var n=t.length;n/g,">").replace(/'/g,"'").replace(/"/g,""")},event:function(t,n,a){n=i.event[t]=e.extend(!0,i.event[t],n)||{},e("body").on(a||"click","*["+t+"]",function(){var i=e(this),a=i.attr(t);n[a]&&n[a].call(this,i)})}};!function(t,e,i){"$:nomunge";function n(){a=e[l](function(){o.each(function(){var e=t(this),i=e.width(),n=e.height(),a=t.data(this,g);(i!==a.w||n!==a.h)&&e.trigger(c,[a.w=i,a.h=n])}),n()},r[s])}var a,o=t([]),r=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";r[s]=250,r[u]=!0,t.event.special[c]={setup:function(){if(!r[u]&&this[l])return!1;var e=t(this);o=o.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===o.length&&n()},teardown:function(){if(!r[u]&&this[l])return!1;var e=t(this);o=o.not(e),e.removeData(g),o.length||clearTimeout(a)},add:function(e){function n(e,n,o){var r=t(this),l=t.data(this,g)||{};l.w=n!==i?n:r.width(),l.h=o!==i?o:r.height(),a.apply(this,arguments)}if(!r[u]&&this[l])return!1;var a;return t.isFunction(e)?(a=e,n):(a=e.handler,void(e.handler=n))}}}(e,window),t("util",i)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/layui.all.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/layui.all.js new file mode 100644 index 0000000..8c19e71 --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/layui.all.js @@ -0,0 +1,5 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.5.4"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,o=t.scripts,n=o.length-1,r=n;r>0;r--)if("interactive"===o[r].readyState){e=o[r].src;break}return e||o[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),i=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},a="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",transfer:"modules/transfer",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,i=function(){var e=function(e,t){layui[e]=t,o.status[e]=!0};return"function"==typeof t&&t(function(n,r){e(n,r),o.callback[n]=function(){t(e)}}),this};return r&&(t=e,e=[]),!layui["layui.all"]&&layui["layui.mobile"]?i.call(n):(n.use(e,i),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":o.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||a?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var a=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?a:(function p(){return++y>1e3*o.timeout/100?i(e+" timeout"):void(1989===parseInt(a.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),a)},o.callback={},n.prototype.factory=function(e){if(layui[e])return"function"==typeof o.callback[e]?o.callback[e]:null},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,"function"==typeof t&&t(n)},void(n.onerror=function(e){n.onerror=null,"function"==typeof o&&o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?i("模块名 "+o+" 已被占用"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),o.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o,n){if(t=t||"layui",n=n||localStorage,e.JSON&&e.JSON.parse){if(null===o)return delete n[t];o="object"==typeof o?o:{key:o};try{var r=JSON.parse(n[t])}catch(i){var r={}}return"value"in o&&(r[o.key]=o.value),o.remove&&delete r[o.key],n[t]=JSON.stringify(r),o.key?r[o.key]:r}},n.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:i}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;oi?1:r/g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push(''+(a.first||1)+"");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r2&&e.push('');r<=u;r++)r===a.curr?e.push('"+r+""):e.push(''+r+"");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1…'),0!==t&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),refresh:['','',""].join(""),skip:function(){return['到第','','页',""].join("")}()};return['
              ',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"
              "].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;oi.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)});!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期
              建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,isInitValue:!0,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push(''+n.timeTips+""),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push(''+o+""))}),e.push('"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));t.elem&&(n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3))},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length必须遵循下述格式:
              "+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"
              已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html(''+n+""),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.nowl.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.yeard[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e=t&&e=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["

              "+r.time[e]+"

                "];w.each(new Array(t),function(t){i.push(""+w.digit(t,2)+"")}),a.innerHTML=i.join("")+"
              ",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;iT.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}), +l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[W,p,x];break}}else if(v&&(d=t,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==y:1!==d.nodeType)||!++x||(v&&(f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[W,x]),d!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(se,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,we),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,we).toLowerCase(),function(t){var n;do if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&_&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(be,we),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(be,we),ve.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Q.apply(n,r),n;break}}return(l||k(e,f))(r,t,!_,n,!t||ve.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pe.find=ve,pe.expr=ve.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ve.uniqueSort,pe.text=ve.getText,pe.isXMLDoc=ve.isXML,pe.contains=ve.contains;var xe=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pe(e).is(n))break;r.push(e)}return r},be=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Te=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ce=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pe.find.matchesSelector(r,e)?[r]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;t1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var Ee,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ke=pe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ne.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),Te.test(r[1])&&pe.isPlainObject(t))for(r in t)pe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=re.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Ee.find(e);this.length=1,this[0]=i}return this.context=re,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};ke.prototype=pe.fn,Ee=pe(re);var Se=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xe(e,"parentNode")},parentsUntil:function(e,t,n){return xe(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xe(e,"nextSibling")},prevAll:function(e){return xe(e,"previousSibling")},nextUntil:function(e,t,n){return xe(e,"nextSibling",n)},prevUntil:function(e,t,n){return xe(e,"previousSibling",n)},siblings:function(e){return be((e.parentNode||{}).firstChild,e)},children:function(e){return be(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,r){var i=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pe.filter(r,i)),this.length>1&&(Ae[e]||(i=pe.uniqueSort(i)),Se.test(e)&&(i=i.reverse())),this.pushStack(i)}});var De=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u-1;)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,r):r}},i={};return r.pipe=r.then,pe.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=ie.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,u=1===s?e:pe.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?ie.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i0||(je.resolveWith(re,[pe]),pe.fn.triggerHandler&&(pe(re).triggerHandler("ready"),pe(re).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll)e.setTimeout(pe.ready);else if(re.addEventListener)re.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{re.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&re.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var Le;for(Le in pe(fe))break;fe.ownFirst="0"===Le,fe.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,r;n=re.getElementsByTagName("body")[0],n&&n.style&&(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",fe.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=re.createElement("div");fe.deleteExpando=!0;try{delete e.test}catch(t){fe.deleteExpando=!1}e=null}();var He=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)},qe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,_e=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return f(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return f(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pe.camelCase(r.slice(5)),u(o,r,i[r])));pe._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?u(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=pe._data(e,t),n&&(!r||pe.isArray(n)?r=pe._data(e,t,pe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),r=n.length,i=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length
              a",fe.leadingWhitespace=3===e.firstChild.nodeType,fe.tbody=!e.getElementsByTagName("tbody").length,fe.htmlSerialize=!!e.getElementsByTagName("link").length,fe.html5Clone="<:nav>"!==re.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),fe.appendChecked=n.checked,e.innerHTML="",fe.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=re.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),fe.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,fe.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,""],legend:[1,"
              ","
              "],area:[1,"",""],param:[1,"",""],thead:[1,"","
              "],tr:[2,"","
              "],col:[2,"","
              "],td:[3,"","
              "],_default:fe.htmlSerialize?[0,"",""]:[1,"X
              ","
              "]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ue=/<|&#?\w+;/,Ve=/-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;nt",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r
              a",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("
              ").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){ +for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){layui.$=pe,e("jquery",pe)}),pe});!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'
              '+(f?r.title[0]:r.title)+"
              ":"";return r.zIndex=s,t([r.shade?'
              ':"",'
              '+(e&&2!=r.type?"":u)+'
              '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
              '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
              '+e+"
              "}():"")+(r.resize?'':"")+"
              "],u,i('
              ')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
                '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
              • '+(t[0].content||"no content")+"
              • ";i'+(t[i].content||"no content")+"";return a}()+"
              ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
              '+(u.length>1?'':"")+'
              '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
              ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
              是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);layui.define("jquery",function(t){"use strict";var a=layui.$,i=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(t){var i=this;return a.extend(!0,i.config,t),i},s.prototype.on=function(t,a){return layui.onevent.call(this,e,t,a)},s.prototype.tabAdd=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),r='
            • "+(i.title||"unnaming")+"
            • ";return s[0]?s.before(r):n.append(r),o.append('
              '+(i.content||"")+"
              "),f.hideTabMore(!0),f.tabAuto(),this},s.prototype.tabDelete=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabDelete(null,s),this},s.prototype.tabChange=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(t){t=t||{},b.on("click",t.headerElem,function(i){var e=a(this).index();f.tabClick.call(this,i,e,null,t)})},s.prototype.progress=function(t,i){var e="layui-progress",l=a("."+e+"[lay-filter="+t+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",i),s.text(i),this};var o=".layui-nav",r="layui-nav-item",c="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",y="layui-nav-more",h="layui-anim layui-anim-upbit",f={tabClick:function(t,i,s,o){o=o||{};var r=s||a(this),i=i||r.parent().children("li").index(r),c=o.headerElem?r.parent():r.parents(".layui-tab").eq(0),u=o.bodyElem?a(o.bodyElem):c.children(".layui-tab-content").children(".layui-tab-item"),d=r.find("a"),y=c.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(r.addClass(l).siblings().removeClass(l),u.eq(i).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+y+")",{elem:c,index:i})},tabDelete:function(t,i){var n=i||a(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),r=o.children(".layui-tab-content").children(".layui-tab-item"),c=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?f.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&f.tabClick.call(n.prev()[0],null,s-1)),n.remove(),r.eq(s).remove(),setTimeout(function(){f.tabAuto()},50),layui.event.call(this,e,"tabDelete("+c+")",{elem:o,index:s})},tabAuto:function(){var t="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;a(".layui-tab").each(function(){var s=a(this),o=s.children(".layui-tab-title"),r=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),c=a('');if(n===window&&8!=i.ie&&f.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var t=a(this);if(!t.find("."+l)[0]){var i=a('');i.on("click",f.tabDelete),t.append(i)}}),"string"!=typeof s.attr("lay-unauto"))if(o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(c),s.attr("overflow",""),c.on("click",function(a){o[this.title?"removeClass":"addClass"](t),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(t){var i=a(".layui-tab-title");t!==!0&&"tabmore"===a(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=a(this),i=t.parents(o),n=i.attr("lay-filter"),s=t.parent(),c=t.siblings("."+d),y="string"==typeof s.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||y||c[0]||(i.find("."+l).removeClass(l),s.addClass(l)),i.hasClass(u)&&(c.removeClass(h),c[0]&&(s["none"===c.css("display")?"addClass":"removeClass"](r+"ed"),"all"===i.attr("lay-shrink")&&s.siblings().removeClass(r+"ed"))),layui.event.call(this,e,"nav("+n+")",t)},collapse:function(){var t=a(this),i=t.find(".layui-colla-icon"),l=t.siblings(".layui-colla-content"),s=t.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),r="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var c=s.children(".layui-colla-item").children("."+n);c.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),c.removeClass(n)}l[r?"addClass":"removeClass"](n),i.html(r?"":""),layui.event.call(this,e,"collapse("+o+")",{title:t,content:l,show:r})}};s.prototype.init=function(t,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){f.tabAuto.call({})},nav:function(){var t=200,e={},s={},p={},b=function(l,o,r){var c=a(this),f=c.find("."+d);o.hasClass(u)?l.css({top:c.position().top,height:c.children("a").outerHeight(),opacity:1}):(f.addClass(h),l.css({left:c.position().left+parseFloat(c.css("marginLeft")),top:c.position().top+c.height()-l.height()}),e[r]=setTimeout(function(){l.css({width:c.width(),opacity:1})},i.ie&&i.ie<10?0:t),clearTimeout(p[r]),"block"===f.css("display")&&clearTimeout(s[r]),s[r]=setTimeout(function(){f.addClass(n),c.find("."+y).addClass(y+"d")},300))};a(o+l).each(function(i){var l=a(this),o=a(''),h=l.find("."+r);l.find("."+c)[0]||(l.append(o),h.on("mouseenter",function(){b.call(this,o,l,i)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[i]),s[i]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+y).removeClass(y+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[i]),p[i]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},t)})),h.find("a").each(function(){var t=a(this),i=(t.parent(),t.siblings("."+d));i[0]&&!t.children("."+y)[0]&&t.append(''),t.off("click",f.clickThis).on("click",f.clickThis)})})},breadcrumb:function(){var t=".layui-breadcrumb";a(t+l).each(function(){var t=a(this),i="lay-separator",e=t.attr(i)||"/",l=t.find("a");l.next("span["+i+"]")[0]||(l.each(function(t){t!==l.length-1&&a(this).after(""+e+"")}),t.css("visibility","visible"))})},progress:function(){var t="layui-progress";a("."+t+l).each(function(){var i=a(this),e=i.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),i.attr("lay-showPercent")&&setTimeout(function(){e.html(''+l+"")},350)})},collapse:function(){var t="layui-collapse";a("."+t+l).each(function(){var t=a(this).find(".layui-colla-item");t.each(function(){var t=a(this),i=t.find(".layui-colla-title"),e=t.find(".layui-colla-content"),l="none"===e.css("display");i.find(".layui-colla-icon").remove(),i.append(''+(l?"":"")+""),i.off("click",f.collapse).on("click",f.collapse)})})}};return s[t]?s[t]():layui.each(s,function(t,a){a()})},s.prototype.render=s.prototype.init;var p=new s,b=a(document);p.render();var v=".layui-tab-title li";b.on("click",v,f.tabClick),b.on("click",f.hideTabMore),a(window).on("resize",f.tabAuto),t(e,p)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,r,e,t)}},l=function(){var e=this;return{upload:function(t){e.upload.call(e,t)},reload:function(t){e.reload.call(e,t)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var i=this;i.config=t.extend({},i.config,o.config,e),i.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",acceptMime:"",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var i=this,e=i.config;e.elem=t(e.elem),e.bindAction=t(e.bindAction),i.file(),i.events()},p.prototype.file=function(){var e=this,i=e.config,n=e.elemFile=t(['"].join("")),o=i.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&i.elem.wrap('
              '),e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,i=e.config,n=t(''),a=t(['
              ',"
              "].join(""));t("#"+f)[0]||t("body").append(n),i.elem.next().hasClass(c)||(e.elemFile.wrap(a),i.elem.next("."+c).append(function(){var e=[];return layui.each(i.data,function(t,i){i="function"==typeof i?i():i,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return i.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var t=this;window.FileReader&&layui.each(t.chooseFiles,function(t,i){var n=new FileReader;n.readAsDataURL(i),n.onload=function(){e&&e(t,i,this.result)}})},p.prototype.upload=function(e,i){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var i=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&i+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:i,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,t){t="function"==typeof t?t():t,r.append(e,t)}),t.ajax({url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(t){i++,d(e,t),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=t("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var t,i=e.contents().find("body");try{t=i.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}t&&(clearInterval(p.timer),i.html(""),d(0,t))},30)},d=function(e,t){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof t)try{t=JSON.parse(t)}catch(i){return t={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(t,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var t=[];return layui.each(e||o.chooseFiles,function(e,i){t.push(i.name)}),t}(),g={preview:function(e){o.preview(e)},upload:function(e,t){var i={};i[e]=t,o.upload(i)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,t){o.files[e]=t}),o.files},resetFile:function(e,t,i){var n=new File([t],i);o.files=o.files||{},o.files[e]=n}},y=function(){if("choose"!==i&&!l.auto||(l.choose&&l.choose(g),"choose"!==i))return l.before&&l.before(g),a.ie?a.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,t){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(t))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var t=0,i=e||o.files||o.chooseFiles||r.files;return layui.each(i,function(){t++}),t}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,t){if(t.size>1024*l.size){var i=l.size/1024;i=i>=1?i.toFixed(2)+"MB":l.size+"KB",r.value="",F=i}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.reload=function(e){e=e||{},delete e.elem,delete e.bindAction;var i=this,e=i.config=t.extend({},i.config,o.config,e),n=e.elem.next();n.attr({name:e.name,accept:e.acceptMime,multiple:e.multiple})},p.prototype.events=function(){var e=this,i=e.config,o=function(t){e.chooseFiles={},layui.each(t,function(t,i){var n=(new Date).getTime();e.chooseFiles[n+"-"+t]=i})},l=function(t,n){var a=e.elemFile,o=t.length>1?t.length+"个文件":(t[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||i.choose||a.after(''+o+"")};i.elem.off("upload.start").on("upload.start",function(){var a=t(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=t.extend({},i,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||i.elem.off("upload.over").on("upload.over",function(){var e=t(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=t(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=t(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),i.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var t=this.files||[];o(t),i.auto?e.upload():l(t)}),i.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),i.elem.data("haveEvents")||(e.elemFile.on("change",function(){t(this).trigger("upload.change")}),i.elem.on("click",function(){e.isFile()||t(this).trigger("upload.start")}),i.drag&&i.elem.on("dragover",function(e){e.preventDefault(),t(this).trigger("upload.over")}).on("dragleave",function(e){t(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),t(this).trigger("upload.drop",e)}),i.bindAction.on("click",function(){t(this).trigger("upload.action")}),i.elem.data("haveEvents",!0))},o.render=function(e){var t=new p(e);return l.call(t)},e(r,o)});layui.define("jquery",function(e){"use strict";var i=layui.jquery,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,n,e,i)}},a=function(){var e=this,i=e.config;return{setValue:function(i,t){return e.slide("set",i,t||0)},config:i}},n="slider",l="layui-disabled",s="layui-slider",r="layui-slider-bar",o="layui-slider-wrap",u="layui-slider-wrap-btn",d="layui-slider-tips",v="layui-slider-input",c="layui-slider-input-txt",m="layui-slider-input-btn",p="layui-slider-hover",f=function(e){var a=this;a.index=++t.index,a.config=i.extend({},a.config,t.config,e),a.render()};f.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},f.prototype.render=function(){var e=this,t=e.config;if(t.step<1&&(t.step=1),t.maxt.min?a:t.min,t.value[1]=n>t.min?n:t.min,t.value[0]=t.value[0]>t.max?t.max:t.value[0],t.value[1]=t.value[1]>t.max?t.max:t.value[1];var r=Math.floor((t.value[0]-t.min)/(t.max-t.min)*100),v=Math.floor((t.value[1]-t.min)/(t.max-t.min)*100),m=v-r+"%";r+="%",v+="%"}else{"object"==typeof t.value&&(t.value=Math.min.apply(null,t.value)),t.valuet.max&&(t.value=t.max);var m=Math.floor((t.value-t.min)/(t.max-t.min)*100)+"%"}var p=t.disabled?"#c2c2c2":t.theme,f='
              '+(t.tips?'
              ':"")+'
              '+(t.range?'
              ':"")+"
              ",h=i(t.elem),y=h.next("."+s);if(y[0]&&y.remove(),e.elemTemp=i(f),t.range?(e.elemTemp.find("."+o).eq(0).data("value",t.value[0]),e.elemTemp.find("."+o).eq(1).data("value",t.value[1])):e.elemTemp.find("."+o).data("value",t.value),h.html(e.elemTemp),"vertical"===t.type&&e.elemTemp.height(t.height+"px"),t.showstep){for(var g=(t.max-t.min)/t.step,b="",x=1;x
              ')}e.elemTemp.append(b)}if(t.input&&!t.range){var w=i('
              ');h.css("position","relative"),h.append(w),h.find("."+c).children("input").val(t.value),"vertical"===t.type?w.css({left:0,top:-48}):e.elemTemp.css("margin-right",w.outerWidth()+15)}t.disabled?(e.elemTemp.addClass(l),e.elemTemp.find("."+u).addClass(l)):e.slide(),e.elemTemp.find("."+u).on("mouseover",function(){var a="vertical"===t.type?t.height:e.elemTemp[0].offsetWidth,n=e.elemTemp.find("."+o),l="vertical"===t.type?a-i(this).parent()[0].offsetTop-n.height():i(this).parent()[0].offsetLeft,s=l/a*100,r=i(this).parent().data("value"),u=t.setTips?t.setTips(r):r;e.elemTemp.find("."+d).html(u),"vertical"===t.type?e.elemTemp.find("."+d).css({bottom:s+"%","margin-bottom":"20px",display:"inline-block"}):e.elemTemp.find("."+d).css({left:s+"%",display:"inline-block"})}).on("mouseout",function(){e.elemTemp.find("."+d).css("display","none")})},f.prototype.slide=function(e,t,a){var n=this,l=n.config,s=n.elemTemp,f=function(){return"vertical"===l.type?l.height:s[0].offsetWidth},h=s.find("."+o),y=s.next("."+v),g=y.children("."+c).children("input").val(),b=100/((l.max-l.min)/Math.ceil(l.step)),x=function(e,i){e=Math.ceil(e)*b>100?Math.ceil(e)*b:Math.round(e)*b,e=e>100?100:e,h.eq(i).css("vertical"===l.type?"bottom":"left",e+"%");var t=T(h[0].offsetLeft),a=l.range?T(h[1].offsetLeft):0;"vertical"===l.type?(s.find("."+d).css({bottom:e+"%","margin-bottom":"20px"}),t=T(f()-h[0].offsetTop-h.height()),a=l.range?T(f()-h[1].offsetTop-h.height()):0):s.find("."+d).css("left",e+"%"),t=t>100?100:t,a=a>100?100:a;var n=Math.min(t,a),o=Math.abs(t-a);"vertical"===l.type?s.find("."+r).css({height:o+"%",bottom:n+"%"}):s.find("."+r).css({width:o+"%",left:n+"%"});var u=l.min+Math.round((l.max-l.min)*e/100);if(g=u,y.children("."+c).children("input").val(g),h.eq(i).data("value",u),u=l.setTips?l.setTips(u):u,s.find("."+d).html(u),l.range){var v=[h.eq(0).data("value"),h.eq(1).data("value")];v[0]>v[1]&&v.reverse()}l.change&&l.change(l.range?v:u)},T=function(e){var i=e/f()*100/b,t=Math.round(i)*b;return e==f()&&(t=Math.ceil(i)*b),t},w=i(['
              f()&&(r=f());var o=r/f()*100/b;x(o,e),t.addClass(p),s.find("."+d).show(),i.preventDefault()},o=function(){t.removeClass(p),s.find("."+d).hide()};M(r,o)})}),s.on("click",function(e){var t=i("."+u);if(!t.is(event.target)&&0===t.has(event.target).length&&t.length){var a,n="vertical"===l.type?f()-e.clientY+i(this).offset().top:e.clientX-i(this).offset().left;n<0&&(n=0),n>f()&&(n=f());var s=n/f()*100/b;a=l.range?"vertical"===l.type?Math.abs(n-parseInt(i(h[0]).css("bottom")))>Math.abs(n-parseInt(i(h[1]).css("bottom")))?1:0:Math.abs(n-h[0].offsetLeft)>Math.abs(n-h[1].offsetLeft)?1:0:0,x(s,a),e.preventDefault()}}),y.hover(function(){var e=i(this);e.children("."+m).fadeIn("fast")},function(){var e=i(this);e.children("."+m).fadeOut("fast")}),y.children("."+m).children("i").each(function(e){i(this).on("click",function(){g=1==e?g-l.stepl.max?l.max:Number(g)+l.step;var i=(g-l.min)/(l.max-l.min)*100/b;x(i,0)})});var q=function(){var e=this.value;e=isNaN(e)?0:e,e=el.max?l.max:e,this.value=e;var i=(e-l.min)/(l.max-l.min)*100/b;x(i,0)};y.children("."+c).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),q.call(this))}).on("change",q)},f.prototype.events=function(){var e=this;e.config},t.render=function(e){var i=new f(e);return a.call(i)},e(n,t)});layui.define("jquery",function(e){"use strict";var i=layui.jquery,o={config:{},index:layui.colorpicker?layui.colorpicker.index+1e4:0,set:function(e){var o=this;return o.config=i.extend({},o.config,e),o},on:function(e,i){return layui.onevent.call(this,"colorpicker",e,i)}},r=function(){var e=this,i=e.config;return{config:i}},t="colorpicker",n="layui-show",l="layui-colorpicker",c=".layui-colorpicker-main",a="layui-icon-down",s="layui-icon-close",f="layui-colorpicker-trigger-span",d="layui-colorpicker-trigger-i",u="layui-colorpicker-side",p="layui-colorpicker-side-slider",g="layui-colorpicker-basis",v="layui-colorpicker-alpha-bgcolor",h="layui-colorpicker-alpha-slider",m="layui-colorpicker-basis-cursor",b="layui-colorpicker-main-input",k=function(e){var i={h:0,s:0,b:0},o=Math.min(e.r,e.g,e.b),r=Math.max(e.r,e.g,e.b),t=r-o;return i.b=r,i.s=0!=r?255*t/r:0,0!=i.s?e.r==r?i.h=(e.g-e.b)/t:e.g==r?i.h=2+(e.b-e.r)/t:i.h=4+(e.r-e.g)/t:i.h=-1,r==o&&(i.h=0),i.h*=60,i.h<0&&(i.h+=360),i.s*=100/255,i.b*=100/255,i},y=function(e){var e=e.indexOf("#")>-1?e.substring(1):e;if(3==e.length){var i=e.split("");e=i[0]+i[0]+i[1]+i[1]+i[2]+i[2]}e=parseInt(e,16);var o={r:e>>16,g:(65280&e)>>8,b:255&e};return k(o)},x=function(e){var i={},o=e.h,r=255*e.s/100,t=255*e.b/100;if(0==r)i.r=i.g=i.b=t;else{var n=t,l=(255-r)*t/255,c=(n-l)*(o%60)/60;360==o&&(o=0),o<60?(i.r=n,i.b=l,i.g=l+c):o<120?(i.g=n,i.b=l,i.r=n-c):o<180?(i.g=n,i.r=l,i.b=l+c):o<240?(i.b=n,i.r=l,i.g=n-c):o<300?(i.b=n,i.g=l,i.r=l+c):o<360?(i.r=n,i.g=l,i.b=n-c):(i.r=0,i.g=0,i.b=0)}return{r:Math.round(i.r),g:Math.round(i.g),b:Math.round(i.b)}},C=function(e){var o=x(e),r=[o.r.toString(16),o.g.toString(16),o.b.toString(16)];return i.each(r,function(e,i){1==i.length&&(r[e]="0"+i)}),r.join("")},P=function(e){var i=/[0-9]{1,3}/g,o=e.match(i)||[];return{r:o[0],g:o[1],b:o[2]}},B=i(window),w=i(document),D=function(e){var r=this;r.index=++o.index,r.config=i.extend({},r.config,o.config,e),r.render()};D.prototype.config={color:"",size:null,alpha:!1,format:"hex",predefine:!1,colors:["#009688","#5FB878","#1E9FFF","#FF5722","#FFB800","#01AAED","#999","#c00","#ff8c00","#ffd700","#90ee90","#00ced1","#1e90ff","#c71585","rgb(0, 186, 189)","rgb(255, 120, 0)","rgb(250, 212, 0)","#393D49","rgba(0,0,0,.5)","rgba(255, 69, 0, 0.68)","rgba(144, 240, 144, 0.5)","rgba(31, 147, 255, 0.73)"]},D.prototype.render=function(){var e=this,o=e.config,r=i(['
              ',"",'3&&(o.alpha&&"rgb"==o.format||(e="#"+C(k(P(o.color))))),"background: "+e):e}()+'">','',"","","
              "].join("")),t=i(o.elem);o.size&&r.addClass("layui-colorpicker-"+o.size),t.addClass("layui-inline").html(e.elemColorBox=r),e.color=e.elemColorBox.find("."+f)[0].style.background,e.events()},D.prototype.renderPicker=function(){var e=this,o=e.config,r=e.elemColorBox[0],t=e.elemPicker=i(['
              ','
              ','
              ','
              ','
              ','
              ',"
              ",'
              ','
              ',"
              ","
              ",'
              ','
              ','
              ',"
              ","
              ",function(){if(o.predefine){var e=['
              '];return layui.each(o.colors,function(i,o){e.push(['
              ','
              ',"
              "].join(""))}),e.push("
              "),e.join("")}return""}(),'
              ','
              ','',"
              ",'
              ','','',"","
              "].join(""));e.elemColorBox.find("."+f)[0];i(c)[0]&&i(c).data("index")==e.index?e.removePicker(D.thisElemInd):(e.removePicker(D.thisElemInd),i("body").append(t)),D.thisElemInd=e.index,D.thisColor=r.style.background,e.position(),e.pickerEvents()},D.prototype.removePicker=function(e){var o=this;o.config;return i("#layui-colorpicker"+(e||o.index)).remove(),o},D.prototype.position=function(){var e=this,i=e.config,o=e.bindElem||e.elemColorBox[0],r=e.elemPicker[0],t=o.getBoundingClientRect(),n=r.offsetWidth,l=r.offsetHeight,c=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},a=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},s=5,f=t.left,d=t.bottom;f-=(n-o.offsetWidth)/2,d+=s,f+n+s>a("width")?f=a("width")-n-s:fa()&&(d=t.top>l?t.top-l:a()-l,d-=2*s),i.position&&(r.style.position=i.position),r.style.left=f+("fixed"===i.position?0:c(1))+"px",r.style.top=d+("fixed"===i.position?0:c())+"px"},D.prototype.val=function(){var e=this,i=(e.config,e.elemColorBox.find("."+f)),o=e.elemPicker.find("."+b),r=i[0],t=r.style.backgroundColor;if(t){var n=k(P(t)),l=i.attr("lay-type");if(e.select(n.h,n.s,n.b),"torgb"===l&&o.find("input").val(t),"rgba"===l){var c=P(t);if(3==(t.match(/[0-9]{1,3}/g)||[]).length)o.find("input").val("rgba("+c.r+", "+c.g+", "+c.b+", 1)"),e.elemPicker.find("."+h).css("left",280);else{o.find("input").val(t);var a=280*t.slice(t.lastIndexOf(",")+1,t.length-1);e.elemPicker.find("."+h).css("left",a)}e.elemPicker.find("."+v)[0].style.background="linear-gradient(to right, rgba("+c.r+", "+c.g+", "+c.b+", 0), rgb("+c.r+", "+c.g+", "+c.b+"))"}}else e.select(0,100,100),o.find("input").val(""),e.elemPicker.find("."+v)[0].style.background="",e.elemPicker.find("."+h).css("left",280)},D.prototype.side=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=r.attr("lay-type"),n=e.elemPicker.find("."+u),l=e.elemPicker.find("."+p),c=e.elemPicker.find("."+g),y=e.elemPicker.find("."+m),C=e.elemPicker.find("."+v),w=e.elemPicker.find("."+h),D=l[0].offsetTop/180*360,E=100-(y[0].offsetTop+3)/180*100,H=(y[0].offsetLeft+3)/260*100,W=Math.round(w[0].offsetLeft/280*100)/100,j=e.elemColorBox.find("."+d),F=e.elemPicker.find(".layui-colorpicker-pre").children("div"),L=function(i,n,l,c){e.select(i,n,l);var f=x({h:i,s:n,b:l});if(j.addClass(a).removeClass(s),r[0].style.background="rgb("+f.r+", "+f.g+", "+f.b+")","torgb"===t&&e.elemPicker.find("."+b).find("input").val("rgb("+f.r+", "+f.g+", "+f.b+")"),"rgba"===t){var d=0;d=280*c,w.css("left",d),e.elemPicker.find("."+b).find("input").val("rgba("+f.r+", "+f.g+", "+f.b+", "+c+")"),r[0].style.background="rgba("+f.r+", "+f.g+", "+f.b+", "+c+")",C[0].style.background="linear-gradient(to right, rgba("+f.r+", "+f.g+", "+f.b+", 0), rgb("+f.r+", "+f.g+", "+f.b+"))"}o.change&&o.change(e.elemPicker.find("."+b).find("input").val())},M=i(['
              t&&(r=t);var l=r/180*360;D=l,L(l,H,E,W),e.preventDefault()};Y(r),e.preventDefault()}),n.on("click",function(e){var o=e.clientY-i(this).offset().top;o<0&&(o=0),o>this.offsetHeight&&(o=this.offsetHeight);var r=o/180*360;D=r,L(r,H,E,W),e.preventDefault()}),y.on("mousedown",function(e){var i=this.offsetTop,o=this.offsetLeft,r=e.clientY,t=e.clientX,n=function(e){var n=i+(e.clientY-r),l=o+(e.clientX-t),a=c[0].offsetHeight-3,s=c[0].offsetWidth-3;n<-3&&(n=-3),n>a&&(n=a),l<-3&&(l=-3),l>s&&(l=s);var f=(l+3)/260*100,d=100-(n+3)/180*100;E=d,H=f,L(D,f,d,W),e.preventDefault()};layui.stope(e),Y(n),e.preventDefault()}),c.on("mousedown",function(e){var o=e.clientY-i(this).offset().top-3+B.scrollTop(),r=e.clientX-i(this).offset().left-3+B.scrollLeft();o<-3&&(o=-3),o>this.offsetHeight-3&&(o=this.offsetHeight-3),r<-3&&(r=-3),r>this.offsetWidth-3&&(r=this.offsetWidth-3);var t=(r+3)/260*100,n=100-(o+3)/180*100;E=n,H=t,L(D,t,n,W),e.preventDefault(),y.trigger(e,"mousedown")}),w.on("mousedown",function(e){var i=this.offsetLeft,o=e.clientX,r=function(e){var r=i+(e.clientX-o),t=C[0].offsetWidth;r<0&&(r=0),r>t&&(r=t);var n=Math.round(r/280*100)/100;W=n,L(D,H,E,n),e.preventDefault()};Y(r),e.preventDefault()}),C.on("click",function(e){var o=e.clientX-i(this).offset().left;o<0&&(o=0),o>this.offsetWidth&&(o=this.offsetWidth);var r=Math.round(o/280*100)/100;W=r,L(D,H,E,r),e.preventDefault()}),F.each(function(){i(this).on("click",function(){i(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e,o=this.style.backgroundColor,r=k(P(o)),t=o.slice(o.lastIndexOf(",")+1,o.length-1);D=r.h,H=r.s,E=r.b,3==(o.match(/[0-9]{1,3}/g)||[]).length&&(t=1),W=t,e=280*t,L(r.h,r.s,r.b,t)})})},D.prototype.select=function(e,i,o,r){var t=this,n=(t.config,C({h:e,s:100,b:100})),l=C({h:e,s:i,b:o}),c=e/360*180,a=180-o/100*180-3,s=i/100*260-3;t.elemPicker.find("."+p).css("top",c),t.elemPicker.find("."+g)[0].style.background="#"+n,t.elemPicker.find("."+m).css({top:a,left:s}),"change"!==r&&t.elemPicker.find("."+b).find("input").val("#"+l)},D.prototype.pickerEvents=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=e.elemPicker.find("."+b+" input"),n={clear:function(i){r[0].style.background="",e.elemColorBox.find("."+d).removeClass(a).addClass(s),e.color="",o.done&&o.done(""),e.removePicker()},confirm:function(i,n){var l=t.val(),c=l,f={};if(l.indexOf(",")>-1){if(f=k(P(l)),e.select(f.h,f.s,f.b),r[0].style.background=c="#"+C(f),(l.match(/[0-9]{1,3}/g)||[]).length>3&&"rgba"===r.attr("lay-type")){var u=280*l.slice(l.lastIndexOf(",")+1,l.length-1);e.elemPicker.find("."+h).css("left",u),r[0].style.background=l,c=l}}else f=y(l),r[0].style.background=c="#"+C(f),e.elemColorBox.find("."+d).removeClass(s).addClass(a);return"change"===n?(e.select(f.h,f.s,f.b,n),void(o.change&&o.change(c))):(e.color=l,o.done&&o.done(l),void e.removePicker())}};e.elemPicker.on("click","*[colorpicker-events]",function(){var e=i(this),o=e.attr("colorpicker-events");n[o]&&n[o].call(this,e)}),t.on("keyup",function(e){var o=i(this);n.confirm.call(this,o,13===e.keyCode?null:"change")})},D.prototype.events=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f);e.elemColorBox.on("click",function(){e.renderPicker(),i(c)[0]&&(e.val(),e.side())}),o.elem[0]&&!e.elemColorBox[0].eventHandler&&(w.on("click",function(o){if(!i(o.target).hasClass(l)&&!i(o.target).parents("."+l)[0]&&!i(o.target).hasClass(c.replace(/\./g,""))&&!i(o.target).parents(c)[0]&&e.elemPicker){if(e.color){var t=k(P(e.color));e.select(t.h,t.s,t.b)}else e.elemColorBox.find("."+d).removeClass(a).addClass(s);r[0].style.background=e.color||"",e.removePicker()}}),B.on("resize",function(){return!(!e.elemPicker||!i(c)[0])&&void e.position()}),e.elemColorBox[0].eventHandler=!0)},o.render=function(e){var i=new D(e);return r.call(i)},e(t,o)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",s="layui-this",o="layui-hide",c="layui-disabled",u=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:function(e){if(!e||isNaN(e))return"只能填写数字"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};u.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},u.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},u.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},u.prototype.val=function(e,i){var a=t(r+'[lay-filter="'+e+'"]');a.each(function(e,a){var n=t(this);layui.each(i,function(e,t){var i,a=n.find('[name="'+e+'"]');a[0]&&(i=a[0].type,"checkbox"===i?a[0].checked=t:"radio"===i?a.each(function(){this.value==t&&(this.checked=!0)}):a.val(t))})}),f.render(null,e)},u.prototype.render=function(e,i){var n=this,u=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),d={select:function(){var e,i="请选择",a="layui-form-select",n="layui-select-title",r="layui-select-none",d="",f=u.find("select"),v=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},y=function(i,u,f){var y,p=t(this),m=i.find("."+n),k=m.find("input"),x=i.find("dl"),g=x.children("dd"),b=this.selectedIndex;if(!u){var C=function(){var e=i.offset().top+i.outerHeight()+5-h.scrollTop(),t=x.outerHeight();b=p[0].selectedIndex,i.addClass(a+"ed"),g.removeClass(o),y=null,g.eq(b).addClass(s).siblings().removeClass(s),e+t>h.height()&&e>=t&&i.addClass(a+"up"),T()},w=function(e){i.removeClass(a+"ed "+a+"up"),k.blur(),y=null,e||$(k.val(),function(e){var i=p[0].selectedIndex;e&&(d=t(p[0].options[i]).html(),0===i&&d===k.attr("placeholder")&&(d=""),k.val(d||""))})},T=function(){var e=x.children("dd."+s);if(e[0]){var t=e.position().top,i=x.height(),a=e.height();t>i&&x.scrollTop(t+x.scrollTop()-i+a-5),t<0&&x.scrollTop(t+x.scrollTop()-5)}};m.on("click",function(e){i.hasClass(a+"ed")?w():(v(e,!0),C()),x.find("."+r).remove()}),m.find(".layui-edge").on("click",function(){k.focus()}),k.on("keyup",function(e){var t=e.keyCode;9===t&&C()}).on("keydown",function(e){var t=e.keyCode;9===t&&w();var i=function(t,a){var n,l;e.preventDefault();var r=function(){var e=x.children("dd."+s);if(x.children("dd."+o)[0]&&"next"===t){var i=x.children("dd:not(."+o+",."+c+")"),n=i.eq(0).index();if(n>=0&&n无匹配项

              '):x.find("."+r).remove()},"keyup"),""===t&&x.find("."+r).remove(),void T())};f&&k.on("keyup",q).on("blur",function(i){var a=p[0].selectedIndex;e=k,d=t(p[0].options[a]).html(),0===a&&d===k.attr("placeholder")&&(d=""),setTimeout(function(){$(k.val(),function(e){d||k.val("")},"blur")},200)}),g.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=p.attr("lay-filter");return!e.hasClass(c)&&(e.hasClass("layui-select-tips")?k.val(""):(k.val(e.text()),e.addClass(s)),e.siblings().removeClass(s),p.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:p[0],value:a,othis:i}),w(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",v).on("click",v)}};f.each(function(e,l){var r=t(this),o=r.next("."+a),u=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),v=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var h="string"==typeof r.attr("lay-search"),p=v?v.value?i:v.innerHTML||i:i,m=t(['
              ','
              ','','
              ','
              ',function(e){var t=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?t.push("
              "+a.label+"
              "):t.push('
              '+a.innerHTML+"
              "):t.push('
              '+(a.innerHTML||i)+"
              ")}),0===t.length&&t.push('
              没有选项
              '),t.join("")}(r.find("*"))+"
              ","
              "].join(""));o[0]&&o.remove(),r.after(m),y.call(this,m,u,h)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=u.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),s=(l.attr("lay-text")||"").split("|"),o=this.disabled;"switch"===r&&(r="_"+r);var u=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+u[0]),f=t(['
              ",function(){var e=n.title.replace(/\s/g,""),t={checkbox:[e?""+n.title+"":"",''].join(""),_switch:""+((n.checked?s[0]:s[1])||"")+""};return t[r]||t.checkbox}(),"
              "].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,u)})},radio:function(){var e="layui-form-radio",i=["",""],a=u.find("input[type=radio]"),n=function(a){var n=t(this),s="layui-anim-scaleSpring";a.on("click",function(){var o=n[0].name,c=n.parents(r),u=n.attr("lay-filter"),d=c.find("input[name="+o.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(s).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(s).html(i[0]),layui.event.call(n[0],l,"radio("+u+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),s=r.next("."+e),o=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();s[0]&&s.remove();var u=t(['
              ',''+i[l.checked?0:1]+"","
              "+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html(),r.next().remove()),e}()+"
              ","
              "].join(""));r.after(u),n.call(this,u)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,t){t()}),n};var d=function(){var e=t(this),a=f.config.verify,s=null,o="layui-form-danger",c={},u=e.parents(r),d=u.find("*[lay-verify]"),v=e.parents("form")[0],h=u.find("input,select,textarea"),y=e.attr("lay-filter");if(layui.each(d,function(e,l){var r=t(this),c=r.attr("lay-verify").split("|"),u=r.attr("lay-verType"),d=r.val();if(r.removeClass(o),layui.each(c,function(e,t){var c,f="",v="function"==typeof a[t];if(a[t]){var c=v?f=a[t](d,l):!a[t][0].test(d);if(f=f||a[t][1],"required"===t&&(f=r.attr("lay-reqText")||f),c)return"tips"===u?i.tips(f,function(){return"string"==typeof r.attr("lay-ignore")||"select"!==l.tagName.toLowerCase()&&!/^checkbox|radio$/.test(l.type)?r:r.next()}(),{tips:1}):"alert"===u?i.alert(f,{title:"提示",shadeClose:!0}):i.msg(f,{icon:5,shift:6}),n.android||n.ios||setTimeout(function(){l.focus()},7),r.addClass(o),s=!0}}),s)return s}),s)return!1;var p={};return layui.each(h,function(e,t){if(t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name){if(/^.*\[\]$/.test(t.name)){var i=t.name.match(/^(.*)\[\]$/g)[0];p[i]=0|p[i],t.name=t.name.replace(/^(.*)\[\]$/,"$1["+p[i]++ +"]")}/^checkbox|radio$/.test(t.type)&&!t.checked||(c[t.name]=t.value)}}),layui.event.call(this,l,"submit("+y+")",{elem:this,form:v,field:c})},f=new u,v=t(document),h=t(window);f.render(),v.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),v.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)});layui.define("form",function(e){"use strict";var i=layui.$,a=layui.form,n="tree",r={config:{},index:layui[n]?layui[n].index+1e4:0,set:function(e){var a=this;return a.config=i.extend({},a.config,e),a},on:function(e,i){return layui.onevent.call(this,n,e,i)}},l=function(){var e=this,i=e.config,a=i.id||e.index;return l.that[a]=e,l.config[a]=i,{config:i,reload:function(i){e.reload.call(e,i)},getChecked:function(){return e.getChecked.call(e)},setChecked:function(i){return e.setChecked.call(e,i)}}},t="layui-hide",d="layui-disabled",s="layui-tree-set",c="layui-tree-iconClick",o="layui-icon-addition",h="layui-icon-subtraction",u="layui-tree-entry",f="layui-tree-main",p="layui-tree-txt",y="layui-tree-pack",v="layui-tree-spread",C="layui-tree-setLineShort",m="layui-tree-showLine",k="layui-tree-lineExtend",g=function(e){var a=this;a.index=++r.index,a.config=i.extend({},a.config,r.config,e),a.render()};g.prototype.config={data:[],showCheckbox:!1,showLine:!0,accordion:!1,onlyIconControl:!1,isJump:!1,edit:!1,text:{defaultNodeName:"未命名",none:"无数据"}},g.prototype.reload=function(e){var a=this;layui.each(e,function(e,i){i.constructor===Array&&delete a.config[e]}),a.config=i.extend(!0,{},a.config,e),a.render()},g.prototype.render=function(){var e=this,a=e.config,n=i('
              ');e.tree(n);var r=a.elem=i(a.elem);if(r[0]){if(a.showSearch&&n.prepend(''),e.key=a.id||e.index,e.elem=n,e.elemNone=i('
              '+a.text.none+"
              "),r.html(e.elem),0==e.elem.find(".layui-tree-set").length)return e.elem.append(e.elemNone);a.drag&&e.drag(),a.showCheckbox&&e.renderForm("checkbox"),e.elem.find(".layui-tree-set").each(function(){var e=i(this);e.parent(".layui-tree-pack")[0]||e.addClass("layui-tree-setHide"),!e.next()[0]&&e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend")&&e.addClass(C),e.next()[0]||e.parents(".layui-tree-set").eq(0).next()[0]||e.addClass(C)}),e.events()}},g.prototype.renderForm=function(e){a.render(e,"LAY-tree-"+this.index)},g.prototype.tree=function(e,a){var n=this,r=n.config,l=a||r.data;layui.each(l,function(a,l){var c=l.children&&l.children.length>0,o=i('
              '),h=i(['
              ',"
              ','
              ',function(){return r.showLine?c?'':'':''}(),function(){return r.showCheckbox?'':""}(),function(){return r.isJump&&l.href?''+(l.title||l.label||r.text.defaultNodeName)+"":''+(l.title||l.label||r.text.defaultNodeName)+""}(),"
              ",function(){if(!r.edit)return"";var e={add:'',update:'',del:''},i=['
              '];return r.edit===!0&&(r.edit=["update","del"]),"object"==typeof r.edit?(layui.each(r.edit,function(a,n){i.push(e[n]||"")}),i.join("")+"
              "):void 0}(),"
              "].join(""));c&&(h.append(o),n.tree(o,l.children)),e.append(h),h.prev("."+s)[0]&&h.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"),c||h.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"),n.spread(h,l),r.showCheckbox&&n.checkClick(h,l),r.edit&&n.operate(h,l)})},g.prototype.spread=function(e,a){var n=this,r=n.config,l=e.children("."+u),t=l.children("."+f),C=l.find("."+c),m=l.find("."+p),k=r.onlyIconControl?C:t,g="";k.on("click",function(i){var a=e.children("."+y),n=k.children(".layui-icon")[0]?k.children(".layui-icon"):k.find(".layui-tree-icon").children(".layui-icon");if(a[0]){if(e.hasClass(v))e.removeClass(v),a.slideUp(200),n.removeClass(h).addClass(o);else if(e.addClass(v),a.slideDown(200),n.addClass(h).removeClass(o),r.accordion){var l=e.siblings("."+s);l.removeClass(v),l.children("."+y).slideUp(200),l.find(".layui-tree-icon").children(".layui-icon").removeClass(h).addClass(o)}}else g="normal"}),m.on("click",function(){var n=i(this);n.hasClass(d)||(g=e.hasClass(v)?r.onlyIconControl?"open":"close":r.onlyIconControl?"close":"open",r.click&&r.click({elem:e,state:g,data:a}))})},g.prototype.setCheckbox=function(e,i,a){var n=this,r=(n.config,a.prop("checked"));if("object"==typeof i.children||e.find("."+y)[0]){var l=e.find("."+y).find('input[name="layuiTreeCheck"]');l.each(function(){this.disabled||(this.checked=r)})}var t=function(e){if(e.parents("."+s)[0]){var i,a=e.parent("."+y),n=a.parent(),l=a.prev().find('input[name="layuiTreeCheck"]');r?l.prop("checked",r):(a.find('input[name="layuiTreeCheck"]').each(function(){this.checked&&(i=!0)}),i||l.prop("checked",!1)),t(n)}};t(e),n.renderForm("checkbox")},g.prototype.checkClick=function(e,a){var n=this,r=n.config,l=e.children("."+u),t=l.children("."+f);t.on("click",'input[name="layuiTreeCheck"]+',function(l){layui.stope(l);var t=i(this).prev(),d=t.prop("checked");t.prop("disabled")||(n.setCheckbox(e,a,t),r.oncheck&&r.oncheck({elem:e,checked:d,data:a}))})},g.prototype.operate=function(e,a){var n=this,r=n.config,l=e.children("."+u),d=l.children("."+f);l.children(".layui-tree-btnGroup").on("click",".layui-icon",function(l){layui.stope(l);var f=i(this).data("type"),g=e.children("."+y),x={data:a,type:f,elem:e};if("add"==f){g[0]||(r.showLine?(d.find("."+c).addClass("layui-tree-icon"),d.find("."+c).children(".layui-icon").addClass(o).removeClass("layui-icon-file")):d.find(".layui-tree-iconArrow").removeClass(t),e.append('
              '));var b=r.operate&&r.operate(x),w={};if(w.title=r.text.defaultNodeName,w.id=b,n.tree(e.children("."+y),[w]),r.showLine)if(g[0])g.hasClass(k)||g.addClass(k),e.find("."+y).each(function(){i(this).children("."+s).last().addClass(C)}),g.children("."+s).last().prev().hasClass(C)?g.children("."+s).last().prev().removeClass(C):g.children("."+s).last().removeClass(C),!e.parent("."+y)[0]&&e.next()[0]&&g.children("."+s).last().removeClass(C);else{var T=e.siblings("."+s),L=1,N=e.parent("."+y);layui.each(T,function(e,a){i(a).children("."+y)[0]||(L=0)}),1==L?(T.children("."+y).addClass(m),T.children("."+y).children("."+s).removeClass(C),e.children("."+y).addClass(m),N.removeClass(k),N.children("."+s).last().children("."+y).children("."+s).last().addClass(C)):e.children("."+y).children("."+s).addClass(C)}if(!r.showCheckbox)return;if(d.find('input[name="layuiTreeCheck"]')[0].checked){var A=e.children("."+y).children("."+s).last();A.find('input[name="layuiTreeCheck"]')[0].checked=!0}n.renderForm("checkbox")}else if("update"==f){var q=d.children("."+p).html();d.children("."+p).html(""),d.append(''),d.children(".layui-tree-editInput").val(q).focus();var F=function(e){var i=e.val().trim();i=i?i:r.text.defaultNodeName,e.remove(),d.children("."+p).html(i),x.data.title=i,r.operate&&r.operate(x)};d.children(".layui-tree-editInput").blur(function(){F(i(this))}),d.children(".layui-tree-editInput").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),F(i(this)))})}else{if(r.operate&&r.operate(x),x.status="remove",!e.prev("."+s)[0]&&!e.next("."+s)[0]&&!e.parent("."+y)[0])return e.remove(),void n.elem.append(n.elemNone);if(e.siblings("."+s).children("."+u)[0]){if(r.showCheckbox){var I=function(e){if(e.parents("."+s)[0]){var a=e.siblings("."+s).children("."+u),r=e.parent("."+y).prev(),l=r.find('input[name="layuiTreeCheck"]')[0],t=1,d=0;0==l.checked&&(a.each(function(e,a){var n=i(a).find('input[name="layuiTreeCheck"]')[0];0!=n.checked||n.disabled||(t=0),n.disabled||(d=1)}),1==t&&1==d&&(l.checked=!0,n.renderForm("checkbox"),I(r.parent("."+s))))}};I(e)}if(r.showLine){var T=e.siblings("."+s),L=1,N=e.parent("."+y);layui.each(T,function(e,a){i(a).children("."+y)[0]||(L=0)}),1==L?(g[0]||(N.removeClass(k),T.children("."+y).addClass(m),T.children("."+y).children("."+s).removeClass(C)),e.next()[0]?N.children("."+s).last().children("."+y).children("."+s).last().addClass(C):e.prev().children("."+y).children("."+s).last().addClass(C),e.next()[0]||e.parents("."+s)[1]||e.parents("."+s).eq(0).next()[0]||e.prev("."+s).addClass(C)):!e.next()[0]&&e.hasClass(C)&&e.prev().addClass(C)}}else{var H=e.parent("."+y).prev();if(r.showLine){H.find("."+c).removeClass("layui-tree-icon"),H.find("."+c).children(".layui-icon").removeClass(h).addClass("layui-icon-file");var S=H.parents("."+y).eq(0);S.addClass(k),S.children("."+s).each(function(){i(this).children("."+y).children("."+s).last().addClass(C)})}else H.find(".layui-tree-iconArrow").addClass(t);e.parents("."+s).eq(0).removeClass(v),e.parent("."+y).remove()}e.remove()}})},g.prototype.drag=function(){var e=this,a=e.config;e.elem.on("dragstart","."+u,function(){var e=i(this).parent("."+s),n=e.parents("."+s)[0]?e.parents("."+s).eq(0):"未找到父节点";a.dragstart&&a.dragstart(e,n)}),e.elem.on("dragend","."+u,function(n){var n=n||event,r=n.clientY,l=i(this),d=l.parent("."+s),f=d.height(),p=d.offset().top,g=e.elem.find("."+s),x=e.elem.height(),b=e.elem.offset().top,w=x+b-13,T=d.parents("."+s)[0],L=d.next()[0];if(T)var N=d.parent("."+y),A=d.parents("."+s).eq(0),q=A.parent("."+y),F=A.offset().top,I=d.siblings(),H=A.children("."+y).children("."+s).length;var S=function(n){if(T||L||e.elem.children("."+s).last().children("."+y).children("."+s).last().addClass(C),!T)return void d.removeClass("layui-tree-setHide");if(1==H)a.showLine?(n.find("."+c).removeClass("layui-tree-icon"),n.find("."+c).children(".layui-icon").removeClass(h).addClass("layui-icon-file"),q.addClass(k),q.children("."+s).children("."+y).each(function(){i(this).children("."+s).last().addClass(C)})):n.find(".layui-tree-iconArrow").addClass(t),n.children("."+y).remove(),n.removeClass(v);else{if(a.showLine){var r=1;layui.each(I,function(e,a){i(a).children("."+y)[0]||(r=0)}),1==r?(d.children("."+y)[0]||(N.removeClass(k),I.children("."+y).addClass(m),I.children("."+y).children("."+s).removeClass(C)),N.children("."+s).last().children("."+y).children("."+s).last().addClass(C),L||n.parents("."+s)[0]||n.next()[0]||N.children("."+s).last().addClass(C)):!L&&d.hasClass(C)&&N.children("."+s).last().addClass(C)}if(a.showCheckbox){var l=function(a){if(a){if(!a.parents("."+s)[0])return}else if(!n[0])return;var r=a?a.siblings().children("."+u):I.children("."+u),t=a?a.parent("."+y).prev():N.prev(),d=t.find('input[name="layuiTreeCheck"]')[0],c=1,o=0;0==d.checked&&(r.each(function(e,a){var n=i(a).find('input[name="layuiTreeCheck"]')[0];0!=n.checked||n.disabled||(c=0),n.disabled||(o=1)}),1==c&&1==o&&(d.checked=!0,e.renderForm("checkbox"),l(t.parent("."+s)||n)))};l()}}};g.each(function(){if(0!=i(this).height()){if(r>p&&rF&&rn&&r
              ')),i(this).children("."+y).append(d),S(A),a.showLine){var l=i(this).children("."+y).children("."+s);if(d.children("."+y).children("."+s).last().addClass(C),1==l.length){var h=i(this).siblings("."+s),v=1,g=i(this).parent("."+y);layui.each(h,function(e,a){i(a).children("."+y)[0]||(v=0)}),1==v?(h.children("."+y).addClass(m),h.children("."+y).children("."+s).removeClass(C),i(this).children("."+y).addClass(m),g.removeClass(k),g.children("."+s).last().children("."+y).children("."+s).last().addClass(C).removeClass("layui-tree-setHide")):i(this).children("."+y).children("."+s).addClass(C).removeClass("layui-tree-setHide")}else d.prev("."+s).hasClass(C)?(d.prev("."+s).removeClass(C),d.addClass(C)):(d.removeClass("layui-tree-setLineShort layui-tree-setHide"),d.children("."+y)[0]?d.prev("."+s).children("."+y).children("."+s).last().removeClass(C):d.siblings("."+s).find("."+y).each(function(){i(this).children("."+s).last().addClass(C)})),i(this).next()[0]||d.addClass(C)}if(a.showCheckbox&&i(this).children("."+u).find('input[name="layuiTreeCheck"]')[0].checked){var x=d.children("."+u);x.find('input[name="layuiTreeCheck"]+').click()}return a.dragend&&a.dragend("drag success",d,i(this)),!1}if(rw)return e.elem.children("."+s).last().children("."+y).addClass(m),e.elem.append(d),S(A),d.prev().children("."+y).children("."+s).last().removeClass(C),d.addClass("layui-tree-setHide"),d.children("."+y).children("."+s).last().addClass(C),a.dragend&&a.dragend("拖拽成功,插入最外层节点",d,e.elem),!1}})})},g.prototype.events=function(){var e=this,a=e.config,n=e.elem.find(".layui-tree-checkedFirst");layui.each(n,function(e,a){i(a).children("."+u).find('input[name="layuiTreeCheck"]+').trigger("click")}),e.elem.find(".layui-tree-search").on("keyup",function(){var n=i(this),r=n.val(),l=n.nextAll(),d=[];l.find("."+p).each(function(){var e=i(this).parents("."+u);if(i(this).html().indexOf(r)!=-1){d.push(i(this).parent());var a=function(e){e.addClass("layui-tree-searchShow"),e.parent("."+y)[0]&&a(e.parent("."+y).parent("."+s))};a(e.parent("."+s))}}),l.find("."+u).each(function(){var e=i(this).parent("."+s);e.hasClass("layui-tree-searchShow")||e.addClass(t)}),0==l.find(".layui-tree-searchShow").length&&e.elem.append(e.elemNone),a.onsearch&&a.onsearch({elem:d})}),e.elem.find(".layui-tree-search").on("keydown",function(){i(this).nextAll().find("."+u).each(function(){var e=i(this).parent("."+s);e.removeClass("layui-tree-searchShow "+t)}),i(".layui-tree-emptyText")[0]&&i(".layui-tree-emptyText").remove()})},g.prototype.getChecked=function(){var e=this,a=e.config,n=[],r=[];e.elem.find(".layui-form-checked").each(function(){n.push(i(this).prev()[0].value)});var l=function(e,a){layui.each(e,function(e,r){layui.each(n,function(e,n){if(r.id==n){var t=i.extend({},r);return delete t.children,a.push(t),r.children&&(t.children=[],l(r.children,t.children)),!0}})})};return l(i.extend({},a.data),r),r},g.prototype.setChecked=function(e){var a=this;a.config;a.elem.find("."+s).each(function(a,n){var r=i(this).data("id"),l=i(n).children("."+u).find('input[name="layuiTreeCheck"]'),t=l.next();if("number"==typeof e){if(r==e)return l[0].checked||t.click(),!1}else i.inArray(r,e)!=-1&&(l[0].checked||t.click())})},l.that={},l.config={},r.reload=function(e,i){var a=l.that[e];return a.reload(i),l.call(a)},r.getChecked=function(e){var i=l.that[e];return i.getChecked()},r.setChecked=function(e,i){var a=l.that[e];return a.setChecked(i)},r.render=function(e){var i=new g(e);return l.call(i)},e(n,r)});layui.define(["laytpl","form"],function(e){"use strict";var a=layui.$,t=layui.laytpl,n=layui.form,i="transfer",l={config:{},index:layui[i]?layui[i].index+1e4:0,set:function(e){var t=this;return t.config=a.extend({},t.config,e),t},on:function(e,a){return layui.onevent.call(this,i,e,a)}},r=function(){var e=this,a=e.config,t=a.id||e.index;return r.that[t]=e,r.config[t]=a,{config:a,reload:function(a){e.reload.call(e,a)},getData:function(){return e.getData.call(e)}}},c="layui-hide",o="layui-btn-disabled",d="layui-none",s="layui-transfer-box",u="layui-transfer-header",h="layui-transfer-search",f="layui-transfer-active",y="layui-transfer-data",p=function(e){return e=e||{},['
              ','
              ','","
              ","{{# if(d.data.showSearch){ }}",'","{{# } }}",'
                ',"
                "].join("")},v=['
                ',p({index:0,checkAllName:"layTransferLeftCheckAll"}),'
                ','",'","
                ",p({index:1,checkAllName:"layTransferRightCheckAll"}),"
                "].join(""),x=function(e){var t=this;t.index=++l.index,t.config=a.extend({},t.config,l.config,e),t.render()};x.prototype.config={title:["列表一","列表二"],width:200,height:360,data:[],value:[],showSearch:!1,id:"",text:{none:"无数据",searchNone:"无匹配数据"}},x.prototype.reload=function(e){var t=this;layui.each(e,function(e,a){a.constructor===Array&&delete t.config[e]}),t.config=a.extend(!0,{},t.config,e),t.render()},x.prototype.render=function(){var e=this,n=e.config,i=e.elem=a(t(v).render({data:n,index:e.index})),l=n.elem=a(n.elem);l[0]&&(n.data=n.data||[],n.value=n.value||[],e.key=n.id||e.index,l.html(e.elem),e.layBox=e.elem.find("."+s),e.layHeader=e.elem.find("."+u),e.laySearch=e.elem.find("."+h),e.layData=i.find("."+y),e.layBtn=i.find("."+f+" .layui-btn"),e.layBox.css({width:n.width,height:n.height}),e.layData.css({height:function(){return n.height-e.layHeader.outerHeight()-e.laySearch.outerHeight()-2}()}),e.renderData(),e.events())},x.prototype.renderData=function(){var e=this,a=(e.config,[{checkName:"layTransferLeftCheck",views:[]},{checkName:"layTransferRightCheck",views:[]}]);e.parseData(function(e){var t=e.selected?1:0,n=["
              • ",'',"
              • "].join("");a[t].views.push(n),delete e.selected}),e.layData.eq(0).html(a[0].views.join("")),e.layData.eq(1).html(a[1].views.join("")),e.renderCheckBtn()},x.prototype.renderForm=function(e){n.render(e,"LAY-transfer-"+this.index)},x.prototype.renderCheckBtn=function(e){var t=this,n=t.config;e=e||{},t.layBox.each(function(i){var l=a(this),r=l.find("."+y),d=l.find("."+u).find('input[type="checkbox"]'),s=r.find('input[type="checkbox"]'),h=0,f=!1;if(s.each(function(){var e=a(this).data("hide");(this.checked||this.disabled||e)&&h++,this.checked&&!e&&(f=!0)}),d.prop("checked",f&&h===s.length),t.layBtn.eq(i)[f?"removeClass":"addClass"](o),!e.stopNone){var p=r.children("li:not(."+c+")").length;t.noneView(r,p?"":n.text.none)}}),t.renderForm("checkbox")},x.prototype.noneView=function(e,t){var n=a('

                '+(t||"")+"

                ");e.find("."+d)[0]&&e.find("."+d).remove(),t.replace(/\s/g,"")&&e.append(n)},x.prototype.setValue=function(){var e=this,t=e.config,n=[];return e.layBox.eq(1).find("."+y+' input[type="checkbox"]').each(function(){var e=a(this).data("hide");e||n.push(this.value)}),t.value=n,e},x.prototype.parseData=function(e){var t=this,n=t.config,i=[];return layui.each(n.data,function(t,l){l=("function"==typeof n.parseData?n.parseData(l):l)||l,i.push(l=a.extend({},l)),layui.each(n.value,function(e,a){a==l.value&&(l.selected=!0)}),e&&e(l)}),n.data=i,t},x.prototype.getData=function(e){var a=this,t=a.config,n=[];return layui.each(e||t.value,function(e,a){layui.each(t.data,function(e,t){delete t.selected,a==t.value&&n.push(t)})}),n},x.prototype.events=function(){var e=this,t=e.config;e.elem.on("click",'input[lay-filter="layTransferCheckbox"]+',function(){var t=a(this).prev(),n=t[0].checked,i=t.parents("."+s).eq(0).find("."+y);t[0].disabled||("all"===t.attr("lay-type")&&i.find('input[type="checkbox"]').each(function(){this.disabled||(this.checked=n)}),e.renderCheckBtn({stopNone:!0}))}),e.layBtn.on("click",function(){var n=a(this),i=n.data("index"),l=e.layBox.eq(i),r=[];if(!n.hasClass(o)){e.layBox.eq(i).each(function(t){var n=a(this),i=n.find("."+y);i.children("li").each(function(){var t=a(this),n=t.find('input[type="checkbox"]'),i=n.data("hide");n[0].checked&&!i&&(n[0].checked=!1,l.siblings("."+s).find("."+y).append(t.clone()),t.remove(),r.push(n[0].value)),e.setValue()})}),e.renderCheckBtn();var c=l.siblings("."+s).find("."+h+" input");""===c.val()||c.trigger("keyup"),t.onchange&&t.onchange(e.getData(r),i)}}),e.laySearch.find("input").on("keyup",function(){var n=this.value,i=a(this).parents("."+h).eq(0).siblings("."+y),l=i.children("li");l.each(function(){var e=a(this),t=e.find('input[type="checkbox"]'),i=t[0].title.indexOf(n)!==-1;e[i?"removeClass":"addClass"](c),t.data("hide",!i)}),e.renderCheckBtn();var r=l.length===i.children("li."+c).length;e.noneView(i,r?t.text.searchNone:"")})},r.that={},r.config={},l.reload=function(e,a){var t=r.that[e];return t.reload(a),r.call(t)},l.getData=function(e){var a=r.that[e];return a.getData()},l.render=function(e){var a=new x(e);return r.call(a)},e(i,l)});layui.define(["laytpl","laypage","layer","form","util"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=(layui.util,layui.hint()),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,y,e,t)}},c=function(){var e=this,t=e.config,i=t.id||t.index;return i&&(c.that[i]=e,c.config[i]=t),{config:t,reload:function(t){e.reload.call(e,t)},setColsWidth:function(){e.setColsWidth.call(e)},resize:function(){e.resize.call(e)}}},s=function(e){var t=c.config[e];return t||o.error("The ID option was not found in the table instance"),t||null},u=function(e,a,l,n){var o=e.templet?function(){return"function"==typeof e.templet?e.templet(l):i(t(e.templet).html()||String(a)).render(l)}():a;return n?t("
                "+o+"
                ").text():o},y="table",h=".layui-table",f="layui-hide",p="layui-none",v="layui-table-view",m=".layui-table-tool",g=".layui-table-box",b=".layui-table-init",x=".layui-table-header",k=".layui-table-body",C=".layui-table-main",w=".layui-table-fixed",T=".layui-table-fixed-l",A=".layui-table-fixed-r",L=".layui-table-total",N=".layui-table-page",S=".layui-table-sort",W="layui-table-edit",_="layui-table-hover",E=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),"{{# var isSort = !(item2.colGroup) && item2.sort; }}",'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
                ','
                ','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(isSort){ }}",'',"{{# } }}","{{# } }}","
                ","
                "].join("")},z=['',"","
                "].join(""),H=['
                ',"{{# if(d.data.toolbar){ }}",'
                ','
                ','
                ',"
                ","{{# } }}",'
                ',"{{# if(d.data.loading){ }}",'
                ','',"
                ","{{# } }}","{{# var left, right; }}",'
                ',E(),"
                ",'
                ',z,"
                ","{{# if(left){ }}",'
                ','
                ',E({fixed:!0}),"
                ",'
                ',z,"
                ","
                ","{{# }; }}","{{# if(right){ }}",'
                ','
                ',E({fixed:"right"}),'
                ',"
                ",'
                ',z,"
                ","
                ","{{# }; }}","
                ","{{# if(d.data.totalRow){ }}",'
                ','','',"
                ","
                ","{{# } }}","{{# if(d.data.page){ }}",'
                ','
                ',"
                ","{{# } }}","","
                "].join(""),R=t(window),F=t(document),I=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};I.prototype.config={limit:10,loading:!0,cellMinWidth:60,defaultToolbar:["filter","exports","print"],autoSort:!0,text:{none:"无数据"}},I.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id")||e.index,a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;a.height&&/^full-\d+$/.test(a.height)&&(e.fullHeightGap=a.height.split("-")[1],a.height=R.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+v),o=e.elem=t(i(H).render({VIEW_CLASS:v,data:a,index:e.index}));if(a.index=e.index,e.key=a.id||a.index,n[0]&&n.remove(),l.after(o),e.layTool=o.find(m),e.layBox=o.find(g),e.layHeader=o.find(x),e.layMain=o.find(C),e.layBody=o.find(k),e.layFixed=o.find(w),e.layFixLeft=o.find(T),e.layFixRight=o.find(A),e.layTotal=o.find(L),e.layPage=o.find(N),e.renderToolbar(),e.fullSize(),a.cols.length>1){var r=e.layFixed.find(x).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},I.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,radio:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},I.prototype.setInit=function(e){var t=this,i=t.config;return i.clientWidth=i.width||function(){var e=function(t){var a,l;t=t||i.elem.parent(),a=t.width();try{l="none"===t.css("display")}catch(n){}return!t[0]||a&&!l?a:e(t.parent())};return e()}(),"width"===e?i.clientWidth:void layui.each(i.cols,function(e,a){layui.each(a,function(l,n){if(!n)return void a.splice(l,1);if(n.key=e+"-"+l,n.hide=n.hide||!1,n.colGroup||n.colspan>1){var o=0;layui.each(i.cols[e+1],function(t,i){i.HAS_PARENT||o>1&&o==n.colspan||(i.HAS_PARENT=!0,i.parentKey=e+"-"+l,o+=parseInt(i.colspan>1?i.colspan:1))}),n.colGroup=!0}t.initOpts(n)})})},I.prototype.renderToolbar=function(){var e=this,a=e.config,l=['
                ','
                ','
                '].join(""),n=e.layTool.find(".layui-table-tool-temp");if("default"===a.toolbar)n.html(l);else if("string"==typeof a.toolbar){var o=t(a.toolbar).html()||"";o&&n.html(i(o).render(a))}var r={filter:{title:"筛选列",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"导出",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"打印",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}},d=[];"object"==typeof a.defaultToolbar&&layui.each(a.defaultToolbar,function(e,t){var i=r[t];i&&d.push('
                ')}),e.layTool.find(".layui-table-tool-self").html(d.join(""))},I.prototype.setParentCol=function(e,t){var i=this,a=i.config,l=i.layHeader.find('th[data-key="'+a.index+"-"+t+'"]'),n=parseInt(l.attr("colspan"))||0;if(l[0]){var o=t.split("-"),r=a.cols[o[0]][o[1]];e?n--:n++,l.attr("colspan",n),l[n<1?"addClass":"removeClass"](f),r.colspan=n,r.hide=n<1;var d=l.data("parentkey");d&&i.setParentCol(e,d)}},I.prototype.setColsPatch=function(){var e=this,t=e.config;layui.each(t.cols,function(t,i){layui.each(i,function(t,i){i.hide&&e.setParentCol(i.hide,i.parentKey)})})},I.prototype.setColsWidth=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=e.setInit("width");e.eachCols(function(e,t){t.hide||i++}),o=o-function(){return"line"===t.skin||"nob"===t.skin?2:i+1}()-e.getScrollWidth(e.layMain[0])-1;var r=function(e){layui.each(t.cols,function(i,r){layui.each(r,function(i,d){var c=0,s=d.minWidth||t.cellMinWidth;return d?void(d.colGroup||d.hide||(e?l&&ln&&a&&(l=(o-n)/a)};r(),r(!0),e.autoColNums=a,e.eachCols(function(i,a){var n=a.minWidth||t.cellMinWidth;a.colGroup||a.hide||(0===a.width?e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(l>=n?l:n)+"px"}):/\d+%$/.test(a.width)&&e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(parseFloat(a.width)/100*o)+"px"}))});var d=e.layMain.width()-e.getScrollWidth(e.layMain[0])-e.layMain.children("table").outerWidth();if(e.autoColNums&&d>=-i&&d<=i){var c=function(t){var i;return t=t||e.layHeader.eq(0).find("thead th:last-child"),i=t.data("field"),!i&&t.prev()[0]?c(t.prev()):t},s=c(),u=s.data("key");e.getCssRule(u,function(t){var i=t.style.width||s.outerWidth();t.style.width=parseFloat(i)+d+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px")})}e.loading(!0)},I.prototype.resize=function(){var e=this;e.fullSize(),e.setColsWidth(),e.scrollPatch()},I.prototype.reload=function(e){var i=this;e=e||{},delete i.haveInit,e.data&&e.data.constructor===Array&&delete i.config.data,i.config=t.extend(!0,{},i.config,e),i.render()},I.prototype.errorView=function(e){var i=this,a=i.layMain.find("."+p),l=t('
                '+(e||"Error")+"
                ");a[0]&&(i.layNone.remove(),a.remove()),i.layFixed.addClass(f),i.layMain.find("tbody").html(""),i.layMain.append(i.layNone=l),d.cache[i.key]=[]},I.prototype.page=1,I.prototype.pullData=function(e){var i=this,a=i.config,l=a.request,n=a.response,o=function(){"object"==typeof a.initSort&&i.sort(a.initSort.field,a.initSort.type)};if(i.startTime=(new Date).getTime(),a.url){var r={};r[l.pageName]=e,r[l.limitName]=a.limit;var d=t.extend(r,a.where);a.contentType&&0==a.contentType.indexOf("application/json")&&(d=JSON.stringify(d)),i.loading(),t.ajax({type:a.method||"get",url:a.url,contentType:a.contentType,data:d,dataType:"json",headers:a.headers||{},success:function(t){"function"==typeof a.parseData&&(t=a.parseData(t)||t),t[n.statusName]!=n.statusCode?(i.renderForm(),i.errorView(t[n.msgName]||'返回的数据不符合规范,正确的成功状态码应为:"'+n.statusName+'": '+n.statusCode)):(i.renderData(t,e,t[n.countName]),o(),a.time=(new Date).getTime()-i.startTime+" ms"),i.setColsWidth(),"function"==typeof a.done&&a.done(t,e,t[n.countName])},error:function(e,t){i.errorView("数据接口请求异常:"+t),i.renderForm(),i.setColsWidth()}})}else if(a.data&&a.data.constructor===Array){var c={},s=e*a.limit-a.limit;c[n.dataName]=a.data.concat().splice(s,a.limit),c[n.countName]=a.data.length,i.renderData(c,e,c[n.countName]),o(),i.setColsWidth(),"function"==typeof a.done&&a.done(c,e,c[n.countName])}},I.prototype.eachCols=function(e){var t=this;return d.eachCols(null,e,t.config.cols),t},I.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,y=e[s.response.dataName]||[],h=[],v=[],m=[],g=function(){var e;return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(y,function(a,l){var o=[],y=[],p=[],g=a+s.limit*(n-1)+1;0!==l.length&&(r||(l[d.config.indexName]=a),c.eachCols(function(n,r){var c=r.field||n,h=s.index+"-"+r.key,v=l[c];if(void 0!==v&&null!==v||(v=""),!r.colGroup){var m=['','
                '+function(){var n=t.extend(!0,{LAY_INDEX:g},l),o=d.config.checkName;switch(r.type){case"checkbox":return'";case"radio":return n[o]&&(e=a),'';case"numbers":return g}return r.toolbar?i(t(r.toolbar).html()||"").render(n):u(r,v,n)}(),"
                "].join("");o.push(m),r.fixed&&"right"!==r.fixed&&y.push(m),"right"===r.fixed&&p.push(m)}}),h.push(''+o.join("")+""),v.push(''+y.join("")+""),m.push(''+p.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+p).remove(),c.layMain.find("tbody").html(h.join("")),c.layFixLeft.find("tbody").html(v.join("")),c.layFixRight.find("tbody").html(m.join("")),c.renderForm(),"number"==typeof e&&c.setThisRowChecked(e),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,l.close(c.tipsIndex),s.HAS_SET_COLS_PATCH||c.setColsPatch(),void(s.HAS_SET_COLS_PATCH=!0))};return d.cache[c.key]=y,c.layPage[0==o||0===y.length&&1==n?"addClass":"removeClass"](f),r?g():0===y.length?(c.renderForm(),c.errorView(s.text.none)):(c.layFixed.removeClass(f),g(),c.renderTotal(y),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.pullData(e.curr))}},s.page),s.page.count=o,a.render(s.page))))},I.prototype.renderTotal=function(e){var t=this,i=t.config,a={};if(i.totalRow){layui.each(e,function(e,i){0!==i.length&&t.eachCols(function(e,t){var l=t.field||e,n=i[l];t.totalRow&&(a[l]=(a[l]||0)+(parseFloat(n)||0))})});var l=[];t.eachCols(function(e,t){var n=t.field||e,o=['','
                '+function(){var e=t.totalRowText||"";return t.totalRow?parseFloat(a[n]).toFixed(2)||e:e}(),"
                "].join("");l.push(o)}),t.layTotal.find("tbody").html(""+l.join("")+"")}},I.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},I.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},I.prototype.setThisRowChecked=function(e){var t=this,i=(t.config,"layui-table-click"),a=t.layBody.find('tr[data-index="'+e+'"]');a.addClass(i).siblings("tr").removeClass(i)},I.prototype.sort=function(e,i,a,l){var n,r,c=this,s={},u=c.config,h=u.elem.attr("lay-filter"),f=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field"),p=e.data("key");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var v=c.layHeader.find("th .laytable-cell-"+p).find(S);c.layHeader.find("th").find(S).removeAttr("lay-sort"),v.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},u.autoSort&&("asc"===i?r=layui.sort(f,n):"desc"===i?r=layui.sort(f,n,!0):(r=layui.sort(f,d.config.indexName),delete c.sortKey)),s[u.response.dataName]=r||f,c.renderData(s,c.page,c.count,!0),l&&layui.event.call(e,y,"sort("+h+")",{field:n,type:i})},I.prototype.loading=function(e){var i=this,a=i.config;a.loading&&(e?(i.layInit&&i.layInit.remove(),delete i.layInit,i.layBox.find(b).remove()):(i.layInit=t(['
                ','',"
                "].join("")),i.layBox.append(i.layInit)))},I.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},I.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},I.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(i,a){if(a.selectorText===".laytable-cell-"+e)return t(a),!0})},I.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=R.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),a&&(e=parseFloat(a)-(t.layHeader.outerHeight()||38),i.toolbar&&(e-=t.layTool.outerHeight()||50),i.totalRow&&(e-=t.layTotal.outerHeight()||40),i.page&&(e-=t.layPage.outerHeight()||41),t.layMain.css("height",e-2))},I.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},I.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=(e.getScrollWidth(e.layMain[0]),i.outerWidth()-e.layMain.width()),o=function(e){if(a&&l){if(e=e.eq(0),!e.find(".layui-table-patch")[0]){var i=t('
                ');i.find("div").css({width:a}),e.find("tr").append(i)}}else e.find(".layui-table-patch").remove()};o(e.layHeader),o(e.layTotal);var r=e.layMain.height(),d=r-l;e.layFixed.find(k).css("height",i.height()>=d?d:"auto"),e.layFixRight[n>0?"removeClass":"addClass"](f),e.layFixRight.css("right",a-1)},I.prototype.events=function(){var e,a=this,o=a.config,c=t("body"),s={},u=a.layHeader.find("th"),h=".layui-table-cell",p=o.elem.attr("lay-filter");a.layTool.on("click","*[lay-event]",function(e){var i=t(this),c=i.attr("lay-event"),s=function(e){var l=t(e.list),n=t('
                  ');n.html(l),o.height&&n.css("max-height",o.height-(a.layTool.outerHeight()||50)),i.find(".layui-table-tool-panel")[0]||i.append(n),a.renderForm(),n.on("click",function(e){layui.stope(e)}),e.done&&e.done(n,l)};switch(layui.stope(e),F.trigger("table.tool.panel.remove"),l.close(a.tipsIndex),c){case"LAYTABLE_COLS":s({list:function(){var e=[];return a.eachCols(function(t,i){i.field&&"normal"==i.type&&e.push('
                • ')}),e.join("")}(),done:function(){n.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var i=t(e.elem),l=this.checked,n=i.data("key"),r=i.data("parentkey");layui.each(o.cols,function(e,t){layui.each(t,function(t,i){if(e+"-"+t===n){var d=i.hide;i.hide=!l,a.elem.find('*[data-key="'+o.index+"-"+n+'"]')[l?"removeClass":"addClass"](f),d!=i.hide&&a.setParentCol(!l,r),a.resize()}})})})}});break;case"LAYTABLE_EXPORT":r.ie?l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出",this,{tips:3}):s({list:function(){return['
                • 导出到 Csv 文件
                • ','
                • 导出到 Excel 文件
                • '].join("")}(),done:function(e,i){i.on("click",function(){var e=t(this).data("type");d.exportFile(o.id,null,e)})}});break;case"LAYTABLE_PRINT":var u=window.open("打印窗口","_blank"),h=[""].join(""),v=t(a.layHeader.html());v.append(a.layMain.find("table").html()),v.append(a.layTotal.find("table").html()),v.find("th.layui-table-patch").remove(),v.find(".layui-table-col-special").remove(),u.document.write(h+v.prop("outerHTML")),u.document.close(),u.print(),u.close()}layui.event.call(this,y,"toolbar("+p+")",t.extend({event:c,config:o},{}))}),u.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||s.resizeStart||(s.allowResize=i.width()-l<=10,c.css("cursor",s.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);s.resizeStart||c.css("cursor","")}).on("mousedown",function(e){var i=t(this);if(s.allowResize){var l=i.data("key");e.preventDefault(),s.resizeStart=!0,s.offset=[e.clientX,e.clientY],a.getCssRule(l,function(e){var t=e.style.width||i.outerWidth();s.rule=e,s.ruleWidth=parseFloat(t),s.minWidth=i.data("minwidth")||o.cellMinWidth})}}),F.on("mousemove",function(t){if(s.resizeStart){if(t.preventDefault(),s.rule){var i=s.ruleWidth+t.clientX-s.offset[0];i');return n[0].value=i.data("content")||l.text(),i.find("."+W)[0]||i.append(n),n.focus(),void layui.stope(e)}}).on("mouseenter","td",function(){b.call(this)}).on("mouseleave","td",function(){b.call(this,"hide")});var g="layui-table-grid-down",b=function(e){var i=t(this),a=i.children(h);if(!i.data("off"))if(e)i.find(".layui-table-grid-down").remove();else if(a.prop("scrollWidth")>a.outerWidth()){if(a.find("."+g)[0])return;i.append('
                  ')}};a.layBody.on("click","."+g,function(e){var i=t(this),n=i.parent(),d=n.children(h);a.tipsIndex=l.tips(['
                  ',d.html(),"
                  ",''].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:a.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}),layui.stope(e)}),a.layBody.on("click","*[lay-event]",function(){var e=t(this),i=e.parents("tr").eq(0).data("index");layui.event.call(this,y,"tool("+p+")",v.call(this,{event:e.attr("lay-event")})),a.setThisRowChecked(i)}),a.layMain.on("scroll",function(){var e=t(this),i=e.scrollLeft(),n=e.scrollTop();a.layHeader.scrollLeft(i),a.layTotal.scrollLeft(i),a.layFixed.find(k).scrollTop(n),l.close(a.tipsIndex)}),F.on("click",function(){F.trigger("table.remove.tool.panel")}),F.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()}),R.on("resize",function(){a.resize()})},d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':h+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},c.that={},c.config={},d.eachCols=function(e,i,a){var l=c.config[e]||{},n=[],o=0;a=t.extend(!0,[],a||l.cols),layui.each(a,function(e,t){layui.each(t,function(t,i){if(i.colGroup){var l=0;o++,i.CHILD_COLS=[],layui.each(a[e+1],function(e,t){t.PARENT_COL_INDEX||l>1&&l==i.colspan||(t.PARENT_COL_INDEX=o,i.CHILD_COLS.push(t),l+=parseInt(t.colspan>1?t.colspan:1))})}i.PARENT_COL_INDEX||n.push(i)})});var r=function(e){layui.each(e||n,function(e,t){return t.CHILD_COLS?r(t.CHILD_COLS):void("function"==typeof i&&i(e,t))})};r()},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},d.exportFile=function(e,t,i){t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var a=c.config[e]||{},l={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],n=document.createElement("a");return r.ie?o.error("IE_NOT_SUPPORT_EXPORTS"):(n.href="data:"+l+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],a=[];return layui.each(t,function(t,l){var n=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(l),function(e,t){n.push('"'+(t||"")+'"')})):d.eachCols(e,function(e,a){a.field&&"normal"==a.type&&!a.hide&&(0==t&&i.push(a.title||""),n.push('"'+u(a,l[a.field],l,"text")+'"'))}),a.push(n.join(","))}),i.join(",")+"\r\n"+a.join("\r\n")}()),n.download=(a.title||"table_"+(a.index||""))+"."+i,document.body.appendChild(n),n.click(),void document.body.removeChild(n))},d.resize=function(e){if(e){var t=s(e);if(!t)return;c.that[e].resize()}else layui.each(c.that,function(){this.resize()})},d.reload=function(e,t){var i=s(e);if(i){var a=c.that[e];return a.reload(t),c.call(a)}},d.render=function(e){var t=new I(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(y,d)});layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(clearInterval(e.timer),e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['
                    ',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
                  "].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a",u=1;u<=i.length;u++){var r='
                • ";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'
                • ":n+=r}n+=""+(i.text?''+i.value+"星":"")+"";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)});layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,n,a="layui-fixbar",o="layui-fixbar-top",r=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"":t.bar1,t.bar2=t.bar2===!0?"":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,""],g=e(['
                    ',t.bar1?'
                  • '+c[0]+"
                  • ":"",t.bar2?'
                  • '+c[1]+"
                  • ":"",'
                  • '+c[2]+"
                  • ","
                  "].join("")),s=g.find("."+o),u=function(){var e=r.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+a)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),n=i.attr("lay-type");"top"===n&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,n)}),r.on("scroll",function(){clearTimeout(n),n=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var n=this,a="function"==typeof e,o=new Date(t).getTime(),r=new Date(!e||a?(new Date).getTime():e).getTime(),l=o-r,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];a&&(i=e);var g=setTimeout(function(){n.countdown(t,r+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,n=[[],[]],a=(new Date).getTime()-new Date(t).getTime();return a>6912e5?(a=new Date(t),n[0][0]=i.digit(a.getFullYear(),4),n[0][1]=i.digit(a.getMonth()+1),n[0][2]=i.digit(a.getDate()),e||(n[1][0]=i.digit(a.getHours()),n[1][1]=i.digit(a.getMinutes()),n[1][2]=i.digit(a.getSeconds())),n[0].join("-")+" "+n[1].join(":")):a>=864e5?(a/1e3/60/60/24|0)+"天前":a>=36e5?(a/1e3/60/60|0)+"小时前":a>=12e4?(a/1e3/60|0)+"分钟前":a<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var n=t.length;n/g,">").replace(/'/g,"'").replace(/"/g,""")},event:function(t,n,a){n=i.event[t]=e.extend(!0,i.event[t],n)||{},e("body").on(a||"click","*["+t+"]",function(){var i=e(this),a=i.attr(t);n[a]&&n[a].call(this,i)})}};!function(t,e,i){"$:nomunge";function n(){a=e[l](function(){o.each(function(){var e=t(this),i=e.width(),n=e.height(),a=t.data(this,g);(i!==a.w||n!==a.h)&&e.trigger(c,[a.w=i,a.h=n])}),n()},r[s])}var a,o=t([]),r=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";r[s]=250,r[u]=!0,t.event.special[c]={setup:function(){if(!r[u]&&this[l])return!1;var e=t(this);o=o.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===o.length&&n()},teardown:function(){if(!r[u]&&this[l])return!1;var e=t(this);o=o.not(e),e.removeData(g),o.length||clearTimeout(a)},add:function(e){function n(e,n,o){var r=t(this),l=t.data(this,g)||{};l.w=n!==i?n:r.width(),l.h=o!==i?o:r.height(),a.apply(this,arguments)}if(!r[u]&&this[l])return!1;var a;return t.isFunction(e)?(a=e,n):(a=e.handler,void(e.handler=n))}}}(e,window),t("util",i)});layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});layui.define(["layer","form"],function(t){"use strict";var e=layui.$,i=layui.layer,a=layui.form,l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",c=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};c.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},c.prototype.on=function(t,e){return layui.onevent(n,t,e)},c.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",c=e("string"==typeof t?"#"+t:t),u="LAY_layedit_"+ ++a.index,d=c.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['
                  ','
                  '+f+"
                  ",'
                  ','',"
                  ","
                  "].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"

                  ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

                  "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

                  "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['

                    ','
                  • ','','
                    ','',"
                    ","
                  • ",'
                  • ','','
                    ','",'","
                    ","
                  • ",'
                  • ','','',"
                  • ","
                  "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
                • '+e+'
                • ')}),'
                    '+t.join("")+"
                  "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['
                    ','
                  • ','','
                    ','","
                    ","
                  • ",'
                  • ','','
                    ','',"
                    ","
                  • ",'
                  • ','','',"
                  • ","
                  "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},w=new c;t(n,w)});layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
                  1. '+o.replace(/[\r\t\n]+/g,"
                  2. ")+"
                  "),c.find(">.layui-code-h3")[0]||c.prepend('

                  '+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

                  ");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/layui.js b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/layui.js new file mode 100644 index 0000000..b6c4c49 --- /dev/null +++ b/novel-admin/src/main/resources/static/layuimini/lib/layui-v2.5.4/layui.js @@ -0,0 +1,2 @@ +/** layui-v2.5.4 MIT License By https://www.layui.com */ + ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.5.4"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,o=t.scripts,n=o.length-1,r=n;r>0;r--)if("interactive"===o[r].readyState){e=o[r].src;break}return e||o[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),i=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},a="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",transfer:"modules/transfer",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,i=function(){var e=function(e,t){layui[e]=t,o.status[e]=!0};return"function"==typeof t&&t(function(n,r){e(n,r),o.callback[n]=function(){t(e)}}),this};return r&&(t=e,e=[]),!layui["layui.all"]&&layui["layui.mobile"]?i.call(n):(n.use(e,i),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":o.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||a?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var a=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?a:(function p(){return++y>1e3*o.timeout/100?i(e+" timeout"):void(1989===parseInt(a.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),a)},o.callback={},n.prototype.factory=function(e){if(layui[e])return"function"==typeof o.callback[e]?o.callback[e]:null},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,"function"==typeof t&&t(n)},void(n.onerror=function(e){n.onerror=null,"function"==typeof o&&o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?i("模块名 "+o+" 已被占用"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),o.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o,n){if(t=t||"layui",n=n||localStorage,e.JSON&&e.JSON.parse){if(null===o)return delete n[t];o="object"==typeof o?o:{key:o};try{var r=JSON.parse(n[t])}catch(i){var r={}}return"value"in o&&(r[o.key]=o.value),o.remove&&delete r[o.key],n[t]=JSON.stringify(r),o.key?r[o.key]:r}},n.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:i}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;oi?1:r

                  ` +- [done] 不选中任何内容,点击“加粗”报错:Failed to execute 'setEnd' on 'Range' +- [done] toolbar 小图标的 z-index 可配置 + +### v3.0.4 + +- [done] 允许使用者通过`replace`实现多语言 +- [done] `_alert()`,可自定义配置提示框 +- [done] 支持用户自定义上传图片的事件,如用户要上传到七牛云、阿里云 + +### v3.0.5 + +- [done] 图片上传中,insertLinkImg 方法中,去掉 img.onload 之后再插入的逻辑吧,这样会打乱多个图片的顺序 +- [done] `` 标签重叠问题,两行文字都是`h2`,然后将第一行选中设置为`h1`,结果是 `

                  测试1

                  测试2` +- [done] 补充 ng 集成的示例 https://github.com/wangfupeng1988/wangEditor/issues/859 +- [done] 菜单不能折叠的说明,加入到文档中 +- [done] 上传图片 before 函数中,增加一个判断,可以让用户终止图片的上传 + +### v3.0.6 + +- [done] src/fonts 中的字体文件名改一下,用 icomoon 容易发生冲突 +- [done] 将禁用编辑器的操作完善到文档中 https://www.kancloud.cn/wangfupeng/wangeditor3/368562 +- [done] 开放表格中的粘贴功能(之前因不明问题而封闭) +- [done] 代码块中,光标定位到最后位置时,连续两次回车要跳出代码块 + +### v3.0.7 + +- [done] 紧急修复上一个版本导致的菜单图标不显示的 bug + +### v3.0.8 + +- [done] 修复 backColor 和 foreColor 代码文件名混淆的问题 +- [done] 修改 IE 中 “引用” 的功能 +- [done] 增加粘贴过滤样式的可配置 +- [done] 修复 IE 粘贴文字的问题 + +### v3.0.9 + +- [done] config 中,上传图片的 token 注视掉 +- [done] 将一些常见 API 开放,写到文档中 https://www.kancloud.cn/wangfupeng/wangeditor3/404586 +- [done] IE 火狐 插入多行代码有问题 +- [done] 粘贴时,在`

                  `中,不能只粘贴纯文本,还得要图片 +- [done] 粘贴内容中,过滤掉``注释 +- [done] **支持上传七牛云存储** + +### v3.0.10 + +- [done] 支持插入网络图片的回调函数 +- [done] 插入链接时候的格式校验 +- [done] 支持拖拽上传 + +### v3.0.11 + +- [done] 如何用 textarea 创建编辑器,完善到文档中,许多人提问 +- [done] 修复`editor.customConfig.customUploadImg`不触发的 bug +- [done] 修复有序列表和无序列表切换时 onchange 不触发的 bug + +### v3.0.12 + +- [done] 增加 onfocus 和 onblur (感谢 [hold-baby](https://github.com/hold-baby) 提交的 [PR](https://github.com/wangfupeng1988/wangEditor/pull/1076)) +- [done] 上传的自定义参数`editor.customConfig.uploadImgParams`是否拼接到 url 中,支持可配置 +- [done] onchange 触发的延迟时间,支持可配置 + +### v3.0.13 + +- [done] 修复图片 选中/取消选中 时,触发 onchange 的问题 +- [done] 修复只通过 length 判断 onchange 是否触发的问题 +- [done] 增加插入网络图片的校验函数 +- [done] 增加自定义处理粘贴文本的事件 +- [done] 修复选中一个图片时点击删除键会误删除其他内容的 bug +- [done] 修复 window chrome 中“复制图片”然后粘贴图片,会粘贴为两张的 bug +- [done] 修复无法撤销“引用”的问题 + +### v3.0.14 + +- [done] 可以配置前景色、背景色 +- [done] 回车时无法从`

                  ....

                  `中跳出 +- [done] 增加获取 JSON 格式内容的 API + +### v3.0.15 + +- [done] 表情兼容图片和 emoji ,都可自定义配置 + +### v3.0.16 + +- [done] 修复粘贴图片的 bug +- [done] 修复`pasteTextHandle`执行两次的问题 +- [done] 修复插入链接时,文字和链接为空时,`linkCheck`不执行的 bug +- [done] 粘贴 html 时,过滤掉其中的`data-xxx`属性 +- [done] 修复中文输入法输入过程中出发 onchange 的问题,感谢 [github.com/CongAn](https://github.com/CongAn) PR +- [done] `editor.txt.html`和`editor.txt.text`中,替换`​`字符为空字符串 +- [done] 精确图片大小计算,将`maxSize / 1000 / 1000`改为`maxSize / 1024 / 1024` +- [done] 修复 droplist 类型菜单(颜色、背景色等)点击不准确的问题 + +### v3.0.17 + +- [done] 合并 pr [菜单和编辑区域分离 onfocus onblur 失效bug](https://github.com/wangfupeng1988/wangEditor/pull/1174) ,感谢 [hold-baby](https://github.com/hold-baby) 提供 pr +- [done] 使用`document.execCommand("styleWithCSS", null, true)`,这样设置字体颜色就会用 css 而不是用`` + + +### 近期计划解决 + +- 撤销的兼容性问题(会误伤其他编辑器或者 input textarea 等),考虑用 onchange 记录 undo 和 redo 的内容(但是得考虑直接修改 dom 的情况,如 quote code img list table 菜单) + - 列表撤销会删除一行?https://github.com/wangfupeng1988/wangEditor/issues/1131 + - 页面中有 input 等输入标签时,undo redo 会误伤 https://github.com/wangfupeng1988/wangEditor/issues/1024 + - 两个编辑器 undo 的问题 https://github.com/wangfupeng1988/wangEditor/issues/1010 + - list undo redo 有问题。选中几行,先设置有序列表,再设置无序列表,然后撤销,就能复现问题 +- 粘贴文字的样式问题(可暂时配置 `pasteTextHandle` 自行处理) + - 先输入文字,再粘贴 excel 表格,样式丢失 https://github.com/wangfupeng1988/wangEditor/issues/1000 + - IE 11 直接输入文字会空一行在第二行出现内容 https://github.com/wangfupeng1988/wangEditor/issues/919 + - windows 下 word excel 的粘贴,存在垃圾数据 + +## 待排期 + +- 调研 safari、IE 和ff中粘贴图片 https://github.com/wangfupeng1988/wangEditor/issues/831 +- 图片调整大小,表格调整的方式,是否用 toolbar 的方式? +- 删除掉`./release`之后,执行`npm run release`会报错,原因是`fonts`文件没拷贝全,就要去替换`css`中的字体文件为`base64`格式,导致找不到文件。 +- 先点击'B'再输入内容这种形式,前期先支持 webkit 和 IE,火狐的支持后面再加上 +- 图片压缩 canvas https://github.com/think2011/localResizeIMG +- github 徽章 https://github.com/EyreFree/GitHubBadgeIntroduction +- 将代码在进行拆分,做到“每个程序只做一件事”,不要出现过长的代码文件。例如 `src/js/command/index.js` 和 `src/js/selection/index.js` + diff --git a/novel-admin/src/main/resources/static/wangEditor/LICENSE b/novel-admin/src/main/resources/static/wangEditor/LICENSE new file mode 100644 index 0000000..5239660 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2017 王福朋 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/novel-admin/src/main/resources/static/wangEditor/README.md b/novel-admin/src/main/resources/static/wangEditor/README.md new file mode 100644 index 0000000..0ab9445 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/README.md @@ -0,0 +1,70 @@ + +# wangEditor + +## 介绍 + +**wangEditor** —— 轻量级 web 富文本编辑器,配置方便,使用简单。支持 IE10+ 浏览器。 + +- 官网:[www.wangEditor.com](http://www.wangeditor.com/) +- 文档:[www.kancloud.cn/wangfupeng/wangeditor3/332599](http://www.kancloud.cn/wangfupeng/wangeditor3/332599) +- 源码:[github.com/wangfupeng1988/wangEditor](https://github.com/wangfupeng1988/wangEditor) (欢迎 star) + +![图片](http://images2015.cnblogs.com/blog/138012/201705/138012-20170530202905633-1840158981.png) + +*查看 v2 版本的代码和文档点击[这里](https://github.com/wangfupeng1988/wangEditor/tree/v2)* + + +## 下载 + +- 直接下载:[https://github.com/wangfupeng1988/wangEditor/releases](https://github.com/wangfupeng1988/wangEditor/releases) +- 使用`npm`下载:`npm install wangeditor` (注意 `wangeditor` 全部是**小写字母**) +- 使用`bower`下载:`bower install wangEditor` (前提保证电脑已安装了`bower`) +- 使用CDN:[//unpkg.com/wangeditor/release/wangEditor.min.js](https://unpkg.com/wangeditor/release/wangEditor.min.js) + + +## 使用 + +```javascript +var E = window.wangEditor +var editor = new E('#div1') +editor.create() +``` + + +## 运行 demo + +- 下载源码 `git clone git@github.com:wangfupeng1988/wangEditor.git` +- 安装或者升级最新版本 node(最低`v6.x.x`) +- 进入目录,安装依赖包 `cd wangEditor && npm i` +- 安装包完成之后,windows 用户运行`npm run win-example`,Mac 用户运行`npm run example` +- 打开浏览器访问[localhost:3000/index.html](http://localhost:3000/index.html) +- 用于 React、vue 或者 angular 可查阅[文档](http://www.kancloud.cn/wangfupeng/wangeditor3/332599)中[其他](https://www.kancloud.cn/wangfupeng/wangeditor3/335783)章节中的相关介绍 + +## 交流 + +### QQ 群 + +以下 QQ 群欢迎加入交流问题(可能有些群已经满员) + +- 164999061 +- 281268320 + +### 提问 + +注意,作者只受理以下几种提问方式,其他方式直接忽略 + +- 直接在 [github issues](https://github.com/wangfupeng1988/wangEditor/issues) 提交问题 +- 去[知乎](https://www.zhihu.com/)提问,并邀请[作者](https://www.zhihu.com/people/wang-fu-peng-54/activities)来回答 +- 去[segmentfault](https://segmentfault.com)提问,并邀请[作者](https://segmentfault.com/u/wangfupeng1988)来回答 + +每次升级版本修复的问题记录在[这里](./ISSUE.md) + +## 关于作者 + +- 关注作者的博客 - 《[深入理解javascript原型和闭包系列](http://www.cnblogs.com/wangfupeng1988/p/4001284.html)》《[深入理解javascript异步系列](https://github.com/wangfupeng1988/js-async-tutorial)》《[CSS知多少](http://www.cnblogs.com/wangfupeng1988/p/4325007.html)》 +- 学习作者的教程 - 《[前端JS基础面试题](http://coding.imooc.com/class/115.html)》《[React.js模拟大众点评webapp](http://coding.imooc.com/class/99.html)》《[zepto设计与源码分析](http://www.imooc.com/learn/745)》《[用grunt搭建自动化的web前端开发环境](http://study.163.com/course/courseMain.htm?courseId=1103003)》《[json2.js源码解读](http://study.163.com/course/courseMain.htm?courseId=691008)》 + +如果你感觉有收获,欢迎给我打赏 ———— 以激励我更多输出优质开源内容 + +![图片](https://camo.githubusercontent.com/e1558b631931e0a1606c769a61f48770cc0ccb56/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3133383031322f3230313730322f3133383031322d32303137303232383131323233373739382d313530373139363634332e706e67) + diff --git a/novel-admin/src/main/resources/static/wangEditor/bower.json b/novel-admin/src/main/resources/static/wangEditor/bower.json new file mode 100644 index 0000000..0c4ed0d --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/bower.json @@ -0,0 +1,20 @@ +{ + "name": "wangEditor", + "description": "wangEditor - 基于javascript和css开发的 web 富文本编辑器, 轻量、简洁、易用、开源免费", + "main": "release/wangEditor.js", + "authors": [ + "wangfupeng " + ], + "license": "MIT", + "keywords": [ + "wangEditor", + "web 富文本编辑器" + ], + "homepage": "https://github.com/wangfupeng1988/wangEditor", + "moduleType": [ + "amd", + "cmd", + "node" + ], + "private": true +} diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/dev/README.md b/novel-admin/src/main/resources/static/wangEditor/docs/dev/README.md new file mode 100644 index 0000000..473dbcb --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/dev/README.md @@ -0,0 +1,25 @@ +面向开发者的文档 + + +框架介绍 + +- 下载和运行 +- 目录结构介绍 +- `example`目录 +- `src`目录(`js`目录,`less`目录) +- `package.json` +- `gulpfile.js` + +如何提交 PR + + + +上线 + +- 修改`package.json`版本 +- 提交到github,并创建tag +- 提交到 npm +- 更新 .md 文档 +- 文档同步到 kancloud +- …… + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/01-demo.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/01-demo.md new file mode 100644 index 0000000..b71612f --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/01-demo.md @@ -0,0 +1,41 @@ +# 简单的 demo + +## 下载 + +- 点击 [https://github.com/wangfupeng1988/wangEditor/releases](https://github.com/wangfupeng1988/wangEditor/releases) 下载最新版。进入`release`文件夹下找到`wangEditor.js`或者`wangEditor.min.js`即可 +- 使用CDN:[//unpkg.com/wangeditor/release/wangEditor.min.js](https://unpkg.com/wangeditor/release/wangEditor.min.js) +- 使用`bower`下载:`bower install wangEditor` (前提保证电脑已安装了`bower`) + +*PS:支持`npm`安装,请参见后面的章节* + +## 制作 demo + +编辑器效果如下。 + +![图片](https://camo.githubusercontent.com/f3d072718d8fcbbacf8cc80465a34cceffcf5b4a/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3133383031322f3230313730352f3133383031322d32303137303533303230323930353633332d313834303135383938312e706e67) + +代码示例如下。**注意,以下代码中无需引用任何 CSS 文件!!!** + +```html + + + + + wangEditor demo + + +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + + +``` diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/02-use-module.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/02-use-module.md new file mode 100644 index 0000000..0356a68 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/02-use-module.md @@ -0,0 +1,49 @@ +# 使用模块定义 + +wangEditor 除了直接使用` + + +``` + +## CommonJS + +可以使用`npm install wangeditor`安装(注意,这里`wangeditor`全是**小写字母**) + +```javascript +// 引用 +var E = require('wangeditor') // 使用 npm 安装 +var E = require('/wangEditor.min.js') // 使用下载的源码 + +// 创建编辑器 +var editor = new E('#editor') +editor.create() +``` diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/03-sperate.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/03-sperate.md new file mode 100644 index 0000000..0fcd276 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/03-sperate.md @@ -0,0 +1,48 @@ +# 菜单和编辑区域分离 + +如果你想要像 知乎专栏、简书、石墨、网易云笔记 这些编辑页面一样,将编辑区域和菜单分离,也可以实现。 + +这样,菜单和编辑器区域就是使用者可自己控制的元素,可自定义样式。例如:将菜单`fixed`、编辑器区域高度自动增加等 + +## 代码示例 + +```html + + + + + wangEditor 菜单和编辑器区域分离 + + + +
                  +
                  +
                  中间隔离带
                  +
                  +

                  请输入内容

                  +
                  + + + + + +``` + +## 显示效果 + +从上面代码可以看出,菜单和编辑区域其实就是两个单独的`
                  `,位置、尺寸都可以随便定义。 + +![](http://images2015.cnblogs.com/blog/138012/201705/138012-20170531224756289-7442240.png) + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/04-multi.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/04-multi.md new file mode 100644 index 0000000..aee3540 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/01-getstart/04-multi.md @@ -0,0 +1,50 @@ +# 同一个页面创建多个编辑器 + +wangEditor 支持一个页面创建多个编辑器 + +## 代码示例 + +```html + + + + + wangEditor 一个页面多个编辑器 + + + +
                  +
                  +
                  中间隔离带
                  +
                  +

                  第一个 demo(菜单和编辑器区域分开)

                  +
                  + +
                  +

                  第二个 demo(常规)

                  +
                  + + + + + + +``` + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/01-set-content.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/01-set-content.md new file mode 100644 index 0000000..7631f6f --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/01-set-content.md @@ -0,0 +1,46 @@ +# 设置内容 + +以下方式中,如果条件允许,尽量使用第一种方式,效率最高。 + +## html 初始化内容 + +直接将内容写到要创建编辑器的`
                  `标签中 + +```html +
                  +

                  初始化的内容

                  +

                  初始化的内容

                  +
                  + + + +``` + +## js 设置内容 + +创建编辑器之后,使用`editor.txt.html(...)`设置编辑器内容 + +```html +
                  +
                  + + + +``` + +## 追加内容 + +创建编辑器之后,可使用`editor.txt.append('

                  追加的内容

                  ')`继续追加内容。 + +## 清空内容 + +可使用`editor.txt.clear()`清空编辑器内容 diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/02-get-content.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/02-get-content.md new file mode 100644 index 0000000..e21c277 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/02-get-content.md @@ -0,0 +1,80 @@ +# 读取内容 + +可以`html`和`text`的方式读取编辑器的内容。 + +```html +
                  +

                  欢迎使用 wangEditor 编辑器

                  +
                  + + + + + +``` + +需要注意的是:**从编辑器中获取的 html 代码是不包含任何样式的纯 html**,如果显示的时候需要对其中的`` `` `
                  `等标签进行自定义样式(这样既可实现多皮肤功能),下面提供了编辑器中使用的样式供参考 + +```css +/* table 样式 */ +table { + border-top: 1px solid #ccc; + border-left: 1px solid #ccc; +} +table td, +table th { + border-bottom: 1px solid #ccc; + border-right: 1px solid #ccc; + padding: 3px 5px; +} +table th { + border-bottom: 2px solid #ccc; + text-align: center; +} + +/* blockquote 样式 */ +blockquote { + display: block; + border-left: 8px solid #d0e5f2; + padding: 5px 10px; + margin: 10px 0; + line-height: 1.4; + font-size: 100%; + background-color: #f1f1f1; +} + +/* code 样式 */ +code { + display: inline-block; + *display: inline; + *zoom: 1; + background-color: #f1f1f1; + border-radius: 3px; + padding: 3px 5px; + margin: 0 3px; +} +pre code { + display: block; +} + +/* ul ol 样式 */ +ul, ol { + margin: 10px 0 10px 20px; +} +``` + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/03-use-textarea.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/03-use-textarea.md new file mode 100644 index 0000000..1707e13 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/03-use-textarea.md @@ -0,0 +1,25 @@ +# 使用 textarea + +wangEditor 从`v3`版本开始不支持 textarea ,但是可以通过`onchange`来实现 textarea 中提交富文本内容。 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + +``` \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/04-get-json.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/04-get-json.md new file mode 100644 index 0000000..d623ac4 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/02-content/04-get-json.md @@ -0,0 +1,82 @@ +# 获取 JSON 格式的内容 + +可以通过`editor.txt.getJSON`获取 JSON 格式的编辑器的内容,`v3.0.14`开始支持,示例如下 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  + +
                  + + + + +``` + + +----- + +如果编辑器区域的 html 内容是如下: + +```html +

                  欢迎使用 wangEditor 富文本编辑器

                  + +``` + +那么获取的 JSON 格式就如下: + +```json +[ + { + "tag": "p", + "attrs": [], + "children": [ + "欢迎使用 ", + { + "tag": "b", + "attrs": [], + "children": [ + "wangEditor" + ] + }, + " 富文本编辑器" + ] + }, + { + "tag": "img", + "attrs": [ + { + "name": "src", + "value": "https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo_top_ca79a146.png" + }, + { + "name": "style", + "value": "max-width:100%;" + } + ], + "children": [] + }, + { + "tag": "p", + "attrs": [], + "children": [ + { + "tag": "br", + "attrs": [], + "children": [] + } + ] + } +] +``` \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/01-menu.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/01-menu.md new file mode 100644 index 0000000..bce6ba7 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/01-menu.md @@ -0,0 +1,52 @@ +# 自定义菜单 + +编辑器创建之前,可使用`editor.customConfig.menus`定义显示哪些菜单和菜单的顺序。**注意:v3 版本的菜单不支持换行折叠了(因为换行之后菜单栏是在太难看),如果菜单栏宽度不够,建议精简菜单项。** + +## 代码示例 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` + +## 默认菜单 + +编辑默认的菜单配置如下 + +```javascript +[ + 'head', // 标题 + 'bold', // 粗体 + 'italic', // 斜体 + 'underline', // 下划线 + 'strikeThrough', // 删除线 + 'foreColor', // 文字颜色 + 'backColor', // 背景颜色 + 'link', // 插入链接 + 'list', // 列表 + 'justify', // 对齐方式 + 'quote', // 引用 + 'emoticon', // 表情 + 'image', // 插入图片 + 'table', // 表格 + 'video', // 插入视频 + 'code', // 插入代码 + 'undo', // 撤销 + 'redo' // 重复 +] +``` diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/02-debug.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/02-debug.md new file mode 100644 index 0000000..e94d7a4 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/02-debug.md @@ -0,0 +1,21 @@ +# 定义 debug 模式 + +可通过`editor.customConfig.debug = true`配置`debug`模式,`debug`模式下,有 JS 错误会以`throw Error`方式提示出来。默认值为`false`,即不会抛出异常。 + +但是,在实际开发中不建议直接定义为`true`或者`false`,可通过 url 参数进行干预,示例如下: + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/03-onchange.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/03-onchange.md new file mode 100644 index 0000000..296091c --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/03-onchange.md @@ -0,0 +1,40 @@ +# 配置 onchange 函数 + +配置`onchange`函数之后,用户操作(鼠标点击、键盘打字等)导致的内容变化之后,会自动触发`onchange`函数执行。 + +但是,**用户自己使用 JS 修改了`div1`的`innerHTML`,不会自动触发`onchange`函数**,此时你可以通过执行`editor.change()`来手动触发`onchange`函数的执行。 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + +

                  手动触发 onchange 函数执行

                  + + + + +``` + +----- + +另外,如果需要修改 onchange 触发的延迟时间(onchange 会在用户无任何操作的 xxx 毫秒之后被触发),可通过如下配置 + +```js +// 自定义 onchange 触发的延迟时间,默认为 200 ms +editor.customConfig.onchangeTimeout = 1000 // 单位 ms +``` diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/04-z-index.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/04-z-index.md new file mode 100644 index 0000000..129bf1c --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/04-z-index.md @@ -0,0 +1,19 @@ +# 配置编辑区域的 z-index + +编辑区域的`z-index`默认为`10000`,可自定义修改,代码配置如下。需改之后,编辑区域和菜单的`z-index`会同时生效。 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` + + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/05-lang.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/05-lang.md new file mode 100644 index 0000000..01900fe --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/05-lang.md @@ -0,0 +1,30 @@ +# 多语言 + +可以通过`lang`配置项配置多语言,其实就是通过该配置项中的配置,将编辑器显示的文字,替换成你需要的文字。 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` + +**注意,以上代码中的`链接文字`要写在`链接`前面,`上传图片`要写在`上传`前面,因为前者包含后者。如果不这样做,可能会出现替换不全的问题,切记切记!** diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/06-paste.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/06-paste.md new file mode 100644 index 0000000..a7126c8 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/06-paste.md @@ -0,0 +1,33 @@ +# 粘贴文本 + +**注意,以下配置暂时对 IE 无效。IE 暂时使用系统自带的粘贴功能,没有样式过滤!** + +## 关闭粘贴样式的过滤 + +当从其他网页复制文本内容粘贴到编辑器中,编辑器会默认过滤掉复制文本中自带的样式,目的是让粘贴后的文本变得更加简洁和轻量。用户可通过`editor.customConfig.pasteFilterStyle = false`手动关闭掉粘贴样式的过滤。 + +## 自定义处理粘贴的文本内容 + +使用者可通过`editor.customConfig.pasteTextHandle`对粘贴的文本内容进行自定义的过滤、处理等操作,然后返回处理之后的文本内容。编辑器最终会粘贴用户处理之后并且返回的的内容。 + +## 示例代码 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/07-linkImgCallback.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/07-linkImgCallback.md new file mode 100644 index 0000000..52169e8 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/07-linkImgCallback.md @@ -0,0 +1,12 @@ +# 插入网络图片的回调 + +插入网络图片时,可通过如下配置获取到图片的信息。`v3.0.10`开始支持。 + +```js +var E = window.wangEditor +var editor = new E('#div1') +editor.customConfig.linkImgCallback = function (url) { + console.log(url) // url 即插入图片的地址 +} +editor.create() +``` diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/08-linkCheck.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/08-linkCheck.md new file mode 100644 index 0000000..b581438 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/08-linkCheck.md @@ -0,0 +1,16 @@ +# 插入链接的校验 + +插入链接时,可通过如下配置对文字和链接进行校验。`v3.0.10`开始支持。 + +```js +var E = window.wangEditor +var editor = new E('#div1') +editor.customConfig.linkCheck = function (text, link) { + console.log(text) // 插入的文字 + console.log(link) // 插入的链接 + + return true // 返回 true 表示校验成功 + // return '验证失败' // 返回字符串,即校验失败的提示信息 +} +editor.create() +``` \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/09-onfocus.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/09-onfocus.md new file mode 100644 index 0000000..7caba6b --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/09-onfocus.md @@ -0,0 +1,19 @@ +# 配置 onfocus 函数 + +配置`onfocus`函数之后,用户点击富文本区域会触发`onfocus`函数执行。 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/10-onblur.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/10-onblur.md new file mode 100644 index 0000000..f7544bc --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/10-onblur.md @@ -0,0 +1,20 @@ +# 配置 onblur 函数 + +配置`onblur`函数之后,如果当前有手动获取焦点的富文本并且鼠标点击富文本以外的区域,则会触发`onblur`函数执行。 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/11-linkImgCheck.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/11-linkImgCheck.md new file mode 100644 index 0000000..efb3320 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/11-linkImgCheck.md @@ -0,0 +1,15 @@ +# 插入网络图片的校验 + +插入网络图片时,可对图片地址做自定义校验。`v3.0.13`开始支持。 + +```js +var E = window.wangEditor +var editor = new E('#div1') +editor.customConfig.linkImgCheck = function (src) { + console.log(src) // 图片的链接 + + return true // 返回 true 表示校验成功 + // return '验证失败' // 返回字符串,即校验失败的提示信息 +} +editor.create() +``` \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/12-colors.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/12-colors.md new file mode 100644 index 0000000..e86e57d --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/12-colors.md @@ -0,0 +1,29 @@ +# 配置字体颜色、背景色 + +编辑器的字体颜色和背景色,可以通过`editor.customConfig.colors`自定义配置 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/13-emot.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/13-emot.md new file mode 100644 index 0000000..5363834 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/03-config/13-emot.md @@ -0,0 +1,48 @@ +# 配置表情 + +`v3.0.15`开始支持配置表情,支持图片格式和 emoji ,可通过`editor.customConfig.emotions`配置。**注意看代码示例中的注释:** + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` + +温馨提示:需要表情图片可以去 https://api.weibo.com/2/emotions.json?source=1362404091 和 http://yuncode.net/code/c_524ba520e58ce30 逛一逛,或者自己搜索。 diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/01-show-tab.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/01-show-tab.md new file mode 100644 index 0000000..8261950 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/01-show-tab.md @@ -0,0 +1,52 @@ +# 隐藏/显示 tab + +## 显示“上传图片”tab + +默认情况下,编辑器不会显示“上传图片”的tab,因为你还没有配置上传图片的信息。 + +![](http://images2015.cnblogs.com/blog/138012/201706/138012-20170601204308039-691571074.png) + +参考一下示例显示“上传图片”tab + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` + +显示效果 + +![](http://images2015.cnblogs.com/blog/138012/201706/138012-20170601204504524-830243744.png) + +## 隐藏“网络图片”tab + +默认情况下,“网络图片”tab是一直存在的。如果不需要,可以参考一下示例来隐藏它。 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/02-base64.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/02-base64.md new file mode 100644 index 0000000..3a2d71a --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/02-base64.md @@ -0,0 +1,23 @@ +# 使用 base64 保存图片 + +如果需要使用 base64 编码直接将图片插入到内容中,可参考一下示例配置 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` + +示例效果如下 + +![](http://images2015.cnblogs.com/blog/138012/201706/138012-20170601204759258-1412289899.png) + + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/03-upload-config.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/03-upload-config.md new file mode 100644 index 0000000..6720ce6 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/03-upload-config.md @@ -0,0 +1,188 @@ +# 上传图片 & 配置 + +将图片上传到服务器上的配置方式 + +## 上传图片 + +参考如下代码 + +```html +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + +``` + +其中`/upload`是上传图片的服务器端接口,接口返回的**数据格式**如下(**实际返回数据时,不要加任何注释!!!**) + +```json +{ + // errno 即错误代码,0 表示没有错误。 + // 如果有错误,errno != 0,可通过下文中的监听函数 fail 拿到该错误码进行自定义处理 + "errno": 0, + + // data 是一个数组,返回若干图片的线上地址 + "data": [ + "图片1地址", + "图片2地址", + "……" + ] +} +``` + +## 限制图片大小 + +默认限制图片大小是 5M + +```javascript +// 将图片大小限制为 3M +editor.customConfig.uploadImgMaxSize = 3 * 1024 * 1024 +``` + +## 限制一次最多能传几张图片 + +默认为 10000 张(即不限制),需要限制可自己配置 + +```javascript +// 限制一次最多上传 5 张图片 +editor.customConfig.uploadImgMaxLength = 5 +``` + +## 自定义上传参数 + +上传图片时可自定义传递一些参数,例如传递验证的`token`等。参数会被添加到`formdata`中。 + +```javascript +editor.customConfig.uploadImgParams = { + token: 'abcdef12345' // 属性值会自动进行 encode ,此处无需 encode +} +``` + +如果**还需要**将参数拼接到 url 中,可再加上如下配置 + +``` +editor.customConfig.uploadImgParamsWithUrl = true +``` + +## 自定义 fileName + +上传图片时,可自定义`filename`,即在使用`formdata.append(name, file)`添加图片文件时,自定义第一个参数。 + +```javascript +editor.customConfig.uploadFileName = 'yourFileName' +``` + +## 自定义 header + +上传图片时刻自定义设置 header + +```javascript +editor.customConfig.uploadImgHeaders = { + 'Accept': 'text/x-json' +} +``` + +## withCredentials(跨域传递 cookie) + +跨域上传中如果需要传递 cookie 需设置 withCredentials + +```javascript +editor.customConfig.withCredentials = true +``` + +## 自定义 timeout 时间 + +默认的 timeout 时间是 10 秒钟 + +```javascript +// 将 timeout 时间改为 3s +editor.customConfig.uploadImgTimeout = 3000 +``` + +## 监听函数 + +可使用监听函数在上传图片的不同阶段做相应处理 + +```javascript +editor.customConfig.uploadImgHooks = { + before: function (xhr, editor, files) { + // 图片上传之前触发 + // xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,files 是选择的图片文件 + + // 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传 + // return { + // prevent: true, + // msg: '放弃上传' + // } + }, + success: function (xhr, editor, result) { + // 图片上传并返回结果,图片插入成功之后触发 + // xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,result 是服务器端返回的结果 + }, + fail: function (xhr, editor, result) { + // 图片上传并返回结果,但图片插入错误时触发 + // xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,result 是服务器端返回的结果 + }, + error: function (xhr, editor) { + // 图片上传出错时触发 + // xhr 是 XMLHttpRequst 对象,editor 是编辑器对象 + }, + timeout: function (xhr, editor) { + // 图片上传超时时触发 + // xhr 是 XMLHttpRequst 对象,editor 是编辑器对象 + }, + + // 如果服务器端返回的不是 {errno:0, data: [...]} 这种格式,可使用该配置 + // (但是,服务器端返回的必须是一个 JSON 格式字符串!!!否则会报错) + customInsert: function (insertImg, result, editor) { + // 图片上传并返回结果,自定义插入图片的事件(而不是编辑器自动插入图片!!!) + // insertImg 是插入图片的函数,editor 是编辑器对象,result 是服务器端返回的结果 + + // 举例:假如上传图片成功后,服务器端返回的是 {url:'....'} 这种格式,即可这样插入图片: + var url = result.url + insertImg(url) + + // result 必须是一个 JSON 格式字符串!!!否则报错 + } +} +``` + +## 自定义提示方法 + +上传图片的错误提示默认使用`alert`弹出,你也可以自定义用户体验更好的提示方式 + +```javascript +editor.customConfig.customAlert = function (info) { + // info 是需要提示的内容 + alert('自定义提示:' + info) +} +``` + +## 自定义上传图片事件 + +如果想完全自己控制图片上传的过程,可以使用如下代码 + +```javascript +editor.customConfig.customUploadImg = function (files, insert) { + // files 是 input 中选中的文件列表 + // insert 是获取图片 url 后,插入到编辑器的方法 + + // 上传代码返回结果之后,将图片插入到编辑器中 + insert(imgUrl) +} +``` diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/04-qiniu.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/04-qiniu.md new file mode 100644 index 0000000..e5c2ca4 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/04-uploadimg/04-qiniu.md @@ -0,0 +1,115 @@ +# 上传到七牛云存储 + +完整的 demo 请参见 https://github.com/wangfupeng1988/js-sdk ,可下载下来本地运行 demo + +> 注意:配置了上传七牛云存储之后,**无法再使用插入网络图片** + +核心代码如下: + +```js +var E = window.wangEditor +var editor = new E('#div1') +// 允许上传到七牛云存储 +editor.customConfig.qiniu = true +editor.create() + +// 初始化七牛上传 +uploadInit() + +// 初始化七牛上传的方法 +function uploadInit() { + // 获取相关 DOM 节点的 ID + var btnId = editor.imgMenuId; + var containerId = editor.toolbarElemId; + var textElemId = editor.textElemId; + + // 创建上传对象 + var uploader = Qiniu.uploader({ + runtimes: 'html5,flash,html4', //上传模式,依次退化 + browse_button: btnId, //上传选择的点选按钮,**必需** + uptoken_url: '/uptoken', + //Ajax请求upToken的Url,**强烈建议设置**(服务端提供) + // uptoken : '', + //若未指定uptoken_url,则必须指定 uptoken ,uptoken由其他程序生成 + // unique_names: true, + // 默认 false,key为文件名。若开启该选项,SDK会为每个文件自动生成key(文件名) + // save_key: true, + // 默认 false。若在服务端生成uptoken的上传策略中指定了 `sava_key`,则开启,SDK在前端将不对key进行任何处理 + domain: 'http://7xrjl5.com1.z0.glb.clouddn.com/', + //bucket 域名,下载资源时用到,**必需** + container: containerId, //上传区域DOM ID,默认是browser_button的父元素, + max_file_size: '100mb', //最大文件体积限制 + flash_swf_url: '../js/plupload/Moxie.swf', //引入flash,相对路径 + filters: { + mime_types: [ + //只允许上传图片文件 (注意,extensions中,逗号后面不要加空格) + { title: "图片文件", extensions: "jpg,gif,png,bmp" } + ] + }, + max_retries: 3, //上传失败最大重试次数 + dragdrop: true, //开启可拖曳上传 + drop_element: textElemId, //拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传 + chunk_size: '4mb', //分块上传时,每片的体积 + auto_start: true, //选择文件后自动上传,若关闭需要自己绑定事件触发上传 + init: { + 'FilesAdded': function(up, files) { + plupload.each(files, function(file) { + // 文件添加进队列后,处理相关的事情 + printLog('on FilesAdded'); + }); + }, + 'BeforeUpload': function(up, file) { + // 每个文件上传前,处理相关的事情 + printLog('on BeforeUpload'); + }, + 'UploadProgress': function(up, file) { + // 显示进度 + printLog('进度 ' + file.percent) + }, + 'FileUploaded': function(up, file, info) { + // 每个文件上传成功后,处理相关的事情 + // 其中 info 是文件上传成功后,服务端返回的json,形式如 + // { + // "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98", + // "key": "gogopher.jpg" + // } + printLog(info); + // 参考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html + + var domain = up.getOption('domain'); + var res = $.parseJSON(info); + var sourceLink = domain + res.key; //获取上传成功后的文件的Url + + printLog(sourceLink); + + // 插入图片到editor + editor.cmd.do('insertHtml', '') + }, + 'Error': function(up, err, errTip) { + //上传出错时,处理相关的事情 + printLog('on Error'); + }, + 'UploadComplete': function() { + //队列文件处理完毕后,处理相关的事情 + printLog('on UploadComplete'); + } + // Key 函数如果有需要自行配置,无特殊需要请注释 + //, + // 'Key': function(up, file) { + // // 若想在前端对每个文件的key进行个性化处理,可以配置该函数 + // // 该配置必须要在 unique_names: false , save_key: false 时才生效 + // var key = ""; + // // do something with key here + // return key + // } + } + // domain 为七牛空间(bucket)对应的域名,选择某个空间后,可通过"空间设置->基本设置->域名设置"查看获取 + // uploader 为一个plupload对象,继承了所有plupload的方法,参考http://plupload.com/docs + }); +} + +// 封装 console.log 函数 +function printLog(title, info) { + window.console && console.log(title, info); +} +``` \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/01-全屏-预览-查看源码.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/01-全屏-预览-查看源码.md new file mode 100644 index 0000000..27588c8 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/01-全屏-预览-查看源码.md @@ -0,0 +1,10 @@ +# 全屏 & 预览 & 查看源码 + +## 全屏 + +虽然 wangEditor 没有内置全屏功能,但是你可以通过简单的代码来搞定,作者已经做了一个demo来示范。通过运行 demo(文档一开始就介绍了)即可看到该示例页面,直接查看页面源代码即可。 + +## 预览 & 查看源码 + +如果需要预览和查看源码的功能,也需要跟全屏功能一样,自己定义按钮。点击按钮时通过`editor.txt.html()`获取编辑器内容,然后自定义实现预览和查看源码功能。 + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/02-上传附件.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/02-上传附件.md new file mode 100644 index 0000000..1f3cc88 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/02-上传附件.md @@ -0,0 +1,24 @@ +# 关于上传附件 + +**有用户问到编辑器能否有上传附件的功能?我的建议是不要把附件做到内容中。** + +原因很简单,如果将附件上传之后再插入到富文本内容中,其实就是一个链接的形式。如下图: + +![](http://box.kancloud.cn/2016-02-19_56c718ec6f9bf.png) + +而用户在用编辑器编辑文本时,操作是非常随意多样的,他把这个链接删了,你服务器要想实时删除上传的附件文件,是难监控到的。 + +还有,用户如果要上传很多个附件,也是很难管理的,还是因为富文本的内容变化多样,用户可以随便在什么地方插入附件,而且形式和链接一样。 + +------- + +反过来,我们想一下平时用附件和编辑器最多的产品是什么——是邮箱。邮箱如何处理附件的,大家应该很清楚。它把文本内容和附件分开,这样附件就可以很轻松、明了的进行管理,绝对不会和编辑内容的链接产生混淆。 + +![](http://box.kancloud.cn/2016-02-19_56c718ec83f7e.png) + +你能看到的所有的邮箱产品,几乎都是这样设计的。 + +------- + +因此,在你提问编辑器能否上传附件这个问题的时候,可以想一下能否参照邮箱的实现来设计? + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/03-markdown.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/03-markdown.md new file mode 100644 index 0000000..c723347 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/03-markdown.md @@ -0,0 +1,12 @@ +# 关于 markdown + +**好多使用者问到,wangEditor编辑器能否集成markdown?——答案是:富文本编辑器无法和markdown集成到一起。** + +----- + + +你可以参考 [简书](http://www.jianshu.com/) 的实现方式,简书中编辑器也无法实现富文本和`markdown`的自由切换。要么使用富文本编写文章,要么使用`markdown`编写文章,不能公用。 + +本质上,富文本编辑器和`markdown`编辑器是两回事儿。 + + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/04-xss.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/04-xss.md new file mode 100644 index 0000000..286337f --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/04-xss.md @@ -0,0 +1,23 @@ +# 预防 XSS 攻击 + +> 术业有专攻 + +要想在前端预防 xss 攻击,还得依赖于其他工具,例如[xss.js](http://jsxss.com/zh/index.html)(如果打不开页面,就从百度搜一下) + +代码示例如下 + +```html + + + +``` + diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/05-react.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/05-react.md new file mode 100644 index 0000000..8dcc2d4 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/05-react.md @@ -0,0 +1,7 @@ +# 用于 React + +如果需要将 wangEditor 用于 React 中,可参见如下示例 + +- 下载源码 `git clone git@github.com:wangfupeng1988/wangEditor.git` +- 进入 React 示例目录 `cd wangEditor/example/demo/in-react/`,查看`src/App.js`即可 +- 也可以运行`npm install && npm start`查看在 React 中的效果(`http://localhost:3000/`) diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/06-vue.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/06-vue.md new file mode 100644 index 0000000..47e167a --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/06-vue.md @@ -0,0 +1,7 @@ +# 用于 Vue + +如果需要将 wangEditor 用于 Vue 中,可参见如下示例 + +- 下载源码 `git clone git@github.com:wangfupeng1988/wangEditor.git` +- 进入 vue 示例目录 `cd wangEditor/example/demo/in-vue/`,查看`src/components/Editor.vue`即可 +- 也可以运行`npm install && npm run dev`查看在 vue 中的效果(`http://localhost:8080/`) diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/07-ng.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/07-ng.md new file mode 100644 index 0000000..1d59afc --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/07-ng.md @@ -0,0 +1,3 @@ +# 用于 Angular + +感谢 [@fengnovo](https://github.com/fengnovo) 提供了一个 angular2 的兼容示例,可供参考 https://github.com/fengnovo/wangEditor/tree/master/example/demo/in-ng2 diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/08-api.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/08-api.md new file mode 100644 index 0000000..e8b4f6d --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/05-other/08-api.md @@ -0,0 +1,27 @@ +# 常用 API + +## 属性 + +- 获取编辑器的唯一标识 `editor.id` +- 获取编辑区域 DOM 节点 `editor.$textElem[0]` +- 获取菜单栏 DOM 节点 `editor.$toolbarElem[0]` +- 获取编辑器配置信息 `editor.config` +- 获取编辑区域 DOM 节点 ID `editor.textElemId` +- 获取菜单栏 DOM 节点 ID `editor.toolbarElemId` +- 获取菜单栏中“图片”菜单的 DOM 节点 ID `editor.imgMenuId` + +## 方法 + +### 选取操作 + +- 获取选中的文字 `editor.selection.getSelectionText()` +- 获取选取所在的 DOM 节点 `editor.selection.getSelectionContainerElem()[0]` + - 开始节点 `editor.selection.getSelectionStartElem()[0]` + - 结束节点 `editor.selection.getSelectionEndElem()[0]` +- 折叠选取 `editor.selection.collapseRange()` +- 更多可参见[源码中](https://github.com/wangfupeng1988/wangEditor/blob/master/src/js/selection/index.js)定义的方法 + +### 编辑内容操作 + +- 插入 HTML `editor.cmd.do('insertHTML', '

                  ...

                  ')` +- 可通过`editor.cmd.do(name, value)`来执行`document.execCommand(name, false, value)`的操作 \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/docs/usage/README.md b/novel-admin/src/main/resources/static/wangEditor/docs/usage/README.md new file mode 100644 index 0000000..4c801e6 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/docs/usage/README.md @@ -0,0 +1,3 @@ +同步[../../README.md](../../README.md)的内容 + +将所有文档跟新到 www.kancloud.cn/wangfupeng/wangeditor3/332599 中 diff --git a/novel-admin/src/main/resources/static/wangEditor/example/README.md b/novel-admin/src/main/resources/static/wangEditor/example/README.md new file mode 100644 index 0000000..6e17ca0 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/README.md @@ -0,0 +1 @@ +wangEditor demo diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/package.json b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/package.json new file mode 100644 index 0000000..054d5cd --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/package.json @@ -0,0 +1,19 @@ +{ + "name": "wangeditor-in-react", + "version": "0.1.0", + "private": true, + "dependencies": { + "react": "^15.5.4", + "react-dom": "^15.5.4", + "wangeditor": ">=3.0.0" + }, + "devDependencies": { + "react-scripts": "1.0.7" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test --env=jsdom", + "eject": "react-scripts eject" + } +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/public/favicon.ico b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5c125de5d897c1ff5692a656485b3216123dcd89 GIT binary patch literal 24838 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 + + + + + + + + + + React App + + + +
                  + + + diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/public/manifest.json b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/public/manifest.json new file mode 100644 index 0000000..be607e4 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "192x192", + "type": "image/png" + } + ], + "start_url": "./index.html", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.css b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.css new file mode 100644 index 0000000..15adfdc --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.css @@ -0,0 +1,24 @@ +.App { + text-align: center; +} + +.App-logo { + animation: App-logo-spin infinite 20s linear; + height: 80px; +} + +.App-header { + background-color: #222; + height: 150px; + padding: 20px; + color: white; +} + +.App-intro { + font-size: large; +} + +@keyframes App-logo-spin { + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.js new file mode 100644 index 0000000..95b21fb --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.js @@ -0,0 +1,48 @@ +import React, { Component } from 'react'; +import logo from './logo.svg'; +import './App.css'; +import E from 'wangeditor' + +class App extends Component { + constructor(props, context) { + super(props, context); + this.state = { + editorContent: '' + } + } + render() { + return ( +
                  +
                  + logo +

                  Welcome to React

                  +
                  +

                  + To get started, edit src/App.js and save to reload. +

                  + + {/* 将生成编辑器 */} +
                  +
                  + + +
                  + ); + } + componentDidMount() { + const elem = this.refs.editorElem + const editor = new E(elem) + // 使用 onchange 函数监听内容的变化,并实时更新到 state 中 + editor.customConfig.onchange = html => { + this.setState({ + editorContent: html + }) + } + editor.create() + } + clickHandle() { + alert(this.state.editorContent) + } +} + +export default App; diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.test.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.test.js new file mode 100644 index 0000000..b84af98 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/App.test.js @@ -0,0 +1,8 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; + +it('renders without crashing', () => { + const div = document.createElement('div'); + ReactDOM.render(, div); +}); diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/index.css b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/index.css new file mode 100644 index 0000000..b4cc725 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/index.css @@ -0,0 +1,5 @@ +body { + margin: 0; + padding: 0; + font-family: sans-serif; +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/index.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/index.js new file mode 100644 index 0000000..53c7688 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/index.js @@ -0,0 +1,8 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; +import registerServiceWorker from './registerServiceWorker'; +import './index.css'; + +ReactDOM.render(, document.getElementById('root')); +registerServiceWorker(); diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/logo.svg b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/logo.svg new file mode 100644 index 0000000..6b60c10 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/registerServiceWorker.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/registerServiceWorker.js new file mode 100644 index 0000000..9966897 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-react/src/registerServiceWorker.js @@ -0,0 +1,51 @@ +// In production, we register a service worker to serve assets from local cache. + +// This lets the app load faster on subsequent visits in production, and gives +// it offline capabilities. However, it also means that developers (and users) +// will only see deployed updates on the "N+1" visit to a page, since previously +// cached resources are updated in the background. + +// To learn more about the benefits of this model, read https://goo.gl/KwvDNy. +// This link also includes instructions on opting out of this behavior. + +export default function register() { + if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { + window.addEventListener('load', () => { + const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; + navigator.serviceWorker + .register(swUrl) + .then(registration => { + registration.onupdatefound = () => { + const installingWorker = registration.installing; + installingWorker.onstatechange = () => { + if (installingWorker.state === 'installed') { + if (navigator.serviceWorker.controller) { + // At this point, the old content will have been purged and + // the fresh content will have been added to the cache. + // It's the perfect time to display a "New content is + // available; please refresh." message in your web app. + console.log('New content is available; please refresh.'); + } else { + // At this point, everything has been precached. + // It's the perfect time to display a + // "Content is cached for offline use." message. + console.log('Content is cached for offline use.'); + } + } + }; + }; + }) + .catch(error => { + console.error('Error during service worker registration:', error); + }); + }); + } +} + +export function unregister() { + if ('serviceWorker' in navigator) { + navigator.serviceWorker.ready.then(registration => { + registration.unregister(); + }); + } +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.babelrc b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.babelrc new file mode 100644 index 0000000..13f0e47 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + ["env", { "modules": false }], + "stage-2" + ], + "plugins": ["transform-runtime"], + "comments": false, + "env": { + "test": { + "presets": ["env", "stage-2"], + "plugins": [ "istanbul" ] + } + } +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.editorconfig b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.editorconfig new file mode 100644 index 0000000..9d08a1a --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.postcssrc.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.postcssrc.js new file mode 100644 index 0000000..ea9a5ab --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/.postcssrc.js @@ -0,0 +1,8 @@ +// https://github.com/michael-ciniawsky/postcss-load-config + +module.exports = { + "plugins": { + // to edit target browsers: use "browserlist" field in package.json + "autoprefixer": {} + } +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/build.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/build.js new file mode 100644 index 0000000..6b8add1 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/build.js @@ -0,0 +1,35 @@ +require('./check-versions')() + +process.env.NODE_ENV = 'production' + +var ora = require('ora') +var rm = require('rimraf') +var path = require('path') +var chalk = require('chalk') +var webpack = require('webpack') +var config = require('../config') +var webpackConfig = require('./webpack.prod.conf') + +var spinner = ora('building for production...') +spinner.start() + +rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { + if (err) throw err + webpack(webpackConfig, function (err, stats) { + spinner.stop() + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, + chunks: false, + chunkModules: false + }) + '\n\n') + + console.log(chalk.cyan(' Build complete.\n')) + console.log(chalk.yellow( + ' Tip: built files are meant to be served over an HTTP server.\n' + + ' Opening index.html over file:// won\'t work.\n' + )) + }) +}) diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/check-versions.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/check-versions.js new file mode 100644 index 0000000..100f3a0 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/check-versions.js @@ -0,0 +1,48 @@ +var chalk = require('chalk') +var semver = require('semver') +var packageConfig = require('../package.json') +var shell = require('shelljs') +function exec (cmd) { + return require('child_process').execSync(cmd).toString().trim() +} + +var versionRequirements = [ + { + name: 'node', + currentVersion: semver.clean(process.version), + versionRequirement: packageConfig.engines.node + }, +] + +if (shell.which('npm')) { + versionRequirements.push({ + name: 'npm', + currentVersion: exec('npm --version'), + versionRequirement: packageConfig.engines.npm + }) +} + +module.exports = function () { + var warnings = [] + for (var i = 0; i < versionRequirements.length; i++) { + var mod = versionRequirements[i] + if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { + warnings.push(mod.name + ': ' + + chalk.red(mod.currentVersion) + ' should be ' + + chalk.green(mod.versionRequirement) + ) + } + } + + if (warnings.length) { + console.log('') + console.log(chalk.yellow('To use this template, you must update following to modules:')) + console.log() + for (var i = 0; i < warnings.length; i++) { + var warning = warnings[i] + console.log(' ' + warning) + } + console.log() + process.exit(1) + } +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/dev-client.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/dev-client.js new file mode 100644 index 0000000..18aa1e2 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/dev-client.js @@ -0,0 +1,9 @@ +/* eslint-disable */ +require('eventsource-polyfill') +var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') + +hotClient.subscribe(function (event) { + if (event.action === 'reload') { + window.location.reload() + } +}) diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/dev-server.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/dev-server.js new file mode 100644 index 0000000..782dc6f --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/dev-server.js @@ -0,0 +1,89 @@ +require('./check-versions')() + +var config = require('../config') +if (!process.env.NODE_ENV) { + process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) +} + +var opn = require('opn') +var path = require('path') +var express = require('express') +var webpack = require('webpack') +var proxyMiddleware = require('http-proxy-middleware') +var webpackConfig = require('./webpack.dev.conf') + +// default port where dev server listens for incoming traffic +var port = process.env.PORT || config.dev.port +// automatically open browser, if not set will be false +var autoOpenBrowser = !!config.dev.autoOpenBrowser +// Define HTTP proxies to your custom API backend +// https://github.com/chimurai/http-proxy-middleware +var proxyTable = config.dev.proxyTable + +var app = express() +var compiler = webpack(webpackConfig) + +var devMiddleware = require('webpack-dev-middleware')(compiler, { + publicPath: webpackConfig.output.publicPath, + quiet: true +}) + +var hotMiddleware = require('webpack-hot-middleware')(compiler, { + log: () => {} +}) +// force page reload when html-webpack-plugin template changes +compiler.plugin('compilation', function (compilation) { + compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { + hotMiddleware.publish({ action: 'reload' }) + cb() + }) +}) + +// proxy api requests +Object.keys(proxyTable).forEach(function (context) { + var options = proxyTable[context] + if (typeof options === 'string') { + options = { target: options } + } + app.use(proxyMiddleware(options.filter || context, options)) +}) + +// handle fallback for HTML5 history API +app.use(require('connect-history-api-fallback')()) + +// serve webpack bundle output +app.use(devMiddleware) + +// enable hot-reload and state-preserving +// compilation error display +app.use(hotMiddleware) + +// serve pure static assets +var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) +app.use(staticPath, express.static('./static')) + +var uri = 'http://localhost:' + port + +var _resolve +var readyPromise = new Promise(resolve => { + _resolve = resolve +}) + +console.log('> Starting dev server...') +devMiddleware.waitUntilValid(() => { + console.log('> Listening at ' + uri + '\n') + // when env is testing, don't need open it + if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { + opn(uri) + } + _resolve() +}) + +var server = app.listen(port) + +module.exports = { + ready: readyPromise, + close: () => { + server.close() + } +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/utils.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/utils.js new file mode 100644 index 0000000..b1d54b4 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/utils.js @@ -0,0 +1,71 @@ +var path = require('path') +var config = require('../config') +var ExtractTextPlugin = require('extract-text-webpack-plugin') + +exports.assetsPath = function (_path) { + var assetsSubDirectory = process.env.NODE_ENV === 'production' + ? config.build.assetsSubDirectory + : config.dev.assetsSubDirectory + return path.posix.join(assetsSubDirectory, _path) +} + +exports.cssLoaders = function (options) { + options = options || {} + + var cssLoader = { + loader: 'css-loader', + options: { + minimize: process.env.NODE_ENV === 'production', + sourceMap: options.sourceMap + } + } + + // generate loader string to be used with extract text plugin + function generateLoaders (loader, loaderOptions) { + var loaders = [cssLoader] + if (loader) { + loaders.push({ + loader: loader + '-loader', + options: Object.assign({}, loaderOptions, { + sourceMap: options.sourceMap + }) + }) + } + + // Extract CSS when that option is specified + // (which is the case during production build) + if (options.extract) { + return ExtractTextPlugin.extract({ + use: loaders, + fallback: 'vue-style-loader' + }) + } else { + return ['vue-style-loader'].concat(loaders) + } + } + + // https://vue-loader.vuejs.org/en/configurations/extract-css.html + return { + css: generateLoaders(), + postcss: generateLoaders(), + less: generateLoaders('less'), + sass: generateLoaders('sass', { indentedSyntax: true }), + scss: generateLoaders('sass'), + stylus: generateLoaders('stylus'), + styl: generateLoaders('stylus') + } +} + +// Generate loaders for standalone style files (outside of .vue) +exports.styleLoaders = function (options) { + var output = [] + var loaders = exports.cssLoaders(options) + for (var extension in loaders) { + var loader = loaders[extension] + output.push({ + test: new RegExp('\\.' + extension + '$'), + use: loader + }) + } + return output +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/vue-loader.conf.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/vue-loader.conf.js new file mode 100644 index 0000000..7aee79b --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/vue-loader.conf.js @@ -0,0 +1,12 @@ +var utils = require('./utils') +var config = require('../config') +var isProduction = process.env.NODE_ENV === 'production' + +module.exports = { + loaders: utils.cssLoaders({ + sourceMap: isProduction + ? config.build.productionSourceMap + : config.dev.cssSourceMap, + extract: isProduction + }) +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.base.conf.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.base.conf.js new file mode 100644 index 0000000..daa3589 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.base.conf.js @@ -0,0 +1,58 @@ +var path = require('path') +var utils = require('./utils') +var config = require('../config') +var vueLoaderConfig = require('./vue-loader.conf') + +function resolve (dir) { + return path.join(__dirname, '..', dir) +} + +module.exports = { + entry: { + app: './src/main.js' + }, + output: { + path: config.build.assetsRoot, + filename: '[name].js', + publicPath: process.env.NODE_ENV === 'production' + ? config.build.assetsPublicPath + : config.dev.assetsPublicPath + }, + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + 'vue$': 'vue/dist/vue.esm.js', + '@': resolve('src') + } + }, + module: { + rules: [ + { + test: /\.vue$/, + loader: 'vue-loader', + options: vueLoaderConfig + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [resolve('src'), resolve('test')] + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('img/[name].[hash:7].[ext]') + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('fonts/[name].[hash:7].[ext]') + } + } + ] + } +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.dev.conf.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.dev.conf.js new file mode 100644 index 0000000..5470402 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.dev.conf.js @@ -0,0 +1,35 @@ +var utils = require('./utils') +var webpack = require('webpack') +var config = require('../config') +var merge = require('webpack-merge') +var baseWebpackConfig = require('./webpack.base.conf') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') + +// add hot-reload related code to entry chunks +Object.keys(baseWebpackConfig.entry).forEach(function (name) { + baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) +}) + +module.exports = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) + }, + // cheap-module-eval-source-map is faster for development + devtool: '#cheap-module-eval-source-map', + plugins: [ + new webpack.DefinePlugin({ + 'process.env': config.dev.env + }), + // https://github.com/glenjamin/webpack-hot-middleware#installation--usage + new webpack.HotModuleReplacementPlugin(), + new webpack.NoEmitOnErrorsPlugin(), + // https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: 'index.html', + template: 'index.html', + inject: true + }), + new FriendlyErrorsPlugin() + ] +}) diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.prod.conf.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.prod.conf.js new file mode 100644 index 0000000..da44b65 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/build/webpack.prod.conf.js @@ -0,0 +1,120 @@ +var path = require('path') +var utils = require('./utils') +var webpack = require('webpack') +var config = require('../config') +var merge = require('webpack-merge') +var baseWebpackConfig = require('./webpack.base.conf') +var CopyWebpackPlugin = require('copy-webpack-plugin') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var ExtractTextPlugin = require('extract-text-webpack-plugin') +var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') + +var env = config.build.env + +var webpackConfig = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ + sourceMap: config.build.productionSourceMap, + extract: true + }) + }, + devtool: config.build.productionSourceMap ? '#source-map' : false, + output: { + path: config.build.assetsRoot, + filename: utils.assetsPath('js/[name].[chunkhash].js'), + chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') + }, + plugins: [ + // http://vuejs.github.io/vue-loader/en/workflow/production.html + new webpack.DefinePlugin({ + 'process.env': env + }), + new webpack.optimize.UglifyJsPlugin({ + compress: { + warnings: false + }, + sourceMap: true + }), + // extract css into its own file + new ExtractTextPlugin({ + filename: utils.assetsPath('css/[name].[contenthash].css') + }), + // Compress extracted CSS. We are using this plugin so that possible + // duplicated CSS from different components can be deduped. + new OptimizeCSSPlugin({ + cssProcessorOptions: { + safe: true + } + }), + // generate dist index.html with correct asset hash for caching. + // you can customize output by editing /index.html + // see https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: config.build.index, + template: 'index.html', + inject: true, + minify: { + removeComments: true, + collapseWhitespace: true, + removeAttributeQuotes: true + // more options: + // https://github.com/kangax/html-minifier#options-quick-reference + }, + // necessary to consistently work with multiple chunks via CommonsChunkPlugin + chunksSortMode: 'dependency' + }), + // split vendor js into its own file + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks: function (module, count) { + // any required modules inside node_modules are extracted to vendor + return ( + module.resource && + /\.js$/.test(module.resource) && + module.resource.indexOf( + path.join(__dirname, '../node_modules') + ) === 0 + ) + } + }), + // extract webpack runtime and module manifest to its own file in order to + // prevent vendor hash from being updated whenever app bundle is updated + new webpack.optimize.CommonsChunkPlugin({ + name: 'manifest', + chunks: ['vendor'] + }), + // copy custom static assets + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.build.assetsSubDirectory, + ignore: ['.*'] + } + ]) + ] +}) + +if (config.build.productionGzip) { + var CompressionWebpackPlugin = require('compression-webpack-plugin') + + webpackConfig.plugins.push( + new CompressionWebpackPlugin({ + asset: '[path].gz[query]', + algorithm: 'gzip', + test: new RegExp( + '\\.(' + + config.build.productionGzipExtensions.join('|') + + ')$' + ), + threshold: 10240, + minRatio: 0.8 + }) + ) +} + +if (config.build.bundleAnalyzerReport) { + var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin + webpackConfig.plugins.push(new BundleAnalyzerPlugin()) +} + +module.exports = webpackConfig diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/dev.env.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/dev.env.js new file mode 100644 index 0000000..efead7c --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/dev.env.js @@ -0,0 +1,6 @@ +var merge = require('webpack-merge') +var prodEnv = require('./prod.env') + +module.exports = merge(prodEnv, { + NODE_ENV: '"development"' +}) diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/index.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/index.js new file mode 100644 index 0000000..196da1f --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/index.js @@ -0,0 +1,38 @@ +// see http://vuejs-templates.github.io/webpack for documentation. +var path = require('path') + +module.exports = { + build: { + env: require('./prod.env'), + index: path.resolve(__dirname, '../dist/index.html'), + assetsRoot: path.resolve(__dirname, '../dist'), + assetsSubDirectory: 'static', + assetsPublicPath: '/', + productionSourceMap: true, + // Gzip off by default as many popular static hosts such as + // Surge or Netlify already gzip all static assets for you. + // Before setting to `true`, make sure to: + // npm install --save-dev compression-webpack-plugin + productionGzip: false, + productionGzipExtensions: ['js', 'css'], + // Run the build command with an extra argument to + // View the bundle analyzer report after build finishes: + // `npm run build --report` + // Set to `true` or `false` to always turn it on or off + bundleAnalyzerReport: process.env.npm_config_report + }, + dev: { + env: require('./dev.env'), + port: 8080, + autoOpenBrowser: true, + assetsSubDirectory: 'static', + assetsPublicPath: '/', + proxyTable: {}, + // CSS Sourcemaps off by default because relative paths are "buggy" + // with this option, according to the CSS-Loader README + // (https://github.com/webpack/css-loader#sourcemaps) + // In our experience, they generally work as expected, + // just be aware of this issue when enabling this option. + cssSourceMap: false + } +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/prod.env.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/prod.env.js new file mode 100644 index 0000000..773d263 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/config/prod.env.js @@ -0,0 +1,3 @@ +module.exports = { + NODE_ENV: '"production"' +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/index.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/index.html new file mode 100644 index 0000000..47ae14a --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/index.html @@ -0,0 +1,11 @@ + + + + + wangeditor-in-vue + + +
                  + + + diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/package.json b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/package.json new file mode 100644 index 0000000..80cf68f --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/package.json @@ -0,0 +1,60 @@ +{ + "name": "wangeditor-in-vue", + "version": "1.0.0", + "description": "A Vue.js project", + "author": "git ", + "private": true, + "scripts": { + "dev": "node build/dev-server.js", + "start": "node build/dev-server.js", + "build": "node build/build.js" + }, + "dependencies": { + "vue": "^2.3.3", + "wangeditor": ">=3.0.0" + }, + "devDependencies": { + "autoprefixer": "^6.7.2", + "babel-core": "^6.22.1", + "babel-loader": "^6.2.10", + "babel-plugin-transform-runtime": "^6.22.0", + "babel-preset-env": "^1.3.2", + "babel-preset-stage-2": "^6.22.0", + "babel-register": "^6.22.0", + "chalk": "^1.1.3", + "connect-history-api-fallback": "^1.3.0", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.28.0", + "eventsource-polyfill": "^0.9.6", + "express": "^4.14.1", + "extract-text-webpack-plugin": "^2.0.0", + "file-loader": "^0.11.1", + "friendly-errors-webpack-plugin": "^1.1.3", + "html-webpack-plugin": "^2.28.0", + "http-proxy-middleware": "^0.17.3", + "webpack-bundle-analyzer": "^2.2.1", + "semver": "^5.3.0", + "shelljs": "^0.7.6", + "opn": "^4.0.2", + "optimize-css-assets-webpack-plugin": "^1.3.0", + "ora": "^1.2.0", + "rimraf": "^2.6.0", + "url-loader": "^0.5.8", + "vue-loader": "^12.1.0", + "vue-style-loader": "^3.0.1", + "vue-template-compiler": "^2.3.3", + "webpack": "^2.6.1", + "webpack-dev-middleware": "^1.10.0", + "webpack-hot-middleware": "^2.18.0", + "webpack-merge": "^4.1.0" + }, + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ] +} diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/App.vue b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/App.vue new file mode 100644 index 0000000..27d15ff --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/App.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/assets/logo.png b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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 +
                  +
                  + +
                  + + + + + diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/components/Hello.vue b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/components/Hello.vue new file mode 100644 index 0000000..2d80539 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/components/Hello.vue @@ -0,0 +1,53 @@ + + + + + + diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/main.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/main.js new file mode 100644 index 0000000..7b7fec7 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/src/main.js @@ -0,0 +1,13 @@ +// The Vue build version to load with the `import` command +// (runtime-only or standalone) has been set in webpack.base.conf with an alias. +import Vue from 'vue' +import App from './App' + +Vue.config.productionTip = false + +/* eslint-disable no-new */ +new Vue({ + el: '#app', + template: '', + components: { App } +}) diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/static/.gitkeep b/novel-admin/src/main/resources/static/wangEditor/example/demo/in-vue/static/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-amd-main.js b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-amd-main.js new file mode 100644 index 0000000..444b2da --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-amd-main.js @@ -0,0 +1,4 @@ +require(['/wangEditor.min.js'], function (E) { + var editor2 = new E('#div3') + editor2.create() +}) \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-amd.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-amd.html new file mode 100644 index 0000000..6a3d666 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-amd.html @@ -0,0 +1,15 @@ + + + + + wangEditor 使用 AMD 加载 + + +

                  wangEditor 使用 AMD 加载

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-css-reset.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-css-reset.html new file mode 100644 index 0000000..c01a10d --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-css-reset.html @@ -0,0 +1,66 @@ + + + + + wangEditor css reset + + + +

                  wangEditor css reset

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-emot.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-emot.html new file mode 100644 index 0000000..02d8f7f --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-emot.html @@ -0,0 +1,84 @@ + + + + + wangEditor 配置表情 + + +

                  wangEditor 配置表情

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-fullscreen.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-fullscreen.html new file mode 100644 index 0000000..cbbaa01 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-fullscreen.html @@ -0,0 +1,114 @@ + + + + + wangEditor 全屏 + + + +

                  wangEditor 全屏

                  + + +
                  + +
                  +
                  +
                  + +
                  +
                  + +
                  +

                  wangEditor 本身不包含“全屏”功能,不过可以很简单的开发出来

                  +

                  注意,全屏模式与max-height有冲突,尽量避免一起使用

                  +
                  +
                  + + +
                  + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-get-content.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-get-content.html new file mode 100644 index 0000000..012c81c --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-get-content.html @@ -0,0 +1,34 @@ + + + + + wangEditor 获取内容 + + +

                  wangEditor 获取内容

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  +
                  + + +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-getJSON.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-getJSON.html new file mode 100644 index 0000000..68cd155 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-getJSON.html @@ -0,0 +1,30 @@ + + + + + wangEditor demo getJSON + + +

                  获取 JSON

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  + +
                  + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-lang.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-lang.html new file mode 100644 index 0000000..6c77826 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-lang.html @@ -0,0 +1,31 @@ + + + + + wangEditor lang test + + +

                  多语言测试

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-menus.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-menus.html new file mode 100644 index 0000000..4afd45f --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-menus.html @@ -0,0 +1,26 @@ + + + + + wangEditor 菜单配置 + + +

                  wangEditor 自定义菜单配置

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-mult.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-mult.html new file mode 100644 index 0000000..bd6f7e1 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-mult.html @@ -0,0 +1,44 @@ + + + + + wangEditor 一个页面多个编辑器 + + + + +

                  第一个 demo(菜单和编辑器区域分开)

                  +
                  +
                  +
                  中间隔离带
                  +
                  +

                  请输入内容

                  +
                  + +

                  第二个 demo(常规)

                  +
                  +

                  请输入内容

                  +
                  + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-onblur.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-onblur.html new file mode 100644 index 0000000..a6644bf --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-onblur.html @@ -0,0 +1,23 @@ + + + + + wangEditor test onblur + + +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-onchange.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-onchange.html new file mode 100644 index 0000000..231de10 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-onchange.html @@ -0,0 +1,24 @@ + + + + + wangEditor test onchange + + +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-onfocus.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-onfocus.html new file mode 100644 index 0000000..7d95de0 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-onfocus.html @@ -0,0 +1,22 @@ + + + + + wangEditor test onfocus + + +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-paste.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-paste.html new file mode 100644 index 0000000..a3a7477 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-paste.html @@ -0,0 +1,25 @@ + + + + + wangEditor paste test + + +

                  wangEditor paste test

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-set-content.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-set-content.html new file mode 100644 index 0000000..42eff3b --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-set-content.html @@ -0,0 +1,35 @@ + + + + + wangEditor 设置内容 + + +

                  wangEditor 设置内容

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  +
                  + + +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-sperate.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-sperate.html new file mode 100644 index 0000000..0d0b857 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-sperate.html @@ -0,0 +1,35 @@ + + + + + wangEditor 菜单和编辑器区域分离 + + + + +

                  wangEditor 菜单和编辑器区域分离

                  +
                  +
                  +
                  中间隔离带
                  +
                  +

                  请输入内容

                  +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-textarea.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-textarea.html new file mode 100644 index 0000000..8e41119 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-textarea.html @@ -0,0 +1,33 @@ + + + + + wangEditor demo textarea + + +

                  编辑器

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + +
                  + +

                  textarea

                  + + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/demo/test-uploadimg.html b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-uploadimg.html new file mode 100644 index 0000000..97246ca --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/demo/test-uploadimg.html @@ -0,0 +1,58 @@ + + + + + wangEditor 上传图片 + + +

                  wangEditor 上传图片到服务器

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + +

                  wangEditor 以base64保存图片文件

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + +

                  wangEditor 自定义上传图片

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/favicon.ico b/novel-admin/src/main/resources/static/wangEditor/example/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6075775de436a980a4302ef7aef74de01c41b0c0 GIT binary patch literal 4286 zcmc&&O>B%&6n$7UQqdt=@z*v&Q?bzKLSoUO#6~PE5H>bMLPQ%IVu3WFL~PjjU9e$c zfk;F|M@mb`Y=jVGM%$!C!VrRx);ZI6larS>W7DtNoZk2D-+AwS_uX%%&P~8?eZAvf zcO~UqjdQLMfXb}^s4xD&HobBbqYCHF@12$fJ_32*-8g|<_tqZ#>?|C^uxf~-xLn|oXB z`M3t|{{_H0cm>P`lHUI+aOnQ4F`p02^xQ3w4}p8YBj6%13HaB#=D_DJ&;u}*Ia+}* zF60mGR}o|DGr261Cyd(_iMteuE62~e{}Rb_B9bTM?~25|hmJL`zUBD0OAgk=4?ky} zOa?TMju*rB$NS!deCx+NzYT!;mgB$e<9GOG(=^ zZ@UoK_#XM}ZEqlLZ883R-j8Q^9Z(LAkBNPW*x9QXLu?hj#q%zhoqd=37(e@*`R(z3 zmV>fM?8n7^+Uwaf*gG_a`ESCwPUhS{KL?s!@2SPByd%CAlY@@;K>c*g-fX^4FkT7RKFCkd z{sG|mXlyuM3;P403*ft!bsMW!jpN$R0(`dTfc3yvfSk%dfO$2bu}O@1#&#acKLmZO zzmD}9T1)T`LLa-sW6dA-AAA1ewg0gH7=J(ZZ#{af_pJGvOPoLX8vwpH_#Bb|KZ}+6 z{=q)NXV3?*7Lq^?dBg8t{G4a^VZ0@|vjBTw9 + + + + IcoMoon Demo + + + + + +
                  +

                  Font Name: icomoon (Glyphs: 27)

                  +
                  +
                  +

                  Grid Size: 14

                  +
                  +
                  + + + + icon-close +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-remove +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-times +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-trash-o +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-terminal +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-header +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-paint-brush +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  +

                  Grid Size: 16

                  +
                  +
                  + + + + icon-pencil2 +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-image +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-play +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-location +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-undo +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-redo +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-quotes-left +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-list-numbered +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-list2 +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-upload2 +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-link +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-happy +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-cancel-circle +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-bold +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-underline +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-italic +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-strikethrough +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-page-break +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-table2 +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-paragraph-left +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-paragraph-center +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  +
                  + + + + icon-paragraph-right +
                  +
                  + + +
                  +
                  + liga: + +
                  +
                  +
                  + + +
                  +

                  Font Test Drive

                  + + +
                    +
                  +
                  + +
                  +

                  Generated by IcoMoon

                  +
                  + + + + diff --git a/novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.eot b/novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.eot new file mode 100644 index 0000000000000000000000000000000000000000..0d144fdfa4924f18e0bb237e911d7b4847e3f4fe GIT binary patch literal 5656 zcma)AeQX@X6`$F;+r2yA*WTUUIX-{f-THhsPW*K~UqT#vLxNKi$2d-62$0rJ;v`0i zoj498DQZ`!t*YjarW7GiRmBo5LTxEU1p=i)TNSlP%^&@vNEJ}wfEv|7LP-P#fp6X4 z?A|43Ck~yxnR)Z(&6_uG-n=(Al~F=w6hbHw$kIf~S;{d3Lrd|T)=utg?e8w{Bg9W8 z$UZVfjv!BwNf7wSFc~KY$q90pjFD+zqGSY^X>uI2oF+lqNegMSXqS%$l22Gcbizp6 zy*pYv0-*pG_K(P;`;Lqq)&3ej4WeqaKRq~h{3z-mAp$aS9Xx#Mz)$2C{*87e(2pG& zAKUNy@O20gdJ_Fzhk%gYVjrM=0qy!jM`lhQl^A%3uAu$c;i-LN?bo^-goF>HtsNOV zd6e8iUPb#iXeTDej*LHZkNYdMF`oY5=+yBU$cd!v^ex1eY2EW_m(7R|j2(;=TVW>4vGnBQ^OgK+f%F;APC93Px z&`j-IY<i0iO#N(UclX4Zq2}%V8>>duk-dl4 zJ^aR*p|W`rIQv|W`4(ufN5J;Qq@*m_N+y+Sw8mYvZK)7vGIS<)mg-Nb!w>DxaV}I} zcX;oJI$E`{e|s|*p}W)S&u0|KP~10)LtRTYV3y(%)KrU*%kZg`lqmVB)I*aicU^25 z-k_=*hFf?|`%XW*M?0~`9h6)lp?~ErQX0YQ#GYqQ_vvjduCPa-D|Qef60LZq7?I$y zWl}?$2uUZEq+HAySctSY6T9zrZhjbY%5PnX% zLnzfFPaoU3@z~QNrMh|7_5szIADQayof^qI)q(B1-bu&fX`ZQGg0ylLoE4ibXTq78 zZm*JvY?>KqZy%Z26iF!F&x@YC==0a|wZa*ctu@Onz+NAB;LFVXwYC7q-;%C@+b9lT zGYzY<4GM2nCmQ?q`>+Q*Nh zsZ+vhejZA5#;tggmEq(q4=DrW2Li^OhaB7!2!_sM2ag$gyt2B#v9Z6pGHw#?ahPt7 zc25khSu;4%O=r!~+O@IDc)T*Uw$_~0u@r)WfeL<&P(`I#9N{cgbMOSFp_`gcHS{7J zYZ?NweOj$J1kVlnT8ee^6KEa4To#cZfgf=njsVw=7AT5~X`f+5MF;K&oG2P|kdKvU zu5IvpBI83DLc4hnS0OE5TK9q#vs`JR{vYLgH;Vd#`Nv0xmCuJCxud=IPut0)|pr8i} zT99$Dpa&sTDG9h%QQW7fzCifhiQgm$@jwnccHfX81}W+wM+TC}Ntx!7N)1isD73F4 z^SENg7vT90Lz@a%6ks3RV=f{hS(Q*kELb&f@rxDH3y@ng3|J8oA`2JaFmP)!AP@Y? zP4W=#yZKj&XuP)EcPVU@+&K(G(-9$H7brQa75T-A{8+KJ_!%XJ#!4JlML>NcHT>Rg-gOEep5{I0HLN@sbrP7o%YgTdiUrVv8rdAo=9+cSPm+k8-{DSYIs@NjuN6+Yp>CZ`}cch$Q@XW^r^ z6qeU2B%C5&fOAwqC=V#3kQ{zgBK_>V@FJ8H>_E z^S`3xa@L6A#fzd?<8(?H_XOZ5Ao6stuL%v}^E3A9f0Gfr=QRi;HJ zw{6P(5BnEv;P~^Yq2uNi<7UD+us^NJc2uqE$gc9aB)7-sm4luT zl@#+kQK-=!3j6)u3Q6+EbGfR@_V!AjB)Q!c-eABTq5>5dEXNg+eLfE-s^Ua#?UjBI zdAz=0&=sLlfS&bBG~$WH0>Jw*-KtgX?W+KLJU(Agc10p?S@zo;h=Am+2*_?XrHnbf zo9DbvUjJjePsD^SS1921SwvpH>~cc_=Jeg2q<lh#3t?M8ASz~Q&)tdwPyT8%dnWIONO@%LF4VhLd3=DjGOIKGi z8I&F2NH7?Z-7!}n6jqd)n%deXc0OL!Sf4eY>4RPL_qWllb%mFj>*{=sr?(AM#amkM zymK=P_$w+ro@hE=CCi=)heLpETIt>PYwm9ax<4Zo4y*mn*dM;j0lQv2@1V>;lb*e`%_-IoU`)jJM0OQ3i9oR@UB826H-|^)ehOhgq8RA`|u|k$_j3 z{o=#pa0LH22gsA;UFyLd?kIg*5QQP(G;^@i>}`kO=yD7?o^$-i+2*|8sXKq={6u_C zydr(*>akW+M_#sL`Sn$ouh36^TU;}R&*7(>C+>eni!hJ=T}9Xd_(TzQ;_jssVG;PP zMc4zM^&^6}B!?RqKYDCf0DQ0rGr${)umkX8Mc9eQ$V3qqfgdiy9=zK8Vq)Lak*TT4 zr7xNz63`ZYw^?!oOpcw@v>8N>Z literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.svg b/novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.svg new file mode 100644 index 0000000..21be016 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.svg @@ -0,0 +1,37 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.ttf b/novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..80be9ad27182d62f562b8181714691ace353524a GIT binary patch literal 5492 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.woff b/novel-admin/src/main/resources/static/wangEditor/example/icomoon/fonts/icomoon.woff new file mode 100644 index 0000000000000000000000000000000000000000..fa64c4d86cef0bd3aadc1906f25b2c0ce6bf96da GIT binary patch literal 5568 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 QY+$Fm0gCU~ + + + + wangEditor demo list + + + +
                  +

                  可访问 wangEditor 官网 了解更多内容

                  +
                  +

                  欢迎使用 wangEditor 富文本编辑器

                  +
                  + +

                  wangEditor demo list(demo页面直接查看网页源代码即可)

                  + + +

                  其他链接

                  +
                  + +
                  + +

                  向我捐赠

                  + +
                  + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/pay.png b/novel-admin/src/main/resources/static/wangEditor/example/pay.png new file mode 100644 index 0000000000000000000000000000000000000000..98efb8d042abe0e0dc1e3db9581ce383304f572f GIT binary patch literal 95517 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/wangEditor/example/server/index.js b/novel-admin/src/main/resources/static/wangEditor/example/server/index.js new file mode 100644 index 0000000..28d8a60 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/server/index.js @@ -0,0 +1,88 @@ +const fs = require('fs') +const path = require('path') +const formidable = require('formidable') +const util = require('./util.js') + +const koa = require('koa') +const app = koa() + +// 捕获错误 +const onerror = require('koa-onerror') +onerror(app) + +// post body 解析 +const bodyParser = require('koa-bodyparser') +app.use(bodyParser()) + +// 静态文件服务,针对 html js css fonts 文件 +const staticCache = require('koa-static-cache') +function setStaticCache() { + const exampleDir = path.join(__dirname, '..', '..', 'example') + const releaseDir = path.join(__dirname, '..', '..', 'release') + app.use(staticCache(exampleDir)) + app.use(staticCache(releaseDir)) +} +setStaticCache() + +// 配置路由 +const router = require('koa-router')() + +// 保存上传的文件 +function saveFiles(req) { + return new Promise((resolve, reject) => { + const imgLinks = [] + const form = new formidable.IncomingForm() + form.parse(req, function (err, fields, files) { + if (err) { + reject('formidable, form.parse err', err.stack) + } + // 存储图片的文件夹 + const storePath = path.resolve(__dirname, '..', 'upload-files') + if (!fs.existsSync(storePath)) { + fs.mkdirSync(storePath) + } + + // 遍历所有上传来的图片 + util.objForEach(files, (name, file) => { + // 图片临时位置 + const tempFilePath = file.path + // 图片名称和路径 + const fileName = file.name + const fullFileName = path.join(storePath, fileName) + // 将临时文件保存为正式文件 + fs.renameSync(tempFilePath, fullFileName) + // 存储链接 + imgLinks.push('/upload-files/' + fileName) + }) + + // 重新设置静态文件缓存 + setStaticCache() + + // 返回结果 + resolve({ + errno: 0, + data: imgLinks + }) + }) + }) +} + +// 上传图片 +router.post('/upload-img', function* () { + const ctx = this + const req = ctx.req + const res = ctx.res + + // 获取数据 + const data = yield saveFiles(req) + + // 返回结果 + this.body = JSON.stringify(data) +}) +app.use(router.routes()).use(router.allowedMethods()); + +// 启动服务 +app.listen(3000) +console.log('listening on port %s', 3000) + +module.exports = app \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/example/server/util.js b/novel-admin/src/main/resources/static/wangEditor/example/server/util.js new file mode 100644 index 0000000..62477f2 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/example/server/util.js @@ -0,0 +1,14 @@ +module.exports = { + // 遍历对象 + objForEach: function (obj, fn) { + let key, result + for (key in obj) { + if (obj.hasOwnProperty(key)) { + result = fn.call(obj, key, obj[key]) + if (result === false) { + break + } + } + } + } +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/wangEditor/gulpfile.js b/novel-admin/src/main/resources/static/wangEditor/gulpfile.js new file mode 100644 index 0000000..171e7e5 --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/gulpfile.js @@ -0,0 +1,122 @@ +const path = require('path') +const fs = require('fs') +const gulp = require('gulp') +const rollup = require('rollup') +const uglify = require('gulp-uglify') +const sourcemaps = require('gulp-sourcemaps') +const rename = require('gulp-rename') +const less = require('gulp-less') +const concat = require('gulp-concat') +const cssmin = require('gulp-cssmin') +const eslint = require('rollup-plugin-eslint') +const postcss = require('gulp-postcss') +const autoprefixer = require('autoprefixer') +const cssgrace = require('cssgrace') +const resolve = require('rollup-plugin-node-resolve') +const babel = require('rollup-plugin-babel') +const gulpReplace = require('gulp-replace') + +// 拷贝 fonts 文件 +gulp.task('copy-fonts', () => { + gulp.src('./src/fonts/*') + .pipe(gulp.dest('./release/fonts')) +}) + +// 处理 css +gulp.task('css', () => { + gulp.src('./src/less/**/*.less') + .pipe(less()) + // 产出的未压缩的文件名 + .pipe(concat('wangEditor.css')) + // 配置 postcss + .pipe(postcss([ + autoprefixer, + cssgrace + ])) + // 将 css 引用的字体文件转换为 base64 格式 + .pipe(gulpReplace( /'fonts\/w-e-icon\..+?'/gm, function (fontFile) { + // fontFile 例如 'fonts/w-e-icon.eot?paxlku' + fontFile = fontFile.slice(0, -1).slice(1) + fontFile = fontFile.split('?')[0] + var ext = fontFile.split('.')[1] + // 读取文件内容,转换为 base64 格式 + var filePath = path.resolve(__dirname, 'release', fontFile) + var content = fs.readFileSync(filePath) + var base64 = content.toString('base64') + // 返回 + return 'data:application/x-font-' + ext + ';charset=utf-8;base64,' + base64 + })) + // 产出文件的位置 + .pipe(gulp.dest('./release')) + // 产出的压缩后的文件名 + .pipe(rename('wangEditor.min.css')) + .pipe(cssmin()) + .pipe(gulp.dest('./release')) +}) + +// 处理 JS +gulp.task('script', () => { + // rollup 打包 js 模块 + return rollup.rollup({ + // 入口文件 + entry: './src/js/index.js', + plugins: [ + // 对原始文件启动 eslint 检查,配置参见 ./.eslintrc.json + eslint(), + resolve(), + babel({ + exclude: 'node_modules/**' // only transpile our source code + }) + ] + }).then(bundle => { + bundle.write({ + // 产出文件使用 umd 规范(即兼容 amd cjs 和 iife) + format: 'umd', + // iife 规范下的全局变量名称 + moduleName: 'wangEditor', + // 产出的未压缩的文件名 + dest: './release/wangEditor.js' + }).then(() => { + // 待 rollup 打包 js 完毕之后,再进行如下的处理: + gulp.src('./release/wangEditor.js') + // inline css + .pipe(gulpReplace(/__INLINE_CSS__/gm, function () { + // 读取 css 文件内容 + var filePath = path.resolve(__dirname, 'release', 'wangEditor.css') + var content = fs.readFileSync(filePath).toString('utf-8') + // 替换 \n \ ' 三个字符 + content = content.replace(/\n/g, '').replace(/\\/g, '\\\\').replace(/'/g, '\\\'') + return content + })) + .pipe(gulp.dest('./release')) + .pipe(sourcemaps.init()) + // 压缩 + .pipe(uglify()) + // 产出的压缩的文件名 + .pipe(rename('wangEditor.min.js')) + // 生成 sourcemap + .pipe(sourcemaps.write('')) + .pipe(gulp.dest('./release')) + }) + }) +}) + + +// 默认任务配置 +gulp.task('default', () => { + gulp.run('copy-fonts', 'css', 'script') + + // 监听 js 原始文件的变化 + gulp.watch('./src/js/**/*.js', () => { + gulp.run('script') + }) + // 监听 css 原始文件的变化 + gulp.watch('./src/less/**/*.less', () => { + gulp.run('css', 'script') + }) + // 监听 icon.less 的变化,变化时重新拷贝 fonts 文件 + gulp.watch('./src/less/icon.less', () => { + gulp.run('copy-fonts') + }) +}) + diff --git a/novel-admin/src/main/resources/static/wangEditor/package.json b/novel-admin/src/main/resources/static/wangEditor/package.json new file mode 100644 index 0000000..b42d94d --- /dev/null +++ b/novel-admin/src/main/resources/static/wangEditor/package.json @@ -0,0 +1,60 @@ +{ + "name": "wangeditor", + "title": "wangEditor", + "version": "3.0.17", + "description": "wangEditor - 基于javascript和css开发的 web 富文本编辑器, 轻量、简洁、易用、开源免费", + "homepage": "http://wangeditor.github.io/", + "author": { + "name": "wangfupeng1988", + "url": "https://github.com/wangfupeng1988" + }, + "keywords": [ + "wangEditor", + "web 富文本编辑器" + ], + "main": "release/wangEditor.js", + "maintainers": [ + { + "name": "wangfupeng1988", + "web": "http://www.cnblogs.com/wangfupeng1988/default.html?OnlyTitle=1", + "mail": "wangfupeng1988@163.com" + } + ], + "repositories": [ + { + "type": "git", + "url": "https://github.com/wangfupeng1988/wangEditor" + } + ], + "scripts": { + "release": "gulp", + "win-example": "node ./example/server/index.js", + "example": "/bin/rm -rf ./example/upload-files && mkdir ./example/upload-files && npm run win-example" + }, + "devDependencies": { + "autoprefixer": "^6.7.7", + "babel-plugin-external-helpers": "^6.22.0", + "babel-preset-latest": "^6.24.0", + "cssgrace": "^3.0.0", + "formidable": "^1.1.1", + "gulp": "^3.9.1", + "gulp-concat": "^2.6.1", + "gulp-cssmin": "^0.1.7", + "gulp-less": "^3.3.0", + "gulp-postcss": "^6.4.0", + "gulp-rename": "^1.2.2", + "gulp-replace": "^0.5.4", + "gulp-sourcemaps": "^2.5.0", + "gulp-uglify": "^2.1.2", + "koa": "^1.2.4", + "koa-bodyparser": "^2.3.0", + "koa-onerror": "^3.1.0", + "koa-router": "^5.4.0", + "koa-static-cache": "^4.0.0", + "rollup": "^0.41.6", + "rollup-plugin-babel": "^2.7.1", + "rollup-plugin-eslint": "^3.0.0", + "rollup-plugin-node-resolve": "^3.0.0" + }, + "dependencies": {} +} diff --git a/novel-admin/src/main/resources/static/wangEditor/release/fonts/w-e-icon.woff b/novel-admin/src/main/resources/static/wangEditor/release/fonts/w-e-icon.woff new file mode 100644 index 0000000000000000000000000000000000000000..fa64c4d86cef0bd3aadc1906f25b2c0ce6bf96da GIT binary patch literal 5568 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 QY+$Fm0gCU~= 0 && matches.item(i) !== this) {} + return i > -1; + }; + } +}; + +/* + DOM 操作 API +*/ + +// 根据 html 代码片段创建 dom 对象 +function createElemByHTML(html) { + var div = void 0; + div = document.createElement('div'); + div.innerHTML = html; + return div.children; +} + +// 是否是 DOM List +function isDOMList(selector) { + if (!selector) { + return false; + } + if (selector instanceof HTMLCollection || selector instanceof NodeList) { + return true; + } + return false; +} + +// 封装 document.querySelectorAll +function querySelectorAll(selector) { + var result = document.querySelectorAll(selector); + if (isDOMList(result)) { + return result; + } else { + return [result]; + } +} + +// 记录所有的事件绑定 +var eventList = []; + +// 创建构造函数 +function DomElement(selector) { + if (!selector) { + return; + } + + // selector 本来就是 DomElement 对象,直接返回 + if (selector instanceof DomElement) { + return selector; + } + + this.selector = selector; + var nodeType = selector.nodeType; + + // 根据 selector 得出的结果(如 DOM,DOM List) + var selectorResult = []; + if (nodeType === 9) { + // document 节点 + selectorResult = [selector]; + } else if (nodeType === 1) { + // 单个 DOM 节点 + selectorResult = [selector]; + } else if (isDOMList(selector) || selector instanceof Array) { + // DOM List 或者数组 + selectorResult = selector; + } else if (typeof selector === 'string') { + // 字符串 + selector = selector.replace('/\n/mg', '').trim(); + if (selector.indexOf('<') === 0) { + // 如
                  + selectorResult = createElemByHTML(selector); + } else { + // 如 #id .class + selectorResult = querySelectorAll(selector); + } + } + + var length = selectorResult.length; + if (!length) { + // 空数组 + return this; + } + + // 加入 DOM 节点 + var i = void 0; + for (i = 0; i < length; i++) { + this[i] = selectorResult[i]; + } + this.length = length; +} + +// 修改原型 +DomElement.prototype = { + constructor: DomElement, + + // 类数组,forEach + forEach: function forEach(fn) { + var i = void 0; + for (i = 0; i < this.length; i++) { + var elem = this[i]; + var result = fn.call(elem, elem, i); + if (result === false) { + break; + } + } + return this; + }, + + // clone + clone: function clone(deep) { + var cloneList = []; + this.forEach(function (elem) { + cloneList.push(elem.cloneNode(!!deep)); + }); + return $(cloneList); + }, + + // 获取第几个元素 + get: function get(index) { + var length = this.length; + if (index >= length) { + index = index % length; + } + return $(this[index]); + }, + + // 第一个 + first: function first() { + return this.get(0); + }, + + // 最后一个 + last: function last() { + var length = this.length; + return this.get(length - 1); + }, + + // 绑定事件 + on: function on(type, selector, fn) { + // selector 不为空,证明绑定事件要加代理 + if (!fn) { + fn = selector; + selector = null; + } + + // type 是否有多个 + var types = []; + types = type.split(/\s+/); + + return this.forEach(function (elem) { + types.forEach(function (type) { + if (!type) { + return; + } + + // 记录下,方便后面解绑 + eventList.push({ + elem: elem, + type: type, + fn: fn + }); + + if (!selector) { + // 无代理 + elem.addEventListener(type, fn); + return; + } + + // 有代理 + elem.addEventListener(type, function (e) { + var target = e.target; + if (target.matches(selector)) { + fn.call(target, e); + } + }); + }); + }); + }, + + // 取消事件绑定 + off: function off(type, fn) { + return this.forEach(function (elem) { + elem.removeEventListener(type, fn); + }); + }, + + // 获取/设置 属性 + attr: function attr(key, val) { + if (val == null) { + // 获取值 + return this[0].getAttribute(key); + } else { + // 设置值 + return this.forEach(function (elem) { + elem.setAttribute(key, val); + }); + } + }, + + // 添加 class + addClass: function addClass(className) { + if (!className) { + return this; + } + return this.forEach(function (elem) { + var arr = void 0; + if (elem.className) { + // 解析当前 className 转换为数组 + arr = elem.className.split(/\s/); + arr = arr.filter(function (item) { + return !!item.trim(); + }); + // 添加 class + if (arr.indexOf(className) < 0) { + arr.push(className); + } + // 修改 elem.class + elem.className = arr.join(' '); + } else { + elem.className = className; + } + }); + }, + + // 删除 class + removeClass: function removeClass(className) { + if (!className) { + return this; + } + return this.forEach(function (elem) { + var arr = void 0; + if (elem.className) { + // 解析当前 className 转换为数组 + arr = elem.className.split(/\s/); + arr = arr.filter(function (item) { + item = item.trim(); + // 删除 class + if (!item || item === className) { + return false; + } + return true; + }); + // 修改 elem.class + elem.className = arr.join(' '); + } + }); + }, + + // 修改 css + css: function css(key, val) { + var currentStyle = key + ':' + val + ';'; + return this.forEach(function (elem) { + var style = (elem.getAttribute('style') || '').trim(); + var styleArr = void 0, + resultArr = []; + if (style) { + // 将 style 按照 ; 拆分为数组 + styleArr = style.split(';'); + styleArr.forEach(function (item) { + // 对每项样式,按照 : 拆分为 key 和 value + var arr = item.split(':').map(function (i) { + return i.trim(); + }); + if (arr.length === 2) { + resultArr.push(arr[0] + ':' + arr[1]); + } + }); + // 替换或者新增 + resultArr = resultArr.map(function (item) { + if (item.indexOf(key) === 0) { + return currentStyle; + } else { + return item; + } + }); + if (resultArr.indexOf(currentStyle) < 0) { + resultArr.push(currentStyle); + } + // 结果 + elem.setAttribute('style', resultArr.join('; ')); + } else { + // style 无值 + elem.setAttribute('style', currentStyle); + } + }); + }, + + // 显示 + show: function show() { + return this.css('display', 'block'); + }, + + // 隐藏 + hide: function hide() { + return this.css('display', 'none'); + }, + + // 获取子节点 + children: function children() { + var elem = this[0]; + if (!elem) { + return null; + } + + return $(elem.children); + }, + + // 获取子节点(包括文本节点) + childNodes: function childNodes() { + var elem = this[0]; + if (!elem) { + return null; + } + + return $(elem.childNodes); + }, + + // 增加子节点 + append: function append($children) { + return this.forEach(function (elem) { + $children.forEach(function (child) { + elem.appendChild(child); + }); + }); + }, + + // 移除当前节点 + remove: function remove() { + return this.forEach(function (elem) { + if (elem.remove) { + elem.remove(); + } else { + var parent = elem.parentElement; + parent && parent.removeChild(elem); + } + }); + }, + + // 是否包含某个子节点 + isContain: function isContain($child) { + var elem = this[0]; + var child = $child[0]; + return elem.contains(child); + }, + + // 尺寸数据 + getSizeData: function getSizeData() { + var elem = this[0]; + return elem.getBoundingClientRect(); // 可得到 bottom height left right top width 的数据 + }, + + // 封装 nodeName + getNodeName: function getNodeName() { + var elem = this[0]; + return elem.nodeName; + }, + + // 从当前元素查找 + find: function find(selector) { + var elem = this[0]; + return $(elem.querySelectorAll(selector)); + }, + + // 获取当前元素的 text + text: function text(val) { + if (!val) { + // 获取 text + var elem = this[0]; + return elem.innerHTML.replace(/<.*?>/g, function () { + return ''; + }); + } else { + // 设置 text + return this.forEach(function (elem) { + elem.innerHTML = val; + }); + } + }, + + // 获取 html + html: function html(value) { + var elem = this[0]; + if (value == null) { + return elem.innerHTML; + } else { + elem.innerHTML = value; + return this; + } + }, + + // 获取 value + val: function val() { + var elem = this[0]; + return elem.value.trim(); + }, + + // focus + focus: function focus() { + return this.forEach(function (elem) { + elem.focus(); + }); + }, + + // parent + parent: function parent() { + var elem = this[0]; + return $(elem.parentElement); + }, + + // parentUntil 找到符合 selector 的父节点 + parentUntil: function parentUntil(selector, _currentElem) { + var results = document.querySelectorAll(selector); + var length = results.length; + if (!length) { + // 传入的 selector 无效 + return null; + } + + var elem = _currentElem || this[0]; + if (elem.nodeName === 'BODY') { + return null; + } + + var parent = elem.parentElement; + var i = void 0; + for (i = 0; i < length; i++) { + if (parent === results[i]) { + // 找到,并返回 + return $(parent); + } + } + + // 继续查找 + return this.parentUntil(selector, parent); + }, + + // 判断两个 elem 是否相等 + equal: function equal($elem) { + if ($elem.nodeType === 1) { + return this[0] === $elem; + } else { + return this[0] === $elem[0]; + } + }, + + // 将该元素插入到某个元素前面 + insertBefore: function insertBefore(selector) { + var $referenceNode = $(selector); + var referenceNode = $referenceNode[0]; + if (!referenceNode) { + return this; + } + return this.forEach(function (elem) { + var parent = referenceNode.parentNode; + parent.insertBefore(elem, referenceNode); + }); + }, + + // 将该元素插入到某个元素后面 + insertAfter: function insertAfter(selector) { + var $referenceNode = $(selector); + var referenceNode = $referenceNode[0]; + if (!referenceNode) { + return this; + } + return this.forEach(function (elem) { + var parent = referenceNode.parentNode; + if (parent.lastChild === referenceNode) { + // 最后一个元素 + parent.appendChild(elem); + } else { + // 不是最后一个元素 + parent.insertBefore(elem, referenceNode.nextSibling); + } + }); + } +}; + +// new 一个对象 +function $(selector) { + return new DomElement(selector); +} + +// 解绑所有事件,用于销毁编辑器 +$.offAll = function () { + eventList.forEach(function (item) { + var elem = item.elem; + var type = item.type; + var fn = item.fn; + // 解绑 + elem.removeEventListener(type, fn); + }); +}; + +/* + 配置信息 +*/ + +var config = { + + // 默认菜单配置 + menus: ['head', 'bold', 'italic', 'underline', 'strikeThrough', 'foreColor', 'backColor', 'link', 'list', 'justify', 'quote', 'emoticon', 'image', 'table', 'video', 'code', 'undo', 'redo'], + + colors: ['#000000', '#eeece0', '#1c487f', '#4d80bf', '#c24f4a', '#8baa4a', '#7b5ba1', '#46acc8', '#f9963b', '#ffffff'], + + // // 语言配置 + // lang: { + // '设置标题': 'title', + // '正文': 'p', + // '链接文字': 'link text', + // '链接': 'link', + // '插入': 'insert', + // '创建': 'init' + // }, + + // 表情 + emotions: [{ + // tab 的标题 + title: '默认', + // type -> 'emoji' / 'image' + type: 'image', + // content -> 数组 + content: [{ + alt: '[坏笑]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/50/pcmoren_huaixiao_org.png' + }, { + alt: '[舔屏]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/pcmoren_tian_org.png' + }, { + alt: '[污]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/3c/pcmoren_wu_org.png' + }, { + alt: '[允悲]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/2c/moren_yunbei_org.png' + }, { + alt: '[笑而不语]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/3a/moren_xiaoerbuyu_org.png' + }, { + alt: '[费解]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/3c/moren_feijie_org.png' + }, { + alt: '[憧憬]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/37/moren_chongjing_org.png' + }, { + alt: '[并不简单]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/fc/moren_bbjdnew_org.png' + }, { + alt: '[微笑]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/5c/huanglianwx_org.gif' + }, { + alt: '[酷]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/8a/pcmoren_cool2017_org.png' + }, { + alt: '[嘻嘻]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/0b/tootha_org.gif' + }, { + alt: '[哈哈]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6a/laugh.gif' + }, { + alt: '[可爱]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/14/tza_org.gif' + }, { + alt: '[可怜]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/af/kl_org.gif' + }, { + alt: '[挖鼻]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/0b/wabi_org.gif' + }, { + alt: '[吃惊]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/f4/cj_org.gif' + }, { + alt: '[害羞]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6e/shamea_org.gif' + }, { + alt: '[挤眼]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/c3/zy_org.gif' + }, { + alt: '[闭嘴]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/29/bz_org.gif' + }, { + alt: '[鄙视]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/71/bs2_org.gif' + }, { + alt: '[爱你]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6d/lovea_org.gif' + }, { + alt: '[泪]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/9d/sada_org.gif' + }, { + alt: '[偷笑]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/19/heia_org.gif' + }, { + alt: '[亲亲]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/8f/qq_org.gif' + }, { + alt: '[生病]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/b6/sb_org.gif' + }, { + alt: '[太开心]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/58/mb_org.gif' + }, { + alt: '[白眼]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/d9/landeln_org.gif' + }, { + alt: '[右哼哼]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/98/yhh_org.gif' + }, { + alt: '[左哼哼]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6d/zhh_org.gif' + }, { + alt: '[嘘]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/a6/x_org.gif' + }, { + alt: '[衰]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/af/cry.gif' + }] + }, { + // tab 的标题 + title: '新浪', + // type -> 'emoji' / 'image' + type: 'image', + // content -> 数组 + content: [{ + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/7a/shenshou_thumb.gif', + alt: '[草泥马]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/60/horse2_thumb.gif', + alt: '[神马]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/bc/fuyun_thumb.gif', + alt: '[浮云]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/c9/geili_thumb.gif', + alt: '[给力]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/f2/wg_thumb.gif', + alt: '[围观]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/70/vw_thumb.gif', + alt: '[威武]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/6e/panda_thumb.gif', + alt: '[熊猫]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/81/rabbit_thumb.gif', + alt: '[兔子]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/bc/otm_thumb.gif', + alt: '[奥特曼]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/15/j_thumb.gif', + alt: '[囧]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/89/hufen_thumb.gif', + alt: '[互粉]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/c4/liwu_thumb.gif', + alt: '[礼物]' + }] + }, { + // tab 的标题 + title: 'emoji', + // type -> 'emoji' / 'image' + type: 'emoji', + // content -> 数组 + content: '😀 😃 😄 😁 😆 😅 😂 😊 😇 🙂 🙃 😉 😌 😍 😘 😗 😙 😚 😋 😜 😝 😛 🤑 🤗 🤓 😎 😏 😒 😞 😔 😟 😕 🙁 😣 😖 😫 😩 😤 😠 😡 😶 😐 😑 😯 😦 😧 😮 😲 😵 😳 😱 😨 😰 😢 😥 😭 😓 😪 😴 🙄 🤔 😬 🤐'.split(/\s/) + }], + + // 编辑区域的 z-index + zIndex: 10000, + + // 是否开启 debug 模式(debug 模式下错误会 throw error 形式抛出) + debug: false, + + // 插入链接时候的格式校验 + linkCheck: function linkCheck(text, link) { + // text 是插入的文字 + // link 是插入的链接 + return true; // 返回 true 即表示成功 + // return '校验失败' // 返回字符串即表示失败的提示信息 + }, + + // 插入网络图片的校验 + linkImgCheck: function linkImgCheck(src) { + // src 即图片的地址 + return true; // 返回 true 即表示成功 + // return '校验失败' // 返回字符串即表示失败的提示信息 + }, + + // 粘贴过滤样式,默认开启 + pasteFilterStyle: true, + + // 对粘贴的文字进行自定义处理,返回处理后的结果。编辑器会将处理后的结果粘贴到编辑区域中。 + // IE 暂时不支持 + pasteTextHandle: function pasteTextHandle(content) { + // content 即粘贴过来的内容(html 或 纯文本),可进行自定义处理然后返回 + return content; + }, + + // onchange 事件 + // onchange: function (html) { + // // html 即变化之后的内容 + // console.log(html) + // }, + + // 是否显示添加网络图片的 tab + showLinkImg: true, + + // 插入网络图片的回调 + linkImgCallback: function linkImgCallback(url) { + // console.log(url) // url 即插入图片的地址 + }, + + // 默认上传图片 max size: 5M + uploadImgMaxSize: 5 * 1024 * 1024, + + // 配置一次最多上传几个图片 + // uploadImgMaxLength: 5, + + // 上传图片,是否显示 base64 格式 + uploadImgShowBase64: false, + + // 上传图片,server 地址(如果有值,则 base64 格式的配置则失效) + // uploadImgServer: '/upload', + + // 自定义配置 filename + uploadFileName: '', + + // 上传图片的自定义参数 + uploadImgParams: { + // token: 'abcdef12345' + }, + + // 上传图片的自定义header + uploadImgHeaders: { + // 'Accept': 'text/x-json' + }, + + // 配置 XHR withCredentials + withCredentials: false, + + // 自定义上传图片超时时间 ms + uploadImgTimeout: 10000, + + // 上传图片 hook + uploadImgHooks: { + // customInsert: function (insertLinkImg, result, editor) { + // console.log('customInsert') + // // 图片上传并返回结果,自定义插入图片的事件,而不是编辑器自动插入图片 + // const data = result.data1 || [] + // data.forEach(link => { + // insertLinkImg(link) + // }) + // }, + before: function before(xhr, editor, files) { + // 图片上传之前触发 + + // 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传 + // return { + // prevent: true, + // msg: '放弃上传' + // } + }, + success: function success(xhr, editor, result) { + // 图片上传并返回结果,图片插入成功之后触发 + }, + fail: function fail(xhr, editor, result) { + // 图片上传并返回结果,但图片插入错误时触发 + }, + error: function error(xhr, editor) { + // 图片上传出错时触发 + }, + timeout: function timeout(xhr, editor) { + // 图片上传超时时触发 + } + }, + + // 是否上传七牛云,默认为 false + qiniu: false + +}; + +/* + 工具 +*/ + +// 和 UA 相关的属性 +var UA = { + _ua: navigator.userAgent, + + // 是否 webkit + isWebkit: function isWebkit() { + var reg = /webkit/i; + return reg.test(this._ua); + }, + + // 是否 IE + isIE: function isIE() { + return 'ActiveXObject' in window; + } +}; + +// 遍历对象 +function objForEach(obj, fn) { + var key = void 0, + result = void 0; + for (key in obj) { + if (obj.hasOwnProperty(key)) { + result = fn.call(obj, key, obj[key]); + if (result === false) { + break; + } + } + } +} + +// 遍历类数组 +function arrForEach(fakeArr, fn) { + var i = void 0, + item = void 0, + result = void 0; + var length = fakeArr.length || 0; + for (i = 0; i < length; i++) { + item = fakeArr[i]; + result = fn.call(fakeArr, item, i); + if (result === false) { + break; + } + } +} + +// 获取随机数 +function getRandom(prefix) { + return prefix + Math.random().toString().slice(2); +} + +// 替换 html 特殊字符 +function replaceHtmlSymbol(html) { + if (html == null) { + return ''; + } + return html.replace(//gm, '>').replace(/"/gm, '"'); +} + +// 返回百分比的格式 + + +// 判断是不是 function +function isFunction(fn) { + return typeof fn === 'function'; +} + +/* + bold-menu +*/ +// 构造函数 +function Bold(editor) { + this.editor = editor; + this.$elem = $('
                  \n \n
                  '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Bold.prototype = { + constructor: Bold, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 bold 命令 + editor.cmd.do('bold'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('bold')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + 替换多语言 + */ + +var replaceLang = function (editor, str) { + var langArgs = editor.config.langArgs || []; + var result = str; + + langArgs.forEach(function (item) { + var reg = item.reg; + var val = item.val; + + if (reg.test(result)) { + result = result.replace(reg, function () { + return val; + }); + } + }); + + return result; +}; + +/* + droplist +*/ +var _emptyFn = function _emptyFn() {}; + +// 构造函数 +function DropList(menu, opt) { + var _this = this; + + // droplist 所依附的菜单 + var editor = menu.editor; + this.menu = menu; + this.opt = opt; + // 容器 + var $container = $('
                  '); + + // 标题 + var $title = opt.$title; + var titleHtml = void 0; + if ($title) { + // 替换多语言 + titleHtml = $title.html(); + titleHtml = replaceLang(editor, titleHtml); + $title.html(titleHtml); + + $title.addClass('w-e-dp-title'); + $container.append($title); + } + + var list = opt.list || []; + var type = opt.type || 'list'; // 'list' 列表形式(如“标题”菜单) / 'inline-block' 块状形式(如“颜色”菜单) + var onClick = opt.onClick || _emptyFn; + + // 加入 DOM 并绑定事件 + var $list = $('
                    '); + $container.append($list); + list.forEach(function (item) { + var $elem = item.$elem; + + // 替换多语言 + var elemHtml = $elem.html(); + elemHtml = replaceLang(editor, elemHtml); + $elem.html(elemHtml); + + var value = item.value; + var $li = $('
                  • '); + if ($elem) { + $li.append($elem); + $list.append($li); + $li.on('click', function (e) { + onClick(value); + + // 隐藏 + _this.hideTimeoutId = setTimeout(function () { + _this.hide(); + }, 0); + }); + } + }); + + // 绑定隐藏事件 + $container.on('mouseleave', function (e) { + _this.hideTimeoutId = setTimeout(function () { + _this.hide(); + }, 0); + }); + + // 记录属性 + this.$container = $container; + + // 基本属性 + this._rendered = false; + this._show = false; +} + +// 原型 +DropList.prototype = { + constructor: DropList, + + // 显示(插入DOM) + show: function show() { + if (this.hideTimeoutId) { + // 清除之前的定时隐藏 + clearTimeout(this.hideTimeoutId); + } + + var menu = this.menu; + var $menuELem = menu.$elem; + var $container = this.$container; + if (this._show) { + return; + } + if (this._rendered) { + // 显示 + $container.show(); + } else { + // 加入 DOM 之前先定位位置 + var menuHeight = $menuELem.getSizeData().height || 0; + var width = this.opt.width || 100; // 默认为 100 + $container.css('margin-top', menuHeight + 'px').css('width', width + 'px'); + + // 加入到 DOM + $menuELem.append($container); + this._rendered = true; + } + + // 修改属性 + this._show = true; + }, + + // 隐藏(移除DOM) + hide: function hide() { + if (this.showTimeoutId) { + // 清除之前的定时显示 + clearTimeout(this.showTimeoutId); + } + + var $container = this.$container; + if (!this._show) { + return; + } + // 隐藏并需改属性 + $container.hide(); + this._show = false; + } +}; + +/* + menu - header +*/ +// 构造函数 +function Head(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
                    '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 100, + $title: $('

                    设置标题

                    '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $('

                    H1

                    '), value: '

                    ' }, { $elem: $('

                    H2

                    '), value: '

                    ' }, { $elem: $('

                    H3

                    '), value: '

                    ' }, { $elem: $('

                    H4

                    '), value: '

                    ' }, { $elem: $('

                    H5
                    '), value: '
                    ' }, { $elem: $('

                    正文

                    '), value: '

                    ' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 Head 对象 + _this._command(value); + } + }); +} + +// 原型 +Head.prototype = { + constructor: Head, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (editor.$textElem.equal($selectionElem)) { + // 不能选中多行来设置标题,否则会出现问题 + // 例如选中的是

                    xxx

                    yyy

                    来设置标题,设置之后会成为

                    xxx
                    yyy

                    不符合预期 + return; + } + + editor.cmd.do('formatBlock', value); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var reg = /^h/i; + var cmdValue = editor.cmd.queryCommandValue('formatBlock'); + if (reg.test(cmdValue)) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + panel +*/ + +var emptyFn = function emptyFn() {}; + +// 记录已经显示 panel 的菜单 +var _isCreatedPanelMenus = []; + +// 构造函数 +function Panel(menu, opt) { + this.menu = menu; + this.opt = opt; +} + +// 原型 +Panel.prototype = { + constructor: Panel, + + // 显示(插入DOM) + show: function show() { + var _this = this; + + var menu = this.menu; + if (_isCreatedPanelMenus.indexOf(menu) >= 0) { + // 该菜单已经创建了 panel 不能再创建 + return; + } + + var editor = menu.editor; + var $body = $('body'); + var $textContainerElem = editor.$textContainerElem; + var opt = this.opt; + + // panel 的容器 + var $container = $('
                    '); + var width = opt.width || 300; // 默认 300px + $container.css('width', width + 'px').css('margin-left', (0 - width) / 2 + 'px'); + + // 添加关闭按钮 + var $closeBtn = $(''); + $container.append($closeBtn); + $closeBtn.on('click', function () { + _this.hide(); + }); + + // 准备 tabs 容器 + var $tabTitleContainer = $('
                      '); + var $tabContentContainer = $('
                      '); + $container.append($tabTitleContainer).append($tabContentContainer); + + // 设置高度 + var height = opt.height; + if (height) { + $tabContentContainer.css('height', height + 'px').css('overflow-y', 'auto'); + } + + // tabs + var tabs = opt.tabs || []; + var tabTitleArr = []; + var tabContentArr = []; + tabs.forEach(function (tab, tabIndex) { + if (!tab) { + return; + } + var title = tab.title || ''; + var tpl = tab.tpl || ''; + + // 替换多语言 + title = replaceLang(editor, title); + tpl = replaceLang(editor, tpl); + + // 添加到 DOM + var $title = $('
                    • ' + title + '
                    • '); + $tabTitleContainer.append($title); + var $content = $(tpl); + $tabContentContainer.append($content); + + // 记录到内存 + $title._index = tabIndex; + tabTitleArr.push($title); + tabContentArr.push($content); + + // 设置 active 项 + if (tabIndex === 0) { + $title._active = true; + $title.addClass('w-e-active'); + } else { + $content.hide(); + } + + // 绑定 tab 的事件 + $title.on('click', function (e) { + if ($title._active) { + return; + } + // 隐藏所有的 tab + tabTitleArr.forEach(function ($title) { + $title._active = false; + $title.removeClass('w-e-active'); + }); + tabContentArr.forEach(function ($content) { + $content.hide(); + }); + + // 显示当前的 tab + $title._active = true; + $title.addClass('w-e-active'); + $content.show(); + }); + }); + + // 绑定关闭事件 + $container.on('click', function (e) { + // 点击时阻止冒泡 + e.stopPropagation(); + }); + $body.on('click', function (e) { + _this.hide(); + }); + + // 添加到 DOM + $textContainerElem.append($container); + + // 绑定 opt 的事件,只有添加到 DOM 之后才能绑定成功 + tabs.forEach(function (tab, index) { + if (!tab) { + return; + } + var events = tab.events || []; + events.forEach(function (event) { + var selector = event.selector; + var type = event.type; + var fn = event.fn || emptyFn; + var $content = tabContentArr[index]; + $content.find(selector).on(type, function (e) { + e.stopPropagation(); + var needToHide = fn(e); + // 执行完事件之后,是否要关闭 panel + if (needToHide) { + _this.hide(); + } + }); + }); + }); + + // focus 第一个 elem + var $inputs = $container.find('input[type=text],textarea'); + if ($inputs.length) { + $inputs.get(0).focus(); + } + + // 添加到属性 + this.$container = $container; + + // 隐藏其他 panel + this._hideOtherPanels(); + // 记录该 menu 已经创建了 panel + _isCreatedPanelMenus.push(menu); + }, + + // 隐藏(移除DOM) + hide: function hide() { + var menu = this.menu; + var $container = this.$container; + if ($container) { + $container.remove(); + } + + // 将该 menu 记录中移除 + _isCreatedPanelMenus = _isCreatedPanelMenus.filter(function (item) { + if (item === menu) { + return false; + } else { + return true; + } + }); + }, + + // 一个 panel 展示时,隐藏其他 panel + _hideOtherPanels: function _hideOtherPanels() { + if (!_isCreatedPanelMenus.length) { + return; + } + _isCreatedPanelMenus.forEach(function (menu) { + var panel = menu.panel || {}; + if (panel.hide) { + panel.hide(); + } + }); + } +}; + +/* + menu - link +*/ +// 构造函数 +function Link(editor) { + this.editor = editor; + this.$elem = $('
                      '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Link.prototype = { + constructor: Link, + + // 点击事件 + onClick: function onClick(e) { + var editor = this.editor; + var $linkelem = void 0; + + if (this._active) { + // 当前选区在链接里面 + $linkelem = editor.selection.getSelectionContainerElem(); + if (!$linkelem) { + return; + } + // 将该元素都包含在选取之内,以便后面整体替换 + editor.selection.createRangeByElem($linkelem); + editor.selection.restoreSelection(); + // 显示 panel + this._createPanel($linkelem.text(), $linkelem.attr('href')); + } else { + // 当前选区不在链接里面 + if (editor.selection.isSelectionEmpty()) { + // 选区是空的,未选中内容 + this._createPanel('', ''); + } else { + // 选中内容了 + this._createPanel(editor.selection.getSelectionText(), ''); + } + } + }, + + // 创建 panel + _createPanel: function _createPanel(text, link) { + var _this = this; + + // panel 中需要用到的id + var inputLinkId = getRandom('input-link'); + var inputTextId = getRandom('input-text'); + var btnOkId = getRandom('btn-ok'); + var btnDelId = getRandom('btn-del'); + + // 是否显示“删除链接” + var delBtnDisplay = this._active ? 'inline-block' : 'none'; + + // 初始化并显示 panel + var panel = new Panel(this, { + width: 300, + // panel 中可包含多个 tab + tabs: [{ + // tab 的标题 + title: '链接', + // 模板 + tpl: '
                      \n \n \n
                      \n \n \n
                      \n
                      ', + // 事件绑定 + events: [ + // 插入链接 + { + selector: '#' + btnOkId, + type: 'click', + fn: function fn() { + // 执行插入链接 + var $link = $('#' + inputLinkId); + var $text = $('#' + inputTextId); + var link = $link.val(); + var text = $text.val(); + _this._insertLink(text, link); + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, + // 删除链接 + { + selector: '#' + btnDelId, + type: 'click', + fn: function fn() { + // 执行删除链接 + _this._delLink(); + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // tab end + ] // tabs end + }); + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 删除当前链接 + _delLink: function _delLink() { + if (!this._active) { + return; + } + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var selectionText = editor.selection.getSelectionText(); + editor.cmd.do('insertHTML', '' + selectionText + ''); + }, + + // 插入链接 + _insertLink: function _insertLink(text, link) { + var editor = this.editor; + var config = editor.config; + var linkCheck = config.linkCheck; + var checkResult = true; // 默认为 true + if (linkCheck && typeof linkCheck === 'function') { + checkResult = linkCheck(text, link); + } + if (checkResult === true) { + editor.cmd.do('insertHTML', '' + text + ''); + } else { + alert(checkResult); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + if ($selectionELem.getNodeName() === 'A') { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + italic-menu +*/ +// 构造函数 +function Italic(editor) { + this.editor = editor; + this.$elem = $('
                      \n \n
                      '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Italic.prototype = { + constructor: Italic, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 italic 命令 + editor.cmd.do('italic'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('italic')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + redo-menu +*/ +// 构造函数 +function Redo(editor) { + this.editor = editor; + this.$elem = $('
                      \n \n
                      '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Redo.prototype = { + constructor: Redo, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + + // 执行 redo 命令 + editor.cmd.do('redo'); + } +}; + +/* + strikeThrough-menu +*/ +// 构造函数 +function StrikeThrough(editor) { + this.editor = editor; + this.$elem = $('
                      \n \n
                      '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +StrikeThrough.prototype = { + constructor: StrikeThrough, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 strikeThrough 命令 + editor.cmd.do('strikeThrough'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('strikeThrough')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + underline-menu +*/ +// 构造函数 +function Underline(editor) { + this.editor = editor; + this.$elem = $('
                      \n \n
                      '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Underline.prototype = { + constructor: Underline, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 underline 命令 + editor.cmd.do('underline'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('underline')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + undo-menu +*/ +// 构造函数 +function Undo(editor) { + this.editor = editor; + this.$elem = $('
                      \n \n
                      '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Undo.prototype = { + constructor: Undo, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + + // 执行 undo 命令 + editor.cmd.do('undo'); + } +}; + +/* + menu - list +*/ +// 构造函数 +function List(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
                      '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 120, + $title: $('

                      设置列表

                      '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $(' 有序列表'), value: 'insertOrderedList' }, { $elem: $(' 无序列表'), value: 'insertUnorderedList' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 List 对象 + _this._command(value); + } + }); +} + +// 原型 +List.prototype = { + constructor: List, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + var $textElem = editor.$textElem; + editor.selection.restoreSelection(); + if (editor.cmd.queryCommandState(value)) { + return; + } + editor.cmd.do(value); + + // 验证列表是否被包裹在

                      之内 + var $selectionElem = editor.selection.getSelectionContainerElem(); + if ($selectionElem.getNodeName() === 'LI') { + $selectionElem = $selectionElem.parent(); + } + if (/^ol|ul$/i.test($selectionElem.getNodeName()) === false) { + return; + } + if ($selectionElem.equal($textElem)) { + // 证明是顶级标签,没有被

                      包裹 + return; + } + var $parent = $selectionElem.parent(); + if ($parent.equal($textElem)) { + // $parent 是顶级标签,不能删除 + return; + } + + $selectionElem.insertAfter($parent); + $parent.remove(); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('insertUnOrderedList') || editor.cmd.queryCommandState('insertOrderedList')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - justify +*/ +// 构造函数 +function Justify(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('

                      '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 100, + $title: $('

                      对齐方式

                      '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $(' 靠左'), value: 'justifyLeft' }, { $elem: $(' 居中'), value: 'justifyCenter' }, { $elem: $(' 靠右'), value: 'justifyRight' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 List 对象 + _this._command(value); + } + }); +} + +// 原型 +Justify.prototype = { + constructor: Justify, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do(value); + } +}; + +/* + menu - Forecolor +*/ +// 构造函数 +function ForeColor(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
                      '); + this.type = 'droplist'; + + // 获取配置的颜色 + var config = editor.config; + var colors = config.colors || []; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 120, + $title: $('

                      文字颜色

                      '), + type: 'inline-block', // droplist 内容以 block 形式展示 + list: colors.map(function (color) { + return { $elem: $(''), value: color }; + }), + onClick: function onClick(value) { + // 注意 this 是指向当前的 ForeColor 对象 + _this._command(value); + } + }); +} + +// 原型 +ForeColor.prototype = { + constructor: ForeColor, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do('foreColor', value); + } +}; + +/* + menu - BackColor +*/ +// 构造函数 +function BackColor(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
                      '); + this.type = 'droplist'; + + // 获取配置的颜色 + var config = editor.config; + var colors = config.colors || []; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 120, + $title: $('

                      背景色

                      '), + type: 'inline-block', // droplist 内容以 block 形式展示 + list: colors.map(function (color) { + return { $elem: $(''), value: color }; + }), + onClick: function onClick(value) { + // 注意 this 是指向当前的 BackColor 对象 + _this._command(value); + } + }); +} + +// 原型 +BackColor.prototype = { + constructor: BackColor, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do('backColor', value); + } +}; + +/* + menu - quote +*/ +// 构造函数 +function Quote(editor) { + this.editor = editor; + this.$elem = $('
                      \n \n
                      '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Quote.prototype = { + constructor: Quote, + + onClick: function onClick(e) { + var editor = this.editor; + var $selectionElem = editor.selection.getSelectionContainerElem(); + var nodeName = $selectionElem.getNodeName(); + + if (!UA.isIE()) { + if (nodeName === 'BLOCKQUOTE') { + // 撤销 quote + editor.cmd.do('formatBlock', '

                      '); + } else { + // 转换为 quote + editor.cmd.do('formatBlock', '

                      '); + } + return; + } + + // IE 中不支持 formatBlock
                      ,要用其他方式兼容 + var content = void 0, + $targetELem = void 0; + if (nodeName === 'P') { + // 将 P 转换为 quote + content = $selectionElem.text(); + $targetELem = $('
                      ' + content + '
                      '); + $targetELem.insertAfter($selectionElem); + $selectionElem.remove(); + return; + } + if (nodeName === 'BLOCKQUOTE') { + // 撤销 quote + content = $selectionElem.text(); + $targetELem = $('

                      ' + content + '

                      '); + $targetELem.insertAfter($selectionElem); + $selectionElem.remove(); + } + }, + + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var reg = /^BLOCKQUOTE$/i; + var cmdValue = editor.cmd.queryCommandValue('formatBlock'); + if (reg.test(cmdValue)) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - code +*/ +// 构造函数 +function Code(editor) { + this.editor = editor; + this.$elem = $('
                      \n \n
                      '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Code.prototype = { + constructor: Code, + + onClick: function onClick(e) { + var editor = this.editor; + var $startElem = editor.selection.getSelectionStartElem(); + var $endElem = editor.selection.getSelectionEndElem(); + var isSeleEmpty = editor.selection.isSelectionEmpty(); + var selectionText = editor.selection.getSelectionText(); + var $code = void 0; + + if (!$startElem.equal($endElem)) { + // 跨元素选择,不做处理 + editor.selection.restoreSelection(); + return; + } + if (!isSeleEmpty) { + // 选取不是空,用 包裹即可 + $code = $('' + selectionText + ''); + editor.cmd.do('insertElem', $code); + editor.selection.createRangeByElem($code, false); + editor.selection.restoreSelection(); + return; + } + + // 选取是空,且没有夸元素选择,则插入
                      
                      +        if (this._active) {
                      +            // 选中状态,将编辑内容
                      +            this._createPanel($startElem.html());
                      +        } else {
                      +            // 未选中状态,将创建内容
                      +            this._createPanel();
                      +        }
                      +    },
                      +
                      +    _createPanel: function _createPanel(value) {
                      +        var _this = this;
                      +
                      +        // value - 要编辑的内容
                      +        value = value || '';
                      +        var type = !value ? 'new' : 'edit';
                      +        var textId = getRandom('texxt');
                      +        var btnId = getRandom('btn');
                      +
                      +        var panel = new Panel(this, {
                      +            width: 500,
                      +            // 一个 Panel 包含多个 tab
                      +            tabs: [{
                      +                // 标题
                      +                title: '插入代码',
                      +                // 模板
                      +                tpl: '
                      \n \n
                      \n \n
                      \n
                      ', + // 事件绑定 + events: [ + // 插入代码 + { + selector: '#' + btnId, + type: 'click', + fn: function fn() { + var $text = $('#' + textId); + var text = $text.val() || $text.html(); + text = replaceHtmlSymbol(text); + if (type === 'new') { + // 新插入 + _this._insertCode(text); + } else { + // 编辑更新 + _this._updateCode(text); + } + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // first tab end + ] // tabs end + }); // new Panel end + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入代码 + _insertCode: function _insertCode(value) { + var editor = this.editor; + editor.cmd.do('insertHTML', '
                      ' + value + '


                      '); + }, + + // 更新代码 + _updateCode: function _updateCode(value) { + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + $selectionELem.html(value); + editor.selection.restoreSelection(); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var $parentElem = $selectionELem.parent(); + if ($selectionELem.getNodeName() === 'CODE' && $parentElem.getNodeName() === 'PRE') { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - emoticon +*/ +// 构造函数 +function Emoticon(editor) { + this.editor = editor; + this.$elem = $('
                      \n \n
                      '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Emoticon.prototype = { + constructor: Emoticon, + + onClick: function onClick() { + this._createPanel(); + }, + + _createPanel: function _createPanel() { + var _this = this; + + var editor = this.editor; + var config = editor.config; + // 获取表情配置 + var emotions = config.emotions || []; + + // 创建表情 dropPanel 的配置 + var tabConfig = []; + emotions.forEach(function (emotData) { + var emotType = emotData.type; + var content = emotData.content || []; + + // 这一组表情最终拼接出来的 html + var faceHtml = ''; + + // emoji 表情 + if (emotType === 'emoji') { + content.forEach(function (item) { + if (item) { + faceHtml += '' + item + ''; + } + }); + } + // 图片表情 + if (emotType === 'image') { + content.forEach(function (item) { + var src = item.src; + var alt = item.alt; + if (src) { + // 加一个 data-w-e 属性,点击图片的时候不再提示编辑图片 + faceHtml += '' + alt + ''; + } + }); + } + + tabConfig.push({ + title: emotData.title, + tpl: '
                      ' + faceHtml + '
                      ', + events: [{ + selector: 'span.w-e-item', + type: 'click', + fn: function fn(e) { + var target = e.target; + var $target = $(target); + var nodeName = $target.getNodeName(); + + var insertHtml = void 0; + if (nodeName === 'IMG') { + // 插入图片 + insertHtml = $target.parent().html(); + } else { + // 插入 emoji + insertHtml = '' + $target.html() + ''; + } + + _this._insert(insertHtml); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + }); + }); + + var panel = new Panel(this, { + width: 300, + height: 200, + // 一个 Panel 包含多个 tab + tabs: tabConfig + }); + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入表情 + _insert: function _insert(emotHtml) { + var editor = this.editor; + editor.cmd.do('insertHTML', emotHtml); + } +}; + +/* + menu - table +*/ +// 构造函数 +function Table(editor) { + this.editor = editor; + this.$elem = $('
                      '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Table.prototype = { + constructor: Table, + + onClick: function onClick() { + if (this._active) { + // 编辑现有表格 + this._createEditPanel(); + } else { + // 插入新表格 + this._createInsertPanel(); + } + }, + + // 创建插入新表格的 panel + _createInsertPanel: function _createInsertPanel() { + var _this = this; + + // 用到的 id + var btnInsertId = getRandom('btn'); + var textRowNum = getRandom('row'); + var textColNum = getRandom('col'); + + var panel = new Panel(this, { + width: 250, + // panel 包含多个 tab + tabs: [{ + // 标题 + title: '插入表格', + // 模板 + tpl: '
                      \n

                      \n \u521B\u5EFA\n \n \u884C\n \n \u5217\u7684\u8868\u683C\n

                      \n
                      \n \n
                      \n
                      ', + // 事件绑定 + events: [{ + // 点击按钮,插入表格 + selector: '#' + btnInsertId, + type: 'click', + fn: function fn() { + var rowNum = parseInt($('#' + textRowNum).val()); + var colNum = parseInt($('#' + textColNum).val()); + + if (rowNum && colNum && rowNum > 0 && colNum > 0) { + // form 数据有效 + _this._insert(rowNum, colNum); + } + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // first tab end + ] // tabs end + }); // panel end + + // 展示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入表格 + _insert: function _insert(rowNum, colNum) { + // 拼接 table 模板 + var r = void 0, + c = void 0; + var html = '
                      '; + for (r = 0; r < rowNum; r++) { + html += ''; + if (r === 0) { + for (c = 0; c < colNum; c++) { + html += ''; + } + } else { + for (c = 0; c < colNum; c++) { + html += ''; + } + } + html += ''; + } + html += '
                        


                      '; + + // 执行命令 + var editor = this.editor; + editor.cmd.do('insertHTML', html); + + // 防止 firefox 下出现 resize 的控制点 + editor.cmd.do('enableObjectResizing', false); + editor.cmd.do('enableInlineTableEditing', false); + }, + + // 创建编辑表格的 panel + _createEditPanel: function _createEditPanel() { + var _this2 = this; + + // 可用的 id + var addRowBtnId = getRandom('add-row'); + var addColBtnId = getRandom('add-col'); + var delRowBtnId = getRandom('del-row'); + var delColBtnId = getRandom('del-col'); + var delTableBtnId = getRandom('del-table'); + + // 创建 panel 对象 + var panel = new Panel(this, { + width: 320, + // panel 包含多个 tab + tabs: [{ + // 标题 + title: '编辑表格', + // 模板 + tpl: '
                      \n
                      \n \n \n \n \n
                      \n
                      \n \n \n
                      ', + // 事件绑定 + events: [{ + // 增加行 + selector: '#' + addRowBtnId, + type: 'click', + fn: function fn() { + _this2._addRow(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 增加列 + selector: '#' + addColBtnId, + type: 'click', + fn: function fn() { + _this2._addCol(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 删除行 + selector: '#' + delRowBtnId, + type: 'click', + fn: function fn() { + _this2._delRow(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 删除列 + selector: '#' + delColBtnId, + type: 'click', + fn: function fn() { + _this2._delCol(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 删除表格 + selector: '#' + delTableBtnId, + type: 'click', + fn: function fn() { + _this2._delTable(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + }] + }); + // 显示 panel + panel.show(); + }, + + // 获取选中的单元格的位置信息 + _getLocationData: function _getLocationData() { + var result = {}; + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var nodeName = $selectionELem.getNodeName(); + if (nodeName !== 'TD' && nodeName !== 'TH') { + return; + } + + // 获取 td index + var $tr = $selectionELem.parent(); + var $tds = $tr.children(); + var tdLength = $tds.length; + $tds.forEach(function (td, index) { + if (td === $selectionELem[0]) { + // 记录并跳出循环 + result.td = { + index: index, + elem: td, + length: tdLength + }; + return false; + } + }); + + // 获取 tr index + var $tbody = $tr.parent(); + var $trs = $tbody.children(); + var trLength = $trs.length; + $trs.forEach(function (tr, index) { + if (tr === $tr[0]) { + // 记录并跳出循环 + result.tr = { + index: index, + elem: tr, + length: trLength + }; + return false; + } + }); + + // 返回结果 + return result; + }, + + // 增加行 + _addRow: function _addRow() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var $currentTr = $(trData.elem); + var tdData = locationData.td; + var tdLength = tdData.length; + + // 拼接即将插入的字符串 + var newTr = document.createElement('tr'); + var tpl = '', + i = void 0; + for (i = 0; i < tdLength; i++) { + tpl += ' '; + } + newTr.innerHTML = tpl; + // 插入 + $(newTr).insertAfter($currentTr); + }, + + // 增加列 + _addCol: function _addCol() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var tdData = locationData.td; + var tdIndex = tdData.index; + var $currentTr = $(trData.elem); + var $trParent = $currentTr.parent(); + var $trs = $trParent.children(); + + // 遍历所有行 + $trs.forEach(function (tr) { + var $tr = $(tr); + var $tds = $tr.children(); + var $currentTd = $tds.get(tdIndex); + var name = $currentTd.getNodeName().toLowerCase(); + + // new 一个 td,并插入 + var newTd = document.createElement(name); + $(newTd).insertAfter($currentTd); + }); + }, + + // 删除行 + _delRow: function _delRow() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var $currentTr = $(trData.elem); + $currentTr.remove(); + }, + + // 删除列 + _delCol: function _delCol() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var tdData = locationData.td; + var tdIndex = tdData.index; + var $currentTr = $(trData.elem); + var $trParent = $currentTr.parent(); + var $trs = $trParent.children(); + + // 遍历所有行 + $trs.forEach(function (tr) { + var $tr = $(tr); + var $tds = $tr.children(); + var $currentTd = $tds.get(tdIndex); + // 删除 + $currentTd.remove(); + }); + }, + + // 删除表格 + _delTable: function _delTable() { + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var $table = $selectionELem.parentUntil('table'); + if (!$table) { + return; + } + $table.remove(); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var nodeName = $selectionELem.getNodeName(); + if (nodeName === 'TD' || nodeName === 'TH') { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - video +*/ +// 构造函数 +function Video(editor) { + this.editor = editor; + this.$elem = $('
                      '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Video.prototype = { + constructor: Video, + + onClick: function onClick() { + this._createPanel(); + }, + + _createPanel: function _createPanel() { + var _this = this; + + // 创建 id + var textValId = getRandom('text-val'); + var btnId = getRandom('btn'); + + // 创建 panel + var panel = new Panel(this, { + width: 350, + // 一个 panel 多个 tab + tabs: [{ + // 标题 + title: '插入视频', + // 模板 + tpl: '
                      \n \n
                      \n \n
                      \n
                      ', + // 事件绑定 + events: [{ + selector: '#' + btnId, + type: 'click', + fn: function fn() { + var $text = $('#' + textValId); + var val = $text.val().trim(); + + // 测试用视频地址 + // + + if (val) { + // 插入视频 + _this._insert(val); + } + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // first tab end + ] // tabs end + }); // panel end + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入视频 + _insert: function _insert(val) { + var editor = this.editor; + editor.cmd.do('insertHTML', val + '


                      '); + } +}; + +/* + menu - img +*/ +// 构造函数 +function Image(editor) { + this.editor = editor; + var imgMenuId = getRandom('w-e-img'); + this.$elem = $('
                      '); + editor.imgMenuId = imgMenuId; + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Image.prototype = { + constructor: Image, + + onClick: function onClick() { + var editor = this.editor; + var config = editor.config; + if (config.qiniu) { + return; + } + if (this._active) { + this._createEditPanel(); + } else { + this._createInsertPanel(); + } + }, + + _createEditPanel: function _createEditPanel() { + var editor = this.editor; + + // id + var width30 = getRandom('width-30'); + var width50 = getRandom('width-50'); + var width100 = getRandom('width-100'); + var delBtn = getRandom('del-btn'); + + // tab 配置 + var tabsConfig = [{ + title: '编辑图片', + tpl: '
                      \n
                      \n \u6700\u5927\u5BBD\u5EA6\uFF1A\n \n \n \n
                      \n
                      \n \n \n
                      ', + events: [{ + selector: '#' + width30, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.css('max-width', '30%'); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + selector: '#' + width50, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.css('max-width', '50%'); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + selector: '#' + width100, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.css('max-width', '100%'); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + selector: '#' + delBtn, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.remove(); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + }]; + + // 创建 panel 并显示 + var panel = new Panel(this, { + width: 300, + tabs: tabsConfig + }); + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + _createInsertPanel: function _createInsertPanel() { + var editor = this.editor; + var uploadImg = editor.uploadImg; + var config = editor.config; + + // id + var upTriggerId = getRandom('up-trigger'); + var upFileId = getRandom('up-file'); + var linkUrlId = getRandom('link-url'); + var linkBtnId = getRandom('link-btn'); + + // tabs 的配置 + var tabsConfig = [{ + title: '上传图片', + tpl: '
                      \n
                      \n \n
                      \n
                      \n \n
                      \n
                      ', + events: [{ + // 触发选择图片 + selector: '#' + upTriggerId, + type: 'click', + fn: function fn() { + var $file = $('#' + upFileId); + var fileElem = $file[0]; + if (fileElem) { + fileElem.click(); + } else { + // 返回 true 可关闭 panel + return true; + } + } + }, { + // 选择图片完毕 + selector: '#' + upFileId, + type: 'change', + fn: function fn() { + var $file = $('#' + upFileId); + var fileElem = $file[0]; + if (!fileElem) { + // 返回 true 可关闭 panel + return true; + } + + // 获取选中的 file 对象列表 + var fileList = fileElem.files; + if (fileList.length) { + uploadImg.uploadImg(fileList); + } + + // 返回 true 可关闭 panel + return true; + } + }] + }, // first tab end + { + title: '网络图片', + tpl: '
                      \n \n
                      \n \n
                      \n
                      ', + events: [{ + selector: '#' + linkBtnId, + type: 'click', + fn: function fn() { + var $linkUrl = $('#' + linkUrlId); + var url = $linkUrl.val().trim(); + + if (url) { + uploadImg.insertLinkImg(url); + } + + // 返回 true 表示函数执行结束之后关闭 panel + return true; + } + }] + } // second tab end + ]; // tabs end + + // 判断 tabs 的显示 + var tabsConfigResult = []; + if ((config.uploadImgShowBase64 || config.uploadImgServer || config.customUploadImg) && window.FileReader) { + // 显示“上传图片” + tabsConfigResult.push(tabsConfig[0]); + } + if (config.showLinkImg) { + // 显示“网络图片” + tabsConfigResult.push(tabsConfig[1]); + } + + // 创建 panel 并显示 + var panel = new Panel(this, { + width: 300, + tabs: tabsConfigResult + }); + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor._selectedImg) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + 所有菜单的汇总 +*/ + +// 存储菜单的构造函数 +var MenuConstructors = {}; + +MenuConstructors.bold = Bold; + +MenuConstructors.head = Head; + +MenuConstructors.link = Link; + +MenuConstructors.italic = Italic; + +MenuConstructors.redo = Redo; + +MenuConstructors.strikeThrough = StrikeThrough; + +MenuConstructors.underline = Underline; + +MenuConstructors.undo = Undo; + +MenuConstructors.list = List; + +MenuConstructors.justify = Justify; + +MenuConstructors.foreColor = ForeColor; + +MenuConstructors.backColor = BackColor; + +MenuConstructors.quote = Quote; + +MenuConstructors.code = Code; + +MenuConstructors.emoticon = Emoticon; + +MenuConstructors.table = Table; + +MenuConstructors.video = Video; + +MenuConstructors.image = Image; + +/* + 菜单集合 +*/ +// 构造函数 +function Menus(editor) { + this.editor = editor; + this.menus = {}; +} + +// 修改原型 +Menus.prototype = { + constructor: Menus, + + // 初始化菜单 + init: function init() { + var _this = this; + + var editor = this.editor; + var config = editor.config || {}; + var configMenus = config.menus || []; // 获取配置中的菜单 + + // 根据配置信息,创建菜单 + configMenus.forEach(function (menuKey) { + var MenuConstructor = MenuConstructors[menuKey]; + if (MenuConstructor && typeof MenuConstructor === 'function') { + // 创建单个菜单 + _this.menus[menuKey] = new MenuConstructor(editor); + } + }); + + // 添加到菜单栏 + this._addToToolbar(); + + // 绑定事件 + this._bindEvent(); + }, + + // 添加到菜单栏 + _addToToolbar: function _addToToolbar() { + var editor = this.editor; + var $toolbarElem = editor.$toolbarElem; + var menus = this.menus; + var config = editor.config; + // config.zIndex 是配置的编辑区域的 z-index,菜单的 z-index 得在其基础上 +1 + var zIndex = config.zIndex + 1; + objForEach(menus, function (key, menu) { + var $elem = menu.$elem; + if ($elem) { + // 设置 z-index + $elem.css('z-index', zIndex); + $toolbarElem.append($elem); + } + }); + }, + + // 绑定菜单 click mouseenter 事件 + _bindEvent: function _bindEvent() { + var menus = this.menus; + var editor = this.editor; + objForEach(menus, function (key, menu) { + var type = menu.type; + if (!type) { + return; + } + var $elem = menu.$elem; + var droplist = menu.droplist; + var panel = menu.panel; + + // 点击类型,例如 bold + if (type === 'click' && menu.onClick) { + $elem.on('click', function (e) { + if (editor.selection.getRange() == null) { + return; + } + menu.onClick(e); + }); + } + + // 下拉框,例如 head + if (type === 'droplist' && droplist) { + $elem.on('mouseenter', function (e) { + if (editor.selection.getRange() == null) { + return; + } + // 显示 + droplist.showTimeoutId = setTimeout(function () { + droplist.show(); + }, 200); + }).on('mouseleave', function (e) { + // 隐藏 + droplist.hideTimeoutId = setTimeout(function () { + droplist.hide(); + }, 0); + }); + } + + // 弹框类型,例如 link + if (type === 'panel' && menu.onClick) { + $elem.on('click', function (e) { + e.stopPropagation(); + if (editor.selection.getRange() == null) { + return; + } + // 在自定义事件中显示 panel + menu.onClick(e); + }); + } + }); + }, + + // 尝试修改菜单状态 + changeActive: function changeActive() { + var menus = this.menus; + objForEach(menus, function (key, menu) { + if (menu.tryChangeActive) { + setTimeout(function () { + menu.tryChangeActive(); + }, 100); + } + }); + } +}; + +/* + 粘贴信息的处理 +*/ + +// 获取粘贴的纯文本 +function getPasteText(e) { + var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData; + var pasteText = void 0; + if (clipboardData == null) { + pasteText = window.clipboardData && window.clipboardData.getData('text'); + } else { + pasteText = clipboardData.getData('text/plain'); + } + + return replaceHtmlSymbol(pasteText); +} + +// 获取粘贴的html +function getPasteHtml(e, filterStyle) { + var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData; + var pasteText = void 0, + pasteHtml = void 0; + if (clipboardData == null) { + pasteText = window.clipboardData && window.clipboardData.getData('text'); + } else { + pasteText = clipboardData.getData('text/plain'); + pasteHtml = clipboardData.getData('text/html'); + } + if (!pasteHtml && pasteText) { + pasteHtml = '

                      ' + replaceHtmlSymbol(pasteText) + '

                      '; + } + if (!pasteHtml) { + return; + } + + // 过滤word中状态过来的无用字符 + var docSplitHtml = pasteHtml.split(''); + if (docSplitHtml.length === 2) { + pasteHtml = docSplitHtml[0]; + } + + // 过滤无用标签 + pasteHtml = pasteHtml.replace(/<(meta|script|link).+?>/igm, ''); + // 去掉注释 + pasteHtml = pasteHtml.replace(//mg, ''); + // 过滤 data-xxx 属性 + pasteHtml = pasteHtml.replace(/\s?data-.+?=('|").+?('|")/igm, ''); + + if (filterStyle) { + // 过滤样式 + pasteHtml = pasteHtml.replace(/\s?(class|style)=('|").+?('|")/igm, ''); + } else { + // 保留样式 + pasteHtml = pasteHtml.replace(/\s?class=('|").+?('|")/igm, ''); + } + + return pasteHtml; +} + +// 获取粘贴的图片文件 +function getPasteImgs(e) { + var result = []; + var txt = getPasteText(e); + if (txt) { + // 有文字,就忽略图片 + return result; + } + + var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData || {}; + var items = clipboardData.items; + if (!items) { + return result; + } + + objForEach(items, function (key, value) { + var type = value.type; + if (/image/i.test(type)) { + result.push(value.getAsFile()); + } + }); + + return result; +} + +/* + 编辑区域 +*/ + +// 获取一个 elem.childNodes 的 JSON 数据 +function getChildrenJSON($elem) { + var result = []; + var $children = $elem.childNodes() || []; // 注意 childNodes() 可以获取文本节点 + $children.forEach(function (curElem) { + var elemResult = void 0; + var nodeType = curElem.nodeType; + + // 文本节点 + if (nodeType === 3) { + elemResult = curElem.textContent; + } + + // 普通 DOM 节点 + if (nodeType === 1) { + elemResult = {}; + + // tag + elemResult.tag = curElem.nodeName.toLowerCase(); + // attr + var attrData = []; + var attrList = curElem.attributes || {}; + var attrListLength = attrList.length || 0; + for (var i = 0; i < attrListLength; i++) { + var attr = attrList[i]; + attrData.push({ + name: attr.name, + value: attr.value + }); + } + elemResult.attrs = attrData; + // children(递归) + elemResult.children = getChildrenJSON($(curElem)); + } + + result.push(elemResult); + }); + return result; +} + +// 构造函数 +function Text(editor) { + this.editor = editor; +} + +// 修改原型 +Text.prototype = { + constructor: Text, + + // 初始化 + init: function init() { + // 绑定事件 + this._bindEvent(); + }, + + // 清空内容 + clear: function clear() { + this.html('


                      '); + }, + + // 获取 设置 html + html: function html(val) { + var editor = this.editor; + var $textElem = editor.$textElem; + var html = void 0; + if (val == null) { + html = $textElem.html(); + // 未选中任何内容的时候点击“加粗”或者“斜体”等按钮,就得需要一个空的占位符 ​ ,这里替换掉 + html = html.replace(/\u200b/gm, ''); + return html; + } else { + $textElem.html(val); + + // 初始化选取,将光标定位到内容尾部 + editor.initSelection(); + } + }, + + // 获取 JSON + getJSON: function getJSON() { + var editor = this.editor; + var $textElem = editor.$textElem; + return getChildrenJSON($textElem); + }, + + // 获取 设置 text + text: function text(val) { + var editor = this.editor; + var $textElem = editor.$textElem; + var text = void 0; + if (val == null) { + text = $textElem.text(); + // 未选中任何内容的时候点击“加粗”或者“斜体”等按钮,就得需要一个空的占位符 ​ ,这里替换掉 + text = text.replace(/\u200b/gm, ''); + return text; + } else { + $textElem.text('

                      ' + val + '

                      '); + + // 初始化选取,将光标定位到内容尾部 + editor.initSelection(); + } + }, + + // 追加内容 + append: function append(html) { + var editor = this.editor; + var $textElem = editor.$textElem; + $textElem.append($(html)); + + // 初始化选取,将光标定位到内容尾部 + editor.initSelection(); + }, + + // 绑定事件 + _bindEvent: function _bindEvent() { + // 实时保存选取 + this._saveRangeRealTime(); + + // 按回车建时的特殊处理 + this._enterKeyHandle(); + + // 清空时保留


                      + this._clearHandle(); + + // 粘贴事件(粘贴文字,粘贴图片) + this._pasteHandle(); + + // tab 特殊处理 + this._tabHandle(); + + // img 点击 + this._imgHandle(); + + // 拖拽事件 + this._dragHandle(); + }, + + // 实时保存选取 + _saveRangeRealTime: function _saveRangeRealTime() { + var editor = this.editor; + var $textElem = editor.$textElem; + + // 保存当前的选区 + function saveRange(e) { + // 随时保存选区 + editor.selection.saveRange(); + // 更新按钮 ative 状态 + editor.menus.changeActive(); + } + // 按键后保存 + $textElem.on('keyup', saveRange); + $textElem.on('mousedown', function (e) { + // mousedown 状态下,鼠标滑动到编辑区域外面,也需要保存选区 + $textElem.on('mouseleave', saveRange); + }); + $textElem.on('mouseup', function (e) { + saveRange(); + // 在编辑器区域之内完成点击,取消鼠标滑动到编辑区外面的事件 + $textElem.off('mouseleave', saveRange); + }); + }, + + // 按回车键时的特殊处理 + _enterKeyHandle: function _enterKeyHandle() { + var editor = this.editor; + var $textElem = editor.$textElem; + + function insertEmptyP($selectionElem) { + var $p = $('


                      '); + $p.insertBefore($selectionElem); + editor.selection.createRangeByElem($p, true); + editor.selection.restoreSelection(); + $selectionElem.remove(); + } + + // 将回车之后生成的非

                      的顶级标签,改为

                      + function pHandle(e) { + var $selectionElem = editor.selection.getSelectionContainerElem(); + var $parentElem = $selectionElem.parent(); + + if ($parentElem.html() === '
                      ') { + // 回车之前光标所在一个

                      .....

                      ,忽然回车生成一个空的


                      + // 而且继续回车跳不出去,因此只能特殊处理 + insertEmptyP($selectionElem); + return; + } + + if (!$parentElem.equal($textElem)) { + // 不是顶级标签 + return; + } + + var nodeName = $selectionElem.getNodeName(); + if (nodeName === 'P') { + // 当前的标签是 P ,不用做处理 + return; + } + + if ($selectionElem.text()) { + // 有内容,不做处理 + return; + } + + // 插入

                      ,并将选取定位到

                      ,删除当前标签 + insertEmptyP($selectionElem); + } + + $textElem.on('keyup', function (e) { + if (e.keyCode !== 13) { + // 不是回车键 + return; + } + // 将回车之后生成的非

                      的顶级标签,改为

                      + pHandle(e); + }); + + //

                      回车时 特殊处理 + function codeHandle(e) { + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var $parentElem = $selectionElem.parent(); + var selectionNodeName = $selectionElem.getNodeName(); + var parentNodeName = $parentElem.getNodeName(); + + if (selectionNodeName !== 'CODE' || parentNodeName !== 'PRE') { + // 不符合要求 忽略 + return; + } + + if (!editor.cmd.queryCommandSupported('insertHTML')) { + // 必须原生支持 insertHTML 命令 + return; + } + + // 处理:光标定位到代码末尾,联系点击两次回车,即跳出代码块 + if (editor._willBreakCode === true) { + // 此时可以跳出代码块 + // 插入

                      ,并将选取定位到

                      + var $p = $('


                      '); + $p.insertAfter($parentElem); + editor.selection.createRangeByElem($p, true); + editor.selection.restoreSelection(); + + // 修改状态 + editor._willBreakCode = false; + + e.preventDefault(); + return; + } + + var _startOffset = editor.selection.getRange().startOffset; + + // 处理:回车时,不能插入
                      而是插入 \n ,因为是在 pre 标签里面 + editor.cmd.do('insertHTML', '\n'); + editor.selection.saveRange(); + if (editor.selection.getRange().startOffset === _startOffset) { + // 没起作用,再来一遍 + editor.cmd.do('insertHTML', '\n'); + } + + var codeLength = $selectionElem.html().length; + if (editor.selection.getRange().startOffset + 1 === codeLength) { + // 说明光标在代码最后的位置,执行了回车操作 + // 记录下来,以便下次回车时候跳出 code + editor._willBreakCode = true; + } + + // 阻止默认行为 + e.preventDefault(); + } + + $textElem.on('keydown', function (e) { + if (e.keyCode !== 13) { + // 不是回车键 + // 取消即将跳转代码块的记录 + editor._willBreakCode = false; + return; + } + //
                      回车时 特殊处理 + codeHandle(e); + }); + }, + + // 清空时保留


                      + _clearHandle: function _clearHandle() { + var editor = this.editor; + var $textElem = editor.$textElem; + + $textElem.on('keydown', function (e) { + if (e.keyCode !== 8) { + return; + } + var txtHtml = $textElem.html().toLowerCase().trim(); + if (txtHtml === '


                      ') { + // 最后剩下一个空行,就不再删除了 + e.preventDefault(); + return; + } + }); + + $textElem.on('keyup', function (e) { + if (e.keyCode !== 8) { + return; + } + var $p = void 0; + var txtHtml = $textElem.html().toLowerCase().trim(); + + // firefox 时用 txtHtml === '
                      ' 判断,其他用 !txtHtml 判断 + if (!txtHtml || txtHtml === '
                      ') { + // 内容空了 + $p = $('


                      '); + $textElem.html(''); // 一定要先清空,否则在 firefox 下有问题 + $textElem.append($p); + editor.selection.createRangeByElem($p, false, true); + editor.selection.restoreSelection(); + } + }); + }, + + // 粘贴事件(粘贴文字 粘贴图片) + _pasteHandle: function _pasteHandle() { + var editor = this.editor; + var config = editor.config; + var pasteFilterStyle = config.pasteFilterStyle; + var pasteTextHandle = config.pasteTextHandle; + var $textElem = editor.$textElem; + + // 粘贴图片、文本的事件,每次只能执行一个 + // 判断该次粘贴事件是否可以执行 + var pasteTime = 0; + function canDo() { + var now = Date.now(); + var flag = false; + if (now - pasteTime >= 500) { + // 间隔大于 500 ms ,可以执行 + flag = true; + } + pasteTime = now; + return flag; + } + function resetTime() { + pasteTime = 0; + } + + // 粘贴文字 + $textElem.on('paste', function (e) { + if (UA.isIE()) { + return; + } else { + // 阻止默认行为,使用 execCommand 的粘贴命令 + e.preventDefault(); + } + + // 粘贴图片和文本,只能同时使用一个 + if (!canDo()) { + return; + } + + // 获取粘贴的文字 + var pasteHtml = getPasteHtml(e, pasteFilterStyle); + var pasteText = getPasteText(e); + pasteText = pasteText.replace(/\n/gm, '
                      '); + + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var nodeName = $selectionElem.getNodeName(); + + // code 中只能粘贴纯文本 + if (nodeName === 'CODE' || nodeName === 'PRE') { + if (pasteTextHandle && isFunction(pasteTextHandle)) { + // 用户自定义过滤处理粘贴内容 + pasteText = '' + (pasteTextHandle(pasteText) || ''); + } + editor.cmd.do('insertHTML', '

                      ' + pasteText + '

                      '); + return; + } + + // 先放开注释,有问题再追查 ———— + // // 表格中忽略,可能会出现异常问题 + // if (nodeName === 'TD' || nodeName === 'TH') { + // return + // } + + if (!pasteHtml) { + // 没有内容,可继续执行下面的图片粘贴 + resetTime(); + return; + } + try { + // firefox 中,获取的 pasteHtml 可能是没有
                        包裹的
                      • + // 因此执行 insertHTML 会报错 + if (pasteTextHandle && isFunction(pasteTextHandle)) { + // 用户自定义过滤处理粘贴内容 + pasteHtml = '' + (pasteTextHandle(pasteHtml) || ''); + } + editor.cmd.do('insertHTML', pasteHtml); + } catch (ex) { + // 此时使用 pasteText 来兼容一下 + if (pasteTextHandle && isFunction(pasteTextHandle)) { + // 用户自定义过滤处理粘贴内容 + pasteText = '' + (pasteTextHandle(pasteText) || ''); + } + editor.cmd.do('insertHTML', '

                        ' + pasteText + '

                        '); + } + }); + + // 粘贴图片 + $textElem.on('paste', function (e) { + if (UA.isIE()) { + return; + } else { + e.preventDefault(); + } + + // 粘贴图片和文本,只能同时使用一个 + if (!canDo()) { + return; + } + + // 获取粘贴的图片 + var pasteFiles = getPasteImgs(e); + if (!pasteFiles || !pasteFiles.length) { + return; + } + + // 获取当前的元素 + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var nodeName = $selectionElem.getNodeName(); + + // code 中粘贴忽略 + if (nodeName === 'CODE' || nodeName === 'PRE') { + return; + } + + // 上传图片 + var uploadImg = editor.uploadImg; + uploadImg.uploadImg(pasteFiles); + }); + }, + + // tab 特殊处理 + _tabHandle: function _tabHandle() { + var editor = this.editor; + var $textElem = editor.$textElem; + + $textElem.on('keydown', function (e) { + if (e.keyCode !== 9) { + return; + } + if (!editor.cmd.queryCommandSupported('insertHTML')) { + // 必须原生支持 insertHTML 命令 + return; + } + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var $parentElem = $selectionElem.parent(); + var selectionNodeName = $selectionElem.getNodeName(); + var parentNodeName = $parentElem.getNodeName(); + + if (selectionNodeName === 'CODE' && parentNodeName === 'PRE') { + //
                         里面
                        +                editor.cmd.do('insertHTML', '    ');
                        +            } else {
                        +                // 普通文字
                        +                editor.cmd.do('insertHTML', '    ');
                        +            }
                        +
                        +            e.preventDefault();
                        +        });
                        +    },
                        +
                        +    // img 点击
                        +    _imgHandle: function _imgHandle() {
                        +        var editor = this.editor;
                        +        var $textElem = editor.$textElem;
                        +
                        +        // 为图片增加 selected 样式
                        +        $textElem.on('click', 'img', function (e) {
                        +            var img = this;
                        +            var $img = $(img);
                        +
                        +            if ($img.attr('data-w-e') === '1') {
                        +                // 是表情图片,忽略
                        +                return;
                        +            }
                        +
                        +            // 记录当前点击过的图片
                        +            editor._selectedImg = $img;
                        +
                        +            // 修改选区并 restore ,防止用户此时点击退格键,会删除其他内容
                        +            editor.selection.createRangeByElem($img);
                        +            editor.selection.restoreSelection();
                        +        });
                        +
                        +        // 去掉图片的 selected 样式
                        +        $textElem.on('click  keyup', function (e) {
                        +            if (e.target.matches('img')) {
                        +                // 点击的是图片,忽略
                        +                return;
                        +            }
                        +            // 删除记录
                        +            editor._selectedImg = null;
                        +        });
                        +    },
                        +
                        +    // 拖拽事件
                        +    _dragHandle: function _dragHandle() {
                        +        var editor = this.editor;
                        +
                        +        // 禁用 document 拖拽事件
                        +        var $document = $(document);
                        +        $document.on('dragleave drop dragenter dragover', function (e) {
                        +            e.preventDefault();
                        +        });
                        +
                        +        // 添加编辑区域拖拽事件
                        +        var $textElem = editor.$textElem;
                        +        $textElem.on('drop', function (e) {
                        +            e.preventDefault();
                        +            var files = e.dataTransfer && e.dataTransfer.files;
                        +            if (!files || !files.length) {
                        +                return;
                        +            }
                        +
                        +            // 上传图片
                        +            var uploadImg = editor.uploadImg;
                        +            uploadImg.uploadImg(files);
                        +        });
                        +    }
                        +};
                        +
                        +/*
                        +    命令,封装 document.execCommand
                        +*/
                        +
                        +// 构造函数
                        +function Command(editor) {
                        +    this.editor = editor;
                        +}
                        +
                        +// 修改原型
                        +Command.prototype = {
                        +    constructor: Command,
                        +
                        +    // 执行命令
                        +    do: function _do(name, value) {
                        +        var editor = this.editor;
                        +
                        +        // 使用 styleWithCSS
                        +        if (!editor._useStyleWithCSS) {
                        +            document.execCommand('styleWithCSS', null, true);
                        +            editor._useStyleWithCSS = true;
                        +        }
                        +
                        +        // 如果无选区,忽略
                        +        if (!editor.selection.getRange()) {
                        +            return;
                        +        }
                        +
                        +        // 恢复选取
                        +        editor.selection.restoreSelection();
                        +
                        +        // 执行
                        +        var _name = '_' + name;
                        +        if (this[_name]) {
                        +            // 有自定义事件
                        +            this[_name](value);
                        +        } else {
                        +            // 默认 command
                        +            this._execCommand(name, value);
                        +        }
                        +
                        +        // 修改菜单状态
                        +        editor.menus.changeActive();
                        +
                        +        // 最后,恢复选取保证光标在原来的位置闪烁
                        +        editor.selection.saveRange();
                        +        editor.selection.restoreSelection();
                        +
                        +        // 触发 onchange
                        +        editor.change && editor.change();
                        +    },
                        +
                        +    // 自定义 insertHTML 事件
                        +    _insertHTML: function _insertHTML(html) {
                        +        var editor = this.editor;
                        +        var range = editor.selection.getRange();
                        +
                        +        if (this.queryCommandSupported('insertHTML')) {
                        +            // W3C
                        +            this._execCommand('insertHTML', html);
                        +        } else if (range.insertNode) {
                        +            // IE
                        +            range.deleteContents();
                        +            range.insertNode($(html)[0]);
                        +        } else if (range.pasteHTML) {
                        +            // IE <= 10
                        +            range.pasteHTML(html);
                        +        }
                        +    },
                        +
                        +    // 插入 elem
                        +    _insertElem: function _insertElem($elem) {
                        +        var editor = this.editor;
                        +        var range = editor.selection.getRange();
                        +
                        +        if (range.insertNode) {
                        +            range.deleteContents();
                        +            range.insertNode($elem[0]);
                        +        }
                        +    },
                        +
                        +    // 封装 execCommand
                        +    _execCommand: function _execCommand(name, value) {
                        +        document.execCommand(name, false, value);
                        +    },
                        +
                        +    // 封装 document.queryCommandValue
                        +    queryCommandValue: function queryCommandValue(name) {
                        +        return document.queryCommandValue(name);
                        +    },
                        +
                        +    // 封装 document.queryCommandState
                        +    queryCommandState: function queryCommandState(name) {
                        +        return document.queryCommandState(name);
                        +    },
                        +
                        +    // 封装 document.queryCommandSupported
                        +    queryCommandSupported: function queryCommandSupported(name) {
                        +        return document.queryCommandSupported(name);
                        +    }
                        +};
                        +
                        +/*
                        +    selection range API
                        +*/
                        +
                        +// 构造函数
                        +function API(editor) {
                        +    this.editor = editor;
                        +    this._currentRange = null;
                        +}
                        +
                        +// 修改原型
                        +API.prototype = {
                        +    constructor: API,
                        +
                        +    // 获取 range 对象
                        +    getRange: function getRange() {
                        +        return this._currentRange;
                        +    },
                        +
                        +    // 保存选区
                        +    saveRange: function saveRange(_range) {
                        +        if (_range) {
                        +            // 保存已有选区
                        +            this._currentRange = _range;
                        +            return;
                        +        }
                        +
                        +        // 获取当前的选区
                        +        var selection = window.getSelection();
                        +        if (selection.rangeCount === 0) {
                        +            return;
                        +        }
                        +        var range = selection.getRangeAt(0);
                        +
                        +        // 判断选区内容是否在编辑内容之内
                        +        var $containerElem = this.getSelectionContainerElem(range);
                        +        if (!$containerElem) {
                        +            return;
                        +        }
                        +        var editor = this.editor;
                        +        var $textElem = editor.$textElem;
                        +        if ($textElem.isContain($containerElem)) {
                        +            // 是编辑内容之内的
                        +            this._currentRange = range;
                        +        }
                        +    },
                        +
                        +    // 折叠选区
                        +    collapseRange: function collapseRange(toStart) {
                        +        if (toStart == null) {
                        +            // 默认为 false
                        +            toStart = false;
                        +        }
                        +        var range = this._currentRange;
                        +        if (range) {
                        +            range.collapse(toStart);
                        +        }
                        +    },
                        +
                        +    // 选中区域的文字
                        +    getSelectionText: function getSelectionText() {
                        +        var range = this._currentRange;
                        +        if (range) {
                        +            return this._currentRange.toString();
                        +        } else {
                        +            return '';
                        +        }
                        +    },
                        +
                        +    // 选区的 $Elem
                        +    getSelectionContainerElem: function getSelectionContainerElem(range) {
                        +        range = range || this._currentRange;
                        +        var elem = void 0;
                        +        if (range) {
                        +            elem = range.commonAncestorContainer;
                        +            return $(elem.nodeType === 1 ? elem : elem.parentNode);
                        +        }
                        +    },
                        +    getSelectionStartElem: function getSelectionStartElem(range) {
                        +        range = range || this._currentRange;
                        +        var elem = void 0;
                        +        if (range) {
                        +            elem = range.startContainer;
                        +            return $(elem.nodeType === 1 ? elem : elem.parentNode);
                        +        }
                        +    },
                        +    getSelectionEndElem: function getSelectionEndElem(range) {
                        +        range = range || this._currentRange;
                        +        var elem = void 0;
                        +        if (range) {
                        +            elem = range.endContainer;
                        +            return $(elem.nodeType === 1 ? elem : elem.parentNode);
                        +        }
                        +    },
                        +
                        +    // 选区是否为空
                        +    isSelectionEmpty: function isSelectionEmpty() {
                        +        var range = this._currentRange;
                        +        if (range && range.startContainer) {
                        +            if (range.startContainer === range.endContainer) {
                        +                if (range.startOffset === range.endOffset) {
                        +                    return true;
                        +                }
                        +            }
                        +        }
                        +        return false;
                        +    },
                        +
                        +    // 恢复选区
                        +    restoreSelection: function restoreSelection() {
                        +        var selection = window.getSelection();
                        +        selection.removeAllRanges();
                        +        selection.addRange(this._currentRange);
                        +    },
                        +
                        +    // 创建一个空白(即 ​ 字符)选区
                        +    createEmptyRange: function createEmptyRange() {
                        +        var editor = this.editor;
                        +        var range = this.getRange();
                        +        var $elem = void 0;
                        +
                        +        if (!range) {
                        +            // 当前无 range
                        +            return;
                        +        }
                        +        if (!this.isSelectionEmpty()) {
                        +            // 当前选区必须没有内容才可以
                        +            return;
                        +        }
                        +
                        +        try {
                        +            // 目前只支持 webkit 内核
                        +            if (UA.isWebkit()) {
                        +                // 插入 ​
                        +                editor.cmd.do('insertHTML', '​');
                        +                // 修改 offset 位置
                        +                range.setEnd(range.endContainer, range.endOffset + 1);
                        +                // 存储
                        +                this.saveRange(range);
                        +            } else {
                        +                $elem = $('');
                        +                editor.cmd.do('insertElem', $elem);
                        +                this.createRangeByElem($elem, true);
                        +            }
                        +        } catch (ex) {
                        +            // 部分情况下会报错,兼容一下
                        +        }
                        +    },
                        +
                        +    // 根据 $Elem 设置选区
                        +    createRangeByElem: function createRangeByElem($elem, toStart, isContent) {
                        +        // $elem - 经过封装的 elem
                        +        // toStart - true 开始位置,false 结束位置
                        +        // isContent - 是否选中Elem的内容
                        +        if (!$elem.length) {
                        +            return;
                        +        }
                        +
                        +        var elem = $elem[0];
                        +        var range = document.createRange();
                        +
                        +        if (isContent) {
                        +            range.selectNodeContents(elem);
                        +        } else {
                        +            range.selectNode(elem);
                        +        }
                        +
                        +        if (typeof toStart === 'boolean') {
                        +            range.collapse(toStart);
                        +        }
                        +
                        +        // 存储 range
                        +        this.saveRange(range);
                        +    }
                        +};
                        +
                        +/*
                        +    上传进度条
                        +*/
                        +
                        +function Progress(editor) {
                        +    this.editor = editor;
                        +    this._time = 0;
                        +    this._isShow = false;
                        +    this._isRender = false;
                        +    this._timeoutId = 0;
                        +    this.$textContainer = editor.$textContainerElem;
                        +    this.$bar = $('
                        '); +} + +Progress.prototype = { + constructor: Progress, + + show: function show(progress) { + var _this = this; + + // 状态处理 + if (this._isShow) { + return; + } + this._isShow = true; + + // 渲染 + var $bar = this.$bar; + if (!this._isRender) { + var $textContainer = this.$textContainer; + $textContainer.append($bar); + } else { + this._isRender = true; + } + + // 改变进度(节流,100ms 渲染一次) + if (Date.now() - this._time > 100) { + if (progress <= 1) { + $bar.css('width', progress * 100 + '%'); + this._time = Date.now(); + } + } + + // 隐藏 + var timeoutId = this._timeoutId; + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function () { + _this._hide(); + }, 500); + }, + + _hide: function _hide() { + var $bar = this.$bar; + $bar.remove(); + + // 修改状态 + this._time = 0; + this._isShow = false; + this._isRender = false; + } +}; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { + return typeof obj; +} : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; +}; + +/* + 上传图片 +*/ + +// 构造函数 +function UploadImg(editor) { + this.editor = editor; +} + +// 原型 +UploadImg.prototype = { + constructor: UploadImg, + + // 根据 debug 弹出不同的信息 + _alert: function _alert(alertInfo, debugInfo) { + var editor = this.editor; + var debug = editor.config.debug; + var customAlert = editor.config.customAlert; + + if (debug) { + throw new Error('wangEditor: ' + (debugInfo || alertInfo)); + } else { + if (customAlert && typeof customAlert === 'function') { + customAlert(alertInfo); + } else { + alert(alertInfo); + } + } + }, + + // 根据链接插入图片 + insertLinkImg: function insertLinkImg(link) { + var _this2 = this; + + if (!link) { + return; + } + var editor = this.editor; + var config = editor.config; + + // 校验格式 + var linkImgCheck = config.linkImgCheck; + var checkResult = void 0; + if (linkImgCheck && typeof linkImgCheck === 'function') { + checkResult = linkImgCheck(link); + if (typeof checkResult === 'string') { + // 校验失败,提示信息 + alert(checkResult); + return; + } + } + + editor.cmd.do('insertHTML', ''); + + // 验证图片 url 是否有效,无效的话给出提示 + var img = document.createElement('img'); + img.onload = function () { + var callback = config.linkImgCallback; + if (callback && typeof callback === 'function') { + callback(link); + } + + img = null; + }; + img.onerror = function () { + img = null; + // 无法成功下载图片 + _this2._alert('插入图片错误', 'wangEditor: \u63D2\u5165\u56FE\u7247\u51FA\u9519\uFF0C\u56FE\u7247\u94FE\u63A5\u662F "' + link + '"\uFF0C\u4E0B\u8F7D\u8BE5\u94FE\u63A5\u5931\u8D25'); + return; + }; + img.onabort = function () { + img = null; + }; + img.src = link; + }, + + // 上传图片 + uploadImg: function uploadImg(files) { + var _this3 = this; + + if (!files || !files.length) { + return; + } + + // ------------------------------ 获取配置信息 ------------------------------ + var editor = this.editor; + var config = editor.config; + var uploadImgServer = config.uploadImgServer; + var uploadImgShowBase64 = config.uploadImgShowBase64; + + var maxSize = config.uploadImgMaxSize; + var maxSizeM = maxSize / 1024 / 1024; + var maxLength = config.uploadImgMaxLength || 10000; + var uploadFileName = config.uploadFileName || ''; + var uploadImgParams = config.uploadImgParams || {}; + var uploadImgParamsWithUrl = config.uploadImgParamsWithUrl; + var uploadImgHeaders = config.uploadImgHeaders || {}; + var hooks = config.uploadImgHooks || {}; + var timeout = config.uploadImgTimeout || 3000; + var withCredentials = config.withCredentials; + if (withCredentials == null) { + withCredentials = false; + } + var customUploadImg = config.customUploadImg; + + if (!customUploadImg) { + // 没有 customUploadImg 的情况下,需要如下两个配置才能继续进行图片上传 + if (!uploadImgServer && !uploadImgShowBase64) { + return; + } + } + + // ------------------------------ 验证文件信息 ------------------------------ + var resultFiles = []; + var errInfo = []; + arrForEach(files, function (file) { + var name = file.name; + var size = file.size; + + // chrome 低版本 name === undefined + if (!name || !size) { + return; + } + + if (/\.(jpg|jpeg|png|bmp|gif)$/i.test(name) === false) { + // 后缀名不合法,不是图片 + errInfo.push('\u3010' + name + '\u3011\u4E0D\u662F\u56FE\u7247'); + return; + } + if (maxSize < size) { + // 上传图片过大 + errInfo.push('\u3010' + name + '\u3011\u5927\u4E8E ' + maxSizeM + 'M'); + return; + } + + // 验证通过的加入结果列表 + resultFiles.push(file); + }); + // 抛出验证信息 + if (errInfo.length) { + this._alert('图片验证未通过: \n' + errInfo.join('\n')); + return; + } + if (resultFiles.length > maxLength) { + this._alert('一次最多上传' + maxLength + '张图片'); + return; + } + + // ------------------------------ 自定义上传 ------------------------------ + if (customUploadImg && typeof customUploadImg === 'function') { + customUploadImg(resultFiles, this.insertLinkImg.bind(this)); + + // 阻止以下代码执行 + return; + } + + // 添加图片数据 + var formdata = new FormData(); + arrForEach(resultFiles, function (file) { + var name = uploadFileName || file.name; + formdata.append(name, file); + }); + + // ------------------------------ 上传图片 ------------------------------ + if (uploadImgServer && typeof uploadImgServer === 'string') { + // 添加参数 + var uploadImgServerArr = uploadImgServer.split('#'); + uploadImgServer = uploadImgServerArr[0]; + var uploadImgServerHash = uploadImgServerArr[1] || ''; + objForEach(uploadImgParams, function (key, val) { + val = encodeURIComponent(val); + + // 第一,将参数拼接到 url 中 + if (uploadImgParamsWithUrl) { + if (uploadImgServer.indexOf('?') > 0) { + uploadImgServer += '&'; + } else { + uploadImgServer += '?'; + } + uploadImgServer = uploadImgServer + key + '=' + val; + } + + // 第二,将参数添加到 formdata 中 + formdata.append(key, val); + }); + if (uploadImgServerHash) { + uploadImgServer += '#' + uploadImgServerHash; + } + + // 定义 xhr + var xhr = new XMLHttpRequest(); + xhr.open('POST', uploadImgServer); + + // 设置超时 + xhr.timeout = timeout; + xhr.ontimeout = function () { + // hook - timeout + if (hooks.timeout && typeof hooks.timeout === 'function') { + hooks.timeout(xhr, editor); + } + + _this3._alert('上传图片超时'); + }; + + // 监控 progress + if (xhr.upload) { + xhr.upload.onprogress = function (e) { + var percent = void 0; + // 进度条 + var progressBar = new Progress(editor); + if (e.lengthComputable) { + percent = e.loaded / e.total; + progressBar.show(percent); + } + }; + } + + // 返回数据 + xhr.onreadystatechange = function () { + var result = void 0; + if (xhr.readyState === 4) { + if (xhr.status < 200 || xhr.status >= 300) { + // hook - error + if (hooks.error && typeof hooks.error === 'function') { + hooks.error(xhr, editor); + } + + // xhr 返回状态错误 + _this3._alert('上传图片发生错误', '\u4E0A\u4F20\u56FE\u7247\u53D1\u751F\u9519\u8BEF\uFF0C\u670D\u52A1\u5668\u8FD4\u56DE\u72B6\u6001\u662F ' + xhr.status); + return; + } + + result = xhr.responseText; + if ((typeof result === 'undefined' ? 'undefined' : _typeof(result)) !== 'object') { + try { + result = JSON.parse(result); + } catch (ex) { + // hook - fail + if (hooks.fail && typeof hooks.fail === 'function') { + hooks.fail(xhr, editor, result); + } + + _this3._alert('上传图片失败', '上传图片返回结果错误,返回结果是: ' + result); + return; + } + } + if (!hooks.customInsert && result.errno != '0') { + // hook - fail + if (hooks.fail && typeof hooks.fail === 'function') { + hooks.fail(xhr, editor, result); + } + + // 数据错误 + _this3._alert('上传图片失败', '上传图片返回结果错误,返回结果 errno=' + result.errno); + } else { + if (hooks.customInsert && typeof hooks.customInsert === 'function') { + // 使用者自定义插入方法 + hooks.customInsert(_this3.insertLinkImg.bind(_this3), result, editor); + } else { + // 将图片插入编辑器 + var data = result.data || []; + data.forEach(function (link) { + _this3.insertLinkImg(link); + }); + } + + // hook - success + if (hooks.success && typeof hooks.success === 'function') { + hooks.success(xhr, editor, result); + } + } + } + }; + + // hook - before + if (hooks.before && typeof hooks.before === 'function') { + var beforeResult = hooks.before(xhr, editor, resultFiles); + if (beforeResult && (typeof beforeResult === 'undefined' ? 'undefined' : _typeof(beforeResult)) === 'object') { + if (beforeResult.prevent) { + // 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传 + this._alert(beforeResult.msg); + return; + } + } + } + + // 自定义 headers + objForEach(uploadImgHeaders, function (key, val) { + xhr.setRequestHeader(key, val); + }); + + // 跨域传 cookie + xhr.withCredentials = withCredentials; + + // 发送请求 + xhr.send(formdata); + + // 注意,要 return 。不去操作接下来的 base64 显示方式 + return; + } + + // ------------------------------ 显示 base64 格式 ------------------------------ + if (uploadImgShowBase64) { + arrForEach(files, function (file) { + var _this = _this3; + var reader = new FileReader(); + reader.readAsDataURL(file); + reader.onload = function () { + _this.insertLinkImg(this.result); + }; + }); + } + } +}; + +/* + 编辑器构造函数 +*/ + +// id,累加 +var editorId = 1; + +// 构造函数 +function Editor(toolbarSelector, textSelector) { + if (toolbarSelector == null) { + // 没有传入任何参数,报错 + throw new Error('错误:初始化编辑器时候未传入任何参数,请查阅文档'); + } + // id,用以区分单个页面不同的编辑器对象 + this.id = 'wangEditor-' + editorId++; + + this.toolbarSelector = toolbarSelector; + this.textSelector = textSelector; + + // 自定义配置 + this.customConfig = {}; +} + +// 修改原型 +Editor.prototype = { + constructor: Editor, + + // 初始化配置 + _initConfig: function _initConfig() { + // _config 是默认配置,this.customConfig 是用户自定义配置,将它们 merge 之后再赋值 + var target = {}; + this.config = Object.assign(target, config, this.customConfig); + + // 将语言配置,生成正则表达式 + var langConfig = this.config.lang || {}; + var langArgs = []; + objForEach(langConfig, function (key, val) { + // key 即需要生成正则表达式的规则,如“插入链接” + // val 即需要被替换成的语言,如“insert link” + langArgs.push({ + reg: new RegExp(key, 'img'), + val: val + + }); + }); + this.config.langArgs = langArgs; + }, + + // 初始化 DOM + _initDom: function _initDom() { + var _this = this; + + var toolbarSelector = this.toolbarSelector; + var $toolbarSelector = $(toolbarSelector); + var textSelector = this.textSelector; + + var config$$1 = this.config; + var zIndex = config$$1.zIndex; + + // 定义变量 + var $toolbarElem = void 0, + $textContainerElem = void 0, + $textElem = void 0, + $children = void 0; + + if (textSelector == null) { + // 只传入一个参数,即是容器的选择器或元素,toolbar 和 text 的元素自行创建 + $toolbarElem = $('
                        '); + $textContainerElem = $('
                        '); + + // 将编辑器区域原有的内容,暂存起来 + $children = $toolbarSelector.children(); + + // 添加到 DOM 结构中 + $toolbarSelector.append($toolbarElem).append($textContainerElem); + + // 自行创建的,需要配置默认的样式 + $toolbarElem.css('background-color', '#f1f1f1').css('border', '1px solid #ccc'); + $textContainerElem.css('border', '1px solid #ccc').css('border-top', 'none').css('height', '300px'); + } else { + // toolbar 和 text 的选择器都有值,记录属性 + $toolbarElem = $toolbarSelector; + $textContainerElem = $(textSelector); + // 将编辑器区域原有的内容,暂存起来 + $children = $textContainerElem.children(); + } + + // 编辑区域 + $textElem = $('
                        '); + $textElem.attr('contenteditable', 'true').css('width', '100%').css('height', '100%'); + + // 初始化编辑区域内容 + if ($children && $children.length) { + $textElem.append($children); + } else { + $textElem.append($('


                        ')); + } + + // 编辑区域加入DOM + $textContainerElem.append($textElem); + + // 设置通用的 class + $toolbarElem.addClass('w-e-toolbar'); + $textContainerElem.addClass('w-e-text-container'); + $textContainerElem.css('z-index', zIndex); + $textElem.addClass('w-e-text'); + + // 添加 ID + var toolbarElemId = getRandom('toolbar-elem'); + $toolbarElem.attr('id', toolbarElemId); + var textElemId = getRandom('text-elem'); + $textElem.attr('id', textElemId); + + // 记录属性 + this.$toolbarElem = $toolbarElem; + this.$textContainerElem = $textContainerElem; + this.$textElem = $textElem; + this.toolbarElemId = toolbarElemId; + this.textElemId = textElemId; + + // 记录输入法的开始和结束 + var compositionEnd = true; + $textContainerElem.on('compositionstart', function () { + // 输入法开始输入 + compositionEnd = false; + }); + $textContainerElem.on('compositionend', function () { + // 输入法结束输入 + compositionEnd = true; + }); + + // 绑定 onchange + $textContainerElem.on('click keyup', function () { + // 输入法结束才出发 onchange + compositionEnd && _this.change && _this.change(); + }); + $toolbarElem.on('click', function () { + this.change && this.change(); + }); + + //绑定 onfocus 与 onblur 事件 + if (config$$1.onfocus || config$$1.onblur) { + // 当前编辑器是否是焦点状态 + this.isFocus = false; + + $(document).on('click', function (e) { + //判断当前点击元素是否在编辑器内 + var isChild = $textElem.isContain($(e.target)); + + //判断当前点击元素是否为工具栏 + var isToolbar = $toolbarElem.isContain($(e.target)); + var isMenu = $toolbarElem[0] == e.target ? true : false; + + if (!isChild) { + //若为选择工具栏中的功能,则不视为成blur操作 + if (isToolbar && !isMenu) { + return; + } + + if (_this.isFocus) { + _this.onblur && _this.onblur(); + } + _this.isFocus = false; + } else { + if (!_this.isFocus) { + _this.onfocus && _this.onfocus(); + } + _this.isFocus = true; + } + }); + } + }, + + // 封装 command + _initCommand: function _initCommand() { + this.cmd = new Command(this); + }, + + // 封装 selection range API + _initSelectionAPI: function _initSelectionAPI() { + this.selection = new API(this); + }, + + // 添加图片上传 + _initUploadImg: function _initUploadImg() { + this.uploadImg = new UploadImg(this); + }, + + // 初始化菜单 + _initMenus: function _initMenus() { + this.menus = new Menus(this); + this.menus.init(); + }, + + // 添加 text 区域 + _initText: function _initText() { + this.txt = new Text(this); + this.txt.init(); + }, + + // 初始化选区,将光标定位到内容尾部 + initSelection: function initSelection(newLine) { + var $textElem = this.$textElem; + var $children = $textElem.children(); + if (!$children.length) { + // 如果编辑器区域无内容,添加一个空行,重新设置选区 + $textElem.append($('


                        ')); + this.initSelection(); + return; + } + + var $last = $children.last(); + + if (newLine) { + // 新增一个空行 + var html = $last.html().toLowerCase(); + var nodeName = $last.getNodeName(); + if (html !== '
                        ' && html !== '' || nodeName !== 'P') { + // 最后一个元素不是


                        ,添加一个空行,重新设置选区 + $textElem.append($('


                        ')); + this.initSelection(); + return; + } + } + + this.selection.createRangeByElem($last, false, true); + this.selection.restoreSelection(); + }, + + // 绑定事件 + _bindEvent: function _bindEvent() { + // -------- 绑定 onchange 事件 -------- + var onChangeTimeoutId = 0; + var beforeChangeHtml = this.txt.html(); + var config$$1 = this.config; + + // onchange 触发延迟时间 + var onchangeTimeout = config$$1.onchangeTimeout; + onchangeTimeout = parseInt(onchangeTimeout, 10); + if (!onchangeTimeout || onchangeTimeout <= 0) { + onchangeTimeout = 200; + } + + var onchange = config$$1.onchange; + if (onchange && typeof onchange === 'function') { + // 触发 change 的有三个场景: + // 1. $textContainerElem.on('click keyup') + // 2. $toolbarElem.on('click') + // 3. editor.cmd.do() + this.change = function () { + // 判断是否有变化 + var currentHtml = this.txt.html(); + + if (currentHtml.length === beforeChangeHtml.length) { + // 需要比较每一个字符 + if (currentHtml === beforeChangeHtml) { + return; + } + } + + // 执行,使用节流 + if (onChangeTimeoutId) { + clearTimeout(onChangeTimeoutId); + } + onChangeTimeoutId = setTimeout(function () { + // 触发配置的 onchange 函数 + onchange(currentHtml); + beforeChangeHtml = currentHtml; + }, onchangeTimeout); + }; + } + + // -------- 绑定 onblur 事件 -------- + var onblur = config$$1.onblur; + if (onblur && typeof onblur === 'function') { + this.onblur = function () { + var currentHtml = this.txt.html(); + onblur(currentHtml); + }; + } + + // -------- 绑定 onfocus 事件 -------- + var onfocus = config$$1.onfocus; + if (onfocus && typeof onfocus === 'function') { + this.onfocus = function () { + onfocus(); + }; + } + }, + + // 创建编辑器 + create: function create() { + // 初始化配置信息 + this._initConfig(); + + // 初始化 DOM + this._initDom(); + + // 封装 command API + this._initCommand(); + + // 封装 selection range API + this._initSelectionAPI(); + + // 添加 text + this._initText(); + + // 初始化菜单 + this._initMenus(); + + // 添加 图片上传 + this._initUploadImg(); + + // 初始化选区,将光标定位到内容尾部 + this.initSelection(true); + + // 绑定事件 + this._bindEvent(); + }, + + // 解绑所有事件(暂时不对外开放) + _offAllEvent: function _offAllEvent() { + $.offAll(); + } +}; + +// 检验是否浏览器环境 +try { + document; +} catch (ex) { + throw new Error('请在浏览器环境下运行'); +} + +// polyfill +polyfill(); + +// 这里的 `inlinecss` 将被替换成 css 代码的内容,详情可去 ./gulpfile.js 中搜索 `inlinecss` 关键字 +var inlinecss = '.w-e-toolbar,.w-e-text-container,.w-e-menu-panel { padding: 0; margin: 0; box-sizing: border-box;}.w-e-toolbar *,.w-e-text-container *,.w-e-menu-panel * { padding: 0; margin: 0; box-sizing: border-box;}.w-e-clear-fix:after { content: ""; display: table; clear: both;}.w-e-toolbar .w-e-droplist { position: absolute; left: 0; top: 0; background-color: #fff; border: 1px solid #f1f1f1; border-right-color: #ccc; border-bottom-color: #ccc;}.w-e-toolbar .w-e-droplist .w-e-dp-title { text-align: center; color: #999; line-height: 2; border-bottom: 1px solid #f1f1f1; font-size: 13px;}.w-e-toolbar .w-e-droplist ul.w-e-list { list-style: none; line-height: 1;}.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item { color: #333; padding: 5px 0;}.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item:hover { background-color: #f1f1f1;}.w-e-toolbar .w-e-droplist ul.w-e-block { list-style: none; text-align: left; padding: 5px;}.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item { display: inline-block; *display: inline; *zoom: 1; padding: 3px 5px;}.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item:hover { background-color: #f1f1f1;}@font-face { font-family: \'w-e-icon\'; src: url(data:application/x-font-woff;charset=utf-8;base64,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) format(\'truetype\'); font-weight: normal; font-style: normal;}[class^="w-e-icon-"],[class*=" w-e-icon-"] { /* use !important to prevent issues with browser extensions that change fonts */ font-family: \'w-e-icon\' !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}.w-e-icon-close:before { content: "\\f00d";}.w-e-icon-upload2:before { content: "\\e9c6";}.w-e-icon-trash-o:before { content: "\\f014";}.w-e-icon-header:before { content: "\\f1dc";}.w-e-icon-pencil2:before { content: "\\e906";}.w-e-icon-paint-brush:before { content: "\\f1fc";}.w-e-icon-image:before { content: "\\e90d";}.w-e-icon-play:before { content: "\\e912";}.w-e-icon-location:before { content: "\\e947";}.w-e-icon-undo:before { content: "\\e965";}.w-e-icon-redo:before { content: "\\e966";}.w-e-icon-quotes-left:before { content: "\\e977";}.w-e-icon-list-numbered:before { content: "\\e9b9";}.w-e-icon-list2:before { content: "\\e9bb";}.w-e-icon-link:before { content: "\\e9cb";}.w-e-icon-happy:before { content: "\\e9df";}.w-e-icon-bold:before { content: "\\ea62";}.w-e-icon-underline:before { content: "\\ea63";}.w-e-icon-italic:before { content: "\\ea64";}.w-e-icon-strikethrough:before { content: "\\ea65";}.w-e-icon-table2:before { content: "\\ea71";}.w-e-icon-paragraph-left:before { content: "\\ea77";}.w-e-icon-paragraph-center:before { content: "\\ea78";}.w-e-icon-paragraph-right:before { content: "\\ea79";}.w-e-icon-terminal:before { content: "\\f120";}.w-e-icon-page-break:before { content: "\\ea68";}.w-e-icon-cancel-circle:before { content: "\\ea0d";}.w-e-toolbar { display: -webkit-box; display: -ms-flexbox; display: flex; padding: 0 5px; /* flex-wrap: wrap; */ /* 单个菜单 */}.w-e-toolbar .w-e-menu { position: relative; text-align: center; padding: 5px 10px; cursor: pointer;}.w-e-toolbar .w-e-menu i { color: #999;}.w-e-toolbar .w-e-menu:hover i { color: #333;}.w-e-toolbar .w-e-active i { color: #1e88e5;}.w-e-toolbar .w-e-active:hover i { color: #1e88e5;}.w-e-text-container .w-e-panel-container { position: absolute; top: 0; left: 50%; border: 1px solid #ccc; border-top: 0; box-shadow: 1px 1px 2px #ccc; color: #333; background-color: #fff; /* 为 emotion panel 定制的样式 */ /* 上传图片的 panel 定制样式 */}.w-e-text-container .w-e-panel-container .w-e-panel-close { position: absolute; right: 0; top: 0; padding: 5px; margin: 2px 5px 0 0; cursor: pointer; color: #999;}.w-e-text-container .w-e-panel-container .w-e-panel-close:hover { color: #333;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title { list-style: none; display: -webkit-box; display: -ms-flexbox; display: flex; font-size: 14px; margin: 2px 10px 0 10px; border-bottom: 1px solid #f1f1f1;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-item { padding: 3px 5px; color: #999; cursor: pointer; margin: 0 3px; position: relative; top: 1px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-active { color: #333; border-bottom: 1px solid #333; cursor: default; font-weight: 700;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content { padding: 10px 15px 10px 15px; font-size: 16px; /* 输入框的样式 */ /* 按钮的样式 */}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content button:focus { outline: none;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea { width: 100%; border: 1px solid #ccc; padding: 5px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus { border-color: #1e88e5;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text] { border: none; border-bottom: 1px solid #ccc; font-size: 14px; height: 20px; color: #333; text-align: left;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].small { width: 30px; text-align: center;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].block { display: block; width: 100%; margin: 10px 0;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text]:focus { border-bottom: 2px solid #1e88e5;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button { font-size: 14px; color: #1e88e5; border: none; padding: 5px 10px; background-color: #fff; cursor: pointer; border-radius: 3px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.left { float: left; margin-right: 10px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.right { float: right; margin-left: 10px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.gray { color: #999;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.red { color: #c24f4a;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button:hover { background-color: #f1f1f1;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container:after { content: ""; display: table; clear: both;}.w-e-text-container .w-e-panel-container .w-e-emoticon-container .w-e-item { cursor: pointer; font-size: 18px; padding: 0 3px; display: inline-block; *display: inline; *zoom: 1;}.w-e-text-container .w-e-panel-container .w-e-up-img-container { text-align: center;}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn { display: inline-block; *display: inline; *zoom: 1; color: #999; cursor: pointer; font-size: 60px; line-height: 1;}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn:hover { color: #333;}.w-e-text-container { position: relative;}.w-e-text-container .w-e-progress { position: absolute; background-color: #1e88e5; bottom: 0; left: 0; height: 1px;}.w-e-text { padding: 0 10px; overflow-y: scroll;}.w-e-text p,.w-e-text h1,.w-e-text h2,.w-e-text h3,.w-e-text h4,.w-e-text h5,.w-e-text table,.w-e-text pre { margin: 10px 0; line-height: 1.5;}.w-e-text ul,.w-e-text ol { margin: 10px 0 10px 20px;}.w-e-text blockquote { display: block; border-left: 8px solid #d0e5f2; padding: 5px 10px; margin: 10px 0; line-height: 1.4; font-size: 100%; background-color: #f1f1f1;}.w-e-text code { display: inline-block; *display: inline; *zoom: 1; background-color: #f1f1f1; border-radius: 3px; padding: 3px 5px; margin: 0 3px;}.w-e-text pre code { display: block;}.w-e-text table { border-top: 1px solid #ccc; border-left: 1px solid #ccc;}.w-e-text table td,.w-e-text table th { border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; padding: 3px 5px;}.w-e-text table th { border-bottom: 2px solid #ccc; text-align: center;}.w-e-text:focus { outline: none;}.w-e-text img { cursor: pointer;}.w-e-text img:hover { box-shadow: 0 0 5px #333;}'; + +// 将 css 代码添加到 + + +
                        +
                        +
                        +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        +
                        + +
                        +
                        + + + + + + + + + + + + + + + + diff --git a/novel-admin/src/main/resources/templates/common/genColumns/add.html b/novel-admin/src/main/resources/templates/common/genColumns/add.html new file mode 100644 index 0000000..38e754d --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/genColumns/add.html @@ -0,0 +1,108 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + + diff --git a/novel-admin/src/main/resources/templates/common/genColumns/detail.html b/novel-admin/src/main/resources/templates/common/genColumns/detail.html new file mode 100644 index 0000000..185b026 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/genColumns/detail.html @@ -0,0 +1,132 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + +
                        + +
                        + + + + +
                        +
                        +
                        + +
                        + + + + +
                        +
                        +
                        + +
                        + + + + +
                        +
                        +
                        + +
                        + + + + +
                        +
                        +
                        + +
                        + + + + +
                        +
                        +
                        + +
                        + + + + +
                        +
                        +
                        + +
                        + + + + +
                        +
                        +
                        + +
                        + + + + +
                        +
                        +
                        + +
                        + + + + +
                        +
                        +
                        + +
                        + + + + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + diff --git a/novel-admin/src/main/resources/templates/common/genColumns/edit.html b/novel-admin/src/main/resources/templates/common/genColumns/edit.html new file mode 100644 index 0000000..a42b8af --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/genColumns/edit.html @@ -0,0 +1,34 @@ + + + + + + + + +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + + + + diff --git a/novel-admin/src/main/resources/templates/common/genColumns/genColumns.html b/novel-admin/src/main/resources/templates/common/genColumns/genColumns.html new file mode 100644 index 0000000..4e74b46 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/genColumns/genColumns.html @@ -0,0 +1,49 @@ + + + + + +
                        +
                        +
                        +
                        + + + +
                        +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/common/generator/Controller.java.vm b/novel-admin/src/main/resources/templates/common/generator/Controller.java.vm new file mode 100644 index 0000000..ee6477f --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/Controller.java.vm @@ -0,0 +1,135 @@ +package ${package}.controller; + +import java.util.List; +import java.util.Map; + +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import io.swagger.annotations.ApiOperation; + + +import ${package}.domain.${className}DO; +import ${package}.service.${className}Service; +import com.java2nb.common.utils.PageBean; +import com.java2nb.common.utils.Query; +import com.java2nb.common.utils.R; + +/** + * ${comments} + * + * @author ${author} + * @email ${email} + * @date ${datetime} + */ + +@Controller +@RequestMapping("/${pathName}/${classname}") +public class ${className}Controller { + @Autowired + private ${className}Service ${classname}Service; + + @GetMapping() + @RequiresPermissions("${pathName}:${classname}:${classname}") + String ${className}() { + return "${pathName}/${classname}/${classname}"; + } + + @ApiOperation(value = "获取${comments}列表", notes = "获取${comments}列表") + @ResponseBody + @GetMapping("/list") + @RequiresPermissions("${pathName}:${classname}:${classname}") + public R list(@RequestParam Map params) { + //查询列表数据 + Query query = new Query(params); + List<${className}DO> ${classname}List = ${classname}Service.list(query); + int total = ${classname}Service.count(query); + PageBean pageBean = new PageBean(${classname}List, total); + return R.ok().put("data", pageBean); + } + + @ApiOperation(value = "新增${comments}页面", notes = "新增${comments}页面") + @GetMapping("/add") + @RequiresPermissions("${pathName}:${classname}:add") + String add() { + return "${pathName}/${classname}/add"; + } + + @ApiOperation(value = "修改${comments}页面", notes = "修改${comments}页面") + @GetMapping("/edit/{${pk.attrname}}") + @RequiresPermissions("${pathName}:${classname}:edit") + String edit(@PathVariable("${pk.attrname}") ${pk.javaType} ${pk.attrname}, Model model) { + ${className}DO ${classname} = ${classname}Service.get(${pk.attrname}); + model.addAttribute("${classname}", ${classname}); + return "${pathName}/${classname}/edit"; + } + + @ApiOperation(value = "查看${comments}页面", notes = "查看${comments}页面") + @GetMapping("/detail/{${pk.attrname}}") + @RequiresPermissions("${pathName}:${classname}:detail") + String detail(@PathVariable("${pk.attrname}") ${pk.javaType} ${pk.attrname}, Model model) { + ${className}DO ${classname} = ${classname}Service.get(${pk.attrname}); + model.addAttribute("${classname}", ${classname}); + return "${pathName}/${classname}/detail"; + } + + /** + * 保存 + */ + @ApiOperation(value = "新增${comments}", notes = "新增${comments}") + @ResponseBody + @PostMapping("/save") + @RequiresPermissions("${pathName}:${classname}:add") + public R save( ${className}DO ${classname}) { + if (${classname}Service.save(${classname}) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 修改 + */ + @ApiOperation(value = "修改${comments}", notes = "修改${comments}") + @ResponseBody + @RequestMapping("/update") + @RequiresPermissions("${pathName}:${classname}:edit") + public R update( ${className}DO ${classname}) { + ${classname}Service.update(${classname}); + return R.ok(); + } + + /** + * 删除 + */ + @ApiOperation(value = "删除${comments}", notes = "删除${comments}") + @PostMapping("/remove") + @ResponseBody + @RequiresPermissions("${pathName}:${classname}:remove") + public R remove( ${pk.javaType} ${pk.attrname}) { + if (${classname}Service.remove(${pk.attrname}) > 0) { + return R.ok(); + } + return R.error(); + } + + /** + * 删除 + */ + @ApiOperation(value = "批量删除${comments}", notes = "批量删除${comments}") + @PostMapping("/batchRemove") + @ResponseBody + @RequiresPermissions("${pathName}:${classname}:batchRemove") + public R remove(@RequestParam("ids[]") ${pk.javaType}[] ${pk.attrname}s) { + ${classname}Service.batchRemove(${pk.attrname}s); + return R.ok(); + } + +} diff --git a/novel-admin/src/main/resources/templates/common/generator/Dao.java.vm b/novel-admin/src/main/resources/templates/common/generator/Dao.java.vm new file mode 100644 index 0000000..0964018 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/Dao.java.vm @@ -0,0 +1,32 @@ +package ${package}.dao; + +import ${package}.domain.${className}DO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Mapper; + +/** + * ${comments} + * @author ${author} + * @email ${email} + * @date ${datetime} + */ +@Mapper +public interface ${className}Dao { + + ${className}DO get(${pk.javaType} ${pk.attrname}); + + List<${className}DO> list(Map map); + + int count(Map map); + + int save(${className}DO ${classname}); + + int update(${className}DO ${classname}); + + int remove(${pk.javaType} ${pk.columnName}); + + int batchRemove(${pk.javaType}[] ${pk.attrname}s); +} diff --git a/novel-admin/src/main/resources/templates/common/generator/Mapper.java.vm b/novel-admin/src/main/resources/templates/common/generator/Mapper.java.vm new file mode 100644 index 0000000..1e70543 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/Mapper.java.vm @@ -0,0 +1,94 @@ +package ${package}.dao; + +import ${package}.domain.${className}DO; + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; +/** + * ${comments} + * + * @author ${author} + * @email ${email} + * @date ${datetime} + */ +@Mapper +public interface ${className}Mapper { + + @Select("select #foreach($column in $columns) +`$column.columnName`#if($velocityCount != $columns.size()), #end +#end from ${tableName} where ${pk.columnName} = #{id}") + ${className}DO get(${pk.javaType} ${pk.attrname}); + + @Select("") + List<${className}DO> list(Map map); + + @Select("") + int count(Map map); + + @Insert("insert into ${tableName} (#foreach($column in $columns) +#if($column.columnName != $pk.columnName || $pk.extra != 'auto_increment') +`$column.columnName`#if($velocityCount != $columns.size()), #end +#end +#end)" + + "values (#foreach($column in $columns) +#if($column.columnName != $pk.columnName || $pk.extra != 'auto_increment') +#{$column.attrname}#if($velocityCount != $columns.size()), #end +#end +#end)") + int save(${className}DO ${classname}); + + int saveSelective(${className}DO ${classname}); + + @Update("") + int update(${className}DO ${classname}); + + @Delete("delete from ${tableName} where ${pk.columnName} =#{${pk.attrname}}") + int remove(${pk.javaType} ${pk.columnName}); + + @Delete("") + int batchRemove(${pk.javaType}[] ${pk.attrname}s); +} diff --git a/novel-admin/src/main/resources/templates/common/generator/Mapper.xml.vm b/novel-admin/src/main/resources/templates/common/generator/Mapper.xml.vm new file mode 100644 index 0000000..e12340c --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/Mapper.xml.vm @@ -0,0 +1,98 @@ + + + + + + + + + + + + + insert into ${tableName} + ( +#foreach($column in $columns) +#if($column.columnName != $pk.columnName || $pk.extra != 'auto_increment') + `$column.columnName`#if($velocityCount != $columns.size()), #end + +#end +#end + ) + values + ( +#foreach($column in $columns) +#if($column.columnName != $pk.columnName || $pk.extra != 'auto_increment') + #{$column.attrname}#if($velocityCount != $columns.size()), #end + +#end +#end + ) + + + + insert into ${tableName} + ( + #foreach($column in $columns) + `$column.columnName`#if($velocityCount != $columns.size()), #end + #end + ) + values + ( + #foreach($column in $columns) + #{$column.attrname}#if($velocityCount != $columns.size()), #end + #end + ) + + + + update ${tableName} + +#foreach($column in $columns) +#if($column.columnName != $pk.columnName) + `$column.columnName` = #{$column.attrname}#if($velocityCount != $columns.size()), #end +#end +#end + + where ${pk.columnName} = #{${pk.attrname}} + + + + delete from ${tableName} where ${pk.columnName} = #{value} + + + + delete from ${tableName} where ${pk.columnName} in + + #{${pk.attrname}} + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/common/generator/Service.java.vm b/novel-admin/src/main/resources/templates/common/generator/Service.java.vm new file mode 100644 index 0000000..c7517d1 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/Service.java.vm @@ -0,0 +1,30 @@ +package ${package}.service; + +import ${package}.domain.${className}DO; + +import java.util.List; +import java.util.Map; + +/** + * ${comments} + * + * @author ${author} + * @email ${email} + * @date ${datetime} + */ +public interface ${className}Service { + + ${className}DO get(${pk.javaType} ${pk.attrname}); + + List<${className}DO> list(Map map); + + int count(Map map); + + int save(${className}DO ${classname}); + + int update(${className}DO ${classname}); + + int remove(${pk.javaType} ${pk.attrname}); + + int batchRemove(${pk.javaType}[] ${pk.attrname}s); +} diff --git a/novel-admin/src/main/resources/templates/common/generator/ServiceImpl.java.vm b/novel-admin/src/main/resources/templates/common/generator/ServiceImpl.java.vm new file mode 100644 index 0000000..0915853 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/ServiceImpl.java.vm @@ -0,0 +1,55 @@ +package ${package}.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +import ${package}.dao.${className}Dao; +import ${package}.domain.${className}DO; +import ${package}.service.${className}Service; + + + +@Service +public class ${className}ServiceImpl implements ${className}Service { + @Autowired + private ${className}Dao ${classname}Dao; + + @Override + public ${className}DO get(${pk.javaType} ${pk.attrname}){ + return ${classname}Dao.get(${pk.attrname}); + } + + @Override + public List<${className}DO> list(Map map){ + return ${classname}Dao.list(map); + } + + @Override + public int count(Map map){ + return ${classname}Dao.count(map); + } + + @Override + public int save(${className}DO ${classname}){ + return ${classname}Dao.save(${classname}); + } + + @Override + public int update(${className}DO ${classname}){ + return ${classname}Dao.update(${classname}); + } + + @Override + public int remove(${pk.javaType} ${pk.attrname}){ + return ${classname}Dao.remove(${pk.attrname}); + } + + @Override + public int batchRemove(${pk.javaType}[] ${pk.attrname}s){ + return ${classname}Dao.batchRemove(${pk.attrname}s); + } + +} diff --git a/novel-admin/src/main/resources/templates/common/generator/add.html.vm b/novel-admin/src/main/resources/templates/common/generator/add.html.vm new file mode 100644 index 0000000..c9577f4 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/add.html.vm @@ -0,0 +1,83 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + #foreach($column in $columns) + #if($column.columnName != $pk.columnName) +
                        + #if($column.pageType != 11 && $column.pageType != 12) + + #end +
                        + #if($column.pageType == 4) + + #elseif($column.pageType == 1) + + #elseif($column.pageType == 2) + + + #elseif($column.pageType == 3) + + #elseif($column.pageType == 5) + + #elseif($column.pageType == 6) + +
                        + +
                        + #elseif($column.pageType == 7) + + + #elseif($column.pageType == 11) + + #*#else + *# + #end + +
                        +
                        + #end + #end +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + + + diff --git a/novel-admin/src/main/resources/templates/common/generator/add.js.vm b/novel-admin/src/main/resources/templates/common/generator/add.js.vm new file mode 100644 index 0000000..85f27c2 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/add.js.vm @@ -0,0 +1,121 @@ +var E = window.wangEditor; +$("[id^='contentEditor']").each(function (index, ele) { + var relName = $(ele).attr("id").substring(13); + var editor = new E('#contentEditor' + relName); +// 自定义菜单配置 + editor.customConfig.menus = [ + 'head', // 标题 + 'bold', // 粗体 + 'fontSize', // 字号 + 'fontName', // 字体 + 'italic', // 斜体 + 'underline', // 下划线 + 'strikeThrough', // 删除线 + 'foreColor', // 文字颜色 + //'backColor', // 背景颜色 + //'link', // 插入链接 + 'list', // 列表 + 'justify', // 对齐方式 + 'quote', // 引用 + 'emoticon', // 表情 + 'image', // 插入图片 + //'table', // 表格 + //'video', // 插入视频 + //'code', // 插入代码 + 'undo', // 撤销 + 'redo' // 重复 + ]; + editor.customConfig.onchange = function (html) { + // html 即变化之后的内容 + $("#" + relName).val(html); + } + editor.customConfig.uploadImgShowBase64 = true; + editor.create(); + +}) + +$("[id^='picImage']").each(function (index, ele) { + var relName = $(ele).attr("id").substring(8); + layui.use('upload', function () { + var upload = layui.upload; + //执行实例 + var uploadInst = upload.render({ + elem: '#picImage' + relName, //绑定元素 + url: '/common/sysFile/upload', //上传接口 + size: 1000, + accept: 'file', + done: function (r) { + $("#picImage" + relName).attr("src", r.fileName); + $("#" + relName).val(r.fileName); + }, + error: function (r) { + layer.msg(r.msg); + } + }); + }); + +}); + + + + + + +$().ready(function () { + validateRule(); +}); + +$.validator.setDefaults({ + submitHandler: function () { + save(); + } +}); +function save() { + $.ajax({ + cache: true, + type: "POST", + url: "/${pathName}/${classname}/save", + data: $('#signupForm').serialize(),// 你的formid + async: false, + error: function (request) { + parent.layer.alert("Connection error"); + }, + success: function (data) { + if (data.code == 0) { + parent.layer.msg("操作成功"); + parent.reLoad(); + var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引 + parent.layer.close(index); + + } else { + parent.layer.alert(data.msg) + } + + } + }); + +} +function validateRule() { + var icon = " "; + $("#signupForm").validate({ + ignore: "", + rules: { + #foreach($column in $columns) + #if($column.columnName != $pk.columnName && $column.isRequired == 1) + ${column.attrname}: { + required: true + }#if($velocityCount != $columns.size()), #end + #end + #end + }, + messages: { + #foreach($column in $columns) + #if($column.columnName != $pk.columnName && $column.isRequired == 1) + ${column.attrname}: { + required: icon + "请选择${column.columnLabel}" + }#if($velocityCount != $columns.size()), #end + #end + #end + } +}) +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/common/generator/detail.html.vm b/novel-admin/src/main/resources/templates/common/generator/detail.html.vm new file mode 100644 index 0000000..1d52831 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/detail.html.vm @@ -0,0 +1,59 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + + #foreach($column in $columns) + #if($column.columnName != $pk.columnName) +
                        + + + #if($column.pageType == 4) +
                        +
                        + #elseif($column.pageType == 2) +
                        +
                        + + #elseif($column.pageType == 6) +
                        + #elseif($column.pageType == 7) +
                        + +
                        + #else +
                        +
                        + #*#else + *# + #end + + +
                        + #end + #end +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + diff --git a/novel-admin/src/main/resources/templates/common/generator/domain.java.vm b/novel-admin/src/main/resources/templates/common/generator/domain.java.vm new file mode 100644 index 0000000..5f36a6e --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/domain.java.vm @@ -0,0 +1,55 @@ +package ${package}.domain; + +import java.io.Serializable; + + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.java2nb.common.jsonserializer.LongToStringSerializer; + + +import org.springframework.format.annotation.DateTimeFormat; +import java.util.Date; + + + +/** + * ${comments} + * + * @author ${author} + * @email ${email} + * @date ${datetime} + */ +public class ${className}DO implements Serializable { + private static final long serialVersionUID = 1L; + + +#foreach ($column in $columns) + //$column.columnComment + #if($column.javaType == "Long") + //java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值) + //所以通过序列化成字符串来解决 + @JsonSerialize(using = LongToStringSerializer.class) + #end + #if($column.javaType == "Date") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + #end + private $column.javaType $column.attrname; +#end + +#foreach ($column in $columns) + /** + * 设置:${column.columnComment} + */ + public void set${column.attrName}($column.javaType $column.attrname) { + this.$column.attrname = $column.attrname; + } + /** + * 获取:${column.columnComment} + */ + public $column.javaType get${column.attrName}() { + return $column.attrname; + } +#end +} diff --git a/novel-admin/src/main/resources/templates/common/generator/edit.html b/novel-admin/src/main/resources/templates/common/generator/edit.html new file mode 100644 index 0000000..7da401d --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/edit.html @@ -0,0 +1,71 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        + +
                        + +
                        + +
                        + +
                        +
                        +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + + diff --git a/novel-admin/src/main/resources/templates/common/generator/edit.html.vm b/novel-admin/src/main/resources/templates/common/generator/edit.html.vm new file mode 100644 index 0000000..072be5b --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/edit.html.vm @@ -0,0 +1,88 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + + #foreach($column in $columns) + #if($column.columnName != $pk.columnName) +
                        + #if($column.pageType != 11 && $column.pageType != 12) + + #end +
                        + #if($column.pageType == 4) + + #elseif($column.pageType == 1) + + #elseif($column.pageType == 2) + + + #elseif($column.pageType == 3) + + #elseif($column.pageType == 5) + + #elseif($column.pageType == 6) + +
                        + +
                        + #elseif($column.pageType == 7) + + + #elseif($column.pageType == 11) + + #*#else + *# + #end +
                        +
                        + #end + #end +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + + + diff --git a/novel-admin/src/main/resources/templates/common/generator/edit.js.vm b/novel-admin/src/main/resources/templates/common/generator/edit.js.vm new file mode 100644 index 0000000..17ca5f9 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/edit.js.vm @@ -0,0 +1,119 @@ +var E = window.wangEditor; +$("[id^='contentEditor']").each(function (index, ele) { + var relName = $(ele).attr("id").substring(13); + var editor = new E('#contentEditor' + relName); +// 自定义菜单配置 + editor.customConfig.menus = [ + 'head', // 标题 + 'bold', // 粗体 + 'fontSize', // 字号 + 'fontName', // 字体 + 'italic', // 斜体 + 'underline', // 下划线 + 'strikeThrough', // 删除线 + 'foreColor', // 文字颜色 + //'backColor', // 背景颜色 + //'link', // 插入链接 + 'list', // 列表 + 'justify', // 对齐方式 + 'quote', // 引用 + 'emoticon', // 表情 + 'image', // 插入图片 + //'table', // 表格 + //'video', // 插入视频 + //'code', // 插入代码 + 'undo', // 撤销 + 'redo' // 重复 + ]; + editor.customConfig.onchange = function (html) { + // html 即变化之后的内容 + $("#" + relName).val(html); + } + editor.customConfig.uploadImgShowBase64 = true; + editor.create(); + editor.txt.html($("#" + relName).val()); + +}) + +$("[id^='picImage']").each(function (index, ele) { + var relName = $(ele).attr("id").substring(8); + layui.use('upload', function () { + var upload = layui.upload; + //执行实例 + var uploadInst = upload.render({ + elem: '#picImage' + relName, //绑定元素 + url: '/common/sysFile/upload', //上传接口 + size: 1000, + accept: 'file', + done: function (r) { + $("#picImage" + relName).attr("src", r.fileName); + $("#" + relName).val(r.fileName); + }, + error: function (r) { + layer.msg(r.msg); + } + }); + }); + +}); + +$().ready(function () { + validateRule(); +}); + +$.validator.setDefaults({ + submitHandler: function () { + update(); + } +}); +function update() { + $.ajax({ + cache: true, + type: "POST", + url: "/${pathName}/${classname}/update", + data: $('#signupForm').serialize(),// 你的formid + async: false, + error: function (request) { + parent.layer.alert("Connection error"); + }, + success: function (data) { + if (data.code == 0) { + parent.layer.msg("操作成功"); + parent.reLoad(); + var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引 + parent.layer.close(index); + + } else { + parent.layer.alert(data.msg) + } + + } + }); + +} +function validateRule() { + var icon = " "; + $("#signupForm").validate({ + ignore: "", + rules: { + #foreach($column in $columns) + #if($column.columnName != $pk.columnName && $column.isRequired == 1) + ${column.attrname}: + { + required: true + }#if($velocityCount != $columns.size()), #end + #end + #end +}, + messages: { + #foreach($column in $columns) + #if($column.columnName != $pk.columnName && $column.isRequired == 1) + ${column.attrname}: + { + required: icon + "请选择${column.columnLabel}" + }#if($velocityCount != $columns.size()), #end + #end + #end + } +}) +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/common/generator/list.html b/novel-admin/src/main/resources/templates/common/generator/list.html new file mode 100644 index 0000000..086023e --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/list.html @@ -0,0 +1,43 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + + +
                        +
                        + +
                        + +
                        + +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +
                        + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/common/generator/list.html.vm b/novel-admin/src/main/resources/templates/common/generator/list.html.vm new file mode 100644 index 0000000..dcd1dca --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/list.html.vm @@ -0,0 +1,66 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + + +
                        +
                        + +
                        + +
                        +
                        + +
                        +
                        + +
                        + +
                        +
                        +
                        +
                        +
                        + +
                        + +
                        +
                        + +
                        +
                        + +
                        +
                        + +
                        +
                        + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/common/generator/list.js.vm b/novel-admin/src/main/resources/templates/common/generator/list.js.vm new file mode 100644 index 0000000..2027688 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/list.js.vm @@ -0,0 +1,197 @@ +var prefix = "/${pathName}/${classname}" +$(function () { + load(); +}); + +function load() { + $('#exampleTable') + .bootstrapTable( + { + method: 'get', // 服务器数据的请求方式 get or post + url: prefix + "/list", // 服务器数据的加载地址 + // showRefresh : true, + // showToggle : true, + // showColumns : true, + iconSize: 'outline', + toolbar: '#exampleToolbar', + striped: true, // 设置为true会有隔行变色效果 + dataType: "json", // 服务器返回的数据类型 + pagination: true, // 设置为true会在底部显示分页条 + // queryParamsType : "limit", + // //设置为limit则会发送符合RESTFull格式的参数 + singleSelect: false, // 设置为true将禁止多选 + // contentType : "application/x-www-form-urlencoded", + // //发送到服务器的数据编码类型 + pageSize: 10, // 如果设置了分页,每页数据条数 + pageNumber: 1, // 如果设置了分布,首页页码 + //search : true, // 是否显示搜索框 + showColumns: false, // 是否显示内容下拉框(选择显示的列) + sidePagination: "server", // 设置在哪里进行分页,可选值为"client" 或者 "server" + queryParams: function (params) { + //说明:传入后台的参数包括offset开始索引,limit步长,sort排序列,order:desc或者,以及所有列的键值对 + var queryParams = getFormJson("searchForm"); + queryParams.limit = params.limit; + queryParams.offset = params.offset; + return queryParams; + }, + // //请求服务器数据时,你可以通过重写参数的方式添加一些额外的参数,例如 toolbar 中的参数 如果 + // queryParamsType = 'limit' ,返回参数必须包含 + // limit, offset, search, sort, order 否则, 需要包含: + // pageSize, pageNumber, searchText, sortName, + // sortOrder. + // 返回false将会终止请求 + responseHandler: function (rs) { + + if (rs.code == 0) { + return rs.data; + } else { + parent.layer.alert(rs.msg) + return {total: 0, rows: []}; + } + }, + columns: [ + { + checkbox: true + }, + { + title: '序号', + formatter: function () { + return arguments[2] + 1; + } + }, + #foreach($column in $columns) + #if($column.pageType == 2) + { + field: '${column.attrname}', + title: '${column.columnLabel}', + formatter: function (value, row, index) { + return formatDict("${column.dictType}", value); + } + }, + #elseif($column.pageType == 7) + { + field: '${column.attrname}', + title: '${column.columnLabel}', + formatter: function (value, row, index) { + return ""; + } + }, + #else + { + field: '${column.attrname}', + title: '${column.columnLabel}' + }, + + #end + + #end + { + title: '操作', + field: 'id', + align: 'center', + formatter: function (value, row, index) { + var d = ' '; + var e = ' '; + var r = ' '; + return d + e + r; + } + }] + }); +} +function reLoad() { + $('#exampleTable').bootstrapTable('refresh'); +} +function add() { + layer.open({ + type: 2, + title: '增加', + maxmin: true, + shadeClose: false, // 点击遮罩关闭层 + area: ['800px', '520px'], + content: prefix + '/add' // iframe的url + }); +} +function detail(id) { + layer.open({ + type: 2, + title: '详情', + maxmin: true, + shadeClose: false, // 点击遮罩关闭层 + area: ['800px', '520px'], + content: prefix + '/detail/' + id // iframe的url + }); +} +function edit(id) { + layer.open({ + type: 2, + title: '编辑', + maxmin: true, + shadeClose: false, // 点击遮罩关闭层 + area: ['800px', '520px'], + content: prefix + '/edit/' + id // iframe的url + }); +} +function remove(id) { + layer.confirm('确定要删除选中的记录?', { + btn: ['确定', '取消'] + }, function () { + $.ajax({ + url: prefix + "/remove", + type: "post", + data: { + '${pk.attrname}': id + }, + success: function (r) { + if (r.code == 0) { + layer.msg(r.msg); + reLoad(); + } else { + layer.msg(r.msg); + } + } + }); + }) +} + +function resetPwd(id) { +} +function batchRemove() { + var rows = $('#exampleTable').bootstrapTable('getSelections'); // 返回所有选择的行,当没有选择的记录时,返回一个空数组 + if (rows.length == 0) { + layer.msg("请选择要删除的数据"); + return; + } + layer.confirm("确认要删除选中的'" + rows.length + "'条数据吗?", { + btn: ['确定', '取消'] + // 按钮 + }, function () { + var ids = new Array(); + // 遍历所有选择的行数据,取每条数据对应的ID + $.each(rows, function (i, row) { + ids[i] = row['${pk.attrname}']; + }); + $.ajax({ + type: 'POST', + data: { + "ids": ids + }, + url: prefix + '/batchRemove', + success: function (r) { + if (r.code == 0) { + layer.msg(r.msg); + reLoad(); + } else { + layer.msg(r.msg); + } + } + }); + }, function () { + + }); +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/common/generator/menu.sql.vm b/novel-admin/src/main/resources/templates/common/generator/menu.sql.vm new file mode 100644 index 0000000..3b0a977 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/generator/menu.sql.vm @@ -0,0 +1,18 @@ +-- 菜单SQL +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + VALUES ('1', '${comments}', '${pathName}/${classname}', '${pathName}:${classname}:${classname}', '1', 'fa', '6'); + +-- 按钮父菜单ID +set @parentId = @@identity; + +-- 菜单对应按钮SQL +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + SELECT @parentId, '查看', null, '${pathName}:${classname}:detail', '2', null, '6'; +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + SELECT @parentId, '新增', null, '${pathName}:${classname}:add', '2', null, '6'; +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + SELECT @parentId, '修改', null, '${pathName}:${classname}:edit', '2', null, '6'; +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + SELECT @parentId, '删除', null, '${pathName}:${classname}:remove', '2', null, '6'; +INSERT INTO `sys_menu` (`parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`) + SELECT @parentId, '批量删除', null, '${pathName}:${classname}:batchRemove', '2', null, '6'; diff --git a/novel-admin/src/main/resources/templates/common/log/log.html b/novel-admin/src/main/resources/templates/common/log/log.html new file mode 100644 index 0000000..1722b10 --- /dev/null +++ b/novel-admin/src/main/resources/templates/common/log/log.html @@ -0,0 +1,40 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + +
                        +
                        + +
                        + + +
                        + +
                        +
                        +
                        +
                        +
                        +
                        + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/error/403.html b/novel-admin/src/main/resources/templates/error/403.html new file mode 100644 index 0000000..7738e91 --- /dev/null +++ b/novel-admin/src/main/resources/templates/error/403.html @@ -0,0 +1,34 @@ + + + + + +403 页面 + + + + + + + + + +
                        +

                        403

                        +

                        您没有访问权限!

                        +
                        + 抱歉,请联系管理员哦~ +
                        +
                        + +
                        + +
                        +
                        +
                        + + + + + diff --git a/novel-admin/src/main/resources/templates/error/404.html b/novel-admin/src/main/resources/templates/error/404.html new file mode 100644 index 0000000..55cd586 --- /dev/null +++ b/novel-admin/src/main/resources/templates/error/404.html @@ -0,0 +1,41 @@ + + + + + + + + + 404 页面 + + + + + + + + + + + + +
                        +

                        404

                        +

                        页面未找到!

                        + +
                        + 抱歉,页面好像去火星了~ +
                        +
                        + +
                        + +
                        +
                        +
                        + + + + + + diff --git a/novel-admin/src/main/resources/templates/error/500.html b/novel-admin/src/main/resources/templates/error/500.html new file mode 100644 index 0000000..194f536 --- /dev/null +++ b/novel-admin/src/main/resources/templates/error/500.html @@ -0,0 +1,43 @@ + + + + + + + + + + 500错误 + + + + + + + + + + + + + + +
                        +

                        500

                        +

                        服务器内部错误

                        + +
                        + 服务器好像出错了... +
                        您可以返回主页看看 +
                        主页 +
                        +
                        + + + + + + + + + diff --git a/novel-admin/src/main/resources/templates/error/error.html b/novel-admin/src/main/resources/templates/error/error.html new file mode 100644 index 0000000..802339f --- /dev/null +++ b/novel-admin/src/main/resources/templates/error/error.html @@ -0,0 +1,30 @@ + + + + + + 500错误 + + + + + + + + +
                        +

                        500

                        +

                        服务器内部错误

                        +
                        + 服务器好像出错了...
                        + 您可以返回主页看看
                        +
                        +
                        + 主页 +
                        +
                        + + + + + diff --git a/novel-admin/src/main/resources/templates/include.html b/novel-admin/src/main/resources/templates/include.html new file mode 100644 index 0000000..9bd4ce7 --- /dev/null +++ b/novel-admin/src/main/resources/templates/include.html @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + +
                        + + + + + + + + + + + + + + + + + + + + +
                        diff --git a/novel-admin/src/main/resources/templates/index.html b/novel-admin/src/main/resources/templates/index.html new file mode 100644 index 0000000..cbfe9ca --- /dev/null +++ b/novel-admin/src/main/resources/templates/index.html @@ -0,0 +1,302 @@ + + + + + + + 小说精品屋通用后台权限管理系统 + + + + + + + + + + + +
                        + + + + +
                        +
                        + +
                        +
                        + + + + + +
                        +
                        + +
                        + +
                        + + + +
                        + + + + + + + + + + + + + + + + + + diff --git a/novel-admin/src/main/resources/templates/login.html b/novel-admin/src/main/resources/templates/login.html new file mode 100644 index 0000000..2f09be2 --- /dev/null +++ b/novel-admin/src/main/resources/templates/login.html @@ -0,0 +1,129 @@ + + + + + 后台管理-登陆 + + + + + + + + + + + +
                        + +
                        + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/main.html b/novel-admin/src/main/resources/templates/main.html new file mode 100644 index 0000000..7792e47 --- /dev/null +++ b/novel-admin/src/main/resources/templates/main.html @@ -0,0 +1,454 @@ + + + + + 首页 + + + + + + + + + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        数据统计
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + 实时 +
                        用户统计
                        +
                        +
                        +

                        1234

                        + 当前分类总记录数 +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + 实时 +
                        商品统计
                        +
                        +
                        +

                        1234

                        + 当前分类总记录数 +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + 实时 +
                        浏览统计
                        +
                        +
                        +

                        1234

                        + 当前分类总记录数 +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + 实时 +
                        订单统计
                        +
                        +
                        +

                        1234

                        + 当前分类总记录数 +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + +
                        +
                        +
                        报表统计
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + +
                        + +
                        +
                        系统公告
                        +
                        +
                        +
                        修改选项卡样式
                        +
                        2019-07-11 23:06
                        +
                        + 界面足够简洁清爽。
                        + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                        + 支持多tab,可以打开多窗口。
                        + 支持无限级菜单和对font-awesome图标库的完美支持。
                        + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                        + url地址hash定位,可以清楚看到当前tab的地址信息。
                        + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                        + 移动端的友好支持。
                        +
                        +
                        +
                        +
                        新增系统404模板
                        +
                        2019-07-11 12:57
                        +
                        + 界面足够简洁清爽。
                        + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                        + 支持多tab,可以打开多窗口。
                        + 支持无限级菜单和对font-awesome图标库的完美支持。
                        + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                        + url地址hash定位,可以清楚看到当前tab的地址信息。
                        + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                        + 移动端的友好支持。
                        +
                        +
                        +
                        +
                        新增treetable插件和菜单管理样式
                        +
                        2019-07-05 14:28
                        +
                        + 界面足够简洁清爽。
                        + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                        + 支持多tab,可以打开多窗口。
                        + 支持无限级菜单和对font-awesome图标库的完美支持。
                        + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                        + url地址hash定位,可以清楚看到当前tab的地址信息。
                        + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                        + 移动端的友好支持。
                        +
                        +
                        +
                        +
                        修改logo缩放问题
                        +
                        2019-07-04 11:02
                        +
                        + 界面足够简洁清爽。
                        + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                        + 支持多tab,可以打开多窗口。
                        + 支持无限级菜单和对font-awesome图标库的完美支持。
                        + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                        + url地址hash定位,可以清楚看到当前tab的地址信息。
                        + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                        + 移动端的友好支持。
                        +
                        +
                        +
                        +
                        修复左侧菜单缩放tab无法移动
                        +
                        2019-06-17 11:55
                        +
                        + 界面足够简洁清爽。
                        + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                        + 支持多tab,可以打开多窗口。
                        + 支持无限级菜单和对font-awesome图标库的完美支持。
                        + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                        + url地址hash定位,可以清楚看到当前tab的地址信息。
                        + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                        + 移动端的友好支持。
                        +
                        +
                        +
                        +
                        修复多模块菜单栏展开有问题
                        +
                        2019-06-13 14:53
                        +
                        + 界面足够简洁清爽。
                        + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                        + 支持多tab,可以打开多窗口。
                        + 支持无限级菜单和对font-awesome图标库的完美支持。
                        + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                        + url地址hash定位,可以清楚看到当前tab的地址信息。
                        + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                        + 移动端的友好支持。
                        +
                        +
                        +
                        +
                        + +
                        +
                        版本信息
                        +
                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                        框架名称 + 小说精品屋 +
                        开发语言Java
                        主要特色零门槛 / 响应式 / 清爽 / 极简
                        演示地址 + 点击查看
                        +
                        下载地址 + Gitee / + Github +
                        Gitee +
                        + star + fork +
                        +
                        Github +
                        + + +
                        +
                        +
                        +
                        + +
                        +
                        作者心语
                        +
                        +

                        本系统使用springboot+mybatis+redis+thymeleaf+mysql等技术进行实现。

                        +

                        技术交流QQ群(345291517)(加群请备注来源:如gitee、github、官网等)

                        +

                        喜欢此系统的可以给我的GitHub和Gitee加个Star支持一下

                        +

                        备注:此后台框架永久开源,但请勿进行出售或者上传到任何素材网站,否则将追究相应的责任。

                        +
                        +
                        + +
                        +
                        +
                        +
                        + + + + + diff --git a/novel-admin/src/main/resources/templates/system/dataPerm/add.html b/novel-admin/src/main/resources/templates/system/dataPerm/add.html new file mode 100644 index 0000000..c9b2c93 --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/dataPerm/add.html @@ -0,0 +1,101 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        + +
                        + + +
                        +
                        +
                        +
                        + +
                        +
                        +
                        +
                        + +
                        +
                        +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + + + diff --git a/novel-admin/src/main/resources/templates/system/dataPerm/dataPerm.html b/novel-admin/src/main/resources/templates/system/dataPerm/dataPerm.html new file mode 100644 index 0000000..29a52fe --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/dataPerm/dataPerm.html @@ -0,0 +1,68 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + + +
                        +
                        + +
                        + +
                        +
                        + +
                        +
                        + +
                        + +
                        +
                        +
                        +
                        +
                        + +
                        + +
                        +
                        + +
                        +
                        + +
                        +
                        + +
                        +
                        + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/system/dataPerm/detail.html b/novel-admin/src/main/resources/templates/system/dataPerm/detail.html new file mode 100644 index 0000000..9011a1b --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/dataPerm/detail.html @@ -0,0 +1,112 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + +
                        + + +
                        +
                        + + + +
                        +
                        + + +
                        +
                        + + + +
                        +
                        + + +
                        +
                        + + + +
                        +
                        + + +
                        +
                        + + + +
                        +
                        + + +
                        +
                        + + + +
                        +
                        + + +
                        +
                        + + + +
                        +
                        + + +
                        +
                        + + + +
                        +
                        + + +
                        +
                        + + + +
                        +
                        + + +
                        +
                        + + + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + diff --git a/novel-admin/src/main/resources/templates/system/dataPerm/edit.html b/novel-admin/src/main/resources/templates/system/dataPerm/edit.html new file mode 100644 index 0000000..d399ee8 --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/dataPerm/edit.html @@ -0,0 +1,101 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + + + diff --git a/novel-admin/src/main/resources/templates/system/dept/add.html b/novel-admin/src/main/resources/templates/system/dept/add.html new file mode 100644 index 0000000..03d07ac --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/dept/add.html @@ -0,0 +1,58 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        +
                        + +
                        + +
                        +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        + +
                        + +
                        +
                        +
                        +
                        + +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        +
                        + + + diff --git a/novel-admin/src/main/resources/templates/system/dept/dept.html b/novel-admin/src/main/resources/templates/system/dept/dept.html new file mode 100644 index 0000000..23d7e45 --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/dept/dept.html @@ -0,0 +1,69 @@ + + + + + +
                        +
                        +
                        +
                        +
                        +
                        + + +
                        +
                        + +
                        + +
                        + +
                        +
                        + +
                        +
                        +
                        +
                        +
                        + +
                        + +
                        +
                        + +
                        +
                        + +
                        +
                        + +
                        +
                        + +
                        +
                      +
                      + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/system/dept/deptTree.html b/novel-admin/src/main/resources/templates/system/dept/deptTree.html new file mode 100644 index 0000000..550038a --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/dept/deptTree.html @@ -0,0 +1,61 @@ + + + + + + + +
                      + +
                      +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      + + + + + + diff --git a/novel-admin/src/main/resources/templates/system/dept/edit.html b/novel-admin/src/main/resources/templates/system/dept/edit.html new file mode 100644 index 0000000..2b41d4f --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/dept/edit.html @@ -0,0 +1,58 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + diff --git a/novel-admin/src/main/resources/templates/system/menu/add.html b/novel-admin/src/main/resources/templates/system/menu/add.html new file mode 100644 index 0000000..aa15d5f --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/menu/add.html @@ -0,0 +1,83 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      + +
                      + + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + + diff --git a/novel-admin/src/main/resources/templates/system/menu/edit.html b/novel-admin/src/main/resources/templates/system/menu/edit.html new file mode 100644 index 0000000..a7bcfba --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/menu/edit.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + + diff --git a/novel-admin/src/main/resources/templates/system/menu/menu.html b/novel-admin/src/main/resources/templates/system/menu/menu.html new file mode 100644 index 0000000..66bbed8 --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/menu/menu.html @@ -0,0 +1,54 @@ + + + + + +
                      +
                      +
                      +
                      +
                      + + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/system/online/online.html b/novel-admin/src/main/resources/templates/system/online/online.html new file mode 100644 index 0000000..68bd000 --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/online/online.html @@ -0,0 +1,36 @@ + + + + + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/system/role/add.html b/novel-admin/src/main/resources/templates/system/role/add.html new file mode 100644 index 0000000..ab1b2eb --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/role/add.html @@ -0,0 +1,61 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + + diff --git a/novel-admin/src/main/resources/templates/system/role/edit.html b/novel-admin/src/main/resources/templates/system/role/edit.html new file mode 100644 index 0000000..6ea6854 --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/role/edit.html @@ -0,0 +1,59 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + + +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + + diff --git a/novel-admin/src/main/resources/templates/system/role/role.html b/novel-admin/src/main/resources/templates/system/role/role.html new file mode 100644 index 0000000..772ba77 --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/role/role.html @@ -0,0 +1,51 @@ + + + + + +
                      +
                      +
                      +
                      +
                      + + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/system/roleDataPerm/add.html b/novel-admin/src/main/resources/templates/system/roleDataPerm/add.html new file mode 100644 index 0000000..45a106b --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/roleDataPerm/add.html @@ -0,0 +1,46 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + + diff --git a/novel-admin/src/main/resources/templates/system/roleDataPerm/detail.html b/novel-admin/src/main/resources/templates/system/roleDataPerm/detail.html new file mode 100644 index 0000000..d56c905 --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/roleDataPerm/detail.html @@ -0,0 +1,42 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + diff --git a/novel-admin/src/main/resources/templates/system/roleDataPerm/edit.html b/novel-admin/src/main/resources/templates/system/roleDataPerm/edit.html new file mode 100644 index 0000000..9e0b9ad --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/roleDataPerm/edit.html @@ -0,0 +1,48 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + + diff --git a/novel-admin/src/main/resources/templates/system/roleDataPerm/roleDataPerm.html b/novel-admin/src/main/resources/templates/system/roleDataPerm/roleDataPerm.html new file mode 100644 index 0000000..14a9aa2 --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/roleDataPerm/roleDataPerm.html @@ -0,0 +1,66 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + + +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/system/user/add.html b/novel-admin/src/main/resources/templates/system/user/add.html new file mode 100644 index 0000000..ba90c9f --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/user/add.html @@ -0,0 +1,85 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + + + diff --git a/novel-admin/src/main/resources/templates/system/user/edit.html b/novel-admin/src/main/resources/templates/system/user/edit.html new file mode 100644 index 0000000..cbb725e --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/user/edit.html @@ -0,0 +1,80 @@ + + + + + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + diff --git a/novel-admin/src/main/resources/templates/system/user/include.html b/novel-admin/src/main/resources/templates/system/user/include.html new file mode 100644 index 0000000..6498fec --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/user/include.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + +
                      + + + + + + + + + + + + +
                      diff --git a/novel-admin/src/main/resources/templates/system/user/personal.html b/novel-admin/src/main/resources/templates/system/user/personal.html new file mode 100644 index 0000000..e9a729e --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/user/personal.html @@ -0,0 +1,223 @@ + + + + + + + +
                      +
                      +
                      +
                      +
                      +

                      个人资料中心

                      + +
                      +
                      + +
                      +
                      + +
                      +
                      + * + 姓名: +
                      +
                      + +
                      +
                      +
                      +
                      + * + 性别: +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + * + 出生年月: +
                      +
                      + +
                      +
                      +
                      +
                      + * + 手机: +
                      +
                      + +
                      +
                      +
                      +
                      + * + 邮箱: +
                      +
                      + +
                      +
                      +
                      +
                      + * + 居住地: +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + * + 联系地址: +
                      +
                      + +
                      +
                      +
                      +
                      + * + 爱好: +
                      +
                      +
                      + + +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + + + + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      + + + + +
                      +
                      + + + + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      + + +
                      +
                      + +
                      +
                      + + +
                      +
                      + * + 旧密码: +
                      +
                      + + +
                      +
                      +
                      +
                      + * + 新密码: +
                      +
                      + + +
                      +
                      +
                      +
                      + * + 确认密码: +
                      +
                      + + +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + + + diff --git a/novel-admin/src/main/resources/templates/system/user/reset_pwd.html b/novel-admin/src/main/resources/templates/system/user/reset_pwd.html new file mode 100644 index 0000000..58683d4 --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/user/reset_pwd.html @@ -0,0 +1,109 @@ + + + + + + + +
                      + +
                      +
                      + +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + + + + + + + + + + + + + + + + + + + + diff --git a/novel-admin/src/main/resources/templates/system/user/user.html b/novel-admin/src/main/resources/templates/system/user/user.html new file mode 100644 index 0000000..ae3c54a --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/user/user.html @@ -0,0 +1,74 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      选择部门
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + +
                      +
                      + +
                      + +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/templates/system/user/userTree.html b/novel-admin/src/main/resources/templates/system/user/userTree.html new file mode 100644 index 0000000..71b75de --- /dev/null +++ b/novel-admin/src/main/resources/templates/system/user/userTree.html @@ -0,0 +1,60 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      + + + diff --git a/novel-admin/src/main/resources/templates/test/order/add.html b/novel-admin/src/main/resources/templates/test/order/add.html new file mode 100644 index 0000000..df6f684 --- /dev/null +++ b/novel-admin/src/main/resources/templates/test/order/add.html @@ -0,0 +1,327 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      + +
                      + +
                      + +
                      + +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      + +
                      + +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + + diff --git a/novel-admin/src/main/resources/templates/test/order/detail.html b/novel-admin/src/main/resources/templates/test/order/detail.html new file mode 100644 index 0000000..3377337 --- /dev/null +++ b/novel-admin/src/main/resources/templates/test/order/detail.html @@ -0,0 +1,315 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      + +
                      + + +
                      +
                      + + +
                      + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      + +
                      + + +
                      +
                      + + +
                      +
                      + + +
                      +
                      + + +
                      +
                      + + +
                      +
                      + + +
                      + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      + + +
                      +
                      + + + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + diff --git a/novel-admin/src/main/resources/templates/test/order/edit.html b/novel-admin/src/main/resources/templates/test/order/edit.html new file mode 100644 index 0000000..4cf036a --- /dev/null +++ b/novel-admin/src/main/resources/templates/test/order/edit.html @@ -0,0 +1,323 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + + diff --git a/novel-admin/src/main/resources/templates/test/order/order.html b/novel-admin/src/main/resources/templates/test/order/order.html new file mode 100644 index 0000000..b215a71 --- /dev/null +++ b/novel-admin/src/main/resources/templates/test/order/order.html @@ -0,0 +1,66 @@ + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + + +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      + + + \ No newline at end of file diff --git a/novel-admin/src/test/java/com/java2nb/testDemo/TestDemo.java b/novel-admin/src/test/java/com/java2nb/testDemo/TestDemo.java new file mode 100644 index 0000000..d6029b6 --- /dev/null +++ b/novel-admin/src/test/java/com/java2nb/testDemo/TestDemo.java @@ -0,0 +1,25 @@ +package com.java2nb.testDemo; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.web.bind.annotation.RestController; + +@RestController() +@RunWith(SpringRunner.class) +@SpringBootTest +public class TestDemo { + @Autowired + RedisTemplate redisTemplate; + + @Test + public void test() { + redisTemplate.opsForValue().set("a", "b"); + System.out.println(redisTemplate.opsForValue().get("a")); + } + + ; +}
                      AYER?l*JHtx_ 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
                      P|V`_{9>$qhRsK1hzB>SPKWEt~ouZhq?y zNYm2|bt>^g(-`b=PmmDT;rArz2a+>cO9e6p4W*(m5nff|LJh%CQ}THp^)A|gC`In+ z*kr2)li@utG28oV6sd{w**Z|tJ>#mU%*jwBKZR2pe0tF zD4ymN03|qeE~|BI{ERR`PrW2)pd>hYnPHkZ+^>;~)J*c|R3HFN?xT(`?a{S7B99M6 zjkwCMNS9IRJ1iKA_7GEcR&1}32`X{b)QMRTh=uTKsFmTFSM-)BTaT}|(%s|uV(O=J zITG8Rxvt;SGfPX^yYC}1C^XbF;P3#A@B~_NIHMBH8FZMe0 zck)7YB4?#VHt5P@4IM^jIg_pMLljaqWRo^ZNF!FdYeI;!X*{z6IJdS&(E~@K7!)}* zs*Go)54+z#c0%<6e%0Ic%CMytGD>*sS}(Y0B9{KUPd!;xchw_4pCM!Q{{Rjgi*mkRlGo?X^aQch|6I^|QJk>YqMF_cgvMp9Zysor{-^?tRTRo}}C zw>+`8^!H=5Hm}r+t1j<5!w~w${h#dg7-W|LOtaP3Lq;o2Jd&k6IOVLJWg3dKQHsiR zr%gl)n}9AzeRu*7EI; z$2t991%JuVdxpch9BvyWUG}+Fo}IEW=V5tit15g|bu~1fc^4EbR&7H+FFupi89I!EOHq=Rj;^W$QI4jhuBQ7+;T=4&Nd;7~#sq5e z8nf#t8;kz{tc=LbE9bQIYcx=-cFzo*z>P!wUp|+eT(oj;p1g`GO4Y2c?2IKgT6%hy zmL`1C~_t&4ADCXPKqL}&yw6$NP|g;HUqS(@d3 zppZS1Nw#g*EW%iZu7*}T&CI)Et;K}1+bu;5Y*-)o?;3QlUGKbh-6cBDRGDg;TS)X9 ziw7ALPj}89- zXxGrSwEMnFN_%cysa-~rqSgK8-mHf`4}eJ}JaQNaq^$C@M%P4F(yM+4uvX>C_ffQl zJCak$X@QOvub&&W=g@~2ZuQpSsDxuT9UK)--ZrDm zEZB<0WnrlrER1yb8ilTIPrGj{vtgsM$dLP?fK_hsQ7}p)W z!HN4QF)S z(k9J#{-XT4Sp22Iw%nxI+g`60k0#rfb=TEoX{u>rt;j)@&DB%mR+ufP(~PaBXh>;v zvY{(tETP?lT#{XByA+TkWLJXqt=!zqJh}Hybt@ zw>L{RGwx|%G1X_XQo$q`%xbkPvo%bfQtHlIOGc_%!Bm6xuxq_i$#Ab6Y@~`)0flq+ zSD>sLm4%%9rI5F{g&i9}C@W1T!vN~@Y7U(?mtbeMbojYiry-Brf_&cFkmY2ptd|{2 zTZHjXPmiITH6ni$rBEf8M4-cSarO4i_St1~`gYbz_JsqC{vjc+m#FF8qWV~-+wLy! zq>g5D8wMFdPyl%R$5J}$C6eDeyEC5L8?KpZ_GTJ=&d|k&qMP`%n7WE+V-+45p)@9z zo()0J7uKNI+Qkj?T3T4`)|U3J1k!kC_SBE((Zse_`^CoVaecc-TWHLH1r;C+AB)jP z=g@cGG!->DY+mHf(bMB(%~C;HD6!S;Qk6LB>0U|-gCkO!dJ4!X0FHRcX*GVL2)D7_ znMo~HTX@Qa?V;m%=aCD6klM(zy zjV$6QB#kF?6(^CZ7D?QP) z{{TSrA!B=2F%@*#Du{8}47ALv3^mmil(dx7!!$Dr$fu)-e)K*KAsf;|k#X$3pxcoX zx%xDc%XOKmBu`(A{{YZEOQG(}mMat}T85UhC91NzUBUcTt*hp&o_Qx)nG$+7q))Y1 zF?fgVx+uRq`$KuN+g@Ex>u})+Tz)`wb8EWa?G_Wl(V>tdXIb+<={*fPOlCU*uA?`P z&C$~>4NN%cmU=pBg=%)EtEozZH~DmMB}!C98U|ie5J>v_Sq{?#cA_XQTg2g>kPXi5 z@9Zxof~(-xh}9=2jX=lk>60_Lu$!Y5Q;VyTrxQ^s$s1M%o@#0edW9Z%+L{KDYU$m; zD}VECW5*}mw)k!=ZW38Wtt=1hJvqBwe*W5S?P88tOI31s)Oq!3Kgi1$1}Eeve?d)^ zHL=a{_@oU2JsgG>>`k-gX?(ZP&I66Y172;oH*xKZW72g?{sib7vF(y=dyFX3 zYVPU#`IN=u@63Ar#V)A&ziuTcsZk_RmCSA>SsegL2AQQsEVpGm8!f%9<%D?lwIK1H zPx<$uM>Npf!sp^S>a_O`Twy3D$OlHM6%<(c*;7PhP6Ps`2Nx`L6QpWDp0aS@UFuPa_4IES!qrK0cl}mXA`bIzvKZsZt6!6D*8CYv~uc_i!i&TYv2j+t7j4l`&P# zl@!#;JZn^fSmaX)6GHL{su7AEPz@{%t*D!?)7WQthOff{#f+wqgDr?xP)gR|+(z zK`!!}PTL9P611Kta#u<9)Pjf70(x}Y@O{ou($O5doksct80w^07&%DGth1T58>#X?~TtTU0g{T&b2F16bl<&kPFG=dsr$j z03Lrn#0G6VPeh&_VkW&7UDHuC0Lef$zqPeCl)&;z14xCII9Lx^VSBLz*jtZiC)N(N z;nT4-R3}eeM@+P9+cQNhlFZ#(x-4Cp!44uilEHM&~r-=@Sa&(>oF$erTyCPMOuSHg@O$~8gm(`I-_+?sT zCRt}{c_j*=d`kN-rQsaI}2fB(?a`kykHj5U5G%~bglSC5i|?jw;YkNb&TB9|T$w7{K6Fp=U^s)WXF|bHU znt3!w6ong7fUE!<-`RUyD^9dPR~;T-$#pDBTe4bapX_uQRzXPHay-L4)7R5vr;VCN z4I2+3Pa#AiH4cn_93O9^H`hW{bc51a;D&vsX=QL3MQi6=R9Eb;RuTNKV~KlmYS^QU z81WmDWDDw5N0ymlRSVCj{pXKkYm{Z>`C7C(`iFN1jpV*WY5)Kf^u{_Zzdq`I_vSx* zPo$ts_8Og5#93*!j^Bt74Q{fDwRkLX2HQ__w}h_1vQq|mqr{%*fOzeCegR`y;J zlCpHBf}%WxVrG?K3oxOYN@er1I>uzE3IVYq{@j=iG#F}hA!jLUNE~a`uzXwV?Zv*k ze`&=-NVQn}7E+Hfxa%gJY3S&&)KdA`q>@6OYKf$WO2oHzH~c9+(yoAODbJTh7xz)x zZ8xma5bqfv1B$Px`Bxn-{{WeO@x?*dJ7WtP*VE+HHy%|f;fAiVT7_y&r$-CH91+YF z5vlCIg*R*4*kgFKxsr8TM+&6yt`FKe5&JQJvf9JEUheb8C5$ORBddA*2ADr#{{Rm} zTV!sG#XeGtICl2?%B3PyQ~0T|l@UEe>?Ef!)BWs_M=FVmE5;ZXH(}}aT_)Fb(SbDa zhU#Ix=1rzi;@d|vf3!U$enWN^S8-LVN4G0B{U%D5nixLvN&!7AxcH-5_-YL;MQNp) zV$EV(R-1(%Q|$MbtPEv?$*!FMd6SqWh5)hKx`{FiV+W#tOl%kKFCl5A(I=6~NRn0w zrsOKv3yY3#?Df%OE+arHbB;X|T77qg9ItdiVNs_v`%Ok`(2dto`1k(Ds99cBUE#O1 z2V>3hRK;~zn<+nAduAB}N+Wfm(Ek8~r5AUXLe_Pf_DvcMNd}o8Bj?r5{PD-bneASv z#^g63!PmjmnCU7iVx~r-sFH2ZxD4#jv!kSp(S0w#0DA&ywrOs4LauyrGAoMk`#KMM zRW9x}?bPl2q(}|LGAW91;lrZ6O|iEYDrC6p(m1RDSAdo`)e(QB6 z<@7Mx#}%(|3hS)Yel1iye214qD~ni*TS+bhM7;h=7tw2L^!9 z5$WgobV#>6yKQ$eTi!=BObr03KbRtv{P@$Q*2LYIT)OvdO4kro{1S3ulW@An&sU)=Lb35eZN}d8be}KU-aYUU@BM za}qV=Wk@AxJVnh%40-tufsO4~vnldB8)kJ*(0PnFBS%+PwyBI+8ME1K)r6+W&r_SO zsD`F|&OZr^mMEk%wam&;+`D^%w%c9iM3#NhMvMs$nV>?I(m$hI(}jA=gSl*WSC^Ky zl1n?thNWvI7*_$0^XM|Aq_4;C?C$f$t};!Fh01STuT_l2JWy^Nb740=ezO|@j;b1Z zX)9`e-O{E}ERoA1mU&4k3Y+^aw(nJh*9Gq-l?Y;LKq{&LCo~kO^yvQpmUmuYn#Sh$ zZ{_rk(e0#)kJuQ-8H*5s>P=}`_AV(FZD^EXOk2c6B=Gdie?{XHt z466+SEeg;Ytd$M=Wr5fUBBXXzV6+s$t7B2jxwu=0@COlGK3|a+Irf5T=}bZkBuY~A-IZu-RIbGU32yR)ZuhFTTPP@T#u@Yzi(Nliv^)zrfp zhJzPXsn$j`^%Dt7zJsXGn&q{*C#*09xF4paz74mQfDK`VZXmwTB_PjiYFg4=!Ie^BnF^3xvl#4$Y|k9S9Ihke;fSJ(Qj(r2WA~MNF_fC4zY6Las%R=1z(< z5kieI?-j4vfIlvv>uKd^m6{Mxl0iA82^i?Y{5Q|ZP24y=-3=09Yj&62yQAbKC(0e6@XT9JDW>5-@b@U0M4p(DU1? zIq$iqz*{Ji;;c$DX;xK2SQ2sYf>l?BApc3VCsCk1m!OD)b5_c z_Vmf@uYf-wayS|1hOTXqO%lsXPaS1MuvKm>1ujaJA&`jw0Lw8F&NZC~0nOrSpMJiHA@+DMw{DAVIg-bfbq>xp8*iTSr6Mw zRMOS>kW8~kp_N3Y<#@0@v$bLi>mhwObVTymTZtjFt2HsNKjE)W+Z%Vmwy`_&C6lLY zg*{f#Y;+>Nc-5nZyCVUiN;H&OSt>?o%Pb4WVH6#xdHA@9FOaw@bG%c)09@3qX)W~F6m=?`X z6JJy7>(P0&xjpG2&(EnbcBbWl*hQK#i2RYE#bW4bmP%P!h>BWOD-Vg{lIXrLS63XL zW^2nEWRcb3M;>)hdSJlm@ftbv={;Y#>+2bw42C(~I z1^kP9KHK(-D|mbhcoBZU2lzTn;lm(jHCod=JhADHqEqH7AX%U|$tRb=9phYlRC4-d z(XD4GrJ^OQ8unwy*Pmy?);V`Kc7V|lKgHcdR$?%_`G6NOH~BW#U(t@vf^uAmaxS$ z1$g72f~qNM>1S_C>yAV=za!dtBUxYjLTD?;rnLeNp`Twqhuyu0+O!zclc%Fh>2VEP z{{R?j8u3bGr%6bSnvRmGq^1lHh)RvCo=3FA%Q5i8?6mYJqPgZ}a1|?4(07u~ZcWc$ zDm5EVh>eydp@zR9ile3z85nr+@z%;=F{3dWWEZ;-2eq-sZWmL&qv~_hjIS0*>V8`n zlEL7qYB8{3++(TB!$pRnuB^;X%zUXEO+95TRYgXZ7Q29L%MiZl^)~S_k)KdLT{eKq z=eP6fW(OzORe5sMlH>6drbwZY*9SgtD6o<0@kx=%L#|dDfsq0LK^7L&T{A%HUsq}J z^8KAwduZcQ#0>h^{DAcLT}inqCx5(ZjFZVDJsn%^T5|F$y@Zt%)tTywRa+Z|Mvz=s zTaS0QFra2Ebe=Ty`EkEU`ULT>ZiueDq~GRX{UxL z-i;)Y6xaYjzt{S$S@yuSCPR;(`T9!8@-YFLy*H%U!yJztc3M?g;z%AmH5^osModgv zsj1_Ntjq@*w5TWQ2frz|YM9fo@UI@8wuGy=U@aacQk)o-nVMPuKlF1-4 z&n0B1%Brekj4ed35&-x0NDYtsdj+Yij&yqTiWr?30z3MayNd}!PN|cnq@=4A5;2yR zx}t$JfoLR#bV;R=$JbT42k?FAB9yrhv1t7cN9^jdn~7V(Sg3tRSyL?2ikj3+Yeg!g z6tc;Yqs_|}rYjIgs;U0~iTau|cLLYo{{UZWBW(-?Y0_D3*~l7lI!)E)k`pvpTAcEQ zncb3FYDy|~AFs*wp+4jg!;-uOKkbYXSki}w+0_=+i;#;@2TT=9U05NV>Zz3{iD#jX zWo0gkeNntl=wuFt=K6@g9Q#<3qfl0-ttvPUg(%hI=hvp5u*9=c)nlNEYFyKyqN<)c zbyO=Lj7YBmDQkriIRZdG#C~}8 zouUzqCAwN6pTZ1_j=PSss!F3HRMS(yzG#$8Baq0l8$@)O{EPYeuOHLi*;FE)CcQGT zKB8PxsWaBZk;0ErkC|gSOGi)SC_x&TbTn+X2FHPZZGUxI)P22rPavbFisy>9MR6v$ zY{5lLm0|$eg998v?y5-^(sbPO_4fM-02l+Nz$T%`U74wV=*bN=I}lbsFr7`?Lad2t zp}8g0^QdW2Z+m7UHLo7Fs9A`wVDjq@ODR_f)j-ix!J(Q(iW(`)NDzq*l}4G_uVBLF z-u$ej0#qKXVj$6c`eUW4$rUXfWqI_o_@G##chMMeXKI9IRQey=9@GgF_y=C_-AK-Q zbfl@t)htyB9dv-XS)*zNt=q#NmF~1!TzJ#Qz2OmD^9HF+H%C6vdNUIhM<{g z@^r3ZDiXIC@kFW#y7=OnMVTi0o7|}S{XM@dVZdZGBzbh?MNkhB0Ut5fHO@JM&Gxas zl}fzvij_-TvoJbFfUCgOz&_hobYZG?AD>O!g=SKg>q>eKlNHsKHE~O>TI7Tayl}~` zIjR2uQI0}mk%F-LkblGT?fE8FpfVDEeKibnD{5E(In6WEY#WBN8YR&BV`$>g(^a!H z$gFP<+p@-EWwpki)nm`r+7d4wylkhPz6^DSqjy%Q`*TxGs$WcVLl{SWO{fs@7tqnI zhpOZe`1eAiOzdV!;X|RfZMGpLXrz4W{y=(-7XJX5N8V~!m8ooyagZ-bU zy-ji&rB7D+NL_-gQHA+xAM@`_xlPlUrBS0TUjT3(In zD-A#j9+z6$+N+e7B|nva!Yk7SPUy^KV5<9?%ITs&7{)6ctmSxk-Y+VtD{oK=-(SzY z5g`Vs2{yu+n9sX>!_)HWB^E+IClQra%TblaK~XB{@--e#)u>8(P33d>9?;9Tvnyy(r1WcTeJZinA!A-X zr`Pl8ifxdw44`UUon|_#Dzi{#HtCkH7_gWl5I|{Fsw(NFf!W!w2}CztXOCsgWh6{1 z<-?;$_ZDJEs609da+KBcob@CPO+4nVHdU!df~W2#G15XIcZ`)WGk%kA$+xoUdnDnW zjiB)SCX^tl{k#>ys_3hv>Svp9({{YA5K6reIs-b#(j^3(X^uSX|M@)uUXz*Qmx~U_Z z9W#PrX{vGVB+$S*F~1(uP=?#yo!XFt^Qq~Sj0sG+vwrps1kurgue zf@~BbMV^y2lQmfB4J1ZLDi$xYqNg9weRiAa^F(y#;6AmFWJ%5@o9<`2uE+3 zuT2!y84TS9aph_%#geMNiiVn@Lc9&G3FfOP-gK1StNTHDxEurRxh2-_0Hr!p8mvAM zOG7520Sk;DGyY$nS!r_kw#CmK1Qod2m@=6Pim0gNsx-vQQ5MO zqDpugzK_QsnufZ(gfc`!#;O~Wa*9Gkf|wQQU9Gh9THQ1^5X%y_0}3}EnCX&So;~ZU zVaRP%G2#+MsL0UNLL^gRg>#z5=5sg&7#Cb2Rw4YAPY8s-BWCl`|`)l%X;-U>gJMl4~u#=U9@^iBAKhHh#l{ z_7XZ6Z9A_w?e?(GwC=tXAcDapC|Gf!3rg41Jz$4+{DH!}a8CiwGet`z6q%fDAr&~f zwviU5p1T<>6+uAAJWRvX0VErHBcGRfcJIejmqF1*bY=uU^rHYLA1z%-yI;Hh;B7_~ zzqD(G^FtZ|r`N=(f6q;NNOrGn<#&&3><6IR^cxyDvim#uP9F#SLbn+5V&S5t$mON0 zt`Cr!zadDmLwf5h+w9pwLU_O1kJiU5OX1eRK>3b)1 z&61LrEiO*7h3G$q<=xVGY3Nmu(;D$g(a8-JA~;|`D|Npf)5UjV9^G#eH-|$?jAFI& z`PBWrEJ$x|_ie)ScCcA&SX5vUtN;UN@lbK&(3gVT-AC75HIb^``&$@$6F;@Hlo=T} z4%)1WvaGg4CTFdx$d!tkNEvBhrKX-Kc=LKz<5#p%!M@+`u)H%fSw(WXSHwC;YUB#g zA2ZNG^z!^xH%@;>?qzC~O(du%w2{Pmjv45z)bBo#-pQ2RJF_|bB8ws=uB^bpQ9P4D zSg#sU(&DhKR}$01IwhHWtW+UwM)vnB#xCJc4oH+WPXZ1)gl?s29qxqXV`Kdw)ZvN_ z9R=9vIrQy`>kk|bh+G+m85kGB$7v4EW!xn zQddeK1)A0YK=zPLeq$@(c6w+O=+Uh9C}j@Yf$<6Bt*g_1M`q%dIoBIomWrq)Nv6?T zH1av|Tq{7d$I#?~$EkvU1q@um7Wc{P1mwSD@P(<-=r}5T|!nCa`k1sBvQQ~&w z82U!3uaa4&rG#W+o~{KZc8!Ge>jT1*#)~2P-r!pQ0N34Ty}gQNMSu<*6cNMMrz~tX z+p7dOSFFxgB)=cpLH=DNGc*X^UXAVrB#R@CB?;nU;_UDOM6{y zG>@d1m7B~E7N0&n6kb|e#~0}CEV?kInB(NMtv{DZXlQW{YKq;^ksT3+FkW^HWAw)$ zkwI3Bu~s&*x zP^6aOjwBD~(_19gkGV@H*1UimY9!O_sp;S5&u`;R_A#^cO6NTN!L zCdSX1mZiL~vkBswu2>c+ETEM)9-EV$p3$vsd<|WTS`VME+w2#z&VLGtJmy%Zi4*@Sos6aN6RaWXjxv^$Hk7V5XS?u;0>sD*n^?bl5kFQnb zH?HM*{3{a?^5MhNqHQ!zCX#xw;%kLD>HDhdBcSb#jWf$1iag1vl)cFE z7-wV`KAmkR&|B;8*9)#P2m9~*{Zcmy$*cYO=lOME-KV-LUnvbm0sx=GAcRN-*u^@T z7_eRe4uFB|$Cjxc-V}lH9;?iyUh*~od_5J-=M7B%0BK!FO+7>cda3TL&lG1u6i8C# zu$ zOFpg*6%TIJNKz$kt=v)5Ct!Hb_Y9by_K-*T zG4^y-HsvzUkfaXmBRZebE^Y|Wq!VkA`5#M<@%H?`+A!#z%%2rSduo5edK0SS)bY|& zPVvJ_BSjkdDb^zL>Uko5HM^&f{Vo+p^!AI)o{i)niUH7RTg=rUHHV&MMP>&`iHZ#+ ze^ts8eg&=V)B>3veI^k2^(4PgqS^tC4A>iAp%9oJUYmoi+Yc zG2@?N7l@>KnMdW+j+e1X-D?->dUP|_?~3Z3y-7&_0K@8Wm6BEBs$?F2yfP}WhGmra zpissySODA}J)|E_twCCf9vymhznP@gKn$RLofihBofdq3MQrIq<*k&{hbap@Nh824 z1?rJ3{nF?-3~Tmv9bGJM7U=Y&DyQa21N^-eubh>FyXEi5 z2~|vCcWgA_2?s!=+xS{=2OmIF*(7UAc=O~sS;-7nm&zRXK7Z!pb%WuC*iF~nlynT~ z6-_4G&SY_wGe;b-Qsn95g=s1!idIyWA!>r!e<$Cj0aP&P`(K4)bsN$yQV>5Ys_bkd~S#C36xpSy+uog_xz!H$KxVD{9t*91l_6{{SP; zZzOa8@E5ib{%hk>FV(W-_>vM$}Ps zfVa8!BG{sPd0855Nl!2JaOywji`LxiVR3E;ex4MiKEaM11aaf>Ger`~RQUG^d8uhW z>O!osjWEd5H-RRW+L(fDPt)1++!l5Spn=dw??sT8yBjpa0wGFW*Tzpv2y3)rfv+`rPJQsd6Q zE{VOV+N9iez1__E2)Z-?4<%Fl>(zVg9G>T&J@>Uct1Q$suraNt6WSSR!c42=OBB_w z^spX9{2y=bmoQo`n`cw_!I6D5c!sN5r zX3N*oNfkvFQ*q=G>vU39Vn{qs)vp^`Te~tJ6|o>#BQxN*yNEA0I{ca zYBE}bAD^d3=dS5;yLV#zp^G5}JzhonTQLO{HaVXm4P048$5La=4>VuB=8mj61x|tW zxgO*ViWL6jJDSCGW7KDgsD96Un8qU&CIP+ddp-cWZAv zwM3a2A1%7;DG}B*^9?) z>N=db#6n|>Ekh*^OK#RzQPs#~GRCrb6sccDx8#d&<#=MXvq2f$UCPwa>+u%!)@V=6 z4x)|z9l?FXyqf<2a|^f|aaWF<2~(tM(}6$*bI^10kF+)>cXRw$+BF-WZdLAmgTJIX z8k!89PD?36v9~_k+8MeU%&ZkP6|+|)c`4mvo?UZ($By6|6F+Zu$}9JdhHo6w%^04gO1`Fbc~DZ*XpL-y#ETFPM**7V_ddW^vl%zdyt&ju ztabDZa^G%vaK}OG1ZA?hSP{x=QNz%a{$7za+1O^>dwPOQoOJ&Hcbkg6VP=+6^wf&g zA8#CyHk1`J%&PjCfw=$@ea9)k&o4Av+P%mTHNarCH2pnP{{VWfeJPHG7W-bEvvZYg zNmREnmZoa-t9_!F>Z3oO7i!h*{{ZFhnxT%P_*}h%zV;>pI@)bUVHvH?W{oT~vZTUz zr-ue2sX~@Wr7v{?;!5O;%dPvJxl+<-Q}ma|BoatiY5a*{Uq4Qi^8V8la&PhpikNMR zjY=rgW%Q}lKuGK7=a`l_DRDnyDKQwleLQs8y6UN9t61vt^|jJAL1a*(iC$J7Dq$t$ z5S=KtKJ!#b1eZ|8lP`}abpUNNp*%Yfg*~wENyzi)QMG6kuX>zkUD??u==b?qge_w4-|1w z$&bjeZ{^V~!>q25LWXOHTABg{Jm_dTPAnOxk1BF>wIAKS^5Zdog3!qigHXcYLF z5(;^tr>(7yU@4wSRwTG3!joqkbG89i5}M8pSP$4MsGqQL=%;U6Ynd+XuBDO~QlOe} zZ%*oK`%_go8Xk;3%ExVN-9-&H+}l|QlQlsU`7Onls-wkGNSO+8QC$(QLbI+Ct+|Y0-&QLTXg-Em~mt0aNnn zf0WtzUbC)?Z{~JtVBxN!pEFILq}tn#rWJx2Wv%;+)qMtPX-scP8#EFsv}7H6Zb>f> z+@f~8x7^EI0Z_UaXUdwCS3NNVo3lnClW&!oyG49LGmM@ewA0t7oxj-oU}q|}uIkwP z{u(JU=OJC0#!}%oL~$gPvdN9As>MFwl^+d|Wmb6wLYSf~L~QG%oJ_I!F zn7FDU#6?bFs76+aF2Tt*3`)y+EH1*ojuu@tVEup-!D?s=9M*)4VDy;BcM|JpoW{bS zs4b7M3XiaWdU2?x#X>4_4OJJ}hNq7pxj|1RJyE1FkH2sXvBNBrC|j7%D{I^jXBO{n z$Q9jV)F>*$Byki5riXz5{Q4_+uUW}Uc?+Hzl+vH=Yftvn{{Rn9xQ)LHWj@U3P|%8a z*^;7*Awfruq<4%xSKQB=^*0@o#nIGP)U7>i z(UTwB2ym8vL5i9)pN z;Hak%ooWS~NV++=cK*273Pz5V%ST^))_dXfk7Bp>C|vP!pPv=LGdR>A$9Nvq4H zbnw&RX>u6}5qxu00-8E}5w?NgSCBw2;z4g@Ck;la{KVDIG;WGD_*9tIbx) z8kSTMmNwJ%_OY)Z3E{z{&*@$tpA32edTp#PD2nP-*8r1~>G}0KS~_g3kYng~9;#Q3 zB&MeG(n8)PbxGb-(qfHa4|QESzaI9tqBy{i4-?XzRN6}+{QxyD#11L;di3&eIhw39 zVX@nb507Y8Lp=2LRbO<}q1lyWsHLZP(MYitS1W6Med%s%NlbE3=Kxdk&q?&EN@*D@ zUOH6&06sl8)9t*~6+{zFUxmp_9V!^+tIZhRtip(fqIRgE5l-?asjd#TKA)N*iYV2X zlAsHZ^||(BmqIA}5yAYw&()P1MND*Rap`Bbi{j;pX&y$N(U>dNa~(T^#Qms(o-CZo z)d5Aykjcrvw8CvgnnnQErhb$-B8I&><@QcfaWuIDH0vaav(;46wnl9e)GUjpQ&Cez zD_vs)Q9`N+zcwD$TJBcr;@yz6hal#kWqiE)E$}3@m7J5|Q~C4?q@ z_nDMA2IkijTZqJlNdx+6Cm)bK zD7TJz5JsvN5n2+;4Seb=!>rzHM9&J+MN#Bf&XZ9`R}9gyk(3c6^iR z1&H>h7fDnry(!aQN8l(riRq)oqDd#K#F*lVn4?E7w(?zclNc$fN|W^(f5Y3Fv{g_B zA3SxpwN_PhW2kv!sW4SSB#;VfpA#goMA-OIDotx3G~%Xrl0gj_Vg#(QmbcJXDFCY{{JU|WC)7bolO#ky4h9O}< z9VctD)DlG-wAle3qo)2s#efBsw4%%7xj(28Z+a|@;eZ5F&!^$r<^x2Gqx0j`0at^V zDt*k*>n#d~k;U;IwH$MRT7w;TklI3?Y40LXyt5fkk2fS5 zod=IsjD~?#?P~%FBL4K3umPmDdSxx=DWzf@dS#yv02Ng4m8+b_sPjg-3L2D>G0Ri` z0F>5wZ6*GS2)N{Xztk%C#MNG(jUNj%AV2v$x@MOLLs3Tbm2`PPrM!{U=%--u8Qj4e z7-o8ZDzFDojD0vD-`#$poPsDi+tMRg)RV*0{2eEMgICju1tm3IMLQM>?@24vN2J;h@MomXQ*=}=x?FV=R8mHPi=^)floa*7MGTbMZGJ8Vzr_2bsNWjMeR^9BvB1&; zSEO}L?5cz`u;8dxqe?V$Nb#^qLjoQYhDt*d`bC=N*7|#8m_Nmymi;s=Rj!Rd@*N=a zRk{4^#pURU^AATs&k*1W}Mhm6-AEG>G(}&q`24weI42Q;fVBRuk@= zUP4@=LmYABsg)>2P=?DCm0&|sl@i89gp6-*s62Zqp2*0?MI^VUMt1kA2#-jiALQvX zxOYxVsxtd`dTgr5DmMicZa+7TmXBUSY<^1*R}EzyOpw&WENb!8M1@PJ)uzoDGHT`SyAHO&JTbCKz8+&Ty_U`KI&GA*3-n82ipAEb5Q5~0^ zs)ig+;KCTOw3Qi3fRyqXU}uy_Y;}95i6QU{#0Q2~^V9wgJux25wn1`|+r-L$)3q!4 zo`5WEZDbiNqSMSVbkx|$;D6%LA0x>Wa7~a4JI70@;rloNzwQXb6ZI$CL5P)z97jUW z(l+W9iI5%~dQDc0hz7noN=0g#!$|bIkfQQjUxT%6w;KFRX@Ob5iq-x zEmgPbG*jbpiIuMsRBLavmPd&|k(mO`PU#y&TG5-ienA)ZR?VVWL^n=^@ze!AROnKc z*9{fCFSkWB15wo-3mkmu{Q7uop3KYTFz_zbj~iDtE>gk6>W7&#P5Nq zGgMU5M@>uN{g;6zv0gL;)Zx=V$nN6S1dI2l?CHqP21|%92JXrETENt zb2xWxOi=2n^`SH!8Nn^voi@DIuEPL3RFUc3-B0JyZ0$@&R}u0VzG?)DPuHKc(e?(0l1T^Bg(Yvj#i;F zcpZVZ_YCxq?m6nSd08uIzTY1zP{f%l)mB9e@*J-wb^B6d2RyBRtkWVP^wO^wxgo^4{OoOy70TBanWT{H<6}# zsHxtaXQXFK;T@`>v=YYdmC?uqV(KmeoBJ`FVz#=n@WYgjJeB}g{M{G9%$L?iJ6Ie^ z1GPK6yu7;Q@*8w+EcQDEw6S|ut*fHiwD?+TM9AZsdV^J6CPKElN?M4a`*|z8zqB>X zRZy=4+u46B?CEE1KH~eTye&4Yw6zq)C+7J#%_B@W_-9-~|85)Kh@%1Hs zTsn`gM6WZk*sF?VVIWh;cUPxs9ih9m9ly>ENuENa*S%j+UmP zpv64!xKgVl5TMvEKJ8nJgW@ICNE88e1N%rH;prM~77&)TxwMUA<3f>&5%XOBTsn?0 zG+TPNACz6yux75p?EA6dE#qX93b=5f6vgVdB1CDQX{p-&r|pl@mKu)1l8HLP!;k`1m9Y5fl!CFEkGl+x(}*5r49ZBeTwHru4W+~y(Qe2dg^oX;RJgpdnj|Z= zMxcSg7t8YK!R!v=>fX1(VmAKr>8Nv6)U>NCIrwRZ-pPzs*DTFKS`|qVSfG2%#^T|* zBp14J*D&ABBiL`UD|wAr`BObFw!7FOf(WlRxWbZip?yBiis#7=$>~nZ-19ES>-aWI z(5*XUYb2qM9w)8v=&OLGEOCuKgpeN?V(dkNi;=G>?7YXc+jy6|pNeV0oaUVaH~XGn zzq&Tob_lAx2vr21nIKa>b?DT8E2hU{cbCcOF!eNb*#`KR*zE)`8Gl_pPButHoDz}qEMp8O=EJHL(umvlpR-%dm zpU58f zqQ+TNudbZ@)6Xkw_a9g&fySbTWhP}6t4 zelza`%hk0M;L}LAo|3O3^UNw*X%XHjnMyu_7#A9^?AMxvNVa=2#i2!}7LKEJdzg&MgE4@`uiOz2U7u> z>H9hdO+!X=O+b#DvXU&dQVM-fOp&zhGL#6&6h+8o4g`yH=^*O*4|nRKrFsarL6WN- zG;ifcr^p6rSeIs!qFDrS5&+bZiFv)v*X!?U+F0Yuq<1JxQg;!KvTPkxYmkkv`;Gf@ zHwMW}6?iNTki-#hdvaM+pI(q{s#Hipsp(f)EVUxJqt+uzc$3r!cSc9FOx7TC&AsVb zm0Do*z4c^)p1lQGjx7ug-Yce`sgSCHt=K3la819byZA%bro*z4t$Km9WT}^bZ3T)@ zvVR_@kxAfdf?pu#=-P_${XzHQLWgfUQ>t7Ld;`E42l+ZboBsecJr?4DW|9qNYDnKp*lggBaVHcej}?Ml|6qr zTrX`YjHAcaS(2#iRZML(7nm`<#l?sC`zhRbT7S(${vM6?mDO<4*CHn$u?v5bqS3S7 z7^|78BN9dStX*4$Z&L6Wn|(n18{6Bne`?(oSrb%XIMn|DGt$m=q@$6dryeNUqGx#c zW)nz>8mdMOz(_%{2Y|=gRslv1dNrr&3Y=4*`mRqUY}!>(P`pYRSQSlQ+6{KpLH_`G z_jLGwK9MFP#Yt)l%abz!CAOTMbXZ#iDL5r^Q35%el%1cW@9CcsB9M2}XqLxIGNl~Ig zq&=TVKbw2n%WbL2rmA&Ug8A#gRQ#;(`GLRt{{XAv zC;VyXsAb+p#4Mx`oA3eq``v{>n8jpn1w zZ+gj0F*(TAq`SVlk}A1U5bnzbHmyZhO17ZB!*`M0nSi!-@T-~{AIh}qWA@GVSh;>l zw<#h=5v?^4LF46-`+6sN?fXNWo|dx%OH-VBIymBk?C7c>hI)$XnPY@gR8@$gnolve zq_HF(I6l)wwr&PxX{QR6{A3^V^&vsbT)$&$Gea9mH;{=z{%Q#5A?-Ob**ZFTl}U=H zAvIlDi7G-;86tqe_YEvC$Eby2=`YRs91mvuRl31nhJ$e)RyBmxhqt{Z>!7|Rf{{U)2A(m}uS+f-E%`gMhj5x8exApeqQ%GAY*+ZYO zbk*cREv^ZYqe1@w0k7=i)rfyEdJ0X|@*f8lLJePK);l_wq!az5$xgLdxrI8*qfBcn z$iyB<3@u~qC2MgaMR!Ce^{e@RtIMLVZKJJ?`&-@ViSC}6rgW!~=n}$geV2m6W?q*Q z4Rt`Eh|cvgJoMA!+R{785T}N9nipfPRh2zFeJ|{`TlwXX87FUtWDpXQqgqVXxN?Lf*N=n!ziYXKci;`~K zpKjhqdnmVCSZI~0sPgmA56h#uqvh?r5+UEABqYdk5g9U31=Z9rrX3pl41 z$3wj?4jOvOXsBLFw1*{{se-*j;%VB79F+Zr8aPbP_@03HSE_@ zG&Xi&AjJ(az*i@ZYv%D`)~te?7X)RhoA_NDNT|ByWzwhBVQ+3}Sj)Zr+O#ntW&nz+ zfs;YU>=i#Qi+^~giIZX2rhgnN77!Jx6GGl3s0pVWwS6QY7%2*QWMwgj^dLLNca|ZRblXtko2HO-yF{3glPd2C_XsiFt21Mw$kRnnC}<=x(?=S~9oJd8zV98}yr*_#g!qkiz*ibn z5y0^Lxb=_o_)~Lj{Bx(&OW~~<2WAXV) zq+A6BJ$-I}DYWw$dJ4F(v({8mWT053mZ4{fOlaz$F;)Oi?Xij*9%N&=8Bfv#L^b?4 zs1(PS&!UfYUvIjXXd7dYKv(V%DW!HkUTPv;l7Bf;I4Tl_Xc;)stG*oH%p@giigW zzl7wPlU^9$Do5C8ddr9TRn|Wsdb6~1`$m&DuVULNJ+&9Z= z{_fWCmm~^32qQ@$urpdyq1*XDe1O~iHSt?3wsN^V4GvDPw{p3PDth*T=9?V`+uFF9 zRv}QcOHYr;S|d*t zB$j7#u1N?OgJ>IgySTU9@23&JgBF8bEkUGrd3kiI-)556W0vJ_Vh}aXpNVQupcSd( zaTU>3)8s}qWvFzH8j5pG4oVp*@={AtB$X3Vxk98Xtd|YS4{)Z- zaV_ru0JGd1W_zC%fz1H}$Pz#-E0q-@qN9gHE7(@kYuutsvEaSBzruA?k{YQ^KmrGq zJvy%+=Q+}KzbAeub?;a0-OIH4`!y$RWAgIuP3u)(OSdo>{65>=wK+(#xhx$9U9lBa zQTkG6iK1A9qy}v&(+@6th0A=CzU6-;nP;#n}`) zz8==w^?P>#gRP?3SlVvBj<%aSou=KCo0+Si$p2kKjly-f zF9br}EtMKK4I?AFyD(6m7l)_4g+Vm0LJ57c+b!-Q*gvfc1@V-bMZ|JOh+?V~*CGVe z387t84T@K#?$rKXKQd_g;*(`|Ru>1*y;(tytfh)Q&sjbT?=jW+W``kA&}1+>yKv-a z>K2eQPgxe4Rg#?Rhs>pu?*8xc4W93Bzb5T-Cg*r-;TMxgub7Y@2g~@ndefJ#_olhp zHb`wIxP`PM#1J!&L0THq$oG7@4?D}@{_@#Lfse6+RrQ z!IY0ie4Z5@B$L|6_UoJV-EZ0(xWBWA!16Pi0{RJ!NmxA$7dL%p`f!rfWwUAdN{ql0Sf9f3notBsw~mU%PL(_(aGYAT|5BUH#xOHN-_ zml{B0n761*jcsjtYPaqVjZ!r=d1c!f@?83KS+}abv48a@z?~%JDmV}b(?j#cIuN#p zL-qzvx`TJ+y26WKQ)Al^qB7Gs-c@mm6l!b8R$_hCeE&hN4(qi3sXa zkwGP;{nPVe?hr=g_#0yhO=*NyxvB5;iAdmYMpTzT+ZUz(d212JuB_{_okL9 z=9Wr19?2}t3ag`&+~_VN+pTtrPrOFdA!rEJYG`Gk!5?p@N09q(xjZ*5coYNNSW6sc zi^LQxq@O?+se9+Fw%vA98->{Y%hnqw`=w2chc$|5cHMsD!%@RkQhY-_$Qoca*LzFUXj7}+` z#x)o01ePi5C5~vEC!oK#E&l+m@Lb7pZNH$j8K5#qgnhE=C;hE@NpZJq7fK%ImTn@G z)Uj4S?Nx#PT?bUIo!xnPWO zN)n)oXa!_!Lb^K`!TemvtpiIw@{B;wavb^4E_nG;y%SvW?Ty?E9gfmgTK*zq$IYfH zKc0Fucpja}!6iT2Az}Geqs(Wh zv^xtw0?SLF=Cav2=cZ<;lRdc|X{0&?62VJLNl+w}ND2cnvD8OC#z&d$?$BwOf{f+R zFYKs227ju{8waj^D5LxXr0z?j^K{v2EWSIhHw4+EPgO-#CL^eKTeU?cG%H&4l5Tvy zQx~_f-f3x(V_6zkntdRlJcKgya$1&Ea(~;8^Ym#KEnB=myW^!M-`ks>UC;g7sO#R# zz(ZSxg0~&M^Bq+~7TCl~Q36cZTBXU&L!bNVdWlSA(Z^Ft@+oy^TLNC(&wDtmR`IXQ zF)jNYivH2ki;h*5_1M0FFOt(g*YFK2xc;dSvjD=64NbIEpv~nVLKe1rA=H zBLjH_U43fTQqt}y@6tvdHTQ-I%8HTs>8YpL(OtINKHNgZZpgL#Vt|i8PoLS-hSlht zCe_>RL5!-yV|LUYNsimYW?G4HrfqC*Pp+znBu)fLrT+j=sg9!F(%SAK*750dS`)yU z=^ruptM=oiSC*pfR7+&SU&6p(A0kNfJw~b7d+jRd*KYOwc2bHYX};z?&xyuF!YK9A zFP2Find)7N4H3GFUAQ27G?RUfF|H}Kzo!rI^p|hgHv6ZQH+#RPrvd{uulIn|{OQxC zBdqt$O2<}k(&BR!FJp?8;L8Y08#F(}Xz5)lrHPajBAknp$o)R|7dAS8vqs8)(+YlB z;nGXqU$*gHJ3Hm@)X-v>A86@SPuKZ#Q9L=BaxAd4g`=Mpl#A3rDD2Tw)3iE|`lxNk zHu`(JZ?7g$;Qs(kTl@sm^W)P`w0KI9qpYk(X+fv_9Z0R}y}=Ntsxjl~F^wWe9bBN5 zl~k(CB&JoZsZ>OfS(Zf7qUVprW8U>@Loa{Gf%^{+=hF?gswoczAIh2k00nwruIv2W zDUuo-ZriVl$Yg4oJS)_dajYY~Rzn?8D<{!(-s&zrm|Jeqv82;V2d#1Ycy!#GTzUy) zp!*M8_U6mXy<+0>*oZNB@^1}hDxlJuhw>skO(hKleK=Qgz_U~+^xU@=_qjJX<_uuD zssr<{`#mR@ZA4Jfu6lOeJ!e-*OXWJ_!QE=?=`R4(<)xkKwY*OfjQU5{5(1c>h|@1AIC>soUPr{ zL5QcNsH13bSt)BCBOpwcMqFktlDV@bPM2$FDanse3`ARUM`uWc^EN-VePDf*Y*hJU zq!;%809hiDXB;s3h`|QFUn+X_jWH5cQ@!vj70E)cSps=nMj15I${IqxKg$af$M}0a zO~qrNuCeRUY}*tqfb#1R&I3h z?aA+@mBfNV7<#E6;T?LL*-IC<(x!qXEmJ@!2bFw)Jw0b=o*#x) z7BDMP=j`)tp>BGut%S(osdBQ`<)0;=n{LrmZ7d#FJhL<`s zC#T5p7>H_?cdVYCeI`T|SX$(?pH-SQC8S5St@?q#_}|!!-%1q}Xe574f6vfzDY`RknIn-}#D8QPay{H`5~(eyYCJ_jAC(O{u-l?! zQ2j7h(PHT-)sqtSMp9$a`siSY06kA6vpHt}09D5Z!`jHVDI6Vg0C7&4ZMhbPFbetC zAK|A-HG-cbRIQDi(a8jsW!Fzt9e@K$6=6KUo;^x5+Sfks^)i(t$=gp+*1nP&XnJS; zUR^s>VDi-AWfeIYX_inXP-ui6MX(1=g7>b%U*4o*0O;85Ag#0bZ`h9)4_j5T)_O&>5XWQ(J8m#1b(2kQ+ z$G55!m?=!2R#fuSw7xdg>(L{4qZ*G=W^V_%iYJSTUcC}*cCOe zU9;`_pCPH9vl}w2LSn0^SUs|lKpMvdJ7O3H~5x$wGEw6a9*Kfr1K01tbL?NkMk!mWJzR4v+}o-kL|qx^@Y z*xL2;q5Irf$5Trayeszk31e{(I;Dy^o(7I2bv%_IAE&pL_B~XNKzi}EQbCR?w@mMY zJ}QONi-`as+GwvcT!MiWVhr*yxm97OgZUoR8?j8B^8BJA5eM?=xzb4BOl@sB zf><@f8pkyiM1k1ZseJWw$0T(6+T%|;hu7PlCWRz0&(EuUBa#RNbj3YB8iq)vn*|+9 zMI*rLmZPeg^Exz3V^3A%D2zj=4mBQl^!v0|B#!D+)2&TuA?-$BJ!!+F_E#54B<6Z7 zHaeC#VUO-r{8h1*)oC=+RHZP6$_2u!5JBe0+MgJKtHTuhx~z7_Dr<7xC$h&EHASj6 z&I!UsEl~zGqYWH^K`iDtC5AMWiR37=Y2aUu{C&ELta*zZ%2;c{-10+D-oxU?CDq2NPtk1I%Sg=gP&DQ*qV4_I^GDp z^1q2>W9ex`zDd?G$l~MMLsGW^U(2U_CJFH!T{6~3ijt&Iv~)rkm^#LWvPi-&)RPZ| zp>PerXBYOwmiFO`h6Vaio*+@Bj;@~9H4YaORY8VoC}=VurDZ-Mn)9WO)8i5Vgc{gPSYZ*QtGl!bL*Htsr#S_-lAgozlsZphj z8FjmQjsF0$6!1NveZCU)Sv!xHMp50%Z%1S#^p(Qnu@yA%(8r#fq*l zq-_#?gCiw8Gf69s9#Bw51-(bwDXk`rssSVN=*BDP+?iNVk8*X%V3csiNcP!v4_RAQ%TdA6ZBpaHco;5Lfn8{{Vxm z`Pp)F%=Lf7DO89s_=gKb(U|C|B5RUd&NsU)Kk(yFsWs#!dA@ zCEZF%XvkZz(SLHp*@66fJqpXQZU$DYnW^6um1pe>ZNjG@=@kTmki+by}J4g-L+Q}z z@eiW%exlQh+^ddyNyVu5P9qyl1#L|S`C?L4LL3;IM63ndo7$VK zze@!0+veV3ro1ys(wumC^h-YKZCh^f6?Ms1UI(-j$I#<}q3CP*OZ>feX4Kd+(FuiKaPbxbrOwv0*h=`|6-2DZ|v>d-bg>m7>ZQ@0yr3g?l#MID# zKDE1Z4Ew|~>5sxOu4JnZkoo@rE~xW;;G)`FyKv*C?G3eClA*{;i?5Fko3ZJP^94%q z^)upWXfg5h$`7ODVN>eiUzNOjbi41uk20&h=Du*%cL)Pflu6?0<;76wh5GLEK%_kz%9T zW=W!nn4ka}&;|bhCtfbo$Ky+Krb2QCs{YfD=U$roW2NYN^AEK*u48gdp2qJyrbZ}# zyHynR$u%_{4Hi^Z)8tlKxS|pY#gD+~B|+*ozq{Js%W))@<}evnzn8B}+}lGGLS&Ys z^XaCRx2-0IpD~4?++p!m^!{3Wq^lk~DN3%cC923;T2H%|OBahlLI?@~7WYrqjhZ); zu=J`0fzmnSNq;j>@R8Dzqjh3doYj93%rz{NR>+tNdYn}*5|k2rP%ULidZ=L37fzUz zN-P4Y1QPe#Ez4_Y-HAL!Y5s4QN1wiL6+}^$Skzz=3I6~uNL+^eihPwstuzzCj*dW8 zvJg1|r$%yR)8wr}LV~Dlqk&<6ZVjg2NgyW7hJ57tnp1eleNM+k>QMK{)9jKot-2902m>GsP4!3 zdP6q-XKo9d1!MS!sPp;$%=CNz0F|v|S-#BqBMk;Jn-}Kzt=a66QBP9HB$lTXA%sa& zERsZ;z)){+E%f^P-Tjz~>t(E=m|S}Q0Hx}?X6kQl*)1)^B#PtH{k3{6>?$iOp=ybh zVy7!3tb`cEjZQg-=)eckH7)dovA459UV?Aev*O%p=ssmFPp-G6?e&K55{M6*9{-%rt0;FtyLD z>1hE%@#$bqxE43#-AbBp>Bv~Ls+tCq=g>PkNYXRAm+->!p>wVjg-me9ilLQJB;|p> z)c*iqcc3DjRLE9R7bl_bsAqzge|3&dqIIK(H%C{EtyGfoPSE74q%^F$mDJQZjaI}k z-~;Rt%;DzSHw8tj2Cw7*2cf4ey4&uSv$>>FPy@$2DM6pid(*2E(L|TjUQ8hTP8ry|&`VfQWw4 zQ~q9x4_D<=3)J5rGc<6TlMdh8I8#tz)iM4zm`~qkO$7{|R@S7IHUshOeasP;-+5Zv zLD*g2%Yy0j>ObYzXsx%&(06z={D?p1=&4Iyl~WL{EU?WilYrv#MnG6ZNn#aKR0=FF zb93}Q#~K7h)Nl`9%b-Vz^$7`Yh!fWe%G8mc!oo?CYFJB;(n;|<9Xx@iI6|;Cwf*P= zO;pELSx*jwz0nzm8!VcbrDj4IEqx%Qb2s_1^&yxOe{}>C({}-cEMLrZ&uy-QEM-LQ zA3~M4rJkK+lUEi{s6L<9+m1m|P8}eys8_~%f0|PZ#}nK<-@78KkVk?t(d#Ys5?l+8 zN9WxK5z@AE)Cea=kIzzUV_9A4$s~nR;Rrl4l2`COy{&zE)ir<{2dEevv7_EQZnws* z4K{BYJZ#!nwM59R{cIH^HupwA=^^>_n&{|Qf%q0do{rA&F=aDDF(Wci{{Ro9oWm=H zZy}}gM;RvEYh&$Z-w+6OA3l|Ck}Q&vrlUxwK`!F0lO{w4V6=@)g<=wGF}9FiAlEF3 zWFK39hqHZMi~+|)XrvsDfr^n)O8!Qc2^tsq| z4)`A3mBB7L+a(ZY1&c*BOl-CvOQ2Fo_EWfnrqKCo{{SyXJ2@UCpz-jfKah>9(Q@1A z4NkZvW+7n(V=4-{jhaItbs?3ISdXp!xj7-+kM(1ss}M@12M_bt{0FB$y>s?3fUI7W z!l@Bb%~EQfH#+PM4K_bS> z{XM*jX-a3Nnb80&bNTiE)6^fTtEjO#oQIx$82BleEBM-0vp%F%Du+v*0{Yoh3;Pq? zwZ!l$JX(IvhL(cUZ(5l(OVXEj_RMZ-qQu0N)eO$D`6gF_nN*!D>;NP>n*gVi{Rgy= z?MkOpH%`mB++32757g)l&gHWiD2$mIDS(t2ycE$YE~j&&Q978PRldH=?cukIWef3t z#dKY{J?Y!-KBB%~wxg>${#Y@_o4+wJ3}hIn)j^WVB9g02&SSrPH}3eT za0fsO!VR9|UOET(2Sk769ZOaGmG8=i7H90e&ZS4t2&+X{DX?2~KaTWd#@b$4z zL1rkkn}V)Q}UZy^SXWEJ^} zbxmI|^O(7N!msXe_~xmMZrEV0nS^!KR0DPHHJVjrkVw$Eh{mcn zj#`CyGOO@3~9`uil>RYVsaEP1b|L62`>*R@TqQlH~*{{S6M ziQdw$%nGWveZicTC@Be^oMh^nmUs&Uc&g%Q%FPpNqY}mG2 zcA1`A!a(`-WOj~sWbLi7UMhwY9sEUSsFFC94Rv4Ih|&@vj!7k!s-7yw1(ib}Bm-mY zg7vpq^u-KP2&gg#Z|$caT=XW4a`l&qEy;#Uxek=nHMTsok1XRE_30-DUpF0N<|$|z zs}%+!r^#PDrZYOpPVA&WTkaY4F?H3Z=jv_kw6%gb(QhsgFg0KfX~Q|;>(c2rIim(W zmuCd%p=}yPaBvMXj*q8OX6xtZp53p7mAw#}z%Xq2TgI?h zGat{atb#q--tj)aauIZ{2pw>_Hoa@)dc7SYBr+z^jHGAqz>((9MD&SZ*s zZjHi(sLzVhRFZWT)Tbnj3;+kONWICv^Mi72{F`FwuylKCDLrdte~ZVEt;n3NR(Ua% zxT<-ff{kQW#)%y!bYLxYixXi_js|tN|z6@LSzXE$z0)NY*cgpkaLY`E{#^Hf@?A7WsJ6oeuguK$YQz z5$Pts@XbTibZGjgvvU}1_wky&uU#c}2WD+tPDYZhqM4FhUT&8yfXQYVu!gp$BexPf zm@}GC)e;M{SRo+iaJOq-O=P>hS#8DKhfteKSssd4|^Kdb_iG>x8tmft^V-?jz2p zjeU9-{yA+ev$i_FExD_x>T2t&b2tok*~sPMj;kS6EoC+ix^<~~hE}h4lBQ`MS6(9w zZU?cg(VF3{qPm1e#5)nfhNq}gbaQU^Eo(cyy2wCf;A-^rBc;b#Z=Sm9UygI{4Z)at zY~J?S`=f2*ar9GGPbEHMCzRb1!JnTIM;L`?@?^*PMCZi<$q|jw_#qAY-u~yAE$r;n zG#VhQky=nG{(L_^q{w16oR1}<+{@y4-X#rbRvviy^=_ZZzvG8We2e%ah1~tew|50@ z?4#fN-wjeQ*}T3szP|@u_S0eW4OvSpbj6Yvm0@>QdRc%hy2v1_o;K9C<~S~GuNAbQ z)VQY)PJ(w^zUg5W*w77MqCe{6b!l5)<=qFxt-ss2Cd1_W0Xo8maN%&cO}9l~oZh>V zllbIR+ai-WQ%O%*lFipeLsB4;QWYLbX9{8mP=UGEYl3Sc){#Q9ToNlJf-ze0p=Ga9 z7b!spF*SkRr!hchS82*QMbg!65v3|X!8A2JCw?&h05kr#-ne~}w6kg1bzA1HUC)%4 zFFwtql;9;?rbeEaZfq?DL)YV|DD2b`6Oy7D(TSX4(mFC0bXQxymd z)Wb58RL~66SFDQWK2X>R#}8rF z?ryU04d2kzR2eM$M~cW{J41MNp8Lh@?EE#c)Y3)e+gUs&=%}s6szV4_Vbu#dN`c5{ zD%iO{bKLH%#^1z?O zIP9F&*t~zLHfhGji;Es_toZ%2FGGh2>=pq=AA^M@baW{x&Dm zJp%4y-?{$tdFHL>aE|KrndOyHL?M}+H;LqwX6|5scM+@8pf|DpLiTveGQM zQB}6LT>X{4w+3qmSx%MH#4!7BY|vus}qjXEsGedofHqWAoclsP?`_qK-J?60E+MmNG)=)C{U^t+v?; zZQP2>Oe;ovpZJYUPid$=Sm^%%ZrnE5ZsSJgE6KTi%9ziIZnp|?;|3QIw7O4oh5%Ja z0Mn%NcWpIZ)7zMdG2L}GO^Z?1_5RVp?_ckO!HLsNl&q%HfOfE*2*fv!j8osYN4q~2? zrdcooYyfA5MZ-Jb`O{ zxyc62I8?V@?-EF(?jB~kdJQqXZ@#x)OBuPgtuE4hK2B}PeYua@yU%K8^E-;3l`*wB zoK$&?Y?QPU!-tkg<*J^O*AodKkr_OyGq&G-zJkt3_S=a;yjIifPQ~mTE>W@7*^SFXii>70 z;=`>@Hxo^@Hx}{i%$+TDRwBC~?y>o)K#CfxgKk^4-getKnrN)7ph5W5nPmNle9G9#Zga39WF;dQBA+{SlTRJ-O0%-RFsmEc^*9=tXdeM9^;>=F>Q9U z6G9A+9JDwfm8byIh#9G%q2bVSPEXkEF5X-Fl(&V*@1)7ANd}5psK*pKwF*|5r$TpE zY%lIjbuLrBI^%C3qM)8ULhOCDvHK#O6iY=xMP0dbP-XWf=g#hG$ON?yQI4RBk}5Zm zOMr!xn~_@QZru0#gUlP9+_Tk+-F}(_{{RaCB3Or_u+LTJSnauv3su=-hBky#Q=_12 zdbuhO?dV;q-1`G|<|;AWc`a@u8H&YCmaNHO_SWFWQcqO1O(dAA{DVb-#8Kwv4%1T5 zyqew#L-T5V;s;;0)p1*?&T~d^c=`JG|nak#~OJ7}(M3P9_qM|!fp&^uM1w z7>^V+D4T+9uRVG#N?Isoj|X3qsHc_~lTD>47_qUiu@pnN+di1h=~GS`Yy9caX6v#+ zV-0?$IUb;Cqbm95Sv1F`YI=OB+c-6oEk!Qb+)z{1(!&U2wy9~TY2E4CrJos)j+Lt_ zAOQq&i43s`84*-5zqV((abE^<-}7w$0Gp)t*0GyV-V8WD@4^27L3AC`)$ZICRNGW- zRC*X%o#;0$X4c(U{9aC`v7M*LLs>(gj~vyI$D*B(#~EJ`*Q_#-hSp8eS(TB_iu8ST z4#L)JdkEEf{6~u(KQ0|R<#4!6rY@>2=L}R>+WJ^&Wm>$N%``=%B3P?&sO|p%0$|jO z6G%dfYIgd26GV4oBD6CCwD@S%ukEIO&V!#zVQl3V`bAzetZW5xaul8?*Qk3~bl%9X z@L={y!9vnWiEQT6rP)-~hZ#WvOH5tr_e@iLja@{hIO13?92Q`pk7XCvywcZg6m|p! z99fk?A1YA&wI`(p$7`NFa^2RM$~pf41_wgbPTj?1>86xLUn~MSCyV%|7ZFtxDUHjD zbm_P8rD^AC{i(O`k@=_B3+_!d6+m8`)JI1nJo3iwb)ab@c3)Erz6%{-)!mnhILsu14Ay&Yy zgX(M8U)jVvtnld!khMppDfZ-a7M8})lcH|(!y13do|`k>Zhm;+VT`F6(sTJ|{X?e2ehL`fD_)t`2VGZR z6)@W$W&A>DjQfdWo=i?H?qgJ1xDHMr{@>aE*D7n){~Rs5bBD!MvKdC0mwnOajBH4NTHGm@wC~B=JdFY zX^ivJ)XJ=jWE=#zus+pXZf@X4_smwHDN9vN<8| zb8`at@rea|qD21yp9f8CPAH;ccI@cjutxq5B|5Qd^MPd1Cu(j{(^36b#!&!+G ztwfdo053%Mq6p&yz|cV8S5eQ*3TOFn={sG7j;k7#I_ha@7QP?Yma{2~UnDo4HuB?T zgv_6~L!n}h4Ww2adsZ3zc@Z6%>54X^Uy!NK<XMf6!TC z@ej}ao{ZqzBVBbL>i+;&9;2Ze;A&h=Wb?Z!NvY{#ReAL5nIM_GgVaAr)=2tW+j2_q z0jf>|%ZKIFBDAw4s3XQ4N6)6bwic#}qDdVp+!rk;@hRb^S~iddAz`Rxh1;9@lmKjg zpI7bggu$sMR-HF-WUoObwNzG=>6W){O!FkP^pq>*jZ3klg07_j;!hmV2;gZQc_kXw z{QFwBWSt%%&q+R()emi{59Cd8(-m@LX(xtQaei4TR3g;1L5gqNM)4Jfo*8FVVZa1C zf3WA;izy;LCb!R5FtaTdJbj%tW9eyYC!g=(S{k|hl`*totK+roMQm)5R6`+=cvVMU zZE$WqsFvzT*YwvE{{T_xgt3KMvL2(=ZKQ@)sj7x}#MZUpsivbxV`$M~XxSZ$S%3&O-!(kAP0q?cNddQtRHOmxL^sM8M zL+VCfx2TS>qf((r;Vc7?N7Bw2%W>&-yi!x(9VM&w6d3raE+ay+E-BKO z;fz-q>O31hikVU7#Z<{xO#({Qxp?T(j%en1{0~eS>1C-k3dMj{V5lwu_d#@IPT3Dt zaLWGx*^ZOjhH6T9s^x#-vQ;69IR5~IK|IM4x|L|lfbf8d2)4aO{@sNhN)sXJ;K<0T zV;Z_d&xm;-YN#luNbRb!zPkZllu54cn&qLRmY_>5z`e?bz1Vwy#?VA>C)v}0!k|_W z(n<6Cmmc*LDTRk4M;!Vhj)y5*OtJ}3U(FR|1c1E1fCw#rp|SV57DZ(-$Vojo7T!hE z;elLr23#Z=WM>dfwyWiN5;_AdV`I#yi0>@fDjFwxHAZU~+7N6t7YcZKEy?0KB|RgX zZ;h*@bcLwceTGvaA)c2ZMxo3#6xC5yK~)GO#8Ow%!Wng0S%81=szf4mr54g z=yK~$v*WNb*V4$-P*Nmn6-4V)DP3683_2`3Kz^;h55-SFJ24nWcJ3 zSMA!jXIdJ3q}Bv1n!l6M}ivA4zHiuA;^GvjJutx9@N zE7V6Yf*Ih7dMAvAG8zYvM$oBa=^v<@Sp9wJS4RR!7quL~<|=$F6Dbjyw0+m4c$%?jmd zQDkj&lFDL%;`n{Yz$ zPAIYz(NbdTA)cVDQ<{ppAq+A^>enUWb{|pCvWtrt9jdRVVO)QIWG=<^z^gdm|#88`C;9amIdH_Gc$L;AcJuYgNmX?zbomsrD z)b%t>Ru&Mk5uH%Z(xkL=B||A7@%^vs?#&eHq(y*7#p(0u@bR+$0K1!5Qd97l&MW;Y z6VQ#2+q4uh54e{u6E%)B)z$Shc|2t@QO^-bprfs-hB|1Yc;fLB6Wc^&fPaZ5 zDl24wB%Vcy#pD)tYstsd0DXw@ttsnV6ZhSo#$}ZSURCSPJBUR__wZ*i*OEz6*<00wc7_ZZl(SGD5vgNDWnU_c? zx%~L`t0!#cHvV(7H*QC3Kq+?BPGF2gK_!m#u*D27KaN=?k~XWTib)79avtW_AWIg= z$!iR5y}*Aeo}vr+gxB-5EmS0a+6s=E@!O|yZ0xNDcW7qoFj?Gxlu~5z?vYkg{oOp2 z^E`4gFb^aXGJ|W2f-FEj{UkB?a+Vmo&#vDg~ieIJdB324SPj;@rY zLunF+cMKZD4`GX&4d|wXoGe~lz<(j9N9(Qy3aZztM|rqjXl+E!lDC8&y7Z2dD0D z`Fbd6Z)91?=%jAkeM{H>0C?%~KWUDusr!0`i^okwnH2=uu%C&2;QGlAov1JILd! z@s&?WQng7^hr?DXRe@Q&P`Qk|s@bEBg4*kG^!6l;l*EjNs75*?lrl{+vgxB7f0Ly1 z@?l`g^xdB&Aq2ICP7ao&t*lR6S5(4MeWR;97cm zZ!JVs4It7CTBM9=ZUUg-pML6~)=fj#p`UCuH4MF1n3fpitj6vZf?1R~S4FIfa6*|h zhlU!0FJMNo_4XCqViKn13G+kHw$NnchL$Yso1O4=a_Lu07QSOBi(8S@3z?DfPg#Q3mmSrpn)2W^^Z+<w=9y1CQa<<{*L zU3olI?-%xMQ%TySY*Vx$M3$N`ZT4kEOxdO^Wr?BejN3|x$sS_LHX=>g#y*vuB*tXl ziLuWZGh>$PcYlBQ!{@`?JMVkmbDneFbDn3mKl{TtnVCD#ja0<&9nvB%`+ zN%C(mvn|VYuLLRI7iKKjjwDmCBZ(>f$0P#|{FZf3RCe2yxzHz!!24XvDbWoze_&)~ zNU&0`XtDcbg>Nj{{ru2m`N=@&4Xr=rp+AD8?W4l`@y@0~@Yjjv%8tf9dw)n5K1Wy@ z>pZu=^VY^y0+x;C6~!zN%ojSU!-MVXqAtd2A<{gYCw25rb78!LhTe1`M{Qt30(Mz$7vOKLFpy` z=ws)CldpW*;c3aeRwLF`E!&U!##PqcA#UBJSNXg&cln;4TMSB4;FRY2!uDAq9bn@; zqPOGh=C2K;6bpt{_Dm~&4*mPp9q~Dbdg?@b`{YdW)16ha9mMQnsCz;a(petsO%4&m zQ_Q!7q#o!ghdHpC3zPkb?_X-?m_}}pUOn&$ua&15U zTauOGT^n7)1bKgBn}BWKKGXBw*k7xH_uYxd=J9uB*B_5WA5-G`1<)p8=298$JN-Fj@J)^Rsc`9NKShN!&f^-5R3{D*utLT`1OhunKZW6T#F z|G3dYQ`ZQ?VgvAQlH%&VJ`o*NxbvsFzIo>m`54b;_w>9SoIZ6t@f3Y&2z0c4owZF{ zB-C5tGw_;u9lT-Ywz{&Cy6SP|O0cYX`=0b7>nEE!VX7kBTllhE6*TsWnL&f&uHh$Y zi7luu6_uJ?8J%)X%XAMys&In;;+>h`yV5PcKcsM_o-AAa{ERepVz}NFzuH3`0M7CM zJvo`U`!)_C_iZc4xqLd^$^cQ-C1n3BB824_a%kr##6x|D#`AGy zO|OI(5CwkOv9Mq8UptYW57aA;^!1>u8qDVx6yI;2d|n*nbNl(ZV{O|%q|3Ax^e3{( zvW;oub*G~bozS^x!o0+q@b+Ckim+{>?Kb)(6r&|}v)gBu?jKNnSw4XrFn}wIaqjg* zs=hXqym%?4pPBjCm>Wi&Ib3U}Zlt4MAZ)b{RqJ|qyjA*?L7V$kDzfwgGi`L^$!*&` zvynNw-EPQX+iX%zJPHz3l1r z4sV8AmIwI#d3W$05v}oRN2sN*Shb#EjL+3G{%4wu&gm>Vh@~Jcbs6Sjb(LCOzKCGj z1Jh@%29bq?{o*n=fArrYX$^L?%Iv$i0@=8Fl2{BOWUl?TD}MPU*;7$b@}WUIa&Ky# zh53qDRm?J5$ltzsVh{p^36_J8e4BaQfgy7>40S!RcAM*lX`dv?$PRQ& z`E8m#kQ43FuWG!nbHVELk+PXJYT?u_ueD6in(WJm{&oB09WQLR6#KZLYh=%AJaO2V zyeixnf4Vo}fczJ)+$m2k8>S*7yh(QoTpiqN7PvQqD5evcfqJ53LNlXk-hRim$qs&4 zmUio;t#6*g!KJQ~YVFb_>sRLYW8NIn6(0VhWzRu-XH#6iS^diQQofVHRl7ucSk5zq zRciYLxde(kU5~L-sUduR5#+sZCb*0*CQd5W-i46T(Db)CYJl`aJL0e;(dE1|{QmQuI!GPgNvB-VPQO%HOw9NbglU-1Q1n18ha_UC26HO3>J?SxdKrxb{hNx0_w9~q zd~eV9n*FmuQV=_Lt#Zls?Wsj+i`gIEm=fdvV)uqe;rD+*PNF)&E}F{AE+z_nk0c}P zJVVlzak_G`tkSb@D(ICDZFEz*#W~j1O|k5-<;1taTdFbfp6_S{@d>i7abF7MSHetb z-b3!H6Oq&p&d1t{&)cQKu>|Tf8x_0_< z+RM1uUH>hKb?9^+${Vh6T8W*EQxDYI^Cfu)YI(b^!Z^FW+qK%UHf{ADNJJf&-_c~e z?)evgk=8qWuqtrOLfYa!Tg=5M(WWtpbA5G>%03wT_52F1K<(9$HEO!Yd#cm3`f%=1 zSXtn*v$DRv?Df(}n`iU$9*+;0B!ANv{~LOf&>9)}-0S$A+{EACM^rNJJoYBy?h@{* zxIf;XfP`Cjml!sT=GXtId~c|%=wJLM1cV>nM18iYrQBaR?>SW#rmd9ObpGdq*vC`9 z=W||OOn>F@bw#-ShV<9Aeu3J~U6W5)+{bQtuA~<-yEmZx3u+c|9z9-S>67SA`Tp@* zW26GQyHN8=ziTg*VqGtzxzEqwn@dCE&ggu1np^)VKYe4PzMp6AnI6b1lZw;{d#qwp zX=0Rc?*8|uN<0th)VTJcg0c!d3O-F1rc!Oif@CiyZ&buK%)gLfGfVrIizbq<7v8px z_H1C(Nb8F}4z}wt-`@5t`RxsnY5_WNrhQLblj&1Gq_r6;4!Rw?#rDXhC{G6`p!P~{ z(;GRQoiH$>r*tp@ujoEo(BYtnrRN!_jTg$Di`$qSiGvX%76!>dqZU+aFJj$hK{GAUJbc@Z;ggmcs?)4 zOpFRxStgZ#%nPA?C>jYEb`j5LuW)H$Snpl<9H8eVFTM}6XV;yl2e)aK?qZEXQxwZj zK4WyB(v$lReJl)*+pWoiKY931nKikhT=|yb9VV>;_3Ph*$0N+Iow6Zde~RSk7-u~ zUdr98JxKqLUjrpT%ax*GAyu8SlSEC=zW$k=p-LeR+K*Ng7Y>${3cO3dYF0Z?Wj&Rt zW!jO;qeU1NM^oXrb+jXHUAt=PJ4r{WWc*(c03Ap40|Z<{vtz^|2;#FFf! zClgxxwIWFe(j|Ryr+4nsDsZ1BM&?7*U^?GwO*$r%Y1_g?q{xIgRgCwBHB<-RL(P6> zza^wGI6l^*wPBVS$*frAH1(*4S z21fX&yxb`9>p?PCQO}C+j_K#wL<pGeu1&vEnks~>TOzi!``pnj-F}FYysLWlE+rByyEXQ zHI#&1%2@_oA+EZQ*9ki-wSOztN+m5QZhu)E69ebOOSo%X)I7CpV^pE}uI_x9`95od zFEt&97Itf~icY-cyh$^fdhgzePSJG6cjw5T_cbvcD@I<++7aTiBg22uxQzQZ`&7Jn zob?yPp}p_Fn6948r|Z4u-=@xc*quwTc=oZ*<2wxZ$cWMjb+pJ{6gz$DAgeDUzFcL+ zEgL?1?lsH=NF#W@5A1l_)>mCkr#F3c`Plqk^up&I;%=(O#zz*n?K&lYQ>s_@MA+T? zegWs<4~FiZi;xQr|E*KSZ2pltHv2Dr_V^vEWMP5Lyw2xF8&pTmzCcC^;o^Be_pYCN zj5USi)xFoHln(z;cH?I2zE>Xc+?JU_9Dtkk2kme(gnFMTkGe?P8xw|Kh&fuAwCl}` z4BLMEm$h?rLHl^ta1dl>=Y`^Acv+;PC2l~yGF1z&i@ctaVoTr*(&z% zUT%ApLX>LXYcs$>nQxfbs`y8*(Z{ckbJJeP$kjrFEFZcH5EbQG9>awAgH3{nXF%jR(E-moi9O&)Yd*N+4qd`vcdhg4) z2Spe9R?fCArZd4M^^;su?^tI{eVGu!lIKMcb;y3E*WA?G?1+mg%G9U`rj3=*E>uHA zp*E#$b`T**+$7p%TE4v{nHJ2i5Y3NPx)C zF+yDvC!l3xY}&3|Pm1!&+JF1Mf-RvND?Q#5YA%{>{3yY83OwWDwLjR@kv%BIFK6#P zs`jL%x|mva+T7UIkOuQjHav&B{cKy7iN(jR`Vvw_+_gBi0rA)V^h85km9LC{ElDk< zwa>+)(zdh7bzWhnDBDBv{k}I75o?4;FC&i>;UoW`EfVf8n+)76{U{M6nyt7~jPJU( zPWyD`V(aI^62y;QyEKIHopr6CN6Yis3EO+}eEWY_Jo(_EV^Kb+s9ylp7^U|d8Jm$3 zd!YVgC>`6Q>(8)LD1iub(@;UFO1bT3x40tOFH9gQr@>InGP7%I(}j; z+qs-|pE5Y4FBfzCoQ|>gqp=f9KzT%V*Jtl9&N2Bj2H=_NS2wf81-Ut!E^m?uIJ4kK z0LtgsLea-X(MDdaBgJQC+#zxzo;g+cMnDR-Y|ANq1Yv^Q`(te`|kPo zp-Txy(&Iy3g{P|SpSqF^ajzKSxjre47`flcW**E<=KQAKN1{Q=$3^97V|eR{lEN>Q z7JJXhI~x!l^@DoviQ0xptPdOHi)>A1GC4_2<3W)FWl%8~14z z@9?^KUafy>sO0ag*@d14XWQrg&O*2E9m68^{^mGFTah58F{5#&1S(P2UECnlz{YyR z@uss$R>DBZ6?k#iHT#!Obx!VWa`t@lz9)U$W~iSEd}7sg1&?6vZ3(^ihML`&*;kIf zj65VMsJ|BF5@1!o-D={>VNB}<&oI}8$_=yIcF=km$~}tDN1xVIfd`gAv?o>? zA-@cGtrp#K-M99OFCNXSIe6Gu{}3&oZt#fx*n((;cv&pEpyukk?6jlDaKH;c-1{{8 zr{;?8nYAhla#7*K?~M(g{@R8K3eF^I9?bP*WE^Lozq>0YuzKf*-XZK+T971TDdp~6 z#RkJDp4Dz*H!jUw2NiriC)-hu6m=)yZ(vQ%$IQd*GP7q3gjOHv{r43$(lj5RR(3mY z5GJJAbgIvoABGYabo}{3?8pFgfV7gGnUeuW=2foTaGq2ci_>;mXcqkH-506iuD+?b zmt$foSymA^m6sv&-(cT|UMb^>zPl!)7IW6tgaJ=;J?t*AUfz*@T^rezu>;n(nCxtY^FN^`H6AcXn=KDK@u}71QIO5XlD9?4NVSgt zty86fQQLM+zr31b*1ePpX-!gUpqEY}{FKR_nKi5SpulnI-C~7^r47<^qj~*3H2aK& zqCND4AJ+!Lq;y5Dr@&e+KT`3fKRiDT|*j@1{;=M^9lT(oq zndRKIF$PcF>-om^-;kz_wL#~_Ta(&)2)4$_eNvaB3-W7TA*!XH9)29ru)3kvG1LZW zSgD^#gSU85jtqO9qj$+#RLH*8uo7!`o_hW9t*xe}6?UYk(rugm35H>Py44HA zW~btbZJwbXe&o;b z0x_noG|wU}p+hu6-YMJb^5i4^Je+)MeyR8Vu7dB>p2k}EoI-3$xZ0n-Rcw87QBJJM zR}Fb3hn~+jwUq+jI6Nh>ntEClR_r1i72?BQ*B0CPCln4dP95wuMA+UB(!0L<9DNrK z3z1q@nBPpW>b3c6^#|40)4aE@<8*@Q_w5P~B!$b7q@UkQzYz@*)NBkKVh>@`L>=7UPv= zfWo|9;ZomyYo{~;va-xyGlkJ-SdB^eGEP34SjC>GLUvado1gM91;HiP0!-iymMnqJGyjSR^p zeC}-AdGny;IfbH!*)auQJDZ~;7cOldygyvx?2RyU2aZjGxs4xVF;XwTcA&zF`T{S= z3?8GMMAmuIA=z9bMqkB2YeVFypeI>r9@S&bSnc2#ony!!qP&^>e*f4B#e#zC`&hU)k$kw`iLI zKks~d$4&g`DeLx9Kpc*F@aaVJr|$TGRFT5^DlG~2y^ZU}C2-Z$3-Pzt=3NG5bTc|^ zZYXO|zBrXer>Je%XdGMruPv6cEAq0du~q2hFGC5&*0iInM6W25EX^$;Z3ElCL5Gy( z?&mSx%E+*b_NLxH5`IrC%(eZ9DJdx|%>PyYKxJ>}U5{7#jy@N~#C5%8uQXa8x?-wx zrgvAI1J~HWzNDfl_vh;uJ-y2)t-npbr*mv^iXMdKKIcHjUsJYRhGtRwZOd~H?j_h( z$9No3?ugw***NvwWYFiY_Q_=tKGzh3@tZ7b^go(6(OYlcxGzVEQHw4`;+E|j;7zCddF<%b1%gAysG?!k$-sh8AI^WKlRs~*P^G# zP9KxhkDnHAIbHhpOr*}@?x~D3i5lr5=PJKk<%ZcNKsvRNqSy0WaAK->V}kL?3lZg- z=XHU3mCEDbT|nkSZTIvTP)Uja$7(SO^%svXlV0X67V&)sj02s9vJ>%VW4e`{v@i4Z zgU4eX$oi2X2y3jwshN>YlQ5Rgay6gK_L(^yR>Bqhu-?0O zCN(Jlb*juMwC2*B1~dCyUJ~;;cssbOA4yzr<5)y_O{WW zwfz6&eX;WUsLMU}KNizxv!8t}|8}ObDkDevhY`KW)xD`#@P7HAqv;P(>{T(pvC&6g zpU8ZDGxbn(^Ubr(_x@LE(wc@{QR2PF@a%*hxh_-jvn?5t;)SUSY_i9{ocpIP8Xjy} z{$+6Hvt?V_h2{$-iR!1nQS&}v3R!w@bok?sm(4E>o}KyqTaEULv2byxa`oLpi%*0? zo&-NjTqkvhGi^5bZRaOfiueY+(D2rYUL!g!IT6^WFNmQ`>D6zWwKM24LlNMbNBZ72 zPR_b3G^(qSlTQHSyMAik-NSuscy=srno`-G=igj=JmPPH%I9Amzh2#q8#$F`DRv6L z^$D;mdS^?}YHQBdAm+^1pKhcT-EC9D)~*-P{G_i1pcA)?ybxdqIbs$`_U$7OL6Vpi zL-rCl+4JH*zRn(bmxn-=WbXqBk$d{}OZ&U=$hL|$pZCZuwaEo2g|cf=k+Nq?%8}*Wtw! z?c$?EqQzOek^fJX= z7Y>zX7i63%OUOI*!eqy}YgUyz4r1822X>tb!reK|Q}BHXH1i`qy+1^Z<>22^EDzky zLRfR9hRt%aJkw?L9&rY|vnQ0rUNeNP`@1m4SLb*{qw{1-WzlD8AXTRFleZ69OJ5`Pw-_ZB~y z{lNR&H_E`VTm-=$?$}T;)$WVV7k|6V-TAUo*s~`b3097t?#Txi z>J5qLEh%>GrW^S=m=y#zK$BgM6l{?zoN>%4gB+;udF0zqH@g} z$e9A&loi+@X^wKGpP%#yL4jnAtQ#Ic=NOre<5XmQTjz!_+<+$= z{IGM~uQ;4=GSvdNdBw2jM)A*rWX^{B`ZPg<2j49~f5-8KD4^+<&{2#;5;DUJ+XV^U zuWCAt4^e>T`d9rZs1YoezG=-^2qN`NwCB>4as^^GfbJb0d`B4<+!BI%MrGaz6zerxdYRdS5xHC7Bzw8{s$5(|TDK^@y_e{N=h_R8s54G$=ewEe7|rR;V`7 z`Bna?qZ!KKs;r@6ejT~9w?Cf=b%2#T!;qk6p~!epRg2iQOpM(UG6lY}iA?S3Mt+v| zlbjMHfn(1Rz_qr7t~9g?GJKkN<10{vc=|{NF@|527$4@P#86mx=#Ihw$C)GIH=Nqf zgL|qXum>3uQ35n_2^fivkcr66NqG&*@NM+Ed2z(1p#}<%>J3MX!demS8$eOdLjQ7S z9C~fM8);S0ILRR(UpVmLTSA?Du463C9N`Cjdr9QFq)rg^>?ZLn%Ucl41+kGUoXQdh z1dIpk{0I&^x>&?)30=>qBgf{y!ep9}Km=j=9PmpJPww^RUo?d1L`AHwqm$u4?TPxJ!=;d5W5}4U2Y{VY~0!sDyK|`E3eU( zdlu&k8nD}gw}d#mxa6ADbz^8&-jQ4v8XjB%*NGrc4*AcMi(9?ci$^qTA^NjA6KlFP zlK)WGbzF&~iG>*wK_3n|`^#87+8Mjb-9HbMfvgaqb}$POz~9d4BG;A8^YGK;88ims z7{L(nBnpvA7{OF>fCe^sNx`NhV4fp^T_VD4GO98bU|H`QhTN9+XHJK3y?1`3N$&dqXaK@!=94{-!EcRyZ?K^;ZgF^~K+ zN7NC+y+ipLTSAX3Jl8oodgGN1x95d_dxB~;I*2ercRC5*I=3chBK5PkgsNFbD>ETm zjy10)SKyF^rTvfqt03QNlh!)CK0nroTG><1*E`Pfr|~Nu;JZJ}5$h03Kdd>3NNDL^ zx&qTHyw%BZx@VFtaSAaDU@#mpkm9Ywlk6_$7Guo==n_0QYI7RRAXr|4_@)+y9li3& zBg9znA_uF~^L(imcx;GUT?MDgw}kdli#t6rut98h?rI6>g_?8N+g9{N zz`2_g7{&@vM{z55YS8)+rTK_#FR3cf^`t&0MAXQKvllB zfH(e=pT-d2R%wh)-J@*p&L+X6t`0`{Ct^R2@a3a`z*Qkn^5MbEYo#c$^-M|A>KJTwDWT}d3K zEG_Gp*e!CxcNNsjN;HBm2(>6Ku*Q_FSp(z8e^TslOPUMQoNzPi-g^6fNcBbx!Xi?_ zjbLO1Wz|aq5CPYL9B)L6(gqNy#};$}2kKX6Hn81E$fGR722@ihN0KkjfvlMDJF5Xk z59zHxcy~cCw^OgSX=ReIpaUwhtT~|b%Z#u$19 zh~?;;Z+P(#uvjXlY)j}om9U5z?e_|;C#DHnj+E%3#dx0o8p>P6@cKL$FZN8fWOrj@ zC#MYU^kEk96bN9EMgSmUxVeJ4uq9-ScKI@Zs03+%2xO+?E?gZu!BMF96I^E9=7wt$ zU(o@RhKMX#drrnF%2Yonk&EJc9f3gGEfDG*-VUw@8Lj~n8CyaP{#!ypEHq7m*TqKs zoFsE^f>0x3(w2}E1$?+fZr3?VDjse$ND!pKX#S*kdb!_A`+2`J0ErhCu%0fxag~?* za8aCi!`A8gxDxhwKrwWm_Z?Bo6pWI)&=f9Nn+13Y(m4pdX9?lkc}SHsHEjRdLlT?P zTp+eS{!_1oYdanWFuI_Zzb^=3uZ$l;FBKz|?W!Vvr`e;dtsOle%TY};=4;`;b}fL5 zi*zXF=GM(9W#+$5(q9r%sKrmxiJ{zka-N? zHD{HjhcHYt7ldL{mueac-~!wCfQLDvvo^`0R?#S3ZC}{6q(r) z(wzavd4^vDmNk_%{P<7=k3;dZgq?dfM3Ex45u$cv#i@GntX3A#I@~GfUl%Mc@?g{C zW+n{|ycXbjxb-n^T?Bctx&9mY8Ulsj-l+yGj^FESx4pHFi{hSS^35#{`NiSpnz-{8e2B zhmyMahe2V#Iq)ojKefOkPu9^u(i}G|z$?E2fiUr#@8R32@>0J0t_cuSWSYeWBsd8~ z6L8BLgWmkZy#9aGDMxt3A}c%)Y`~WYpp`usS!6}Vfv;#g$D=3XfLl-m$eAbb94`}x zXZr(ec_WB4fx0I}4?oGRlMILzkOsm2_;K?Ha(*?tis>FJXq}!ddLL>C`-vBW=^@fK z;fE%mb17O3x%fP9r~N=3I^Z84c*k2ErU?8&-QG|y*a~8O@ri9NjzJR^Ulk`eXsve@ zb0Y9l5)4uFlVUuC-r_?qQNqFkMKwJ+XnGN#s*)vHcTzwSQ?zE#0&FID5>&w?g#|sQ zb(DXjnaIXWu7RsD<7l>1u|0jM_VF4WO_%_1{46Ww&{o!#P-XG2pI(TVTk+;=hT})@gi^zyyr8>Gf|w2cmBr^vcm|U&OvbRPMLbArcF2Cd>GJAiCjT!PwYH3+ z0}mGknPGY3L-9J{H5AB;jlj*ifXQNFE5RWnoU2E%nGgUNUISu7vR;c-ueY1?my9>c z1>1b5fX3chuPvbi;0kFNOO9O`NAtsAjo!uh8c-Ru55sCa!4UL@8w!$&-Xp|;R6K$a z0Q?MXwE4%|M~*Ta5Fyl$#E6dzm2ZFT7WMsS&mi7>H+&rfoy=$iq=#9J= zKrju_i^Vo$kV!u#`hg{&!>1S<5HU*JWQBMWOepbsGB*6;80N3{Vm~Nx+QXc)bRdXN zcGV#V@hye|WZ)62{McrI7)8y6eCxs@`Zaz9IY-Dp=qnAseikYK9WY0atX9#R3DA~R zF=$#mC=|x_V7`zCDI5RBsN~p>h>->BPRJxtJQ)v~HFSFQvfUaoaA&z!Dhru{zqt9d zH36|06fNcNW2 zbCk%EMbka#i0iwr*~wvA7Ps!oRq z#_$YN0NG4jx`rWMqfCV(ULXsn(W(sQ@EQz*Hy+7q=uPETIBW^M>!0C|x975;HEm;!(zy+Yp2@WjadB|oY z>399HAA;xM(g?k?1sTL|y!TO%jU8N@2UHw9Dkru>pQxg|thFZ#=R*;`GRLo)(A8cst~ql2@5kSP8Q3*;)IW+-4C zOhDAaHRj>vz;?m7=5ko*s+S+&69-RB<`*No33g;cYgC$knI^IQ)+{KFsZBycCQ1UO z!lc}J2y`rx`voz;yHc5N$g-iV6U7EuObXz^sY!dm!_~$j>BZO*C;Uq58U!06{w%I- z)(4Un`xkq-m)S1nz&y}hvUdRigSxR2cw+mw;QA^MLk-d6@jCgB#}u)!raIWl_ErA~ zoJ8>ttP|Oz75}5>RYQ>&E~>MzY894Y3WPPp<|0S2B^4s>R1TTa-rdU&8!Ui|O!Yn{ zeRMv}ss1fF8*`Sfy58E#e`q*5Zpb4qhpYpI3_6A-%bux2sJx5VUSNifT3W1gQdNCU zKn)63DV7bmI;c;D3KV1qU@x)D8uLo%@j8ZFa@U`b)E>4UdL;nc3*mq&hF5Py2H@2x z@aHNofAW|#UR&E_R_day5F>U0tLWubo*iWW5fPQF7}zqRt5?>W%1l5tQ;^LBLq@kzxB+ohRG9Ce%%;bL5>;>bqv3a=q?h!i5NP~N z43@PeG)2eAK*%%_+dl?mAR+iXOy>Jhx=L1vvyISisQqb%XjKW^Bw;gDdWs_W-EA*O z2P)`ah_wtLNR>qcrX`_lrF94>q_jqv*MG1JuHpi$l>c83q;ms_IB+QI=mN5W(Ky`? zVsMq9+8kvH_OD@4(2rSMpkTTLMOZXqw#PAFa|GgtgtomOQ@o-W4vb}KL4_~3NxIWC zXbS`xax)=kK>V(RWQ{L{Ff(iIJ-G3R`A{I6s9M&YH)e{ai=pWDo4w;<6TI<1WO{4Q zEEIB~0Z*p?pYcKKIlG7mf7);fFh%8(-vFY)n*kLM859Ok8uHgkbxN{f?rV6qSS2qD z>Y;=FFYy@?A%ax& z9CVh2vAnha;wC}l*8$KT%PK*C_YLJ|V;JZf3ZZj~$?^Bt@M5bzq6(PHSAnHv!Ih^%wlkdEq}RH%T!iMpps*8&^`4r80C(enT{md!n3J(3 zRDt6oCN?(xF=zRSY}kuQ1bwUsn(x7 zk}EetlsCu_SZN*j6d}*@-=D%&VR z&o=gAG=UuwyiTv_?%ZY&V&Y2gS)d41S9<8WYJO{~!=Tg0M$A;s5YUxh7epV1KHs)M z2k{pqh9y1ag{oqfaTe(!9CPyAeaP(@;x=HMgAnL5jld2@9PBMyi`O-UHsfwCZQ69W z9l{wj#5AechD?xD-eeOP3(!+chATntvKWCMehIc-L!JeAwsQiEKRVKa1nt!i5T83* zQ->dWKZdU%J4lPmC0)7bBpLQij~>q6|xt46*1jd zNXqgh9HO?f?#k61|SVC0ItAKSRsfGz;J*s1b@aAJRN{JU~~{CI6emdO#lY0 z&|C25T;ZY0+Oh&u^Yg+OX!1J%%(nu61n};4GLb+IKfn!vzbt^c!I2RN!kwe1<>d!( zDiFp@`yDbcG(LpTGB!0aHq|sYFg^q=W3*9785szQ7lk&70RbyVO&6jw7GdH}^d*wr ziQWh;GZf+oj^IM{CquF_NO`mj3N0g#Kq{bRWze$9Afp%*b8=bdX<+c36?hTA!snNL zMYT(81xA2`%nD5P4;0P>(Sw7Gtegxye8m>PL%#y^0vHy#fo7K!faxNa%Tl27tl-rE z%&>yj1u#?Oa=8pZF7paZEsA9wykUj^5a5r9q@&fHJa9+kIv93$Sq`<1=9n888MkdkG^l=69WkFd~{}TW#5AfRndJ><1KL<3$p+h@Tltg z^{=3aRFqMcf$~@QctJ)gpU6sDY2}Dil9G``%AllV5O_SoRa#C8C5e(!08~Z@zH**W z%UeB{rhz@H=h7m8*Plx;y5)Lh1ZB~!z};FZ**9^sv$JzkckJBDSvLPq1S~y)HZwyu&|Nr87^2$@gKvf{b%Q$Iu=EV3 z4zy%|(Ketkbpx%Dj-G*$iJ4`?M%X`zFo+JmO56m&=wWa=dO8LsMrH;$s~jM1hSTrh zL^5a|cH$EDIU&o)9g&c`Uqp0^X{EEAJn3Y;7Sqm1v#%e%VaO<+dwHjJXXt9lih4)f{LkG; zDXMAhpVXy7Bv#UOhkf}5&ArD^?FIZ@{iq?3_aW?L|1 z`ENTJsR}UdLOpE&N+fP|(XmkQ#eQ5<;Xi92_DhAO4u};_D|0iX4vpSw{Mg@K-XCcr z{33{zEpt*K8XeO;|G9iTx%h2DRMd&)JlQ;CEs~_5(v;Pip2;)UP2_1T|FFn*H4Wc< zCmf%$sn!t_tkIx$O)vLNuh2`2+3_McYQb+|2pWUL)6#+ESiAAI~QRud|-q68dVCbwy=c zo&TVM7ki@6m!}>WRJ&^N*r34DU|~B$o(DIn`%3XihBdFO4M+ zp&}RxRrJ4zbmazaJ@kQZaK8Ei!!sqH_a-CNzGqJ& zwu@XaD^GbXGaAR-qIRIvJ-DFc_KjErzgAQSvsi~;(Ts_j0j@%Yiz5{k?O>11lAO#q zIsPfELT`T3W9U`LD}kWgkr&6vVIebg&VKE#qw&R~=6hbc9uDeZu!z;b+TiBjyGgqC zT3nv8n@Y5ZZkWIvpX$8J^<;FiVlW}dPb=ixnadq*-|Gu`g~-Rr=jn?k3m=8r636yt z*6DWYs>D6%JU->=!gO}?2>uYU9(!ee3HtF&FrfuG;aQPVT%H&+Vb(EJRW_%7+rNQ4 zm=zsZk+=k1T7uYYgpB-DZyh2_6eOqHDyU|8Zgd!JDvZuAbxUd~E(R2RGF)MJfg1^0MbG)WBK z5!s4PejIC$wJyjXWh+rAZVFADJy?`zVFiS} zzGK3EGYieBd_y)P7X@3bTJaCmCpfNFOxTQfS$7}2MD8S4dfqxzqo~1A>if#;%*DA) z0v<)^KD~zf%>|uaD#>~ardHNBdX3s{K?{ijiImJ)DNH40D_igFX~oHkuNT9I5?iJc zC*TMH7m1VCbnUG<722(;A1SzXg&qn0UT9qwKlN#9=io7=x7FFn`!>>#5gE<%syy4Y zbi1qJzAY%b{{366o4(uQqRoy@4l~*a>*dyxcRa5=^DN${vHZNl1uNSMqX%uGr@k4S zxPSbP$i%rFN^G7+m%~5G$I~+j9BO3y!W24m*Q8GPn*-{kmLTuwRbh?BpH&$l=lb_v zew$j^fPY1a9Fp)MpZ!vGZr1odp*tjgx+QVsegU80_(6FBx$9^?yS>=V5w>Rhu~L+m|5QC5SP_FU0sTE|K|R@N0@2LXm=sY?+g2Bo~e^*8DJ@)W>zRZk)0^kawa9rW+;XEh33+Ww@f-=h#YE?a@F_JD#Ur>dc=z;TRZQ8yBRt(%3 z*GWw9b!$D}e-zV(?Tiuk^bhOlHT!AgkrCfevPISABHs!9dqZ{;))^*Wgpy|JzF#|- z##VW!@i?oW9i1ZM?V$de#l9?+#oS3-A2tQ7X2JcW*(35kl4QG~(8|%?vW%!f$0J{f zLw8K9%|>##B=CFLgKRpwo{Ss1dryz~=XxHVa=eeK&UrZ3)9?lTX8PHA*SZEpjOq*i zIQrgEt&|f}u|u6Q89bkx?ZfCFD`$6!)|I_+_6*5gaO`5U-+vNzQ}onAn#af4etrD5 zw#7I}`S$X&4nwDgx`!$n+454#Yix~1rh|lLx4bJ#3bva(H4#YIxs_!qh6Qo!9rA6E zz1wtbnY8!jRFOK0?LD>JNkz8oA*E3-|A$}hj%Nz6+l0FJZTnn)_rnn(%f;-o7Y2Te zO4A>o-hOp-%eBVxoXJx1Y@=6Y4SDygtm_YoLX)e^@Ti8?xsV9M^T8J=vVrGx^HqBb z-EV9f$gAdo)D;`tb3%*SF_NJv{y!|9_kTcUzhWDr>+o5E46pEE>}@Njo#H*qrdy2^ z3PB`qfVs%})fP)3;yW5re>zU{}E#<*MN5W}M(8o^sem!OM*pF$qR#D)merFH6~ zdau86QGg>C1a3}^V?49FJBO!K4Y`6ux@R*;rz?H@mu|0@LX_S{kY~ zDWO5^ed)j+8yLSoxv;M}>WX+;LKOTcg5}166#v76dBftb@7is2d~Ag}mH!~Lr2^%) z;4oYE?mId-+SREwINsw$4!MW}>&IiRdc`yNvd2TW=8%&_q12|1-jP%}U&4i6r`}1M zcoBiHf$K|9{?|;*xz4n-GqJWj@{a@$U7NI@k202>m$3TsFxC9shy2_^hqzd@;+IcS!ujaCh3(faSsMDI?--CBEy99qL|i-Z6S)C2XHx&nyh3?>q#CBo2-zV3~fD-7$j6wB3Nb6)Q+!oTn$}5XFSL7zS~~hRu|+U8b0Rc89O!;Drr#{WE&|(c6zVbv;-*_SNv2ru+EWjctzS> zcE2#+`lxr<>v&?(M0w54ts z(GiG1$yxOldp4eC!}l`EvFs;ZUP!eUkJeuGRY!)mp zt8_?|my8fT{tOO^ajENH{Qhj%Uc0kCGa-{u{khMuLoEW|Jl0+FLwCfs*iWtBvfs8i z^VpVrW_UdDd(4?rP*&Hg^cRC~9`vdHRC*ry_7dcQQslw3XXv`(q}K<CcT)Si%x?rgtzC zTp(sJ?ah0hKTyG&=Vf&1r7{PPzUrmm)#C>`2lFZ#LX#JG?euKlg=}z}(kxRExv!9s zkv;b*d{c#XisZkDR14~0x66gLLT)btn@tk)W=O?o+4P~J3Oxj2V3NoN*ZrO>#&Wf zV#fW)aw{GuO-%Q<>t#-8L6kS{teDGVSai?~x}slIF?ry})I$7@w_YW$Gpf!v-6>S* z9E^AK^^|yZ@4*sO|A=WTo|ykqrlqAd$o}W~7nkHio+;h3dhKTZ)Q^wP!nkk=GRQ4B zg|!tJA#_*h=%vLa596wWFPCRVchnsuxO-|WNRG`f^zJWdeqEwB${zRLurPK?wmry0 zy={>^W9d0Tk_{|tx7ak~o->k-KfAr8>TyAA*%D+_kVJtye#YuHUpsM?^+`2Z!qdj9 zIG@wn#Mg4hM!)-Kd3W#IJqva<-a#9!`mA3S1*q$MEGG1J2i@%LouAaY;+eUS^(^oT zTVeS0Y(XSKwPkc>jM!j6plKMCk;_yI`zSn(PJ1WE)84i)zPGD0bNrM7N!zz_EJRG3iqeeE9(B4dMb7B?r`!;hA$o2^JnJ~fd;u-(k%#uE z#BA$7SzXB)n)S0*CFN72qv=p{CE4p`Hk|U#%!+)qemboi^X>U5p6bh&cC_HV**lrY zmnz27;|~><D`cR&~_wikfQc z6rWU`cpz+_oaz0-fA%Z-jygkox?pz#I$tGX76el=b7wE2)gZZwy;axsM;-bP+j+wk)ry} z?BeFrp<2R3NMU#6=P>YTD zi}aYTkb12%S3*t=HqZBk9z!3_ola^?y0a%|k{}sm!|0&<<&Hhy>(GY7wJ#so)D%o1 z3k0T-V_m~A_KqP>p+}z%#fEIZ|K6^ps5Pjob=zjAg>8Nn2YM%QaL2(SEr*$C*_L22 zWa7XQB-YiRuwzKVD_<_AGcXz1VOOhIu4t%_Qt`PqDKt8h9_>3Ukvm?*taki^tK7}^ zf=~Do6&@8AHW&TuUV{2Finq3s2ew3?Yb`tZbTE8+bXNVPXJKMqhu5p@lNucg$Sblf z#~E|*r@BjtMKcY^Y@wajB>StBY<%*K1tEj$wg`y1lU&?6=GGV(Z_xExR>;$)&SqgM zLTXn{#C#5+C2L=W!#Td(QMDh@+jdlztKY6k-}W|uBe_r}8eI#&Kv!Azw%0Z^Yd%G+ zdT2g;NI4tDs2v7B)crvDW9U${nDukwz(~>!$DlJiV+5X^3v_H=c%E=VFMF7ug>3ke z@X_T4Z1N5mCTk3FJI5le2RU2~VThNK@xA`zyI@k1qM_jqJ2yYp3|(p(;%h}~;iXcs z%2&_vESy90e*5{F*sfaI;%4@ma7cI7=b;@!C#`o%j$(vd+O^-yRlw& zGmF)sIO)02FE<1B_7W>K%c5V`&Qfl^8T|R-`BY5%wBb?IRnOv%mZG+2f6bxK6rTI= zfx-xve4xVqW>V*28 z$;I$R&!6gp;I#0(&z~~u-cy@rKYM!^&93a9IuaYlYqtdHkFfcO4D2hcFl#&7CV8bN{00S)!WDpRLYs@2UOa8AcX`lOMyi|Z6@ zuaWJl3GD@!6MHB3EEP|9Y>qY@;Xj8JF{y?x#XM;pG)qzkk&Huml~Ov^!XrzP-hCqGdR(InwAzU(Ci! z=N>7K2M`+;ZCZpZWG1|}E0r1Ch(0M1#M_Awy8GsJ>CckxF$ets_2+tAvl_F1EkPZ| z{pxw~g9*S5^)rqZ5MQB&kpTP$(v+vn)KZmr5`0ozhyzts7!caQ0NJH%$_EwwL=BHsR*LX(q{ zft21UIxWaw-4HgltaqMD@e$I zjh{~K7jaqYPMXwBuij)`IJn`ENXsXlslmKJ`nL>vkM{u-(5YTQgjbZ|h2O%ej3}GP>bO7vq0mcN91yf8Y@NoPNrn?GNFf0%3e(BD+PIqH(UmTG@26XEDDx~G@OITG0sOwBxOPIQmjn)!cB!bqj z1i|-L;-Iq^d5v<&&DU=&p@a9*UP}Ov{1Uw%P#Uu(=sOER?Hek zmWHG|RPwL%dg%XzM)L(TRrcx`LZ<T$OtTOgq$H9dR~6eE#@bHfo< z&Kp)8GpclB8V<-{bE5bX^{@mi$;lV%0uYe-G4It*bi*<;6+@*M;N1}5@c*~{a0k6sq(8jxi#;t#;STJd93WzUEGDf8%1uU_m}?fUf~r-`wcnYB$2XivAlji#w4N zsOg1sTlEyjvhn(>Xka;$3)a<%LhII8{IDe7->_S*qW{jm(b-Ll=tU&0bMEG4`TOgjiN2sg{R_VlRI&R%*=c9fZfZfacpf@+ zYA**i8lIa5QkyW0mZnDhK-+YvY4E=b{-8&Jy$2yWPXK-oh`50L2`u;%SnwyX;7?$| zpTL4Yfdzj83;qNa{0S`h6Ik#ku;5Q%!Joi_KY;~*0t@~G7W@e;_!C(0C$Qj8V8Nfj zf|w!PFfVqRytf1K1b*$utN|OF~@# z4F>|!g3Q4DJ9UbJHfOOsKe)VV6_l~`K`_GI*Vh{@ElnUxIZ>AgOJRt3=>R8hX{3~l zG_+4Wz}pGqiS!~VCTWE=}GBQDE5lL7CSo|r8 zkx`IAC?KVfa`K9bihB_tXhKF>MpharD~VJ@%gLf;WDqNxFer`W;)*ua)?FzJq*R4h zjPm#Qm-3gBB9h#sk;=--R2j0el7K^!e2n1h6d*|;i>yk}#*#5494+<$L6r#R)hWKJ z!a&ny6Y$<^Vt?zaRYoTYu=aOO#ex;*G_L{? z)*K$cRs`8s#}63tJC#}#1_ zFlz;SgLz9@O}JpBv0hj_D1!{FLaynFA(7XZ|5gkJ1fP(cBuP&Gl3>Qq7e{cTW|X02 z^hRruuudQn!W=|FtTv`!Av)_;xl`@&MjH`baIVKd*aTKpm>P>CDT9)fkvCsm_AVhq zZCuN&G{M;QtW<9E)fLiG@+*8sph3HUIE?k2zZDAV9c_js;hekB& z$jHdA=Rb&bbHW@mFfrHC#<^k1pcTq1Bln}^l@*Y(@|tq;np$!)vRaCA^801wG!-;a zipuMA(`J4_g#lfFvcI%2(9$v?5nXX!fItRuIS2zCEd`{qf`X*16p~hVMn-6DU<|d5 zQJnxPUdjdMf|heqly!Adke5_eR*;jFcflYfm0htelCoGA6h_Y31*;_Iw3>f81i;B_ zy&PpNIi!N3uCknxqKu5zeoaLgIW44uma?{jypDn5a5~v7OVNe}zSZNP$teY?boEB&> zZB7O;QL4g9Qos{b3~&Glf*`LE6r>cF2}j&=S9V$bzY(oLEC$h^O8lKrn#O=gZDLf* z|CUwLhvK9vEcx4vR1?;G__tgp6p}af1d^b3WB-zA1lk|CK&~VIa>PGu1utw^7VtZc zRh$0{mQ~Bw4EUX#6$ePJHp$=dtoUK2l7Gjs?2Z3Y;Z?UtuC~YD$yxJ`>7>o16QX|c97$;!yYJL8q zfuJ>9AQAL$zonWIeQCo(nN<(2lWGPe0*z?HB3kqLB~+7E^6!eX0Kv_mrL2*t*WrVp z2$GYRmgX8(C%~IX23KA%tda#tsnu4l1r#MYk$qS2%ayv;3dqaoUws(72KaA&v5x!NqWyqril-(!C(OdIP8BFo*d%N@Z#T>f_=I6)7B0qkl|@h_r2 zPE}ZOr9xJTv`*|lNTtzMgsxtw{+18Ws4^8+WCCaTfr>XLf<}6byj)qjPF`f}vfDs^ zgw>*u{IJw`_GKHjz;&C5UnXnOZZy`$mdkghW?(q%;zV*;W?9!f&9J@{a8F3Z0F|hL zkK~ogaUug6?LI|S*qlUJDO}%)Og*bqh1V&h=>_gyT#kW3xEGE(aG-HhZ=k7ncxZiE zJ3qE^i))7US%JK82--~@+G%C*0)RDJz?qpR5FcywOriq#=ZZeG550G z{_a>XrUdl@ZYq}VE9B8~a%dUF)!VXVHZsxG*WZbR)ufJ5{(a9!>y}AGU@S^X4zb(F z2?Iur;H77KR@KC~QwL(e+tU9BcFF4gcjNhg+q8ODh(w`f<^Pv#`rCc%vf%$KR{ZyO zCI8t9+I!;uFIyo^ee$y0(53%*4lJj&mz%mSwK3BkO`u)Y-Rb@JcWBFbmV>_k7w_(< zCjqt7U+YCoEUA6SZ%$7&8Su~wxsPUz7jEs`QIl2Pi;$Q5H(n9B7ojBcZ@erD1q7ki zOIq)t-z)PQEVwE84_YeyyHGhfP^QAa@k&5>rQh%)6@d0gCE0)HkVR6}m;Fti6~j>L z^87c3Et~Kg+h~`F|6m<*z2~S+3si=jJkUvTUBN4OWl(3oHxKv&Jdyc#j{kKdR(1W2 z8Ps9;f3V^=Maxs`=r;{Xnc9$k<8Pz_&4}N)Lsph1>NoZMzi!@&4YZnE_c#@pMMHsS zv{Z2I;jr53L)<^dKOXqwfj=JjT_(uw z>`8^etA+tg0ty0{`o3Xqw`F)Qjb|Cwpu#SA0$5Q>N7dQe1@A(Ip8@#1ABDQo6n+rE zXZ>(ke*iZDSkw#5r~sI{D483Nbpoqj>8VQ)MSZatcL2)(n3ZI13YL4*?*s3SW_4Q! zJFkO%!IDqF3uzI(kI^1XA$DW-Ai(^%5<(yA?**P*NSc5rL*S7In32bOI}wgS(6Y_c zToC8Krrc=g<=uZtT*vocfz-NPrcWHE)ftTE^)KA7oWF3ydtiwsSO5+W|AlkD1wln; zz(UN9UpUdbAgJOrc$a(KI(vAi?PXoO01k_hqB?YK`)?W6IR7)St~@Dfd27>^h?Pf2 z2x_awfHklb5`qjuF0cs6e>UR(?TqWxTBpZeFi(#qVZjU?!VfP+)8Ic96vqM881L z5uyI&b`M}cr|ti?qq_={bYvWD9X6z8YL38whkeT|^wa|bcx?a&c&+|+ND#byd^dP; zxh$jzsX!W#4tQ&YF=P%|Lkn-b0_EVel%1X=o0-gPRG)2IGQlhY7)U!X#j_FeR88Ob2!lW(u>0 z9fi5U2rvrlFW4#AC0HaZ29^LzgXO}CVU@6#uzFZK>;r5N_8m4$2d87D4xd1z?TX(!g=63;F549 zxE9}1YQGggujQ6z<<&+(sR)x=q2e@==JF>=rQy@^da<@ z>0{_q=?m$f(Kph6p#Mt0$iT+H&mh5oW-wr|VsK;dXE@6c&5+Dc!0?=*nc*|TG$SJ; z52F~PBBMT|HKPY(5aVUWJB&GuPZ;YN`xvK~n3%RRNieB088bOC`7)hly2X^qRKe81 z^qJ`g^G0SNW?5!kW*cS#^GW7t=5*$A<_6||<~f#4EIV1yEXFJ@EXP=`vLvyTu+*`9 zW|`Ztd4t#n)eYtwJT{!zaC1ZUhUXi)HcV{XxKVhc^2Wm(aT||syt(ng#upnuZ2ZZ} z$tupO#cIb&VZFkd!uo`@oppkZjcpg32Ad6=FWVKiG`1?X9=0FsTp9nFZboh~ZUb%)?n~TR z+;6$RZsFV_zr}J(z?Rr8Wn13!zumSj9dp9pVuQ=~vUVq*=-sij{eB690d>Foqe0h8w z{B-={{HFXt{E7Up`KJT~1@r{G1#Ssc35*Ex2xgYw30)Ve5E?>k zL1-ep5H}Ie5MOuj@6g{t*^#j0?T$HNF<}eglfpT|-69)Altf%bu8TYs`6?%tZO&hZuQ+hyYKC8+QYa< zX^-cgJA2-V(}|m=wT6eMsGcO>ffGVE2}OW1pFZ>uD$q^6{wWQODiDITeV zQYWQ~q{gI0rER1mq-&%XK}3v~Op;6|k`s9Vc@kNI{4Ogli;<0$ZIWY?)0GRAdnETw zUP2x#A1B|2;zAjr&Y_;778Dc}NDA2sgNmYxM-^`?wkmNenJ8UWdZEmqyk9v~`LXg( zv;x`}orfM*kyPICU&^Vsv_Rg>~I@GjzY| zq4a|Ep6D~^8|p{sw;Bi-U<}d>z8+9K5Paa7A*-R8VT|F&gW?BC2TP3Tj1CxGGwM3D z^AO=skuhX!V0_KE+eFO7$E5Ty<6)D-v4_8yB2E7?tuf;=b2Ljgn>OEXe$~9wVz&jw z;;AKvrJZG(<;)T7BauhmTS;35Th&_gTH~xA*)Z8y+9cad+3MIv*?zV|*`2j(u@|!s zuz%^m>)_>3=E&jbUv4m%dQI6)IYas2r{)*y_ru@P|6#!9 z07Ag)W8%jy9P1C%4ZI&jAA|{d`qz%XPW<&DSTi^w1Qy~P@-$Q=^mORw<9f$aPi#2h zdE(7UnUj$xCr=$YRdQP3^zqYuXY|fwoMk^tI@@|q5A)>w^tRe#)UJ66T({})FV zD95Om(elypH#Xd$+<1TU;LS(3L~n)PnvZdhX^!0=n{%80_J!LscUwW`7TR4>ru93c0vwM&ZP&?1ImM;+@rZId4_pUA1Xb}&fl4TyMU|UVj-;X zSmD&Dpi{Dc*o<|vMps-%QuvtE?=q$teAS@{bZ!lt+MZ_ z{N`kKQT2E2-aCU*4eJP}!*6SlwjMRNH*0xxU4srLEPj^?jR5+d#Wl`?n6ij=9d` zT?}0pyEk=5_we`J>)q3v^IqY7*$3?puRof7?Citz4Synkn*V(I3)`3Iexd%f0oj4a zgSvz7hHQsE4|@;Kjhr3bJbHU6R$o7VBYj)?etBa1M9QT60XPhN2IJRPJ%YhkJ;1OQVx$8vkXYN8m>C)9 zS>PMMr&YjLJs?InD1VIzNN^@PW*7^!VdEz1hl{{>J>XQ0=oncjF!05X%?zB3JD9kH zA!a1ErmV;omc#pboJ8fen);mB<{Yt8D5pT=ql=A zc3W5;;mv#6@bSCLDc@_Sv560>8vFJrxlT~TmC^bJ2f$#>%^m0A=O1t^@XXnB=Pz8m z9uEAr_W#d2L^{Gr>19q{G0{m zQ@=w(4`-mKr)Okjzyp;xgYS?qAQ>THF3rPCvQFGS%==G>L~JolaORO?$rY`v*CKu0 z`r)KJ_#DYLjP|#CdAm^C%@uT9#5RymUDNfY>T7|eSSp@ALsNKS5AXG)eCh{DqL#l% zvRm(ntJ2y>Nq&8iMBmCi;QYL#2!B*lc(K{AR5#J^juiTvjqANT-1yP%0M+hC zA1gn4+|ABR3$v0`xp3HAMQlU-5ruuh(xFG$#(kq_&4}1;vlxnAlsrRN`huK+Uh(v2 zBl+B?9!}AReJ{km;d$u2<)_K4(Gs+^;L$Yq71cVg^7AqBUI9l$l1|qOMUmf)8q^i6kn-Pue1&8Nro1?_qFASrX_yz-iMdpCW)rQgJU zKesGvN^Bt%6P0rs)^{jcBqI6F;m}w7f0e0Mh`ecezWb@mcS)TcH>^_2RV;&O2jqA~57$^-j{-i+=VeEl*i^K8_(Xo#?Vl*osh z@q!6CCW80&O4q5qR)3~Y5?~Y`f9SwRISa3;qp^-ELSJXqCwB2zSl07KZgV_Ya-pKJ zUGQ^Bb*KsY2PMTq5f$b^ZWw#0sAIslB~sN(MACP|G4W7!En>>NanbwkdpdV1?1Aqd z*B|Ul5h(7okZ(5WOL9*3I3DiFYdx}kf0u2;HrUjxP$2*7OZ)utRJVsQbvC92*qt~y z>GC!2b6(Sz19y|fEU;!05}xX&8|jjtb_H>E+)7R$x6jYoCpDCbXY2?=4t{nEyV%v! zko_Q9`29x4jSH$_A2cjrlY=Z`7JJ?yZ&bB>62~4;&`pjc9yamX#%^$UXJt{}#7KsB z;jt}`(YQe~Hg_h*L9Np#6X92*Id&V^SUx^wVoU$QF7{Hp@l;XXX*NRk=`Up#&NeW+ z$vX*=iKuILQtS^u`zt?ljQgeAj$1I1t0_N%q)zUN8GN0-n?cVZ3Ky?-UFDpJ0Xw^H zly5EF9mM7u{x)_^ril@~Ew4naxv@hRnaB8~ zUDadaEZ>uv)3pu1)JqkjHF0|>$X!n&yoq%WUX8Q#wT`XtTY_Dm*&?vO9hZ(etsVN%ZW#)*Q$f zRi9>;5DoxwN?VmDk zh0iL^_72ar#BujEGb^PWczrCCb68Q7J+x}!s#@n!xxvP7E%8#f%ko}v`_vtxw3blH zuN9w%M|m@`8&!OaZ;bZ{|E4Y#^VgOk1=I#*dfN!6#jQ)w1vT&jT$aHPPlC%dyFAlb zq?B^|ul^LBYjVM*#2;cm5hH3f{7H1kH zH=+9ux}b#Vaf6bb_LW!uN_LPxQ>KZD1WPmSeSZEzK}tzzI4JRXj{NsQ<)bpj)+ICB zz8;836Vv3xi3}YG^MF3lsU^mHiFrb3-{VyYi}Cyx&cVD6o3wnqhm6A8zWLM?pb%!Y zN#8|$;P+7|je34k_|SMBxyO{hr?o=xn$Lpq)hv+rA#JaE*vR0wjIcU&kcitDSApBQ#|cO=uS((^gC1m!R7^pngPnF-~u*iCRUx2T!7!y%&YM zwYDGTLZ3Ayd!sP^{)@6RbuB#$X=Q;^#>Vo^lDjo`Bjr$01$?M8Iib@z(|z56Ge+$! zJVWoJ(Ldx`(5WtUQK3!2VCOpWF3^zUq&xNoxr9ez?08St_9+Gv@(_cltO)-vCY`gkH_FVTW4n$kxDubzKRlvH z@f6;Al#S!iedzGPxQG#ts0PHgy?N2iFA?!+3>pjQN7I5O<&RDWc(BJk9%IlLJaQ>H zQq(-0F0(QRL*m%#dCj?X`k^Nd8~8#g?w05^Q*z_vgJ-F!napJih+Y%1;l;eG7%R(& z6OAP|xpMB#`I=})A`4>n^FF&HI_Nmvo4f?|ja?Iv?re;>reQ1??)y6TC#K0zKIduI z;3K%sne!F-0Tg*vyO_zuq|E4R;n^>}jgG4)**sfBaVC zJVS3gIMt-yQoIBOOq)F#dnzwsJaueJFIXu#kg;gQ{9Dc5Iye1jBNql&UExoc7BrS1 zLDgZeVmYI2@G$fwDR&3%onFC2!1J`wUFY>Z^I|y-7|KL9ddzwU6c^A!fbF8aPdYDqD%EyqC#;vQh?;_@O z!OiwD?oD@t4T>J>?7jHx_KAiA{-$NZnBJduK8?qcT3!=f@vzVX<#BpU9Sr3W-tB{< zyc+VAgIgZYwH#n}P!@lUyT9q#{R>9>Ja$WUToOu~?FDZLb`Xbcn;5RtsIn~Egm#SJ zB*cw+SmGQYD zi%x0CCr-d>x}{dH&sgH=yZjxAQSoL5gC)lqUOHQmj~YK5z|u4FGY{_I-gSqZnx38H zQ4$@c%_SfO7r@whH0dTz7PVgW^&WctEQ~43_f_Yc)Rq@LPHq;wR)eAr^MaZcv#rxn zWAYbuo5fP-34fKCxRmno{}{L*9gwyJVXBAso|Mfz`SEH0rQpz(=`5+u?<|hjSiF1s zXh8Tcv^@jK7v|mL67N^#?|&oAcZEHJV|uabMrjhVd)v^yk^~7G^CJm371wWO zI+t*tYImM&G)oJA#e_EZ-m6)(t7>=ze2VSlp!tpk<3pJj`T0NI4rDErD4FBn(^5TX zt1fFH4L3M=!SbT$;SF~VS8%GlP;U`(^pKWHDmas@FmmK`Yvk_s^Lu&kAiY%6I#EA{ zE*JQHcvWd}`>-`58twl1ezlJ9V#mo(a!Oi5P56w#$(alZ+-qsSiA@bLXZnmEX65S0 zOPHz!?|5hxSG)LC>vHBRbECubJyzdQoVhl4T*U5eDbaYzJ6Jzi_GaOd7tHc3g+E%Sd+OBVLJc`HoqhX z`}3R^QY%kcl+NO0elnoe-K}z~7LzWV!D-&KH=<~KAI21FL2RmiVilqqUG?hP z&0U@^3%bgULhG8f#ow6vG{%YLq{*}e9?(6>&HXL&V4TvEFneP1XPuW~*A{{=c8aqdJx0v=cg5}o`Qcw}zMlE~M??bYs;GC?67-huep`GOL394n92=Rj z-pzksM1Z)-)g8^Qr}f2kIgHwZFNGO6-$Nct-}9NZ91nx8I( zW{rd}nsC`13ob7& zTUKWs2+I6(B0UPJ*^;~L;oEccrLtbv=cR60g4A{R-uu0(9?x7PKJ*vh&pLcPC!M*$ zEd9k~xS>QJ?w(W<^ApUDf-`N7u|YdNU$J^naMrLhBK?b=*vR4IyMqHJFV+&SwA&OD zgdQ%$<#1lS%5>prBf~fCzZ~w~RVkWmVEH)yb2c7xI={&3xH%Me{Y2Uec+uT+59DNb zsa5Zs(?#BnLfHe( zrbA;I&guF)q`i&b$JaHsFGxgs1a=;{8#N%;{pk8B#CJ2Z9abN{Mp?a!JYu#L$FVo` zeuY|<%Daek3l{KIfK$m>xRIXV@mG7ZZ4%`tYx($U-=A;GzS;D3yHU)i;A3TFRnz;P zQy3@lU5Xbn4$Pkk)Z+in!flqITgqDBcl+Qwk$qU#t2Qq>4tzauMOB=@)Zg_WPPs@{ z#q@x$)5i_`yjRjiejfkJq|?6kK^}!cNAfS<(^~svMB__YukJ-L$Rk@$B7Z1UcEskV78TVp*pA>-;M;;5b`NY1sIXha@gtrz8y{LFMv;$GQ>m6tKWMZk0xG?nDXG-*35f5YQ zY*47H=U{V()!TcOIz}Ol_4J%C>_0}{zy9qf#q(BAN#{>H^^QuFtkBd-(}pcpZWPvp zB`D8X3KFhr{5iABX4E@LJSl$D6;-J#N6e~KW&#Va{MG1?`C-`eDKN9&&Chl zZ+}Gbs-5nw@lAq6-cyn>RhK$?UWrET{=yp17KoBMi?Xm0Qm?(+SD_-YJ?donsqHq+ zT;>f&`gW#R3G7VXvgysnrrO}0Z1UnQbk(1vw@y2J0?8S`lJa}j!cb9mB3(;y{R|Js2#D7Vkx(ah)0qsRgG%EMPO-+X@O z-^RzpVQh#JZn(yOL)=TZIO^QhXBC$o%m(?-=%jZRU|`I{^<~@6sBS86sB--#eK5t` z@UY#bgDwq1qhmbs;cZ>}Zig0Z9@$eu8V=7By;qX1rq$nAE_D9TsVnCQ#XSt)WOn-B ztm9_kZT$ZLnm}d0H!``5X}c_JL~-0)kM;RJ&vwg$9AYOmE04CHSLe~1GNk^CYda)k9-S~#XW6cu6j*I)j95V=1h1Ny&Sh2S!l0C`$f78Ql98sVI zbhXnJ4UWJ6(7X+;RaJ`1Uz2m$_)2){f^9+>K^|0dV>C2dW#*$WzCy`=* zOUR%upg=4Rq0hMj{xZwoA=JX0dRaR5r_A+H{{RTSP46wC@)>Bmk8Ni$c$(Fd9GQHT zJzUu6>Z#^oDo0lwbJE8x*bp_K3Z(P&_8+%~U9##K=Y;r7bg|M%so|fu&#ed*OivRE zX1>3(`E|6W*~@J`&5eS%OC3xupK%PyA|FF2WhhtD%g?iGyBKAxt_e|)LE+Pmx$PM1 zjC6E4tmGKl8ig@6*?}rdYpY4Mn#2-+C)idyX>a#9t)YM2 z6xBi)1hF!)WFVFWfL07m{-5o=$(Fl4tO}ZA0mq+DtFE8`$mn|8)KMiO)01?OG~AD+ z#k8O4$FmJIa)frfz;%VA8%TyU~0E!;R_v29dp4QSfH$6@+~Kdnx&p%k;iF6 zg}L;L5TMu#Sc##I1#i^u=>nLLI66a9t1#&;$A+ZBQb__kv`n;>kr*vg1Hh{4CWh|C zrawb_0ddLq8SV>vE$r}u#)lkwLczltIT;-<>amGeRRu|AFd0-w6oi=8MhsL)$@v7>T>G>( zh64j!Nx{8*{(X8#GDUOJf(@#L;IF9xC5fY)05vK!Hh9YO!6mu+d!_Wcr)eATnuF=p zBDXB)Nx(fA&A+`UBEyuDtVJ?uJ}E_*XcjD&A((o97dH1M^4BoiPj4JkNv2>0LH__D z^XOXzpNbKbik~X=8h*fwAdLWjIMropcUQ5u_TnTm@&3g7lC1YAn9KdP87ix4Dx@Nf6g2TG79`SCC}v>^ApYU>ud>?>y6VFDOfzAa zaryfEyt;M>q%w%8D#P}Dy&W!)!tQ?1z+*Q)avu-zIHRjtJ#1o%IZLvnWa(`ne_lxX z`;&#KFd&fzvNQh2Mz3gK3L2I9baZxiLt~OQW?9e!OtU)IZ1kJ+W}^ifO`~Y!5%>(Kp9$$yThRM4_W%R^sYNZUOp&%HNCJ zdk^1U%$Dp|%dJb=rGUpqXJq!oluZj%qm^W_Wz(oSS%WVlS0jV$H(|}|Z*(o^Q&W%g zbWZbk8uWCwUiO1Kj)uEknnhb);M?d4`f_dVNVB+0yLj#*_!w8Kt5DaavCTvsLo&6< z!E!*-%Qy_6e|(I{{Uli^}px(dvQiaG1F2W1E%bKWNj-WFulju`u%x7;qI(3 zM^29;)IGyG3VBYUeI)&Ff3MTqVTxdmt{79GFVA|}TUL?f7Ucd7{)3x)ZCsI1dQ=z~ z!qYuX%@*Du^^23bzz)zlYFYlB=M{1V){c7VlDkeu0EXq z0FSzO+*i+}q)?I6YW&0fjFHq^(gKzo{V!rq^tZc*6we;DPK&nctV*f;3{i%nR!_kL z=&Usps1K+0_6Oz*PpM@9_SdcS9aP51ThpZ!6R3k@at-bl*SPl8ga!o&MtX8JId3kp z&=Vr*GF{QMjz}j_xF67f2eq@qs*F0bf@w~kDq|)v5dx4dr=Qhu0sjD7{cm-QX*JW+ zAkc%;FrHZ6K`Me-O4+$pVhAK&!{~VStx2FheJScGq0o;iC}tp?Aaf@J&;`9G--)MQ z>l@V=DC9DoBTeEz+D2cfx7On4{bTLF5`fpQQ>K_|TA>25V0hBZw$?!&tD6f8{{Y6l zzZ-^8)t8MrQ&K2Yj^gNxa8DnL5&a0iw|e(ZPZ}|@jx1Y^Ld2dpw>n#oX{W2kz;##d z1P-A+DVF+vo~1VZAT90mza;w)2A{?tR4D17`bM2S-DHZIXro`L1Jm>txCY~&rTv}4 z{wj?_yQeh@434^LnId!wx@~QC95A;5ex$GG{5{#+Mn;jIx1=`_)AUuavZbX(YgmSJ z>ITD~rSJ6i>PQ==l^V5W$6V!_DL{njZY{$p3u}FOCd2*b-6vIbp&07Qw8=eYiyHy9 zq*Hqm)*Lm4k@@<8{e6~Cx5F{1QPWyZonBpHtcUF(W{S+GkgKauJRU4A0J-+s+O4|P zMmpL6SXZP}`Kh3pO{4%Yy@i0k92*gP`&O4U;yO`|lRJ}gLnO+DgMg|=f&c^nETrH2 zL;ZVuV)EewDJ_n@N>d$1+fY;1PGpnDHQvCFuD$_deomik*<7rz@b>lYmh)lh>2jYkK_G+XFFAyhD2k5)!~im9PsD| z$J6BLBo#H(lEhYW>lxG<6k-AvAe%Sz{Cz*z2yC%FG<{VXB`Wl&TWYiQ=<7s7H|rP|97ks2YI;U)e74bS=CY15mM{ z`GMBK(?Skwk^Xc{>5d~^`v#L2MFtjw#yr?us68TxkE8_%k-$m4YiJ^F-MN)H4n#rltige4F z-`HFGl11bUax77QPw(A(|6f&ssPZP$U zXHWSR2cd-QTuF|ls-TW&c@cStH+#^IgxtlO9J|3E>U- z6)R5@&#kS0E~$IHtNUxYx1Cnk+M8awyKQ}-j$GAi8hk8BT_kFTj5^fSOzMFZV+BR; zbIp<7-j#`iLdF0xN1w|XJyqDyNXNI+qm$6vPchfqZy%0=IDK=usH zs52Xu=I7XZ_qm%$w~mBjpXccuv#}$?Ty$yRtlTx#i!5eZx_CTrDnwmY%W~}@Vf8P? z$K%=Eqh7meAewb(gX*c_(Ak38?USIRnC1_HLHOL8?(q z)}21=7QVeIal2NMizyVLLo&RK?%HhOZ*yWA$^ORH9@Hq)AkI2$$gGD@&r6ER))eJp zhDqdRWls`tmh`HULVyTS`S$U1ObqnU^sPEB``;r}mGhZuV^`FuVnL-)i-#`e(K(C{ z#{%D9WS7#ZavjBbRy2?)!=OHsF^z{W{7^UC8EYnu732vVL5PgF0J8qzx&EYou=gIv zx9x4Y%eiO`GstP^2M_1cSA_%W1ZqFar3T^L`7rVQg*>elQoJbyF_}v;u8?jnfli=H z76Sg{duZc$Yp00mO0JLxKvO|gkgBer$-FgSy!T0p&!GpRYeYduE>J3gZ}8{XHsZo> ztYfTc3~}=4vPg=`K^W?T{{Whg#timTZJxo{TWZx5)g~;A6g2uOD`?+Q6=?~KAKEAp zwDLo%9tHiFPh<_Wb3(tUJ|H~n!2Vr3X(xd`1gLd)r$NH`ER+tI(Ek2`{}Y1ZTh^O43${(Q6jA~#=12G_fCO=?%mH>Y5=*bo$VKbmDxv-q)Z$Ky42D+IXz43P(xm=_7MXCXm$i zo&}MTQl*f{ionp9jWg17v^u7?3QYdt#@19F!&tv_ zL5^EgB}dy_>ky3^7}(f`Cf{FSK4;jZzp=Y$Wg_W?RB_1pbxVp$g%ikQ?eyroVsg8h zf}Wjo4VI&;sa62h#V3d|FkeA^Kn45{!2Z9CcaGnfw!7_Dl1j0bG_7fmEaIc0$RoN& z9yXvlXUcB4G4SN+Y3Zu#=8+zHn)HfUBl5^tGQ8@h@>}rUq4l-BjP~W8XqsIN&03Q} zbN2LZp_NN%;yNPxnwN3!y~dQ=cgq|xO;ok@O2^7H&aM$6Qn&S`iNB|h&Hb~uZtz(` z%QFEbY5DZiU8Sl%ti5nL2YY9w`x2gs>Txl+ougWejGA>%l3H?g&;r*dQn_NvJx(lc zE`6A6d#o4gAr1o*kM>WON#U4Wvp)g_DbkPQ&rj5LrcWb@uBFMX1`?8uW`sZ68M0F` zl1U|auKqf7glPc!nA_+*jP~7@+UD_Ox&XqXAaN(iRDYADDQ+2C%jfz306v6|mVIu$ zQPtIXstOsY*Aq`29ds3w%VnUeVzO4iBz7$Dv0~&BMadu!V<+3}qlKn{N~#LdwG`>) zRn?)-bw}s_02kJ(*_f)o($-5SjB?S%noN{3%QPZHq?&aRJBM%bmUAG#2KKohUva+T zLtI@-qqNkIvY6=KUYOK*^|IH;P1(41w?oCb>i+ekG;vO~5z(`@hlns#)`+pLo>gwh zZUFX<+sE*Pfl0@h=^4CW&Z}Ajj-Gxzb}nAKdR6YBh^(th{J^QNt`RjvG>Z@sQAC5% z`bq-isPXE)o8I2V+glceq$+D(K9uQ*i!(Ev{{XYq$>DpBmm^V!rHY};7?e~a7D-E4 zLS74NQhi@r5&qlR-_@%Sq~v*d^x;rL066@*F?$noPbNoPbRlA5T)bvN!3Bv2Qm8C{ zBzstqh5?Z?(stA;39ULbRU3+iTy@HQtB6dh&FCSOK_d3ESdKle_+lZ}f}JK{+y@?l z?Xy{1l*!dOu90J&shTvWFC&{Z?o}>A-q*PRdk@63Npm9^4vO#{IohM;(A6Gxs*Y5q zl*s-&{^Z}GQu;#{HXH%$^ahM6B8HtXE5tud8H|k~Rw*T#ajCslEUbuET=Q$Uc#4i~c@YOH-aCLhcTX@3;hRlNGwpI~>~rG`LbP*nQ#)z#X7BaDMito66n?}0`N7HX<<3>0gXNLp%&SxR_V z!z@v>YUN1)xE9rM$hWsHHw(0fRj@jn&{T^50E43UxR8n^bI_wlzBiW9z(G$*C0wwh*w6n0cO>M`zU3?g$1;Shc^evkP|IC9!2kVKpmSQ|$i$XQvif#B`;4|IygX z7t}QaEm1y7l6r5rMS&_IO=97-m5~`kdYAKK?5@LLj@sf$NGi=i^5~;TTFR%ooea6o zkJ}rc6-|e(#?sX*MgcQGjsleN7UUmWr}%N~SZpGhk~vdUW396i4^1%qN!VEI6-+c+ zUk)Ykzl~OcoY~PvkM~&&%ERmR=i2GnVzw~FLMg!T{hc=wsvTiQO@D7h*E`jnzqB*+ z2bp z7KS?Jy(~6oS9a##u8%*L%EDAOud|Ag*u5Gf!0tF@!0Qkt}2=BJv?O1(b7cKihi{GDwk-SErB>BI6b5 zRkC~DAyjeshge=MEgarOdU}Wnu#p@RLoKZ8c~<`b0zIHcG@)Y_8VY z)l{voH<0_77DZZ!Af971E`)^(9YC3iykkwpzt@d!?iqJ!El#av_Qw2j z56h!j(|ZFuhp$@GS1m;qSPwF=(JM0sCQl(O(lfT3s{q!y{NLP@wQNvJ0=3itnqc|= z0ITikbP`3V_>0}^>CwQ)R#xq*h!T;Ek<`3(5=IF`16wPV4I==}t5H9Z{T#y(#_mi10BJ`D`rqmF_b_dn6t-$sq?V^1g*O|lcMz(O1qU9CX3*Z4*l6l0rKm;? zC!CVshgDH)fI!xx{5_wGSrQgjUp|8O4;-^5m#;xK^W966nz|Tjy$c{{o5`&~^&)}l zzpLDN%zG`(<-C!`wH5TwNUo6SVg-6#>`JjF+d!Z_R1!F-(`{rsD=U>_a)c4|kOI^rr(d;-dbOyjjU+yp!x*kO)n3HcJfO*!PYC>6Q(43U8K~Eou@QMQS^dRysrt5oK*f!g5dx_FV2UTi1 zFDj(qbT4(+W<$2)7~Gzy;V#P)vg%uKK@Kid--~;gb|-5~WP)IHjt8fHnY7?jp*EL( z(`L6-1w9pVwLI>cnH&RAkISUx8BGZ2>);$c93--_ zD7=rMyc6Q9DlF=`u_9@^Br%b=6O+RnagQl z2_Nr|`rh1LC+z8osa$$=UaPmPm@I<%gzXfPh1I2ss*}LK0E_N{i(qd z)Net+*REOJ?dDS&NdEx3oN43$Mb4wm&Ap&_T5*T7Jf=4W>6!XoC*!wk(N(2XmIw_EMu?vonH+)@W5-T$`IcaXZ zuvKfal^4XCRUq=G1L=Hae~lfqqFGSbw(mMRY^C9b6(BA1;&S-d8a` zqFHTqX zXYih;M~Rf6JQ3;vezxRkVnw+2VzsrdAnT*EE&kzmZW(QoXM_9n#sFYV9? zS{|)Tbg6?4Qz*1x9d`qOMyp?fKjVJ<61em0RO!y2ZP!LDVN=0Ti*lq;W2TlpR5j_Mw`bNz`=F4v zTiI>E2Y@VX`TqcK?^4?_qgSW8ZI5f!DZ1X~->5dNU*q^I&$i=%fiyYm#L!gm>kQah zn6+zW3~p`o92=AUK;zqvhK9U)_g%yHY6^!oTXIR@5n@z*P3`_3()awj*)=umm1Ha- zEM;f)YPO~_!M6AT0t;37mZcpRe7dGB1&YCmc99xwPU zdjo5Kuk`kdZ;6nVB!;i~de=(~wG`0PNh3(i@+T3i9uxpL0FY1S-p#Jnl?i68M_%X? z%rr>!>dmR*((=w;zvg#L?R7?xChW-kUmAYI?98 zyRhhI!o*(Al0zF1RRoN|Kmf_5o9XrZ4`MrIj%#SkC_09ENbRW9bYFX-o~vO}OO?VB zDdG(+MJp1)9YDOKCX0YSpuaxIx4RPr4RdLP97p+jZj8%XaO2TI$8N0d_N+O4)KbSu z6WbqkRHuyx4>}iX>VNRLu z#6Vj`p2tZb5E!4u`S!){F!*XqzDEwX^(ttrbLG>{^WF8|VH_0jR7)^~X)(NkL)_`O z1Q)UX$^QT!cd_RCi3o;BNi?AJ`+9K7)u*pTma84RGZ_}C$Wj`)>)j-o-DOyyM6yLs z1Z1ZiYE_s= zuClBFGpefTB?grMD87r^{7_m=sI}-Tqy16(Nkm6f|Vc)LPokr z;E)BZNx%CKXZ>HM+WNUfY7C_rK?s~&{eRX6{C&HmQk3gtV;p({w~pq@;^mbhggh}> z*Y&%Ar&^`P8LKuOmq!t2CDM##sQ3Eyt;pTwn3- zfGnCz4n1t*q;ctU{0@$r81cr>6_Vk?kMoQ;xcywP_TWW9r9~I5XOGLER-#y9%R@_1 zGsh&zQfUEQEii6>Zq{!_kNY2VEV{I@%{tiNIt%+}2}6@c#?X(xmVE;2dk+vdYu?Ik zZ@{2o@5iwBEbLeNa8FxVcFfUGQ%_PBi zB)bp?^d7|$-Xu~nElBJ8I&tIzwCb^U_jqot+uHj>Wnw6@SsFdVxRQe@NlD~nr^CfG zZ#_j>NdliS0W}e%Moo>+wb8rH;Zc4w`v+SRIU$JbAL0K1it6C@2FHj|plBhE0|ZOr zj-Du^vZ|>71-mL**FR1z^!6gSh20V)AVvmypev-cdyo8ISu)#W8IPK}7&L=Y!Z1{- zgo{?UC_bUx_`k4V+v2ypotJ|*`G3pRC^3$eyK4zdBc!K=L6%vf3{`^x9oJr?>LBPJ zU+Zt_>|typNRv+!)5{^@OjDy-2Got{BGu!8N)0g>Rj*~W*}qUc@$A&ZvI+tQI!&ya z^a5scaA7wTnCi-+%}&zz*7{M`fS=P+o;d#iZ|o~~e;uv&g)`834xJ1LT_d}p4u-CL z)+yeS2AnWAiXtLd#-B-%>{zh}g%;=8u*n;&cuNi%BW&Z#Z_4gd@ywP$bK=RTm=DjoZ4r*Dte;ImrdRk#Vh?FQ;{G>E$Kt7eYxqI?% zdG|1Ee8?^eBU}R?+rSS_pNiBWfvqeix5qSxApc@ zy>8Lk*~-fx@ecuBif_v3btG!)t9#@5c6GM!p{UO`27&A2f~IAvr-fE|qVcn=4$JBY z-abDn-;h1W-@flaelFI#EomEf|!s zVFQm^!6lO76*^dbRQ-OQ#g^>SL><5%XP-hlYlOLpT~2)Z0P*oxwNw&Nea%gIb#U>l zrfB3@6;Wd`*p||owGKh!{C&Srqfu%OloLQn;nvjO%D?5y?c6pCXK$o9jJ7r;rFN_h zPHTSnO3+k9*DEx#B%qe{5Z_)$16`i|C4wk~ph&!Y>*>*8bdSXhL5{T<$*&RlA73uE zvg&MZBYSvjDkWN{G_h%p@tC19E!G7DFmlR4W56SiVu;-e25jT`by--R+E8>Q_Afwf z?ZvgLD5~jEOw_K4Jv?#4Ju4X7MD)z7c-=2>f7{>MJB`0@-C}E7n_y!<>ixYoHK9Us zJo?uwVALr=6IAN)1SFB$hGC16x;jKnQO4fQ-u0bM86g6cP>V<)2^0cRwu+TvVpKv$1 zcI^$MW;s>e(joEjU=e(i%ihHgDAUeTaTw6GEXDieY5V@ zR(DCIi50IJbe@b3r8((C@VBGHInB?PMk!5`sYvQ<8ABvZWmvcxUq|#H0DrH%qvU&w zjmq8bBpD=TzEtSi8GyIe$G_*$@$+Nj&IfsPzUjiXBoZUzYbB0njeMxl(#a)})q}s0 zlSvG0K_m0-PmbLsUkHxV$L#s_v}qlmyG)0H>*vh7c0uw>1-3H+6r_i+Dey8$5BaHR z=`%u>C?|5tr6W*6waKyn0BsRnz>@CL+dI}T6s<>~H0a)9ewm97>UFt|J`ZNs^t@Xl zhMt_!z5+UVVumP_Nbw+=c$PT)YS1CDAPqL-*#6eaCMyVt6sCOur}C#oA(+OkT`R-< zod?}3uyOeOGa4mGDBo+7D@NMj+3edpfccw5)ChtwU9V56>RNmbV8&up?DEM=}!CC#8RE_7vDW1%9QweWS>% zt*7^vBW5HORPxF|7xu>CxtJh#WgI$T5RU5hua~b%PmVd!x;C^Gl@iBIk(~?G0qHTw z&0+y>Q@0!e#l7!pb($FFJWpGgP$>fhaOhs$Ca!^&eMU-n^dOP0H9n*1D%U5|`Sx!% zqMUm=s)1Y%?t`txo2Z_P%}SyY@v}zFBLM1(7$}75a2Ox2=h_or44)y_fGT)bsoit9 zD67nrs`5QqAsR`JrfEM((4xuXQ}n&E+G`nGaj_Ah{3EAfB4r>N8gvx(pK4H2QcUtyTgy|WV~(L+Q5A@gxz(jy zKNde${{V07?`X9)QOL44ap~xhfXyji^;4j033&Jh#pfCM>6UC=w*|Tm*lVe4|Kb>SZ!xzG$Voh`n$+UTAb7T zoqzw*+-r2>QksIIWr;OdN{+3h##huBt*!X{dq21@_p4Uly`yM)kdO8uWw3; zaC?4AVj3WHs9*|%dw;AOpK4j998^$sZ1f%OEC$vTvb)p7sil;&Myv_vjWz@yY37|u za1`p%mR{9kPOCTMCcvo5WZ`YAn61Oe33%tj)e3Trs@j4SWhCk3Fe<{}{{UZLz0Un3 zn?k=H6#oEYqXd`*R&G64cgc>9`60ME*CmYGd-o@n$U{dgsRdkg@JBT{iI~FDEOGjR zuwXSY;st5wYtm;}9SR}<;Q8^dS0&azEA~LbGeML{ z1ibK~&7`cpB|o7DAn--KhA;UjZWe_lIUEoAv)1P! zzy(j8dNi9Se!!4ZMORRuh@mA*8v+2<#T;E!a(@^901@mN54Tahb0q9Pb)ew)HD_+#=tVPX#ATg{1fc@Gi9-?aohzCp1gW>m<1YSqSN#0 zEjHJhS1u}MROSBwbAWgxfB`3i{@d7s*P3kZRCs6)l}G$nTZqXm0h9Fq06wy2FjGa2 zk~%usY3e5)HJKP)b#bdnU`bFf?M$1gWf~KYPdsKda;FsI&}Wa^8H{#nj(V)5)ztoB z|FME4jlUv0Loa zrMmuZKim6&`N3w}W-?l<2jXecwV;fvV!fD-WmR z*e1gFd)#iKiWuLB?jnF!8S8!_V?`P0ajDqNMS_Y}Nav`M1vL^KI;54xqE4Vqhv0ob z9_Fbw$Fs3SR}SGjkEy3tB+%2OUf$ZY@=I6*3K&irc^y@}Yyb$LSX)>p*h6l4CO4>r z2UqU-A1r*wO~46% ze+s9lo(Wteiu!}BK}ixNjr|~f2>kminqBrOVm45gh@98c*Q(X)!yPeh2=cWwlD&A4 zGRG#RU{sQ;$m9!Z{{V08baGy`OqCDm(x};}YtelbYffroMhoilM!7p7GZL?9RC1h`hOh#eT)zqc5vzNzP&x|t;G)C+%<4r0`W%KDi=KBgQ2V1L-3 zbV!yvl$+1brkw)<2UbPbeUXgI(bJe~Bapf$(Z%k<_9Enqe?#m-hB=TFAoPWUL}<(Q zbU)DKVX8%CbvFa(Mz8ii;q9`ec=YnPG_M}H%PYAhPp0-CPCw&g-Fn-W1GIFT%q2xi zc)+r99`_soPagNuR;kJ3&{34zbL47FQc~%R{+UR+f(g<;#Fh5N!~)?o5mDBt)#x+a zTW+ry^DuclS`E{Hwp2GN#PD1FZ?CeUwn%2xsOahF{x#^R?yS{K9!8=ic2e9fqv;Vh z3cwaDTb@0c#kVsZYAOdxylnsum3?`gs-~fqD#;m$m7XX4GBO+Lu(%ih0DB(o6}!Na z1M6OyHwev>o`iax=OXBZU5=0e5-24|Z^if`-1|i(^s$vvI$?;ZKR%QBY|OIgtBOmq z#zTRBP`MxNBa!X$8gd$yH0sK9`OtKnhjq;rV?@%J)#6<&j!bA)>=mtLU;)3=-u{*1 zQtC()>A@sVRV|*Cc#YLhRZ_4t(a0}xp}j>y+z<UP2ztDSL$Qd)%jE+Yfbb#DgSf_ays{&6Yt@>?ZLA}M-{eNML$cDEd z>Ibh>di3`$-GQ6Y83BJl0Z01Q{9L!!-P$qcI&7Nxbjw$OR%@~k?0^6R z{5We854KEa)2fn-k~7o;h!7H3fOL%`>!{y>Z=nMB_v%xQ2VU)9Ksf2Wu;rX1E}-XM z)9S;9=lTO{d)}VvdG&6e>9&O>S_WVP5pYQZkUpR9KHf-_jP&FyEp(499YE_<*${UF5eIjS1iaLiXtNK2=MXWFSM;_DZ?$utZk6zaJx@)M# z#X5#-0u96eS#i&3&eIsh|;u)PnEtgk1EZ5?}Kp&s$?IxWrNL*8< z33}iVJvwclA1svU#v}p|=v8bakhwQ50kL9#KVE&OnO;OwKmh)IUNTK<(pI+!@;ab} z$i9-F?!89#1%N-KAND@e{V;3}p8ar?gk5-i1v%X3Op9 zsvvR^SJNk}PZzUTa0v&G_n&4FTk2y|+t$G}1dfX?=f+74@};-mGuZ=H~z>RA7p!e!0KhWxrVby$B3?x+de!pPQ=>3TmMf!CTQFh(u`P4{C+Y0|EruZ?$>9xj&L}!lqdzX2XTV`_ zlh0Q0MD0mVW<_wNOs^;EWg|gofz&@g*V)~qF~>5JDyl0^oKk5)=hODg#!+P&uOnJx z@>L?qO9q=5p}xCZFQugV+We1VJ5^TIaP$nr1Lf0>2n$axj+a<$Dtc-)o}o1T-ltf? zuA6Jrt}dd)18-}iPYp<}PfU_r^kg8Rr>2QfLMTMi7yv&=;2V0a$Gi0SL|T*5D>I&@ zqo|Uf$!9^z@vHReA#cF4^Y6ug_>Ou^NE~`^iITn*sMJAn&0+=A52epPPj?J(I)p*yUnGWvG=W{hOQABDYN{<9gZ`{{S0(KR&^e?$`3qGg-%~Fx33| zpmJF0_<9j>bXjQUil;UHPU#a76D`Y`M-6N02E_e+pKXy|%c5K5(;)KcqZwACs8hWx3ig}K@){h(wNjPYvs{I-+MnW*!smzAexwlmNHoD zk5fLdbdYRE7U!SOus-Ft$iJw^^thAubj`>#1awz=d#G`gd#by1mTIhw`AIz0GXTPx zo(n|<6&flpjv(cvbIslEKfy-VyxSXj7Bf-}E9Z`yihV(OF`UO6UbVZdD=fWqNHHY3}1+q*>m3t)~tXg{dv z-s1ZY8(WBmNvct05d~lvhc2t?(gp9p-~;Sw4&wtvt|S~fsQ`mY*P?UTxmhy%)+(H0 zlC5PQ+qro_V8ELz5C<(IgeK`TSaEW6bJ3EOi3dLjZ=q5PpK&3r`pQ3b0DjB z4KVbQgo}%gNjE>Aueqz2%bmUkkk(=HBCh4_l(hQ-&Tz=o>*0gF2KMgu6a-vm6(4zX}7qCt=^18@2;Gd=c z0N%ah?awIPz(`0)EszF!WuQC=9S1pWsg;gq$kNit@j}L7Bxu?d)9MAqn%2Mc2itZV z7W->=;{7vt3JIvKEB=0vHMFZIh>L;NPvS941sC1=E#l z*6Vfj_R$SqASXX+au2b#7oD8PbO*r1K-9)|dmWV?UXs6gh3nO<#?IHJcw&(nPT%w1MgdnU=~NU6n!l z+tY9B?001(X4zaYrFt{iaJD}{ zZbj|wi}x&`M%5oKj;`urAy3=U#m;Y9UAq=HD~+$Gf~tcdPg=ikE{UV1L_??nVWK@+ zM{@}?@xo-&f9qH6?O zD2^s9S(!|LeG4;tnRd4`TZswyv(t{ng>(SJ)BRuS9a@&=?L0&@El(|MB5BYfuAy@o z1Cm&%LC^aU?9MB7iGve?)jVBXL9bK=^B<<=?*7%w?ya}E=f=y4#leS*_-6^t^FGk?qr&6$lC|~!0B5H+2s}uGBzYZK zWp8F;GMFPL-NOF>Zvvk)Fpe^WT!kj?z$zcb{l+%?0s5HHk*ZJnv*pn)gpepw0Uwt} zf8sZ9ZRzNm12j=bB}|$^xK!4%u=)U`2Ks_WHy-jclZdplOLAxw^r>S$2MVz0$$XCN zExjLGXCR8E2CJ^bRiqK4D>}54?-6At;R@=#&*#|f_c$%qpw-Sg+-lBvP!7Ix-zV_L zul_)89E}xp{*0_y`YEB)H-<&5`-w!vJeq1Em2a#Aa(@HdWxWKp-2|{bRe*8wCx}0v zN0BhOfwd+{AdltyI=Ihe7xd`J){8j60-mcbPOO5hHdHeSozyQd;GQ$&y>#UlyzB8K2u zY(%A52?x?FZbv8GhG++$?CQa2YQz9PpH>aAx{o1?q^B_CrA;0;WQZ4u8GyQg-=HWq z00D7-XO@uun*OIvNW!GhY3XCQwxOwtN(|J^kb

                      bSHY2*}csCq8F!5{erQMUpqE`GmIP3(Q% zaoJCwS6mU*SMCanW-<}63_Q9@72u9;8F;y{zp%S848!NqnhbPua7aP3`m`d%s#H znLTrY3J!@4+1BXnyLNT%ATpNqukVn&x_pf`X9b2auDhN`n zzw3T2Yj8gz_xDo30#6RT)LO|Dn*cxrHmlg5rPq^hcGrq^?w1>8eIgZWXpNTW8sw?B z4f*GR?PaUbfPNmdO#$dfnuJ%z{uEUD5DDdY8m?3m&Hn%v_G{YX96GH*74qmL&tWB{ zmU)6RD1HlA^1s?7FX;yU$#1RMb-g=!btzGt*Q7;NThh%AsK{5nnTh>YIshPjZT{cc zL&>17J8ROA39m~0RzS()XC+GktN?BGC4ayl_8!!$13~B0QUk<%JuNA!RvuZv`rGn; zmn7Q4-rX*%f_kiEf@#yptBzQJW*m+U^#OmU9_$Ds96F;`ro4KF<#;?3$v&%G8~!;T ztKDgW2T!NKIz;9m2u;qQ$5*6!loNli*XTW#&1+U9H=kDX`Sr?9~&=+mE5yL z&<^!E>%mC%JvHL8GFH38Ujx*n+V4$J&Z|F;IXp`vM#~@uQZJ;A0roA~8b~Eqn6a)1 z;lrmiRDAjd`v>EOUvc$cYEt6=0Egu=d*d0ItEr<}*TB^!OwdN19wY#$f8T|UL?Ss}`=SQ(NA6ISe z-))nc>+Hy=$IjNDnOw-peJ9v$_Km?U z_T9F}c#wg?hLl6aT6Ts)6ckM$V0dcaySg;vfSQBC*HRk?ayxA_ zh;S-tT78G|>8pX^t24TYP7X6)FSn;Hs(ZT&*}Z$%v2UDV>#Badz~J{@#==2fxSAZ* zEiC?Qlzw7@u1O=2<~1z@Q9~l6WE~<;YQ>%O+r5tQ4&=hoVWEguNhi#X2aQ1^6zgFh zUA*2WXyOL~Kh>U%_Qvi+>`leE=rc4pfw;C@85ppc+|@iPv&Wjk(bcv~Z`ah&OIbw` zNMed`B?#sVF(hgBA+y}%p6ccakPi=m{wj*pdEjo%#^DzfJ;VTNm5Q@wOaal z;n#0QK-7Ow2O4_xlHuHic$63_Lwb)|eZ5g9^Aqjvk;33Q4lal4tj-4q(LJe{%t2R; zp@O;a)qRPGtHn}FicP^)TMZobTjv=^T^wehqs}Ffd}OPDp6w-}vwID;+rl814loqg z%C)6VXgaN~i-Rq!0IHR!sl`P0o2lPhcA}!9LAe`0 zE=q!vuX?)=Ly4*WJZf_^4!K;dJm!sSmE)tj&LIBy&2$1z6XNq|{M-nz{3! z6zPD)rVxc91)&6r7CbBK>rX|eR~^!L_T3qL+s%ol&TY&VemK`?W>RXr_ByW{B39B* zHa4CLq^7OK$cZCV5?+#}80uGDUd8c84eXMahfqhM2RsdH_K#mKm82S5ATn2n9^ik~^EF5(d)l$?|Q)Os3EhcrctufqG&=#hdBT%zO{)9uNh@AjM zLQ7C^P&nqG`qU3jJt`{ZLcsP@he%wFB^5;V{{Uju6Vb^ujSThCh^rnJCBdkSv-ss} z^Xeqp{{T~OY{e91-PWaR=f|Z82o*mUMI*cL^3Ov*ie-rc$^xP}b$tb6Z$Kq%!~AXS zn}r}fI(TH)<(YW7 zyQ?y!&c%qwM z$KWHNR+dO}IZ8<7s78y<=A2W>RSJdWSjgys?!SX&(DKgW`pm@;dJ|HAWoh~KKt}>| z)V<9~mDzh*6(f8lcS;P%;Y(>r@)E|O6r`BXKQXs{4Ni4 z?U-xXGq@~%S*YcZB}7K5otHmf(>RvpTFf%J@o80aWjP90CgzhSSJ4wl3x zI!wTLgm4C<Sou)ou=1RW%iUKIcmK6vWQG9+s;))bFV@cE9bo3g%Rr&s)V-#eGOXzB5rx|3t> z4bRfD?pzL28H?;%80#wb-q@$vTZRd$ahtj&rmLr}%1t}aPV_ZO@KUnKDgiac*M(-! zxTj+&F%mfWs8i-?#=R$wTb}`eTFggirw~mC`ORsLtBd0w!cG11V;9<6tFX71V|;Yk zeV0j&pRM|v7cFiJYgb_EX_~Jn)z6j7oRv;8mnS51P*Fx^jUjTfhSjA(b~aPpeN68x zkh_ZN;-}PU^7}{Z>DaAdh*42R(H+E!u6%$v#w*9G#p&OUdrzr8KlGna)^BvD$#s7D zmOZbYn;VhHLz=IxpD$Na1vWEsW-@S4HsON4c`HUX8fY45yuewC`x9C%w00I-T#|~3 zc)+IP>%VT`9W{tm!DSSPC3wHyJ~Xz+z&iqsL-n@xzG6LhRId*yBej z95it*n9x|Hb{|U*W*gOtYPS)fqN%Msy!ufvSJGnwqw?q@2(aZ9UIvy)KN5qcA%8=2 za4ZMpUf^^6L2^$TO+&}6MnaLRre4*nOb*oYszj{d%TQU#Hgl~)h6Do40N{OpKJ_)w ziaMWOtt%U}?uSOwK@_TKD~>H?h@ss=zu6Vf@TUMl@lMw%W%rAYJ^ zCgq#^Hn;-Zf5iLKDMqF%)4)&TO}k{{VXTWRZrk zUOij^T6rFlbUFPo7#>ejj$tgs1^{24Nx!{Y3MmyGTG$@r(s<QO)%yujo0r z_GRHzYx3zudT*YJTGJ)wHVpE&jvz{Lq*&ON(o~PHH@EndbIdJ)Cy!NT3sX*^;o!t! zs`OR)r>NsX%snd{g-Df{sSHblaehC;*l%&ad17=^MW>gaMK@Cd3Z5Nv-K;XR#GXj} zBJm+m0(kU*BLH8GOJQr9pU37oy4dv}Z zK)Y&9dWy6AdfR-wW;(SHX`k@)qBd^~vzqi9{{Vfl6nly3YT7i07IaN_D4Ix7s^nO+ zAI-nlx3deOaeErb6i{UJ%gzLZQ@7WzZhgtKWXHW_M518#F{EQrW;aplK9vNmhx>nP z_7c!aHEOTR{QX@ejjKb^NZr^h#__1ATqI{5ieaJ_NR-MKLDb3v=?ntj@L1oU=^(cC zX$(M1m!}W&_2-oo(VIPR+CLhwwQC$%rIR9(C|QLjBz`}`);q*< zFhu|Z(q){poj;dG*Jt$}*xIm)d?qTEk~A7i2x3nzgt2)vs)cS(=Jw;;TfDF`P&F9; z06({?3bWnHo3&cCVIy zpG-+IL@Kn^&{@1bMQ!RDC#I7l6y;$iVI-qWOv=0#jh%~J3#cIf0Jc8p+`97I0??94 z;nHv33>tt`bXK|C6_*7ot4 zjTiQGXK!>WwMx`!Y z<@=ksuXGs;D1479AN5!5=^c&q@Jz9pD;;yyDa+a$lLq`i z#&yT7q9=ksQU3rRa*Nr)BNupvv(V4!;g?K}9eNA0TW2-AvK2M75zA9OLKc(*EULZ| zB-ay=@`+}#Cc~b6rHBIgU~|*7t#Mw3--tcoQML2g9lt$f(8ZE=@u8>-3dR90jdHqU@+h$f z(h2+zXBM)wFQ>#HQ~g7&ewb7Gb(EexMfs1B!R~7OHbyBUsjPynYVuQ|BkpNsBIpAa zbd3nI{{X84QRm*b2}H4~qY~iP@;y+N41Fopj{FMkU6qQ%Aj{O#qS4bvt4}D8LKvMz zG*tee2c^!CEN_3uxbu3HLX~hr(tvuL^&jq$%(q0mX1sd0Om}{4;wc&$s#;(Zub)-3WVZnI!KebD}zDDr377*LA@&BrNTn9(@$g$6=Zb* zlon!01hetYg}L`3e&;u~jDZP`nCW_Ww?qX)(VW{jgrmeqS zZS>>Xi*1q}wgDQ)K~MO;j^cp96$<%(#q^2Y70Xd?w6t*}JZj^IVt|=1Z_=xy`rFuM zOL%t~SrUOkpydDINdbU-XRTSz z45~cOMji>MskZ!fuvp?GD=HHHlFUVb00F@N01x)w%lsvdGR@`d(7ii=r>8}~b7pC# zmbIx-72=7A(PRw8n5CGgVyrnQ=xy)T*FrZ1a#x_%>Zen<=nI!2kF2PQO4uQmRbqVt zI|c;XMZ*?WaJ<{`Yuo5&XTF!1B#WPymqA;3?ifZ=4v!AAlaX^NvMR=YNZ z(8$NqNk8Ln>3?TeSLGvS9BJ#(i^(Q}0X#Y*-IIvk8+UNcylLndQ{!Wi7%e+2ki--@ zo}I*zhLSXh@&N8Y5x-Q~Z*E9F)9sMm?o87CIiNTc&)e1Po#iAELOND;zj7w!pl{+c z3h3d0`JwW{5u|XSA!|0KwaNPF{FBGGuICn^rOTqRZ88ud{U}<-{{Ww;qQh+n6dGyur%os!oRWI~(%ma` zWg(@asEODw?UIbXy)Hh6%k>7{&Ww~iG0{Z{;n5S{{f8oCDdVSVVD8h+ayavks`0caaXlv4%2`ZzLSefGm?k!+{7CN~0`*NPt&a%C@ zX9l_d0987$jvZReLs0zsF?(-qrWTSoBGcka0sac2$LI&=+1f;~s-j^>Mt0yRudhoV z405OiZ)=V|zw$qJU>k_(NdWQcB}Oux)Ru_}w+vJc2sRhLe5A)k z9^A}2Ms=+?ln8d^qo2!)wgg#mp$UgzobcwFNv1VZ z^XMko80U{SlbK&!QzS~3HUZD5mKQeQpK2mP#m#Zj8F(c)*QuR{x4(;FGBi%1%#`vd z1bsO>bK|!Y!F7sU1$=;2 zElLul#Up_*`u?6hhS(cf(%@m24eO`VqgV%rB0UL?x%Bg|SL5-+v2mN*Zez046|hv( z)l)$vPZX;nNU}tvx{yx*{&@BzhE}{IdEoo7`E|ab%`97#lD`~RV-*a@lrUBgsrojtxlA3WSXi?K0<{7u?LGE#}>cW z^X(k+Gc_wpbyQs=JbKMbk*Pq@J-|y8W5vb3po{VT9@Se-B?__O)|8T1Fwa?~+)+jX zw1g95!6%!M!8WkBKGl6pbf&(Xr9r9cD`u&tkm_|ewZ*}2sr@!B_#f->?eJBoYu5CW z<Mzgq_R`Q3 z+g_{|zI`O}Sb6IvjwLdkf4e!ku>{>z5UPH+y}ulL+r_8>njW044@wMX$&5xdp(n*c~W{{WA>Nuem( zat~JxTJ-m|s%qqls#Jsh$J4a5)pJboM*w07c>Qf@WHBB>gTWuy+N)S5n^VR+0m&wv zH7hEL7NI>8&yWp{*mN;xwoZR%Y`u>za#?#TCzYEIj-bb3;>2WN5&pGPxcfUNyLOLI z?oH)_hkNyRb4`xMQ_*kDy$&~OW-%MzWA+XPqccqO(HabuDX2)|odj;x2*YkN?a*Bb zU}O#mjeriWX~2Qp59LmZ<+x-=P$(I_D^bAX%k9YPU%u+@jp1Lm7A@0H8KaJmY5xEg zqot=9YAXHXv-d6!J0)CnEsi+%ik+w@@`O^y?ipUp3`z?Zw-*u!+!3iX=Y?oZY3t?I zw(MM>T539nY{D&cDKLepbt;4sv|1k<^mT9hZdHO0;9#P<;^Uc{tEDoCXr>)$YB)nx*S3x=`gYaAqoF+?#fj zH!kW~DZ3jpN1KZ=UsXLTQB=XHX`@LD$_)1B-HnVQ`p>|-k(#6^rVq)g2^p#BL=#-- zgU5$Nr_f@9^WsK-msZub=_;|(;j*tYWcJxbg#&{R)0N{T>RB~2ww zRX-~vHPKG=(@Em-s>2maM|Dv0FlA!JNdw#Qgwv@`5BPlgc?)DWmqh;ndB5IQOG7%6 ztmFpMdoMP&qICZNLCt~x0C`0zEKNY^@JLeLeL&fB?B@DWQR2{P zZ$gb1lo7|@A#$r;?p%KcgJVhQv z*Moha=chawv@$$^Ehrcs@6U*@&xc8Eua)YIw*CJAMAaYZm%IB1X=HZ|U3M=$vhb7S zw)|8wL4mHDHMug_$T4{#h>oeCrk!g1^2bzFOH-KCJ7c#Uv`4qj_m@%{kn>QIIQ(=9 z)UG`GYT8IwObT8`1m(vMBa#67KbAV0j`5S)I4Jw-3gghS%$@pR+T&=WN$ys_2AUM=MpC#^Wc-maMPKR%G+h zRMbXms~x7PY1|})F%KIvx3G@mEc;ZkM`vd8+sNnPI9l;0xgNCXqaT5xBZ!qbBhsfm zAv-s}zDic^h1mN$4>l_gU4@Y`9gVnYvQ@hy6P8sBiC;-Y4D|A49w!lfwBuZnCa@hB zN3z+sjp=u2_V~8iZS0jZW`O!r`E}_8<>;c3@TuvesJbytQm>cs}MYJ=!{U*_b2GZ?&< zA_vFU<0;lQc1X%J?Hhp6#^u$+Lvq&_w>IGWJC+EV;wz+5v#6zdx$bR8k4@w43C6u9MRV?PmKm(9L z;@sZ<0H0u8!o|(Q$`FtTO}Z6o)1t@RyPF&ZE;gcK@ySrC@G(XW8h|h30{VSkfJZ-{ zVVjuceQ}U#M@i*ue9u$*-)m95B$W)ROP6^yq7qe&;*5?-wT1rx0@nO{MYY>LwmQga z^{7#F*Ua=$yEdA;Z*~`&2K!nhKji>Oz_2xH(X(I15sZWdH{f%B!5B#k%BYmijMu01 zUCn_&jCgyiW>p&vt19YPQs*h7vdW{{ZYgvm(eNLWeypP(d1g1JI3>&eLgh zc_WH-iKSjFB4KnQLUh~ddw;EeZA44TBR?NbDJOyH16@&DRzXQ)NQ@`P5w(N0gD4|Y zYEjST-p$i)dg>3^)%1~&dS$1^NeF2wm5@9wGstdPoz9*JLTncNegPcc+F8)VbhjRv zdQyzo=}Pcp;G#&wATk96NY_wU3w?b=l5hUEvXW~c2y@r%c13e95NTGkx#?B?2iF$HgnrCNv-K3ywt($i4TG;$~tz`l&PGokm;{O0& z@b*h>Wb>AdvVWIJLK)ZqD!zR*be`+T@3*F{t5h(;1d>fu{)%{^aBUSh(aV&zn(bx( z02})x-8QJ>k&r0ill~vKq>@{rNXt%#4#Dnr+t|vQYI=zzXlY6plS~jBS!^|F4|D#e z{BiZ?+63B>O3GS;{5>|~8b=S8L}vk2xcBDhugp|b*UcDm&qqfSraeZbZe|BevH%VL z08)~+xIWbfS}nS+LHy52Rf|$BJUE_(EyF>+3^al|4+c6T6hTW`7l^pjgmh`T>k|YRC}hdhM$(uYScwp#S#=^I0SPUull@2ddnvoJ zkwIhKBYApso_M=RE8Wu;TX0t5vW6U7598KcmAe^qx0xQ zm1x29r&XcyyE&i4!&gs^maF&67J5@6_>eu?(tg;~#aB(9{9oAXlXm5|Rx%(DPKcz2 zPZ7yl^;5Y_r(K$pg$d)7M(rnwOOHs@qQnNjBiO~&6~R7am?DI=3U&d-Cr>YVxE{vc^4LR`$ky)9FSudzrMY$HYu>Sxu-y2v1u{0i? zG8#w-3dD}ACx3SiTOEsys9F3)5tdy}(i19^eIQ-Fzgq<#kH@e!*|;6zXD1swI?q(HK6H z$%l%%RR$V^D!ejGuR!vO;-5mBdm;kcZt#DS%t1Ru_J;3_8|^fK^rIIUE z#T>2tN;zd#@ktN+t)fk@QK?zh&lbdSOHTik;gX+D#zOuWv4Y{-`s;J#3 zk~z|8WfbvNEPgbSbyU?U5(_BgT>k(=>@mIE*+Xpq09q=w!1J#~m;V4tkhHf*2p+s? z)xl!=BeH3>r8N0Gjblt{yoPw^m&z*ViEUW1x|ER9>o!tIK)+6SFXjEyX^~PU8cF$a z=pgqNjOrqQ1t*7A5&XY8=WyhuseRE{wG!gx`z8z@Oy(=9O{IeBc~l)%xLeo&IWtDr zZEqxF!l8%^eEJjZ@!PC!=^k_beywwQ?fR+=Ia*C(7m0x|qa#8DWlAfkBx)kW3x+&< zV}08sn$}3*8D*wCy4}*3jg$=ZTz2{-?=%&1IQQ&!#xVSD`VAEBsEM?QA)5`0oHl?A-|+^Z?E;guwLD=UP~jqv{gJRI!9}5 zq4l>y?RMOnDmzIzJ~*x7SGjVdl}oX;wO^m8_V(kn%LGsQ)ha7bUXCJ_(<*b(H|`9! zH*aGrtE%T}e-UWezKrMtIz+0rX7$*G2b+5i*rQI)2+u|Lee6Nvdadk-f6>zA<)Wp^ zO4T29VQnlV3KlUUM;tMRw2VfPdtX=AgX~8J%2kYtC{IZfYGK^u1^IMpb{A^Nmd3@9 zt?)%HH9T+Rc@LogB)cf%Qz;~#Zhs@%*0zKg#P8-+M zN*K=%^7Vt|wnBq;V;O$y$wM4TED}KBKYpbmNEwcT@mi9_ABc1< zUoT$2|I^&RF+`cHOT0r@kqVJwLAW$Pn%w|uH7nAnm=@_a?=IVd5mFOl@u?O4G?gv+j ziG$_-W7B37(gkun{{YzNa@*ax6yQS8RK++RxZGWofpe*E$hXjsueGt?$2g#loibp5 zQP7``?22hoRpvu;f2ibr2m;5S_TKKyrHScOLrn)uTz2b*tKDSnr^KL$Z|?2T2-=jz8A+QS|C~9*zOXs682Ok!rkcOq9s261?|wVx#~G)2Q%I zKkNH5+rd_4r2#!4+-SD77@{^dgiTIv#OpJe0`Fbf`;M0(tt| z>-o2~U0K0AI;&(Jk$a9mJkK3KLKfgXxKnS*3@!Bcq(DdvGxF&Z{70tUl^Rjx>(Nf2 zOhrH=n;=qtzRazLC8wuM6JC|OhDB&3T_J9^{=ZXue^O7q$?zVp7nj@BeEgT|nmyUI za@6e-m8+qtLPTN8yogs)sJPUG+;R2xOLuQkRUCRXMj+50i&yfX%Wl27o$Y?8&sS8} z;&v|Sr-y1uT<7m;u(?`it9mJemXVU0v`QkmI#7kV)9szAF%w+Ir}V+?9-Mk|rLC7; zbt_Z+-E2pVQuL_S{=$w=*NfYaW>TI5rVl_DaASnDH3hY@l#}$6=r%2X=zgBcH&9yA zQBEp)OEQ}3>an-}-)gEV)$+zAjilC&KR46~BT>5!Kf~NL1=QbFA~KLcr>~!vMbf(< z!RnX3MAhf^o^h%u=R+K~im0Iqq7uboEO>J1CAcgvs1wJzOKf(QCGFa6rYt`|3 zbY6C@{{Y;z8;chdGAcDjMUpp`XJyb^M2zdHbfba?K9OsGUu)R|0gUv%-gXn928vHs z_0zR;Rby!lX)sk7;syjEqG6#6GLTN8sBmsTYFrkf`U3Mo8##<9`cpYd6dTXD(HTO+!KFS7aacpukU7c z1G^nFq;=2utaVmlBNrm)QQ-dow2nos?IhD9Qk_~pjNnlhivrFu^|ca5DFQ&NBJ0JEych z9#`jj->Gxkt$K?hvSVl2aMxsWeRnPc0x$z{VEp^1DGeq+9}eZhtWeX?&sQYVR1r+E znN~o%-67jA#1YFOi%l4J6r~0`zsb_Yk_{km(N8K+d4Ar4e~`J2-?lTmPiF0X<+e7y z*%Y{%%8tpN3Vr2`&B0o;{mu%aTzyqNEVX!qb$W-Usq?UQS9qAE&|XC(QN$pZWpNHje&b8{?=schf_L#v2BqogWNza`&zjJDqFZI8Kjbxj0#SvL5fT1I@1MyaUj zHx?f!G>Mj}+q;^fULg%!FzTc+%OOn~LML0JJQKlv8$iGUv;#Hb4;mjs<({l1Ekamo z`F#HX)$7o8^Y41~%@!A=E3vz~71zHcc1QQqZtY#4l+9ze9WL708`eB+e&ydD2_l;j zO<7A_w*@T_s}apnNmj)}h=D~rwD3u4k(-5&aZ}rx=~Kkh@-*p-%?+Z4jyQqo#2=Sb zzw)=Lt2b|5;rC|O-MGE;mc~9$HNCeULo(B5w-nWM#ANRHoN5My(!QNu@A9q8?d|i?ooTQ?g>5-- zkMa7Bqd&gVx~{Ss9nVdft--FEs`?6eaUd>Io*%T1SZbiiVy2X9Nh4$sZ44gZ*qD$f zgh_nV5NIobN`u0+s6JgisGF;pSq6o!es%u^(pUB6A1gUMY_TiB7*)qx?#NfJ;pOJ@&1?Gs<66G0hEkiHX|5XVZM z74>TR9DaRkN9mzg3d7Hc{JnpdMu(<1vu|1+!rFCI)rWBOe)&vI2I9!=T-M&7C6%j- z3z3s0io<28O?EeHWT>-sG_W0Q8KsFP5)^cAW?OXcJU5o_siuMHsHsrIfYnfI+e1tq zowt;+lscND>8TX1D^dG;9BQM*WU-J|(`0b;!fLwONZ^`dLnS=58ZuvFShL;IrjmK) zN0v(~SwSF=W-)|lwNwLM2NWmErK>2<8gxhd#~Gd5F-KIilE?f@AvFS)rjV+LMxit{ zDhv}xF+Pxua!2@kK`bnle=79(Am+V3^$yP>jwxyZ`--MYi9Cb%b+86iVt$t=oBsf? zJbNj*V@6MxNu~sXe1}H|6^f;xfgi+WmSzwyjRQLp08bD$yo^7owf?@#;6*b=xf<9C z@uhlTR|C(kU4gv1zc1DKE~V@m%(T>5YO1N^+H@J5ogVAl^y;5*n2c5@12^8}v4%xs zB|KV%OtvL1yos(YcIm7o+4mM_hC}ewg5w5*Nyw! zMZb0T%$s9oWqSsEX65Px#?@q~vHNqdah14=3O%{DYubv6Jhs(paW+3Cu8C@CDJ6}a z;dtd>1F83`i^Q^l?qw|sAi|ystBPqKv<{vQh7wGALW}}4Pq1*Wr%5bN%2>OzWchw9 z>^h8hZ*N)}>~<%!YPO2Yvar56Drb{Fy=mzyWZdvzDrb(-tkhBI`fg!c~h#m&vNm(fLh zuf3#tyUq?iEh2`MuMe}U6CjPyPOWwjV1O(ADi0&+)LyIZTxRO&dhDNkb{^H+89X*x z9NzlP<0p#&K~0#;(3i%?Jyk?8;-YGNTZmjFy5|zCQrd4Sdt+$5xu0v*yv~BZ7F7gF&f1N~I;>t4>s`Fq(Nqu)KV(whpiX;o6}+PXaFOm;rf zs#?l@--(V-@_L-f{vlO{%V7@Fo}#ZINn7Ab8EFeRjpMKf?_2Z5JKI@Ek0H!?p)?gW z@&E&x@aa3;OCxL7+pN-<$B{oGJ$gR7kDy+R8209#k0OoSCT7vHyP62?nR&^;J=_J6&{&CZ%#^8LNu(a zGYSqL%D$X>Gra?}m#4Pod#yfK?+E(`d}K4Lyn5egXHtVXosi(`sxohrp$8G`RU{{Ss)`DX21i$KClV zWNMrzUSTV$oJCJgrmrzkNc5EUb8st~Srh5f7z@iSXgvTQ6MsZhR-cx7I!k4g%Pf)v zi78X&Yvc!+H2(lUT>d`%Qs2F6yXyC+WBjh}{{WDip0=MXxjG&94${Z$3{F#URnug* z1lt#EHS~wIijE5?HV0LYvxc-n1qM2*)}n(w0v&~o zrN`2_VSl&`U-5K6Pz%`Dl5c-#t}IXtt!u}n0EQK&I<0;4wyN@5wPtXwNu)^)AqGt$ zWDumPTEt1oum|;X?3MO-GQkutr8-MAXb3du#P!w;j2@L!t|V1DZmpycq>Bri+v+du zj95ZTkeLU|9X5;nx-5O$wZ7jmQBzYIH9YEB{H|Hm(Z!L01Pg<3FUkIv_SM8}v}H8M zPcnc5FT>E&)^zlbgT+rxcq50zTaql1B9J3OYy)aMgU$W8h>WoxF;10ZN`cmF{bgHA zQ6z=qhFQY0XeU@MPo)0LL_iD_6&gU&K9)B;dkk)u07*sT zPubFIj1~3iF)eh+5~2KzC6euUyh1S>`baIx@^4}X*V-#IR#NOctJk4XLdUN`OG_>5&Bct%bO2K0FrJ` z*V!KEWVkCJL#yS}Q^~GE!>7K@+7x@HstPd-#z^In4DK~U98afH=u$3b(m&Mzzo(yQ z{+@QWB9sI6^vDG8=wj<_w}ji2kVce|`4%|hGPFw+FZvr=Yfwu4ZGX+jyY04RryAHA z`JXPgZ5MMEp>CF2vYvu@V~wPSM=G);N>O4)CxTQEwqK{yi=SgiBk<5EHR#7du6T7H z0}!;#F0q55B2r3&aCIt+C1Jn; zivky(dG-q2b~0rygR~mg&!YLZJeBEmax-8C%hQP)BVc6oY$kdHRv; z*KV{65}7GZtgE3YcyvuW-zIkiG_;iG&azCeP$EWVlrr-i79^Xi8}a!*#d~QQWDy(= zkWE16PeC@@==aQImnN{&($lOWWkw4$n%JP5%(t*0uhBsaPqj}vP=2Kt9+L`Jq$c3m znV!DfZ<3~Xswq~bY*a#kuw#2g8Wcx;T2B@S^T#PS1h?ERS{WLwSBF(!OhFD}43-ke&1;JgKA)dsFRm*I8iuNLr52)sqdiz{6(-2q z+jLiir>BI`c;jV`1@WpcsG|O$rFaBbT>B2sdSs;=HT}IRM+xz9>Z$%ke7oD*FLluE z{l3r|nd@YlRi$NThMp67rI4rroSTJEZ}lhHF6C+U6_GPTnt6Sv*X7cc6H0~RLIrv+ z`-iouH`d(BR>v~UB*`F-MR6N6dR1fAt*nk*8(lj-o|l~<6Hb)3ZZ#c1=M?b zIlVuP-hH8lSaCRts4Gz_1Zi7N^w1Fz59LX;JCW$Rg#?Rpr-AM0ZahtKtu-mfr%pZG z7V3s}G&TErTI`Ho;OU;lf}?xV(o)mc)Ikxf5-3=vkSpqOc2#7#1e+31`v4H;-L~T5 z&$617*XDW)Zxcm(8~r({0OPAV-9I7ra&^GR#gV33s4?jARO<>Qwb=UOajGEdMZi4X z=lVw5UA^tS#B@q1^FOzsghE1N0y0QGL!&MHy8AAJc4DhCFEBGrRNfgBgz^ekWR>C| zvOGc02Hds%&z!x!_)y0TObGr8gv};*WM+}2O5}8)s6_J@th2G-pD5IlN{*5}WsTk&+jSa>m3mBMHzs-3Xu*-#u9#%gs#uD-^@G zoDd^ilgFaTl%rIfbjMqqj=on&%ScgKb*Lb{!4}k{C{g`+{{VXT7w$aIYdqRxV$17J zC++m<+j&RvSE{=Cxs{&{v@Rv%t|7NlUQAOR zH+wo-$3{KgU0o*1z~iYlzml@5I8k8{L}q(PWMx$F=wg7k=HmPhapw2AktuOa104nK zZk?ngu;I}??2HBmUDH*SsH5^v3z#6PXhRhf7P2Koq$r=rHVRYFu;EQQ;DOF|elv2!a1$t8?i3l<=?Cby3+t+IE33Av-s;SpNmJr}DEErqsZ>oj^k7o9> z3E@cqpdcUH(McKk9)rEhL7UD=D#TGpZE!J%$k9lq_I1`(qi`&FAM1N+SS64!1E*1= zQ_yFV+dGRuGg73LQIlcdP^jNeLtOC7_&2|@scdIz7C=u`@k^vgONJzBxw9MdZU^}L-G%eqD{97iav8iqUX2Yj*$06<^T^>; z@{Y}J1<8z9+mG?~aw>fKQRz;J_kGif%4(%h&U85n1C2~=8Pq@2i}U{Y`!Bt4k+XxI zw$%xas!wzEu>LnOsiRo}OC+w>Z&{u1r6d{^kORjDk?fwv>gnd8f72(+qIlWF^wm}K z=*V?e&xV?k6p#oIATg$yIV;EoiCY1q{49Uids}}bXw|4MOpb+Cx62wNWphr4Sr}vE zPacQ0m((v|qy_w4Nw+`idqHnoh9Ory87=foYF~#!w^(POg{oqm;#rKS@#_h7ROIOl zZdlllud}OI9W`oSK9b$el4uCs9KF4}C>oI!ri=oD#4!iy#ks$=6Hbv(GYX!GU9^%b zT=WlietwpwDPxXXUsaS`ohO3FP~e*%WOsY4Xw=t3(rF%ml5^$JOQ)#&4AmuIbZDZe z6E>zH^Z-zRNnJ+7TI1{OnD>Yk)4Mh4GEM~*k4ArIZz@`%<~9Ha$=*Cx~kfO zp`OZO3WDr3`mS%MQlDa-t8q)!cR(q_s+@p&S?&qz1TrH*saOwC)VgeVBKHRV%_Jm- z#yWO7cITjDaN|Z-5n7KDN#mz>DsQhz)Q$k$dQ}lt zNh2%X*&k@*{JPl7YGjhXA5SW_p(IE_{{US<_GK{OdSLMB1=;AUj;n1qv~Iw0!3uf& ze@|@OMkRoXR~>kYj;SNPJ69F5^4X|zl|N|=!PO)zL~B3o+-Vv^UsxZDG4~i;>~gL1 z$dM9-xR2-2UEEF^P+WCP{omNQ&D7PaOH$R5ODPg*9-*k|Me^7;kpp!l33LA zVF)HgK2_@O`acY{7>WTR`p^=x6|*SPEUl`VbZ>Cj zqXf_fj=;Ly+WMCEx}Gc={{WjGY#4|pygFRsu@X4+emde&9xWnb0|i5FI2INhf&D#+ zElz|BPs7k!=7LwJ4xRJNWm(Z!H>6l_f7kkgO}(v*cJy685zu8aSQL>tVBV#_C-MCa z@9mifX#{lFPngVZpc>o}b^4RdtUX){f3WtDTX$DISRo>#hfLd&oWinLfD{xZxZ#1~ z+V40H|D#TKxTOYw&p-`!AkWSnZaFt05Fw<}~5y&7LbN(Me?G<&9Q1x#k>C!^5RUl^5slqwaLFfo=3gLgaKZ(#(omVdvFV>%{kTmdFZfNkL|{{{Yywr8=*`ACIrJ&!uUeyy4n_aOowLsg0T$;(=sJ zX%X5M(nUfe2QkTYU=hH#=^$U|eX**NM&dAZkZ64A<@xpK)rD({j)^zUKaMkZ&s6Rz z?VGqG*{eZ{lXrg&N{zdXfA0p_6*XAe>b=ofLp^2&mmeibl3GeBXw0)pvKi2s5>q|e z!aehAlft?%3Tnj#3i_I04mhXV(S7~1OA$i!BQ?b_=1I*u)HmlRYkZ8|xUQPoUB|bZ za&%1=mW#`LM$6o1``v6-#L7F;$meUCF~t*84aUL>t~XO>!)GAwsA zx5sQtIqpQZG30;nbK+T{Lu<>d5LS>T2?p6TM7_ z!%yTj*`ct0Ubouec^cj&(?WaeTGY@ACz9~~T{Qxt#~dQ0Eotk=Cx9A!hgiDvDbtho zZX;(J*lYJD*R96p8XDY&Yxuqzo}Q^>ilwUQjV$%lw6+pFP3C3{b%!IA)~&UT!W#wd zxJCwqnvbyg)BZ1|(Z>ZVr_c6NqoeX);y+4!hT0iQICd7x+&jxJMYDHZF5K?XZnLJS)J=m;v;z|I|pXuYB$Y1kmai5k?X29 z;i<>NU0shgi$te($NhiL1Y^>lyFH6+;XNgCV(#q4M`%3_4ICJJRuZ;7zJG<)NmW-}wYO}!3|1xzI-0rb zA~UOb5YXGOSbU4)}E^qHq5Hub+Z*+u+U4Br`MYhX(YU=fEEB>42JqJY_;ivNi z-CdQB?#k}L?!Kzoo1ynEBX4we3%0AL!fklP6(&xnH@PyIEHre}Rn}!Dsi(YObxj0n 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

                      t}1wZ5L#Ys5H^V~Vbp7fB=pIxr!lmCVBG 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

                      x4CNj& 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

                      jV1%f-R}m1^Cx=0HJFqLTn}KQQA!?*{ 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 z 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

                      ":""}(),c=function(){"string"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e=''+n.btn[0]+"",2===t&&(e=''+n.btn[1]+""+e),'
                      '+e+"
                      "):""}();if(n.fixed||(n.top=n.hasOwnProperty("top")?n.top:100,n.style=n.style||"",n.style+=" top:"+(t.body.scrollTop+n.top)+"px"),2===n.type&&(n.content='

                      '+(n.content||"")+"

                      "),n.skin&&(n.anim="up"),"msg"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?"
                      ':"")+'
                      "+l+'
                      '+n.content+"
                      "+c+"
                      ",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute("index"))}document.body.appendChild(s);var u=e.elem=a("#"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i]("layui-m-layerbtn")[0].children,r=s.length,o=0;odiv{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/icon-ext.png b/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/icon-ext.png new file mode 100644 index 0000000000000000000000000000000000000000..bbbb669bb311514baa5db3a6a00b4644d0e280f1 GIT binary patch literal 5911 zcmY+I2Q(bf_s2JgAUe^aMOKL(VwGqSy<0@0i{8cRqDzD%ST(B#i!4FHDp8XlI?-*k z=$*)lUVhK-{LcTJ|C}>3XXea%^WJ^;-tXtWSbbeJ3NjWl2n0f*p{@)EcPu#VNQl8z z1kb_-ZbS$r4I>h8JSVYx1)fR0)Sn&qHr}8y{y+4^AUz zcYBDagvi~yB6shN>mfA37p#|G7`9y&Ggi_)mcoDUevwZ%`QQ+u`Spkp9gx zTYuuo_8p5IL4SGDE=2#lxUGErKvu^NZ*;4Tj}QBeHs#sycwNE47h{3wpZ|9emH((u z9sRflNhSr++WU1KOOW>%Hbg-aK-&p%Q&ht?^+2LRNG+S62f~|#IHbK7^Ddkcx)J1Q z0S7-})`HegD(zyqd3ie^Xb3L+7UdQyoXc9w+U)bw_5iL6R1v||XHI%*wrz$^Hxo(q z4GqONss`jwc1leu&Ie}C_iF{Y#ELuWnzl6x0$Yn+EWq{3{85roZ0UUaYXG0b)L=y?`*9JA#80I z3P(##E(C&bEKxAud)k68*!7p?g7>p#8~i=*Q(G^3Q}7`S4GptXIHeC{8;MWMNzpPwJM({dpXnId*kn{Y5EiD@N@df+QF z=ydO?XqznoUo&{Dudh#pk{Zx!=;*Y&!4i%`+VW%iA)5@ZRhS}sZ!`B~ge$$|!57kC z871jaeGcN{4!xWL0L6rzKKTQ{CGhEnft!6{hpBOL@H)dt#qvkFpkh)jIe7!-rRUdp>qgmJfFq zu+`PvIwEDAvWR8v{he98pdc9`A)$|^)nqNRdM+;OA7%#BqsQ#odE$E4*4F56+(4$K zsq)ctF_F`f6JI+gX1PU8^4qTgCGJRhvcGj(PEM?EXEz`bdS^_aKk8|n(uNonokkJ~ zag?3Cy}{$huW)WWtdtA*BPsuF*6i$TQs!XF8--%I1#}uhDYUHLC5;re$(42JWcdZfurd&*Jj(-wE3U z8p;?N6=YEnPf2Mh(w;fF3mu3Gk>_Afh;hsbd^z3VUpfT4cTeBcw1gC8&%6JByc1M_PomP9JdP7ad#I|Ex0?^gtOKU zS}xQ|ue9x;{3qE}?K*yG^rj{Yaj}ONmn%l7{4PRP*70t&`|8*tWxo=;xaG7+xv%q#ha*J2qI9~PFF+Y+mbgD ziF_c%s!C1d;_7;|oarfw($1iLFOrgTw4!h!ZC2}HY+qhlT7bpU=MJQQ!hAVj-Qaa4 ztn-@to@J1PBefH;Y?PA2+51Vcg88_?ZdMB3?h#8Dw#WxwQZV?AUM#rDa>_%p<#@Cr zV5@q3qN+M?E-Q5(z`GHQiIYXd@6&1Q{x96RE4Gcd^@@Dp0H{!lq1#bD?~a_Dm*Q zij@+o@!eV!xX}0P`~K7_22})mJWS+b4!ulcRWin!Wt8cVpc;Hqr*d2DTvsfl4fCH8L@O* z?nN!Gtd!cil@-W#fZt&-m@Ayz+%L8!Ypb3gd4tultdRWXkCO}`6}r;*rhLQ~`gtUh z^TTT>n8{S#Gs38Eic+i&zp&2q3=9N&QrY<`$_8z7Ucd220cZclG3DjNTmvSSmb%ZL z-Sw!=EH5u7nq6yM^W@bgu~@%V;3it{vqlSY`a^mZyC)7qXbs>g$_68iBg9c4k?3+# z|2}BBkXz}`Hr#-D&h+936cRcX2GJvg?ps5J?8M#X_*4Oty5~n?k(``8VmKU5(7cYi zbToq=exH@{G*rQ?#%-=Gmd<6mNGCI3x1CYq&OhsY{&hGNVRBb=m)-nEMa%N{7uQP~ zQ7BYzu0rm}h!H^qq>{Dt5A?Gdb0|sV*Lb%3LFyK8`1cay(mw&R0kS!v%{{AP6MePy zBdv;0=9_&t7)D1&qm^!bpA*$BPJVHnao$H}ltSB71!x2*{M8g?;F&95F1&b`Cm7%Owcs1q(qa=-&BynT$mBqLgRMzppzZQ zGpuq!MrCHzE;oR~WvpUi5Ho7&K}>wXxs#KV(!T5TKo&?M!v~$vK&S2)7Jc9~!^Vl7 zQmY`@?)!NycG6UPEOn>4O?eCu9p8-9HGN1`1B_(zKJM591)}l1I*9%D>vpSF`}YH6*luWP;=xh;*vXvvYM3cw6r2N6?VyfqweC zfh_5V4<8az<7zNVGhgm&>XoUV4XSZqd|M9NMLIh>)jO-&=6f53|B33O8Hgg**Ijh8 zW!k%vdDm7~)#K!b|0u4fq|ncV99U4Y%Xa$DhIDjrglU_ZnJMWmwegd*d7;^zi7xUq zv+sZ3pO37BAa-Wtp37Uoi89vWIY~f15M;O>L&^4Zy55&n$_rA3%NkK?~ zLzzoi1qd~pLeGvJ^V2ivO?my=3hu9(tjEVw+AqtcWk#K();BkwpRA_GT6GV_3hV}* z=%f4p8|`IfWfA}qbC&T(k%fhYR%!}#uUQ4AF@%4Dnhd=`@Bw_d##&9OY5} zR9^HdO;zWY_f6W76RDI=7RVIyX#8^5m?u|dpj78Jds8)n1 z2Yq>*5YkWp&Gx5WYfnYv3z`{DKb)3?8s*r2+LP$9A^t%)24vIF(lRIZ)dWtKT6T<{ zT0?B-6;F08jfRqyGBmCwzCV1Adygr+KrKO6I_&&(9=|dmat>q&BlyaWCKxjuL3(s_ zw10B2bFtP+rEuyR9DEYtah>aE6}~|p*&MA4GWho-ZY>8AgV4XpxxI&{_<>@z4O<~! z;;+piCu#A_;tpitt#j`JE_v7&&LVq>^sr#*uU^?>CKPT1Su>Q9`dg0>cwn_8G04XC= z&i-1sT32C@kxV;iDb-}V`QrSfx~b3-=;a=h)->roY)#Eeb72#EK)@CU-Isqkm8Tg@?m5|+yDr&~&N`L+;d>8ic!Cez8F!MA3&2Do0)UCg>? zsdO6Tl910D8zAxP*g076k+}?dkZM3wglA=Cp^-tK^1c$M)R&a-^9D(~z+3i)wCEx( zly1YX0R;|K$kQh&9_~6l!fWX1je|jKgJcBNaM?`k?Y$)AfsaqBRyQ}be;xj8V%A^3 zdY$1k09z>U^;@y<5gG~;%Dy6lV#=zvhOv&M?DRSlb$4w{O4YL163^TSdF?3{td2j`{98*`gzmLzKc1Ek8 zgM)d*Nq6}8tbr$hR2Xi0zRqwY^amgL%V6=Mv4Y+bRCkc=tLp{0nUX*w;*Ge3hFUWepyi@hQ*CCmG zKg>Lv+8YD$K%6p?gP?g|vBJJrNRv!szktd`I^-CeL3-V~KTBHnXfYY6RNsKH09;a1 z693D!;@Qc*J4AwfVpvb%?c~;v6+HK$E{EulzBQp{2pFhA>hbSyQNdWQYMh&DnmsUb z84oR4OzYy}Vq$uFF%Ruf{fJ*fHXvn~$5f}}>~lip843U~kFie3qM-H1(F7YN>%cz^ zQh&Kr7rCmq1SBE~i;7+z9|uXuwPT%!-${D1=kvKV7lTyn)F(u z|Bhvv;FEk*j?AOHuRfTQ2VGo~a!7rE8}n_kV2!A%a37DZGO4TsSMTobK3p%Y2=Bb# zT5i#BxTY5t*Rh~cH}aYMD$EF@#^U7g0Y1QH6MS1K_KnZKb>sE*b!wsrFDdOuj~GBI zF`*;njv6`GnO*U3Ibj182QgP`=_LcX;VPrG*fuULGA%^^?l!Uee&TV%PIJT0CO9%^ zcfNg1IX*$!_UG~^gQW3UK!Dd7g*i27D+QC0$Zz>7uP;$B-4s>4AJmkRnrdLe_=E+> zs{3ROx2&|ItWw0k#QKA4%YB)}ZN0CI`9zJ^kMJuy&K@4;{s)=>V=Ny%s^JSlF&DsM z-X^Jk$jiG_u|`XgNY>WVzQ~&Yfo0Xhk%7l*O zL`+veGywua{JNb>@JS`K!M|{P!`L#$wwf}F);$@pldcY+-Df*g_h2x7n&f-P;c;tG z&Nwa|9UUwd3p5>+&c(yA!)qfxRAuiM@A@=MpYGSTEd6+UQ&D-{cVi60+^m}U_! zdvLnEuPNsIh~-`zK>X@S(SuHl`&*OuBqX?Xh~P^qez;0|?RTONgf9N}hyZ$kINu40YZOS$tn2wQJX^7$k4DA;4ji%`qluAKwb<#ej4=0in_3s zRmcF_LB4M0j~{oUHIj``o>O%XEG)7!!c;c+)+R&GHms^ZTvs>N*Jl96qa`64aeGpr zBN*LJCWF01G{;y322+FzG_WL~^x6j>KjAX0HC9n~~2pkZca2HkLym^VL1 zUBc0tT_}LtJ9q9F^yp9%)wX|B7yzhcq1yJgo*E`Uk z_r{ozHjg13O8PfI*2mZPv&$$ypw!~DT&ZV~0Q{Vk9GIH_+q`qrN9NfVb97-LW?>aX z%kad+2jN&(HkIW|paoF+VW}g5!x2zABqNdeB`;PO58=aEcf_-4fy$mi%Z{RJ=K!eM zLoF?>q0UXe2C$6tsV0^-qb0^JM}TZ6s$J9TSJ-Najxu514T!?RG!kbk4>Vqt(|H)mToz#peQ#y6|Tp}<1aBrlW#nk?aP zxRaC9Zy4f*msc+bDkP*c zt&&cDoo5<=IM`F#-RzqQgC<_9Kl9Lu%*PBeZwFJExsI+T!yQ(co4 z*NNxQl&YkNJ{{IxohMt4Xj2wBt&54T| zEcW>k&M}v52(;l3DO6>670t4m?eP8DsiK?xBPK#weB$4C-5+@?#$mgfmK;1u@!!8i z4dX)J+d|(`DBko+QYSX!UOQz|4K>nQxuBui%JcO}N?pvg9U5GFDU9vE{o?;$+ApsB YZmOLxGt_1UThtH@6){sg1ftiAR$O_cXzko9{g~3cXxLP?m+?scR3t_9PV=1cfYUxSGBu! zQ?s+Py)&<0zwSt7MJd!zM4tcv0IH0%xGMBI4?P4BKSIykGWtx=3%rY{j5;Fp=Ywb# z0sW8kQ(DIb06@n2?|_-x@OyzalDJA}yQ(=_xO$j4n*&759DkToNLo9adpJ7Vx=@Iz zaUFI4ih=gS`>&svv$=_@wW9-ty0yJIfQ^Th?JMh7PTdFq0RTV&kP#PA2j-mhc=)Jm zyuH8kdq7IG5<)O!kKi%HRkS5w65VP!?oN)Qg6hoewKW@0t4^aJvu=xj43{Muj6YaI z3dO||>1ZiK69A0KTs<2%&!$O~$(b^A6!{xlhsn!(iBcBlzWF!3+#U7aQ=VM1E?$4U5<2~h z#D8A5q?!O=LJ~j+hHb9=ro1beht*SBT8e{*_sjdi;rRF%Ag!ciITV2zL(CoL_X^3y z>dD&>+R?uIa8AxmWuOQMnGM;QK+0f!L4{xzD@AS^#K~%MoNsp>z@>EB!W>zSZfhaI zb#R#D6i@VY&E;a`Cd$~e{4r`FGy2n3(V~}lK0GQws5)yFCo%8+DeLq`1I z((^??bL=|HxmE9^;;x-)tn?%%Mn>LJ(t@SQ`<_~)n2)h%Zm++^gn7!1>FRtd_!cN! zEOLYzc;kRy@maK9iW~U744Gx%yNT-M3zC@IZqt_$OPx5It+3n0z+)KQcLCTCw8C-W zNIp_~kbJZCH({QR^z`xlALD7vI5;@UhK6xl7gF`hrfl%%BWLb=SHKx7j(-OS?0zr6 zsqcFzF_L>S;8ZlexJ9EKPy=2|AsMY846Oh*^bA`jCY?}95PnHQs za;ThbCP%zX@KUMfrjyZ`qj6j}UaJa_W5IT#d@k*9CeS?23qw-f`x|l~Cml{|zXg-w z$4R)+;KPwApdxPpP%nq`zf_mZ2wWLfKmH*ZXcdIQ(M zh8~6IsEJ%8o97|qw$7+8Pf6$%r)^CkU(lC;+kwQ>)3ce&g-yaaPN@5*g@lZ{YBiw>z|~7_y9VqcD?ocn&ZjrunN|OFJ_6?jz*eOUvTW zbVpqKcs(y=&xM}fb|kft%AWm4W9MCEIvNy;>6KvhSVBtpJ3+obbv9fev|pXptN<_w zNOpW@TPG*fReVmJEMvbC{~Ru~D|GF<9WWfh_3XpJGp~&0j9KOy!i5$h>}4-)Nm|u{ z@?Pk8so{(8_M4&TuORtgrcxoz2p4J9U3n*31EenzksoM(|_sUXX?z%h$vPg^5nzIcX^@Jn|Rt>i9 zD-z?|y=SSGrvhW+{&?=S^LYOZw+HQ!r#^Sow_{Xq$qA{!+A8HM)>ZD=-s{;^`fqc+ zjKn4QTu>8C=g!gQ0;D5dUO#8Ooyc$qcqc;A`-)|vU&>IquGDuye1wah6hQfGE@XrH zE|uNs(}r4`SD1_0!%LmC5Alp;{RH84l1EK^cD9Y$+TFmfsHmv=9vf~szV6|UYZWWq zp5HFIZ_pSS8NX;Z1T;4{qwT+r#2I(Eus{+`rFAbEM7@8^JArTJnjf9``PvfiUx=-| z?vIteKkqpTWk!vC(2QUZgy&uqwT ziBnfFVQv0XpFKY|XM(~-HQlv!H=sCj+@sDUzb8>&jbCrrK(>?R8j+UN{rLQmw5m3< zxvw{-bz0_2L+Oy7djbT(K}<%T>ebOvB6my9AG^+APuU<4KW*l2h;3Ve<1fCOOljYa z?K&+tMb9FDVK|WB1{pJJ)Ss_wV=Djs#nO(8_+i}z-S_z(HTmkv=X9+t9t8Rw#7|8f zOeq#tuxK-AHa<26ykE79jE}e683-NvBhhQL2$DZr&&-(0mfgL$0M7|XirtJ)@4lSt zv2SXJC1E^0H9u|0gWgeS&xy#ucf{wXJWnOAz3M%Ap&I##w$i4r+aGAGMVG2a{?hoO z>D$&18g-x*MoS5~Q$m3-FT^JD;gA;CDj0doGjpF8brsYmjQwV;wE2c=dlC;t!=bWo zEOC&_kx$XflS8#ezos`wJsHaz{U&ZBobQk?2AXX7z^pydTwT*LV7t%@Wk$C)qjW&%-9MisJ@ppIGv0a!NS9 z+toR*h+idlF|04v1uwc($PGUyV2uNKnc8AvAGcS~JN>8hV zH~~bFT8KU=V1b&ME*E>yt4P7T5kDp*B9U`7{U0_weBNIl^!;D&VhFxc?Y20sGz10( z!IsHq4!k_wWU`xo5=C@BT@g`LRTZBHIyE+_u(%%7r}_f{+{Jm*>K70` zZ16@tbIXelxY%4yY#r=(aqo){M|XhRUJbNl|GnMV?EWXOttcmif^pr@$v3WHozJ^3n29F>n!aaLoYKr836)6Ts{O|$y-=4>!v;*2w4=ZbN`d&37+b>@ORj%oi;1F@Wpt z6Nk*sFxp}-+;SjO!dqEd?=1yvv>TWQy5&PFrhHA#IAoG%%RX%Wp3{q+{>2Y;fRe-Z z4F`+qJkmQq06!V})zwb)&Eq4GKet;S+8VodW&!QeZyKkOU(CadJV=;`WcPk6=A#jw zXvjKQ-wUWBa^Ae(w5?ExmF^-v(PNc59b|Lo&zk?`R0H7$p5BC!E8NA>oy-677w_eT2sbAwm`1SwK@Ke&A++*({RHs; zGgbh8F=9r4%;g#E^b(?6v2-*$R$^*=>bd2ny>{Ka@_rP%5Z;ojhQlP5jx^o>bUP?n z^!Jo-DV?jFRmOvLsL2B#6@7y+QF-pLbZ4jQ@})bugzr6qi`xhC-z#lw?|kpo!Q?-v zezv@9V(~T^^1dSRiwG#z6xlkoo+wW@5$wS+Sb7Zrfd67bJ@n?JEVdhQL! z-kxt{pPo)Fn*0!gelu{*Q&`)~{FT z;YD0{g-bZF1!pdp3_F_H7}Ak;PDxZ65wt`yv&CR+HrU5%WR>i32D>`*?8P9F*`LV>M+`chaHRRuNN%pSVPG|{v2yjr>YVcaQmUpTd2KAcJ=NF=>Js9B2 zZpy@IQ*K)+=M2zIc>Q%3{3g`=W7~k_n{z+ZN66Hll>&vrd4%i~-~x^%TRyz;Wc_12 z@?sV~@}|69J#u*q`hk+L&qbMSy82fo^Dd_Wr zlhxeXkhTqnl^4kar8PS{W?96PYDx)CN{QL2(U-$L$k}%d^h3IktqVe5k0m&dQSu_Q##HUSlKO_rd@|4T5hNWpSjj^l&EfQWwmM z+cIBa2-c_aZ<~4oX`v*x_@My}6$`IE8@bhAEOTB~sVDNz)K9@k%`E=j*ad4X>*TSu zH!4(*tC)t){a76p!{#$UVOl_Buozhw^D8zIEP4PIemoR;kETAu5dxbek=1cQG$^lI z0I*afpM#0IeQ3Mf0hMoHn`r=BV)=5v`&@XRHD{NH+^v^DWo07y@$T-Av9U2_jZ~-$ zsL^C%(yBvAY}Bn)S66Rv-j~IZD0JNF{kI<~)dCIEik44Sd%U?1@$E%~Z0s`R^)gs9 z18=&1V-5OT;hNxewT~apv>)wkAI24!-TpRckGxC&n3owie7SungA|;Z#*y<$N#Nl& z2V~+8@VLtnjqD0DgqYFMqapF-TTZ|m`?~!8UZjx?7lR#^va)*=B8;doemI4S(Qg5H zEV$9)N>|RpXn<`+fATD@ioi#|FxPP-v>lPRw9*HTMoeCqAKyDdag4^m(rhCG{Lf9e zTa%PF&cY`gy%35>RNpBFSvy0Ot7PYIlmanmHm-!_#bGgc1*llapn+^jb;uH?!4W$( zxAKJ5H%COCe*zHxyz8!Ddt6g8h@gLLo!T0xO}taKL0d98BZB}%-#*@ct+mn5_qS-p zJQy1F`#`|ulqoIDRy0Cpc)aS#c7%dWuOK+)}+A7iX{_ zdT0|*3#LPP9c2$$4EEGT11nS%0K2Okpow>tTMbAxLIW%R`@YISKhTd7o@`XH^LVdb z4XNrWg1id%1gy%|2?Gr!V~7iEgk*o0b68VnZ&5Qg})bG2j?mkzZ&dB+?oNDQ%^fvf87m2(j;Q?_tl z>J<7u`flN4f>H>)k9>IRX02vU?q2Td{Usued(k?eL%%&=NEOcxRrI+Wg~tc&%!*BR z67|vR8EMmBc?hX6$f_EvFbOC~*Y{vw;XUg9^HEHA%gB)jnE_fUv$AhZ(A5tbg9Gk9hb*rLg$8q zJ`29JwKZZe=HgN#`gMAUO%oN0B!mcd{=v)WpXF+$`?-)Ex>O1msviQt7ZnU(0ObUv zD)3e(vdA3@*xp**)JbyNkwIe*D%VB{6ge%@xm9+O`zKDddDy8jxVSR5)g{cs?v#0} zThH(QYs)pYLIaNeZ+RMNvb!9*y`;XFrdac)b3J_$BMZ%6Q1+%IL3S0fi8sH3mQQZN z2#8~#bkOOgUNiZ(DS}#t1NNt6>F33O`p|R9Nk~&(IhVs9`VmR+rY|Da_$W z#t;OK>=pJ3c3x2pzsx9_pPZar0r{c)8g{VVMS1OcOObK`WCMMaiRu6aAj)8;)2M#q zcZ5K^iZK%sA3mzy*?!E*4MY8c559Zd3NDaQQ5NM<8rS}v2{Y`UFpbJK_C zjP6(BH_saQ;v$p%BkP<@ob1Mu;XN~GU!2^)t-Q2w>uXoxU1sJe5ZzGx!qUpjudt|8 z<;~q!3fi*2^RpKE!80GJs$Ugse{|k!21^vE*f~Be^@ehx+Cvs&$c4xxR2V)-`StbT zKw~f!oKPtB#eT>pd?Y4TCgy7s_HuV9ep!WKFj3uN5h7P>&TPA|(Xp)i-t^o7pd3Tf z=68K1!(TWRU6PhJ(`<^M;Ny})FSsdP;rTuJlo0)4y0UL{l%#FPhc}?n!p~k3JJqxJ z&gK>@7}8iTUbmt0(s2R`z7qBy92TcnLR_KUi_dbSTep4(MDov-g6tQBfKsm21_{bA zLh7$@ZN(t!?=Yo99rwhpuh%pCs3Kocp`lcXQFYvgNWPks@~+~@cQf4K!mT2i<8??0 z$fJnYy``Bn_6M1wg9D2%#A4fez&Q)c!66a5{!m{-o~Bv z564w3?Az!{^3~PriWPHNqdC!1)a(I?!$iiY`!l73(5=Z(FKG8XD*ka+bIfsmo2g5ZYm}{SmJ>NdORNm50$(;9>q|EcaQaAs( z!Sx1Y%s0`>iXcwl8~o=S3a9#zX}>OT)GsY=^XW^@<@%q_P}=f3ev(c-(8`yptwoYU zR6pZd7jmGvYJCnGX$ET{6#wZ-RWc^HbqZf*am|$W;F)tog~am)wH-%tb;em1D`v0- zK5Tl&Lw#)n10p4SRh6oyCSEd(sK#PMNL5YEzssFLeebiDe$(Nba+CL4qYT#0FY>)l z`<5yvHqxE;Fc6i*Vh4FO*f=-GD?vNCtv`^1ahlhiem0)x^7nz46Q-c8!;&~tgB!oi zTBhwdvO>WgiB&D-)2bb~ade!nD$n-iKRL-W#xt*e>?$x^*VzcmMVuHb-W4>fGL z7doGQ%8@sz#T#`csLFyXBzdb<=6*!v-SarrcEN1zII7G^nRNbS99ZcG{ka(KxaWNd z*D9t#{mpS^D(Qq2wfnB#Vu>iLSvS zQINI8#WE2%Pf9=^Qf??$&uw9Az_EHjJH4m>#FHu4$74t?>bA48$xV=NNn{Z7BPM6> z!?vStw5?-+co@t@!Q`X8{4ddExEt_(0lYq}LtFL-WW1SjCGztQdX9Xn)nDc{I@o*7 zO&^l!l`IY>GAT#$eD8Ijg7VPrpXguBfa&c_bzraEA8?UpE0CrcTe}wFqh*2Ay z{mu6$^V2)v&2KZU$eB&m4w9#SD3sfWJN^R%+Q;ykLj&t@CUH*3G&pSV^0NaOo8YX! zO^4=C+rdFuEvqyQVoh`&30qqBgZ&RR(>qq#GN{(+9R+Kms)Ry-O@kFMb3CejO-U71 z&uG!)fum#Oi4?~wMCbIDTNtW|Lk(F!{E2TA%XSN1U@s>?fTyB-amR7FjX(wSM0Gu8 zZF~4m6;UKoY`=HxMln5J4x%$MFd!l^^FoEoqB1javF92PR8WbEifTWusuq3G8L*<+ z3DdLIe<2VMd?5m5EOg1zQ1GwLU6earnbNHPw2c^CrfBBR^JVN~_0NxO4W5ueC4Ity zS9-|n=d`xG$}0`Hn|x+$PNxjqgy7UE35DCvPycApxf;Fe0g;=7kyTqe*9_X}6|RhYf&U@F}!@1JWWv|fvG zJ?~+wI)#4x{cg`2GaVfryG~PK9i7Y^ZpS?RZlIHTCTOib{m#Gh9e;i`3L><@YU|i1 zc>KglfBN-x4mRHz5#^TFdgKZ1cM;ra;vKGoY;h4cCNm?vneSH#Sye|}jf_YHk zveEPAV8ww2mdkN-qDUe-0;=xz2Ypb9gfF0>NqXB|Yv-ydy{ZgP*u-ulkgHE0E+-p+ zCg;Gcy&JStPbIRo^(S%vKIRAOjcr+)ELz@vE4h)_Bt46SpSc<>;Y!_Jy=Legw4JfY zk8j=Dk9Z^rVf;ogLf_+F()7`~`nOi&r}v#jX~*B{HD?02uR2OaG{c4!Lpu+cZEvIi zNxBkexqA#2#c9fM44xnDEep#+pC6hAiGK2Wv@GDO&Rv#2J2^5__$@g`c3mH5M3c&f zlRndv|ImY=K{ZaA_p84da>_6jbyPV*p>fi(>lJCLMo;##zKaD=Kbivh#93{tT4qWx zMx(RXcEu&`_zJ@}=Ow4d2mU-Jcv z?-Y041H@4$!iLrcKEn3z7NsV`4VGlS{RZa-5 zk>HIFA7%I(JcF7W?Xb;>iCp0twp@*NDGhdy>xA=z%~c*%k~S~kiHu46!PH`?rHwh3 z=Y@@aNBYN}UNuBjmSoE>^6m~F3d&_rr^D;`8LHY2MnF>n-3aL0kPFW5OFps6I9PRk zA8u&B6}xVJ^>HKLt^_jB_%Prh`f@=|L#@0g_$Yhcm#9+6dwshR_cO6)N~F-POHi6;vXD%2Yl(&Xs3kXLVwOD&pz zsb?`=d$;m5RQ#Htsa$Et63zJ^&5H z7<>LRued)8?4|?LcJn)X$$9=Gw3@dFa(4E5x8G09MT1&~kRe{*Q3P6FATy509B)@C z(ZW?+QubktTB+x;O8zu*)#Il%%vFQj$e5%pjGd#A5*)Z255C$d@)0 z${cdA#Hpae{7P}o#Go3&)Y8)%Ki}xGwzC_uXrc_EU}1?{SWv&dxfzV=mu8HIb-|H{ z%-O<(nRV6T?s#e(2>(;6yo&R)5k+2Wlud4GY}SP981#Ux;lZ8R=_EUoCtp=%NFM_1 zI%_oOa&NSlB(kyLRouH+tj1R>S2Vxeo~i0n9h1Y6cq(eLjVyT{amKHAyi?W26d)R` z!OqDqKOAo4g_MP74O4^9>Hd3ZP?C(sB6283zny&b;ur$Ck1$j?N{390kMC7g*A3VS zp4%p==B>>lE*g6DY>ZG>=h`vE3Y5r{2cC>%wLg7<)1ACR?7r{p`nwRT7Np5uSp~vh zVGNN5R8&>%=6Y-vc62<2KosQUOwZRl`YZEOt`jhRlweSO0XFxX|KdgW@HsCj`r1k* zeCDKB7iY=JWjbd|b$rf0(?Y!Qoo9Ux!p6)!TZH~o&a#u) zU8t?@XAWB;fGgG8bDNmnk5gOmi}?SWYK)?kggQif2J-s)uqDJu)iUs-@p4v*yhWf{ zT4OOGW&ggD{Bc-BV?J^bXcv7U%inECfCa)^@SRg!%Oux$RYB~;d1Im_PMe=HCLK#3$?zKewg~h>MojKS&-Zb&~_V z4(m`UqrXsQR3e_M(0;|)fRjil8)y;^KncpExKPm`)bo}onQisuL+qFN=p3nrjd<^m zAsW$9o4;IVK+n&^zV9y%h&8l{VOE^Z?Kk>c_&t=^yf1PXZZ{wTIx0GO9boI`g!oJs#LxE_ukrbcYf5+2i&)71?OO-9EIT4Py12dl`>us;I6C>kN~7uR=_)n_bh$f472&il z_S{s&Ux!`J9+rP5cXLm5;^BSs)A2zpgp^tX?JcMn=|uV|9T5|C8?OVxpQpZ=&P45X zA|;qoUM`HjM8>x{E;yf7;$@;q)!#n?-RnEezj^1EJ#r+6;J8ytoa(p;TZ5-Mi;9@b zWh&*d5W5O)?p4{Viu0#H&l+y(QbGnDZ|{4Ecu1^JL|`y((bf57CWBb$%1fG=nK_X! zlnl{Zn50h|7ZK~i~1J(7g z6*LxcbVHP(xAHg#0UE5#-o&XdN1>BFU2oY@LBs-MZY#}7)=sgRf)goKuly^k)){c# zRu^k?ArIu-;v%oAR1WY@(^LP_C&$hk?k{W1Q%Q3Vw)<;ITgf?o>RYDI!~%lAgNc%* zn%ZCR(!S{Ymzw;~>Mn;;2SA-dANWY4UFa;6Qo0~g>qB9i@YjI1E?HBYLq-cC*ya|I6g$y zjesw>V#J;a>9g*PMSFh_ha&#xH66EA?H!@O4ERYTmcL4nCUmNS`gFIHGJ2-txt^mjZ4#s?mr!)V`5^AP13Hf zouO)VM@Pp*E??XHnb6vuZ%xnnZF?N~)jAGp{iHO7fFcqRt)!*3jrJ_Wy#`>^C|Zk;k5rnAi^uCZwgM5f#spl9MyJ9Sswd9ebZF#BB{jdeNJo z75WyA+%8?zIJ&<=*Wyy8fo2j`&NVaiOKZU~*SXjg3)JQU)d^C9#=`F%?2V=kMgC1aTpY zkEW((bv#mmj7rMDeW%p@Tv95I;t-`kbIAxJjwWz02DLV%sdZd97_2%x!c-PW*4sQrbbTeY>vPtRV2pwKDw{xzAKgU^@_GCn zzWk&@?=Rn=r4;%LK4l<~E*`64%wMyp?~~c=v`5(zvQO^f8?X+1BNM?!;kr1>q_;nx z_!LqkzviavzUaSLV9Q8ia!t-#Z-+UJRR3%_UV>GEbH!0?hQhK0^$mSh?XR;PEtIgW zUJVPtPiq`fW|fxO5zs&x0SZw|Plu}Q=v1B+K)FPXUay9?c0_cC6W+!!hk*A+%q?u{ zMR^0UU*NX|VhEZ&s5!E#stO};3Jb2s&{6yb*yr~OqDSt>JTAcfRIMN| zHht94kT_H%!G2*W^-)zxfwMOkbwz%xm)q?)4z@Vvz2b8VgSr3*K6)CSuNBY!63*K- z<{GoytTrN2)N=tarhN9~*5Z(@%Qij@t7MYzSdS`*CIQ0E+iQ+}v5Q_m_!{Zy>0Jg< zxf3!88Tdb!HUp?}B`R%L*9;#vZOGgFE%;1CW2fe>jnZineqdp`z1LHyalhTnu-L!K zQVv}&UBt%5c0;RTNXrbxMWG7ivc8MLs3eT)m~~W2X?o;6pFN<&w8zP(Bg=@g=LR!YHvx&k7{M|ltMzT+1iZzb`mOr zQFAq78z*R9z%wa)?`l4}MbFo}mp41?V0O`0jYLL&5JR9lwnXEOahC+f^+{&ZzzSHZQ_#0 zO0ZEb3U?+*m>Cb)up}1$$BUUnE31x`VOt0t_!9j}Q~WVSyQxADmDbMS%XR<9Z*@G) zG&DxAr62O3kKYPo#Zgcl+h<0O00?9$T24R?}5RIuw6LG<*RM! zYvSqT8*t0p5z)BqY46B))y3N}z|-5!hfmW)-m7-z5?ptdex0Vb<1JqoPY*s*7k5YG zqP&!}w3M{msG*M@f^eImv@}cuvsNa8@0vPJ@2?Zm(`DVC%WC$pGB$ZzNeGvkNlHZD z3EQ)*@v4cKk-c^P#QctYEE1zpS zDvD!vcS%Nf8z|Syl6LZ+jYU39@$c?cX|at#5wofY?5MzfV^jab9z(OUd^%lX;1Ll-&*`t*}P}iIiy%f(#KdOx%S_2daBr( zn#wg%I3r)%;fS5zlsr!%f0{cgEfC{^9nawg_Xq`&KTh%xbKi9e$q8_;}c&#YR_x1Jdl$4a1*Voo|2+Hdz zslKJhgd(=MyZ@mlxLrW%+-)RgD;KY(g{!|^XJ96EcXuaGg;H!x2c=QLQJ3c{b%mZh z>abrNUsT~q__F$~;ecIWhrP6)zkjzESEIFL9GmnN3|?V8>Nh0yZ-d?s`hwexjErT+ zqPLCu9mkWL7XPttb3QtABGa_D6@xD_NYAUTmeI~PR*ZkLqS?$>Wohu*&S>Uc+(*c4 z;l_sdGqq5qHMJwiY|Zoj4OH3j{VXK2Qgit-Oly-(dfaySgbzVA)$>#3Ex)#R zDv7$nXJfn8D5cfaXhA_iJprcAEkQM($Hz%dDcO&DkQmo&O;CX;S@nQJ7TTiKVo zx!7`P+Arl_jX;8wnTu$@h3J|8RtUr(NXr-XkLLAYNQH zUL7nMYN1%F8yT)x8LuzR&)3A@EhH^G)MYQo%jT$sHjUtI@&EjD1%>wUsd0648~*f3 zIERp`@ZtpW>M$$EW-PZ4z6tN7AT-`*=}Bh2&V>Gm>Ph9A z)4yuZ%*?EmbZ#DUHEQh>SJ6gwMNJsK+}Yb%s}0@p@0jrlYMsndCuTj`{?h1EizU0V zF#F;scls2j7S=m?E!^D1q>n_1v)}np!$FGURHzUU7gw2iExP>&X~^9rM(YX-3ro{d zN$FDqp*ioyp)X&`s8p;V)9=5+J{9$b@xhg*?fJ}F*WnW1mz)DQE*#Eq<*{{P=2-9eVFSN=p@rFk)n3Im;;AK%`T zl$Q_3oVhSd+MZp%?fQ%#dG%mv&C||a?P%9+^uQfco&+6uW)AhR7N(g0KsMWUH}qE~ znk{$|E=W1m6sK>y*H09&h?y6(qb~a{Jcd2-TN)CvKZz)Q4GBMXhNPi8;jl`^nps&D zS2=VRIfVWAs==)icoA>UbDY6%XQke4dt>h3Zc|cPYNDfa1QNtGFgo@2JUJ)L)&hf3 zYoqkvif$CJk)bXSYhBe4x7C*K|Kk41`{=G&>m_{|{`!$OBP z&ndOxkr7d@lRj=7$n4{`ZnQWGl91t_XwUOlZgu3Qr$iSeZHE>Hk5}B#UCd&aP!ehu!{lOl0`9(jD9TB85$Kfj-$mq8ypC0#lG z3ERUoeboe;^3u}G0RP^bH*V}bTb52O2vn(kaFBnz zj>I1Un0s!tpd&ri8eE@^T@rx?!{md!*9fh!9~>M^`ukaJWyAQ2KW$#2oqd!vI8HJY z@g;xwNb(bcH{TzF(vCK$DvAsI9A8`nf*i-Dn+j z=9Q&*k#YXj#lMd5=z1!9&qniL7tTGna&DWp*Rm~++!I+8TX>eJE70gQ^NtojBY<5? zQ}mgCOXrecOnl=2M8r}p6~RMyYpP!(ps3@kp6E|L0uEqZxkcz9Sl2(lc z3M+ByO-oek%w9(4%#1nbm}zR>7bwQzbbC^zMk9Ya#(bP%cz8G&It`Llj?Yz2y5Z}U z-)0!Z<=0a^82eUEPHy3S;(71p2|b}F87e{5PJJ1I#XDjvw`J1%G*zWidj#93@b@m4 zUC0SRlgZ?yCiSUm#~xD~n{vC0xc>frab6K5x1OZ>yMSa~*lYAD%dr~ggp=G#0;xTP z5UE&2!xgA5$i5=4U;Vg54&lWexe|5SqT%N%2OaFxV4=Pr@mYWgQP8 zsVhqu(xD?K@9giSu8BJl}sgyp!or-iHuXev_8@65Ozw$Xbp0Y5IFYnyXMdvHPbBtDA&eT)YV*Hdu&)_2# zvHoc6wQF%_r7&gCbB%k&>CP{MNb{R*g8C^7lfi3d&dwK%p~Z3D`5>65ChSpvv(CM=xEM8F z?`a{xlqf)F8Xsc+aGJCOb8N@#*kYW3Dy zDH!b3bVsb2iOCxSZlrqQ%6-YxWDS(+&Mwd*b@QX4A9d5kDn&4%GauORTGnM_fZ=+e zkoh1t52VIMGS$4y@;MZ4Aw}ZGOWjlIyBB3)i;`ad8-sV_?eV%R&mY&_9m_j&;rjb( zall$%nzW_`Ca93BvuhD|Ger<~8*GnL|Dh{{tc;b z=*_oE`Z_5oXB(|2!jA(3h>D1GEym6k?1#`WMn<{7z>CiUCQ)mp6%`{6393c+F89h* zA@@$75L{p~=4FOj)-UrIue%l(7njt;do!b_hBS$mC7TXSVVBD{+idr#qoNWLeVK%V zh!C6WuYD{(-ZA`mByah zWT9GnGDMB>@Iek`|FSP0_3z?1UrbL=-{oaOtkE(y31RsdD=Wq4#7>Y&Ce%2p<|$QQ zA3{&oaS+~`@?0NZldiVr=bx|L&=ul688(UIRSWsqoXy*q%81w%d~2eLvXHBP^_aT4 zx`%)qPw&fI@xT;eW29`|hn-(8plobx&WJ(B`TWx5<0x#08IZ!*)~iFO?yj)oCEom! z$YnmN|9q@2GoXbfG)YB}vTIxQ(QZWyiuw-VEO%A3nV2x27<`aetd z13Ns{_H2l(FTQ}uk5E>)n(o&u6TaG9zdWQ`x>Xu{c1p;ly~%ltHCe>gEc2Ih7#%fR z#h_*cS+3`(O=N=-C||8i_!xdL$3<4~TGFg-!@X~TsE#BdTyV02x$psyb5usEFbWH> z5nBDyNE&&j956}6httGr`3%x!c*#ttR4DE@0UNVj`(dO$g?%ERh!ZPuR8~`q8;MXO zvux)5$!FJ>qaOZfc!sFHzx@;t^P@YPmL88S7AU`2zgh>(bM2`>`&9Tgr)SH$it!O7 zH#}5Q{LIOyxy$|R2|Z17DK{%Pig2BRB5cPWVm-x0ML9yvhnyeb4k16zhyKF( zSCiov2u*e{dswL1NfGWZVtfbt41=5 zug-*iy%Myd@Sak9TNCAbRM~OOA&Q>T78nq1F)=ZVd50nHPGbQk`XR^BHy%8hKY#-T z4&_v2^5VM4*`C?z9VFu0y|$>Dw?kq}_|~n@Z3nbk??iXj=mc^2b$S8$nVFjxf&L$> zE4LI+2`~=e(gD#iH#bM6t%c*kGyHa60|HX4Xn#@OA;3NQDqqc(Xh~7gRnALyje>#{p*M3WJnnq) zPCf$XIaXcRLY&i%rK(cC_%s&mqvN$y&&G-{#R&5xi2ZT&4%k2FMaJT1p|?Uu>+~8L z8xuissA6BzbvPvD#tXw7b9nNN(+81$$6SKun!*xT!Wly;{~?9DpDL9s@>bUafre}S zmd&;KPYXUl(Rm0i$$uBmU3y1Ow9~8FFYwSj8Ow5MbYS0{ovg?YpzO zLlHc^YpzCWG&Kl(7v!m~?vndhwf1u(iUb+_L5(wE#4v2*Oox3{R>Je~l@tQ;WNU7S5{U+ll!=+q~r*YV6E>Wnp-{0I?2@15=YDl$H+SM8eL>F6_CjyEFM6t zqmP|vdOC-*Ff%LXu^VdD8-rk{&OR~Rd~-@2D8eeGkkg|<1M0#|g@=%dQ@C`A zzArinJjntqtgOoqSTP^IkJW%giUu-|2CC^!z!6MS@;t1}sdcr0qJO1a)4qve=A~=k z$e&HG2lh{uW&IpXPXA6fF=&cG=*s8Xrp2O6$UDo)sG5)hB;qxL4Ts%O!1qsH z#`$d^@Z=kr{P3ftAW~r6lBz0WAZif&Ppw79d@KANAPRzgtUhnxb*L6y4h?QZuDftz{A;Twaa^whZn ztFDaI=tQ052JeEFNgtX^wXL8pwM?GhJt$X(vi_i8)r}!LcvX=$&Dw4x z%*+q*38o)yl54=R9{1`!7DpumSLxmzPjMet3jC3~wK9I8ry6_~9e$v5ag~)9iLALO zZQ5+t6Y31_K906S(O*()tprgr5w^1eovvEIL?e}fjog>1V7MBzNO+aztVJ95Y@Zko zb{1W#pTxSw6nG^aWM}jF05bzP;<*&_Y?}SS+k%G!)8abW611^HQ{*KNg)RZjfaCet z7CNDSsKHuNmA3iuMy1_fV7pjSGvYI@kYJ!I#xC6dC2k}R$pFa?RlHv9(4xV3;6c(Y@t^UV-#3Dzk3%E(GH-uyZ2n6z^VTQIV4yp{I_Q_E0>!!~Rj{OvWYm3?YLw zzD}>%^+4b6pQPm#6ke=Z5&VjeZF{uS{B8Wl92Zw|LbuYDl$GcFo9Wi$p3C~}9|2@e z66pNuZ-uFtrN_*PzTVL@CxqvL|E2uEf(UT0uq%|JiSM0z)1E_r5J}X1zv5pC$N^Ic zrTNs|nfBU?wzRZ_7G@r#=d-Cv2^1!Z4uu+m8bB?PHRljwkXW2+d#AUZcRKKX%yvRQ z(bk~rwoIr;2#g|{rXPt7N~?o4qgN-m54?g~z~~7}XXh6nHp3{*Q!a~xg^Md-MX*c7 zFMvBBt)%%(2IQiKP^8)o^!jh_LWGF~lFU5FSwJ+*Wd_0ifytWnZuDLFaE|-(J-*N? z>k9pj-G1e@AwXcpWSc|hNqX@;x|+YS9TGA@7pF$|VKpzlKPvs#Ca?7p&asd{$^ueK zUcLkeaV5pk1?&lRI#y~!az0=xwBFU#b#Pprx^SMpP_=k$x*~GB%Lqn0JBc?+LucP7 z!YFPKXPggsOEwUy4W@W-t71*-+v z%85FGw=KNIX-5to059bNYb}x%lmk{xO-xL%s880ZkG5MWlcms5)LTP=0X$&+kUGz)imfew827XswR3gCn3&{)5ihK7 zr%VRlXvNCYrx@PnG%n23qC02kb$QtYs{#K{prLl!Z zNfy%Q&o|60EMC;NgPy%n@9~WB*fBF}YXf+IsN(_)Z$l91!g_jogVKiO!x&pzDF6o< z3$q9CgNeFY394J4V8RMc^d$@o>9;15<~p1YMChZ!;Q?6rcoIrs6r!!I?Rxj_Q2#S! zXzMU=$wc1Gc+s00sN6+&&sK8E-bQLW4u^||&vMGLz6K2Z*<4Lwa6B zGF41U61!~ZiqnC+1gud4w5Jhlv2pg9|5fjFrGmeitxEQ0xo0Kj?L|R)a4XB z{QU_$-x8W;FNtzb;yy` zFCKBcG%u1bFcA{J!XCHXsJ7N9Zdqw(=h=HY^OCy~agJCN0(x|t>}PC^M#l=Y7er>e zpGI-N2^3#RQcID;Oc0001-Mgvz1cbsBd?AUvz{M9B6gGZDV7HiBof|9{Qm#nNkrrx zLhOE>{9i9B{(F+1rT-@6*ITRq7Q_GHVu;v374lD`_u+?YBJf5NL1|yts<>ho`9H;A B6HNdB literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/loading-0.gif b/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/loading-0.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f3c9539a22171cc2f12639492e346d97a9078e8 GIT binary patch literal 5793 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 bWW^%>x7XlHV^#Q1uOX^B?ki3(VEg|7!QHuF literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/loading-1.gif b/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/loading-1.gif new file mode 100644 index 0000000000000000000000000000000000000000..db3a483e4b74971fbfb1cc0fb6499852cedfe650 GIT binary patch literal 701 zcmZ?wbhEHbRAo?Qn8?Ji_w)@mZNLBj|1&T!DE{a6a}5c0b_{Se(lcOY1PT3QVdY|A zV$cDyff`g97?`@J^shYqmS1s(LX_+4yGox$4el*+Jm?ved2^25GBru=T^dGm#<906 za&AQCZ08H8P;Bd&{NT;vl&}c_^L4%p?g_hjBu{YB29{c>Ob}p@z~Ks3xCw+@!HClp xtZ<(QPf3`00FNu+VbOvoEE+h73k#4LIKl$IE8t;)<_eUs!0QU6uz&iJhvXcHF*h)T1OnEW1i^?zgDfop1p?usL*#PMGT;HQkSO{q6FlJyb$PWkPf|h*eTST}7h8z$}MF(XD(aQ)ZLZ zM?v0rT<1C4XHn<6PbNA{XL@>1^)apdD_@tcYDrW#m`k#MmslI7p^P;Az74wGs`!SI zLs$GEZHsafXsu1i-WleMzAL(yw$-LK{0hv;6hrx8kx!!4$``dAyBnY9Jz&DqJo2$A z!(L$H=KqBeY~CF_viHPz^tTglc?D97CqEBjzUwH}7GI zapg8YZM~>2Wk%E$d&r@9ly9b4Q zJpM7T@}r63I(OExUlG%Xcjz3MU+9U^r!SkpjNThDtaP)7>j6L5z%o5|^hlVOyI*uY zt^UU6NTuY?(Lb4ZIU2Zb5Vz}Pb7KF%ivf&j^CL>$cDz?rMNTQQ|NqDVD7mhghUp%h zhIA{gi{S8y9YhIIbSv$`B!JiPi!0#4#Jge0)p&YVPHchWcyAn zQhvb8ggXGXs9;k`u9Uq*YB>O+Q3Rq=2hlLFcG{Q3ORH_}JnY8C+r%@}6|%ySP%bWG zV~mA;?P`Q2L_Ss})nrJ{$TmeA9Tt*4=}X5x%RioM@_?ZsKSEST-f+GBv~Ya)xX3O{ z8!d=YthI-13OI;RN~`>|6u5L{z20oBp%9MIj)n$!Aw{Wpq&Rtr4~*_74Gjo@3el>B zz(Rk;;>2lp73<2;d=r*8z%WkdsG=vRuG_fvxO#uN^El|+5Qoz^X!2MfxJ3m}vyi?> zMLLDi8+${Z6YbUg?8GNR>-+SwHKdFyr%HqWcs|X_l*-DAC^bG&KCqWg7-_`UlwQ`EdOp_LJkr`L$mHHs75uP?fSgVfsDjuE#ft2b8HDt0yFt!+;C zEgL=)G9ZFt4wa+N3Xg7FGc0~`&EEt6_%7tyzmnb9B_h1~7~GD4V-Bhx7~QKRkF>&aT>(-!Us@aJxAY@8E?HW$G8g zSz@7Jcp>iCp;lU1ieF6n7!oAa-1E!rS0 zF1lBFVS%G#ZO}b@*+bIk+7@Q|iG60vIDVpV%4tW8rKyzwRo_<25;8*Ky@n z-sX>W*b;M){5lB_Edc@m1`VHy0@dg$PTR9uE$O2&a?KAe?xRlCj&Z$iZYwXoo5_Jg=g#%% wwZ%^O`2PNWiCdEY|Nrk-Jkhdnx?2-NuqF3Pjsr>Gfw~wxUHx3vIVCg!0DEac5dZ)H literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_ico0.png b/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_ico0.png new file mode 100644 index 0000000000000000000000000000000000000000..7754a47f7ccd1eff1f854ffe9850f5ab38aa62ad GIT binary patch literal 32954 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_loading0.gif b/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_loading0.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f3c9539a22171cc2f12639492e346d97a9078e8 GIT binary patch literal 5793 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 bWW^%>x7XlHV^#Q1uOX^B?ki3(VEg|7!QHuF literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_loading1.gif b/novel-admin/src/main/resources/static/js/plugins/layer/skin/default/xubox_loading1.gif new file mode 100644 index 0000000000000000000000000000000000000000..db3a483e4b74971fbfb1cc0fb6499852cedfe650 GIT binary patch literal 701 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 bWW^%>x7XlHV^#Q1uOX^B?ki3(VEg|7!QHuF literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/theme/default/loading-1.gif b/novel-admin/src/main/resources/static/js/plugins/layer/theme/default/loading-1.gif new file mode 100644 index 0000000000000000000000000000000000000000..db3a483e4b74971fbfb1cc0fb6499852cedfe650 GIT binary patch literal 701 zcmZ?wbhEHbRAo?Qn8?Ji_w)@mZNLBj|1&T!DE{a6a}5c0b_{Se(lcOY1PT3QVdY|A zV$cDyff`g97?`@J^shYqmS1s(LX_+4yGox$4el*+Jm?ved2^25GBru=T^dGm#<906 za&AQCZ08H8P;Bd&{NT;vl&}c_^L4%p?g_hjBu{YB29{c>Ob}p@z~Ks3xCw+@!HClp xtZ<(QPf3`00FNu+VbOvoEE+h73k#4LIKl$IE8t;)<_eUs!0QU6uz&iJhvXcHF*h)T1OnEW1i^?zgDfop1p?usL*#PMGT;HQkSO{q6FlJyb$PWkPf|h*eTST}7h8z$}MF(XD(aQ)ZLZ zM?v0rT<1C4XHn<6PbNA{XL@>1^)apdD_@tcYDrW#m`k#MmslI7p^P;Az74wGs`!SI zLs$GEZHsafXsu1i-WleMzAL(yw$-LK{0hv;6hrx8kx!!4$``dAyBnY9Jz&DqJo2$A z!(L$H=KqBeY~CF_viHPz^tTglc?D97CqEBjzUwH}7GI zapg8YZM~>2Wk%E$d&r@9ly9b4Q zJpM7T@}r63I(OExUlG%Xcjz3MU+9U^r!SkpjNThDtaP)7>j6L5z%o5|^hlVOyI*uY zt^UU6NTuY?(Lb4ZIU2Zb5Vz}Pb7KF%ivf&j^CL>$cDz?rMNTQQ|NqDVD7mhghUp%h zhIA{gi{S8y9YhIIbSv$`B!JiPi!0#4#Jge0)p&YVPHchWcyAn zQhvb8ggXGXs9;k`u9Uq*YB>O+Q3Rq=2hlLFcG{Q3ORH_}JnY8C+r%@}6|%ySP%bWG zV~mA;?P`Q2L_Ss})nrJ{$TmeA9Tt*4=}X5x%RioM@_?ZsKSEST-f+GBv~Ya)xX3O{ z8!d=YthI-13OI;RN~`>|6u5L{z20oBp%9MIj)n$!Aw{Wpq&Rtr4~*_74Gjo@3el>B zz(Rk;;>2lp73<2;d=r*8z%WkdsG=vRuG_fvxO#uN^El|+5Qoz^X!2MfxJ3m}vyi?> zMLLDi8+${Z6YbUg?8GNR>-+SwHKdFyr%HqWcs|X_l*-DAC^bG&KCqWg7-_`UlwQ`EdOp_LJkr`L$mHHs75uP?fSgVfsDjuE#ft2b8HDt0yFt!+;C zEgL=)G9ZFt4wa+N3Xg7FGc0~`&EEt6_%7tyzmnb9B_h1~7~GD4V-Bhx7~QKRkF>&aT>(-!Us@aJxAY@8E?HW$G8g zSz@7Jcp>iCp;lU1ieF6n7!oAa-1E!rS0 zF1lBFVS%G#ZO}b@*+bIk+7@Q|iG60vIDVpV%4tW8rKyzwRo_<25;8*Ky@n z-sX>W*b;M){5lB_Edc@m1`VHy0@dg$PTR9uE$O2&a?KAe?xRlCj&Z$iZYw', { + 'class': 'btn-group' + }) + + for (z = 0; z < buttons.length; z++) { + var button = buttons[z], + buttonContainer, buttonIconContainer, + buttonHandler = ns + '-' + button.name, + buttonIcon = this.__getIcon(button.icon), + btnText = button.btnText ? button.btnText : '', + btnClass = button.btnClass ? button.btnClass : 'btn', + tabIndex = button.tabIndex ? button.tabIndex : '-1', + hotkey = typeof button.hotkey !== 'undefined' ? button.hotkey : '', + hotkeyCaption = typeof jQuery.hotkeys !== 'undefined' && hotkey !== '' ? ' (' + hotkey + ')' : '' + + // Construct the button object + buttonContainer = $(''); + buttonContainer.text(' ' + this.__localize(btnText)).addClass('btn-white btn-sm').addClass(btnClass); + if (btnClass.match(/btn\-(primary|success|info|warning|danger|link)/)) { + buttonContainer.removeClass('btn-default'); + } + buttonContainer.attr({ + 'type': 'button', + 'title': this.__localize(button.title) + hotkeyCaption, + 'tabindex': tabIndex, + 'data-provider': ns, + 'data-handler': buttonHandler, + 'data-hotkey': hotkey + }); + if (button.toggle == true) { + buttonContainer.attr('data-toggle', 'button'); + } + buttonIconContainer = $(''); + buttonIconContainer.addClass(buttonIcon); + buttonIconContainer.prependTo(buttonContainer); + + // Attach the button object + btnGroupContainer.append(buttonContainer); + + // Register handler and callback + handler.push(buttonHandler); + callback.push(button.callback); + } + + // Attach the button group into container dom + container.append(btnGroupContainer); + } + } + + return container; + }, + __setListener: function () { + // Set size and resizable Properties + var hasRows = typeof this.$textarea.attr('rows') != 'undefined', + maxRows = this.$textarea.val().split("\n").length > 5 ? this.$textarea.val().split("\n").length : '5', + rowsVal = hasRows ? this.$textarea.attr('rows') : maxRows + + this.$textarea.attr('rows', rowsVal) + if (this.$options.resize) { + this.$textarea.css('resize', this.$options.resize) + } + + this.$textarea + .on('focus', $.proxy(this.focus, this)) + .on('keypress', $.proxy(this.keypress, this)) + .on('keyup', $.proxy(this.keyup, this)) + .on('change', $.proxy(this.change, this)) + + if (this.eventSupported('keydown')) { + this.$textarea.on('keydown', $.proxy(this.keydown, this)) + } + + // Re-attach markdown data + this.$textarea.data('markdown', this) + } + + , + __handle: function (e) { + var target = $(e.currentTarget), + handler = this.$handler, + callback = this.$callback, + handlerName = target.attr('data-handler'), + callbackIndex = handler.indexOf(handlerName), + callbackHandler = callback[callbackIndex] + + // Trigger the focusin + $(e.currentTarget).focus() + + callbackHandler(this) + + // Trigger onChange for each button handle + this.change(this); + + // Unless it was the save handler, + // focusin the textarea + if (handlerName.indexOf('cmdSave') < 0) { + this.$textarea.focus() + } + + e.preventDefault() + } + + , + __localize: function (string) { + var messages = $.fn.markdown.messages, + language = this.$options.language + if ( + typeof messages !== 'undefined' && + typeof messages[language] !== 'undefined' && + typeof messages[language][string] !== 'undefined' + ) { + return messages[language][string]; + } + return string; + } + + , + __getIcon: function (src) { + return typeof src == 'object' ? src[this.$options.iconlibrary] : src; + } + + , + setFullscreen: function (mode) { + var $editor = this.$editor, + $textarea = this.$textarea + + if (mode === true) { + $editor.addClass('md-fullscreen-mode') + $('body').addClass('md-nooverflow') + this.$options.onFullscreen(this) + } else { + $editor.removeClass('md-fullscreen-mode') + $('body').removeClass('md-nooverflow') + } + + this.$isFullscreen = mode; + $textarea.focus() + } + + , + showEditor: function () { + var instance = this, + textarea, + ns = this.$ns, + container = this.$element, + originalHeigth = container.css('height'), + originalWidth = container.css('width'), + editable = this.$editable, + handler = this.$handler, + callback = this.$callback, + options = this.$options, + editor = $('
                      ', { + 'class': 'md-editor', + click: function () { + instance.focus() + } + }) + + // Prepare the editor + if (this.$editor == null) { + // Create the panel + var editorHeader = $('
                      ', { + 'class': 'md-header btn-toolbar' + }) + + // Merge the main & additional button groups together + var allBtnGroups = [] + if (options.buttons.length > 0) allBtnGroups = allBtnGroups.concat(options.buttons[0]) + if (options.additionalButtons.length > 0) allBtnGroups = allBtnGroups.concat(options.additionalButtons[0]) + + // Reduce and/or reorder the button groups + if (options.reorderButtonGroups.length > 0) { + allBtnGroups = allBtnGroups + .filter(function (btnGroup) { + return options.reorderButtonGroups.indexOf(btnGroup.name) > -1 + }) + .sort(function (a, b) { + if (options.reorderButtonGroups.indexOf(a.name) < options.reorderButtonGroups.indexOf(b.name)) return -1 + if (options.reorderButtonGroups.indexOf(a.name) > options.reorderButtonGroups.indexOf(b.name)) return 1 + return 0 + }) + } + + // Build the buttons + if (allBtnGroups.length > 0) { + editorHeader = this.__buildButtons([allBtnGroups], editorHeader) + } + + if (options.fullscreen.enable) { + editorHeader.append('
                      ').on('click', '.md-control-fullscreen', function (e) { + e.preventDefault(); + instance.setFullscreen(true) + }) + } + + editor.append(editorHeader) + + // Wrap the textarea + if (container.is('textarea')) { + container.before(editor) + textarea = container + textarea.addClass('md-input') + editor.append(textarea) + } else { + var rawContent = (typeof toMarkdown == 'function') ? toMarkdown(container.html()) : container.html(), + currentContent = $.trim(rawContent) + + // This is some arbitrary content that could be edited + textarea = $('",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
                      "],col:[2,"","
                      "],tr:[2,"","
                      "],td:[3,"","
                      "],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("'); + }; + + /** + * 初始化logo信息 + * @param data + */ + this.initLogo = function (data) { + var html = '\n' + + 'logo\n' + + '

                      ' + data.title + '

                      \n' + + '
                      '; + $('.layui-layout-admin .layui-logo').html(html); + }; + + /** + * 初始化清理缓存 + * @param data + */ + this.initClear = function (data) { + $('.layuimini-clear').attr('data-href', data.clearUrl); + }; + + /** + * 初始化背景色 + */ + this.initBgColor = function () { + var bgcolorId = sessionStorage.getItem('layuiminiBgcolorId'); + if (bgcolorId == null || bgcolorId == undefined || bgcolorId == '') { + bgcolorId = layuimini.config('BgColorDefault'); + } + var bgcolorData = layuimini.bgColorConfig(bgcolorId); + var styleHtml = '.layui-layout-admin .layui-header{background-color:' + bgcolorData.headerRight + '!important;}\n' + + '.layui-header>ul>.layui-nav-item.layui-this,.layuimini-tool i:hover{background-color:' + bgcolorData.headerRightThis + '!important;}\n' + + '.layui-layout-admin .layui-logo {background-color:' + bgcolorData.headerLogo + '!important;}\n' + + '.layui-side.layui-bg-black,.layui-side.layui-bg-black>.layui-left-menu>ul {background-color:' + bgcolorData.menuLeft + '!important;}\n' + + '.layui-left-menu .layui-nav .layui-nav-child a:hover:not(.layui-this) {background-color:' + bgcolorData.menuLeftHover + ';}\n' + + '.layui-layout-admin .layui-nav-tree .layui-this, .layui-layout-admin .layui-nav-tree .layui-this>a, .layui-layout-admin .layui-nav-tree .layui-nav-child dd.layui-this, .layui-layout-admin .layui-nav-tree .layui-nav-child dd.layui-this a {\n' + + ' background-color: ' + bgcolorData.menuLeftThis + ' !important;\n' + + '}'; + $('#layuimini-bg-color').html(styleHtml); + }; + + /** + * 初始化菜单栏 + * @param data + */ + this.initMenu = function (data) { + var headerMenuHtml = '', + headerMobileMenuHtml = '', + leftMenuHtml = '', + headerMenuCheckDefault = 'layui-this', + leftMenuCheckDefault = 'layui-this'; + window.menuParameId = 1; + + $.each(data, function (key, val) { + headerMenuHtml += '
                    • ' + val.title + '
                    • \n'; + headerMobileMenuHtml += '
                      ll_b>rc)Tx5`ecQ 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

                      LZs5vs<4*dn)6_orH;Y;`bzi*q=#N#x6 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

                      8A%Us3k< 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𝔫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

                      &!CIz1Ns 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⩛TtXwH2N8q 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

                      Wf@+FD?DGvA4he?g#aN51zy(O$Xy! z?jQSAXPqX%mP6S3SLHaVl82{yT@XXaJz?PDS^57ppW4ws_W0NFQGq6&Hch(d=d;_| zi)DM`ZvT;Ip1Fs+)X z8DN!f%pO77Lk90ma73z+?Q#k0H}p(X=TbRtt@d49rvzT+-F_5&&WLDDn8M0x%~L$U zYg5np)c@a3#$o!otXN(?xCdzl-?0{W5P1AgfA@;>!QXTdUWSYZex>@1 z<9YrAgevsMM(U&r+ED~sXD@7CK7aacxdHsbOQ|9=fB!71e=2F*07)}t5P}ywsC&vA zg`S^0$35-M3@bHtmG2cIx&1k&U)l_1`1%4O5YA6qK|`qSXcQ7i-JwY|q$q#rLBkcD}H{`XZkG ztUILS0y`?WFs0f~m#(3gE)jfw)^8yx14;{K5|abh>KyOsYP&r~k?6d&KWGL>z;$>w zT`R}_uO}epI5c`1>zVOROWgGgZ6CjRp^+1Hq_wpG^d5D4(J=Z5QEP4TmKxLZ?YPDm{MoYDT3~2{qlIW z*KA<_Si(*6HMeI`*ncks^;$=*K4jW*aU;@!juX~R&^;tLGz<)$d|KvYFzg210-u_k-f5XAI{;3Zg8c!=X>F2i|&t#iZ z+}@_4E?z=khDrn;y0!K$3_Fw6OC-IuUgP&@E^OV9^<&y!9)C@K(mC72;ErM>N{w8) zb!huK$69ziU3`bNTdaO1d)6ugvwege>vUIxIN_LPY;6AvQ;qFm^BenTYZl0gL0wWszr%dZiQ7$^3 zLi!)JDO%GRT^noCe5krsF*w~h6YhTB-u}%0YyxbH7VD0BOTlN{={J%H0g%gwIWVVD zF+IWPt_ogFZ+!>!Rs69?1dOVY(fV@t?=(73-Z;P10uPVlwz;g2y6#%j`1m>-?iGKj zX}b2z0Np|d;TeFnx3=TsK%3hvI9j&^v@w88Q#J-c)Lf-jFlj4OP(cfq>1RCNqn4ju zYV7@rMYGnQ9_Fo`W@z`%=WSv>RTr*DT59{6A9Kcx(bq^Nb8F}}R@#jMPEQUt*p7ds z87TeoXK8KD0GSnAI`h7BImF(R*Xp1QwY&7cax03y1rgAe4WgOseL-qSi)dZ52dJe8 zfk1>4o7q+W!53$LJjI23J+?o;u1DnK`XEVOYc4U&(GQ1vB188ez5}8O#*`Fi#cg_Z zyaM`TOvp<7Ckr*;Q`=42uOGj`@*G>m&FH}L@z)7j&*&HSqmF00+JCRhI6k8}e-mlF zU5@HSh%cfE%ce7w2)y*(dDmFs$3fc`#EM> z$?FZAbK5y=>o93!5(DrwvG7MA@HG3ih|MAfm`8?m_jSG_+V291x?m%eOoGI4_h9DP_!cal_}EB#?DS>~2W z?r5Rdkm^b_!31@N1Zla_Pp^iLHM+aPJq?g4Ms{Y(p=49)TXcaQinTdWO$Yy4je%iP z7jE034^U`&l)vd@rIv3pjrMjZy#;Nwd*vpqW7bOKTCwr&#q~dBD%rYgGwF=996VLC z+>0wuF2|ihafMOuWg4ldNjwY6H)gQ&JM(TEf&Y3V0Vzz&*P|F!`o4(fkI@(%paVabT}3o&rJXYzihVb-w7lNBJb$ZH+A8mo;ee z$95>GTr9x6p7vWIGQfR4#{ntOoB~?>jgsR$Jd!{CULFl`LFZ9MKVk6rp~y_rM5kbdl+RTy!@w|w`d_MC-Xz*_C^mDWUSl>LwqIMe zI6Pik+FinL&BX5~DW-%o}_k2nV+;NzeWNCeC;r>-0l6B3UoD;cSNdomL5t7Ce-xOvNx^%{O~Bu=KccF zTV!W^@gCJt6scHvZ|MH>`gr^1JPn4;S|QrBSx}9Y@%S$V;F6{DTU85*u+5vHDXjdh-3ASihp&a)I2%U(kj4# z*{o{KT7y<>Mh4>BCcB)bSCu?PmQgLk}8kt^NhIcpE4-aYK&O}f#s{59=ys+vCCHjrNkF6jrOsMtue4;9uz#j){9E?5GXV{xF{{;x2<38=nMoc6^ArakExGwSjpSu)EnO5Ppma* z?-UyS1MS9X${-%FYC1L8BxO&SEQGEeu&z2QroTMa`WpcDs^ykGm!BaUzut zSh4z?gZUcO<;~s>+oKfr51EGlOvLk0{ajS%Efl5~Lur#)gyh|nN?MUUJ%^5Tv$j$@ zAMow3A+g5{JMvbqTT5A5v@jRl!CTo|Q=dCA(lvG+6kEA>J6}F68F+n5&bK0_s3`GM0d2&DuhdLz+06O1!MGmj zuCI29V18wW_Y|LMb#!0(=Gskx_XWNzrnSkAqe2})l~}9{JHhSryIbmG70+*DS0UQ& zC*;d<)5sofMr8gwPU{eQdTh~oBDY7BvV~FZ#!Z&V8$89#%DEz8cN_aSK1k+G`378n z8gLr8-SUJ-9dA^s2-?%m`v0t|!2_4Mdh0kbq*Dv=t*4R3Z4wju6l=j?c%>bWc$wjl z4fbiOL|wMDFBLk8io)-}0?T^-1I(R8dPYFKq;;TLWu>J{Clqj;+(UR=K?TPqkQ&&o zLrMU1$^LkkyWlqvQgEVeHwnLYao4fXd<>i1))q2R2g)r4r>>ml9EhE}{`^ZVQ-o8b zDjy!(-CN9F^~BA zk~!!nNaK8^F8V3-TB(nZdbEhzxIm7ZSk!ebkRXq1 zHS9N`+V8T!a|r^VpiG46vRExWQzzl=dD|br?m?P7kru;}-!EBvCLJJT^^|4Gp6+_> z?~Q<-&mx9wN=|Vtw83Q}R}d-|n3;l&%;s7t^cu%c3x{v>0v0|qPp5we>Ck_S1ZU|A zZ|mI>b785aF038TY|67#Eh#k$3tRK&*H0p`V#PS-X=7=&j4+HH&Qi* zo;_Rmm!>#w`#1yFhLZOvGV$V_Ib&5iJeouwbiT5>VBJ zQ$ZV*rv{MDvJBT%920XP5xQ1#4SzyUBMmt2S!q1ph2JhJ{;tB<#KQimG~f0S8;{E2 z6rLa(Dv*W70CD=Z#A-vvs*}2}2H%8FFg{vEtRxFHa2MFqd^-Z9vC@k z5%&qw34B6{sGV9i&)!S>*T$IJTM!fqLGU^e7vj{X#Cs0xEma;Mh8&9<$_@d_oU>sG+^Qb%$lho zy#!tKO=g1>yqAoIdaOBl(&=6MyeVrNyJbUExNDZDSXNct4ixZmw}%kVH>_Oi0_1BR zCo@j*Q!cT~ng(Oas1{3;I%!ujX#F@NdO1~oj}lvN9r7_{Z{`a+W);cDwcp#iBVEb) zQstJDBf5%1wD|m9wAp3kkHffhzR~GTSyb?V=e~eS1fsd}yS&#G7c0XsW;^R|XtV_y zre)i}Yn%3pcGx4h=Arf3(kPj}?8TlN`K5&4 z1y-7RbY)ZIS8#z%b$!JsPC59UMg9VsfgI(%$39HEi^_*wvmfQVq|*fgXhbuNQyO3T zI8?>=(}AT6D?K#Dj*fo$cm=3V&=SfBOXn9?^)q*`Z3 zc7A7RF>eScV*)-enQ;Qp0EuK6T}T=i`bo)NJFol=O`-&`aJ{w7<{jR~tHt)6eF9%R z5~_fND8v5Y(#?1=$=6Q+!l62Q{tCMi01zKshjw<&G`sZI6qC3vZ-AgPNeoahO z0>IC0aoWNN>n;?F-u|Nn1SeN|c9gfv<6mjKyrIWo47M@wMrM6tetpaC;Ugg&bxq#S zA8FexShG60wGuGR9$@+W)sKelnL3CNeO(x(jR6YIVueW|Va^jixuA-NAvNMG&%)3c z+?#6j5)6TR$m(jED#4N)LT-7L!i#26eE(+*9L(M0iq-6D>BDDud93jbs<83nX|{#e zwkBPj2Z1BLhPeq6G6uJP6T=!<&_-WEKD2e}Q-WVn#H(do!8`n^4wxrM&?2EcY=U{Qf_Cyb zhD#T8>r#GpZ;(yKKUq<$!8-xd4V`QwC4I^H(HO@qVh;n2loOWzW>-~?E)!>pVtR#@ z(lxwRR6-qYExrST9b^1;j-5t1hgO=qC=9LqfjNSA8N&{?f6 zU+JpPFv7o30za!)=Kyk~_W_X)RAiqzcoxm_ZDy+Tco=WN;oOb&+_YKxC|WoX;JE~_ zCxn93C1a|YNe>?zSkmu#Z z;Sj!rUExBbO)j0)D+97!RGo)uED5W4qbaAQ6hCL|K*|yxZF?x>GT+>idw7VP%S720 z_#uiA6zOtvWs=GVR{87MoL$!hP5AWdxbA-^(Yy{=4fVwvRp#hv>5oMAjvc(bc5Noc zC*^w#B>P)jT`;6k8l_K#U?`kahs_?@o5OC)zh3jTF+w>2?<~x6Tn#8C2SP0!7sU}{IEO806pmFxZ*LNg_-zyG*IyxFPZz%P6JuAqTAJSBq072k;lGM2v|mUr~Vc$!M#OnWRG za10^O98&C|%r+c|KWVm6q?=m*;&eu|6afi)%ljWOS4?MrZ+=c|N>@`b)U1L>7m=|r z7C(C%8y&_nI%YRrdwtGa`0TJ{`uPp}>`ip{1GEQTe!CSjoz<*BghZc$8ivz=4%O0Z zPm)g-SY`o{xeavcX51^yb03ye(8)usa^K9njWIR@^q?|Iw^}SCB*2Q51+u4~dsY-& z`+)=>+n4uYNNEg8K5ETJirU-Y6g>Y9@p`Jm;{|l2pn{d}@h3S}*&7DHJ(b~w_&h_} zm)VBPc=dKA4{1iKVi>o$DBmk-;rCLFW-{FeXCi@dHr_;l zzHJRN)$V+MVOz*7yrLE!+{C{F-QQTRv^Rz5+L1==Qu|x0V!z$7D}vjRIyNQv#!UhC*q-Ket)Z^liW`W?{(Qc;x~$a zDvKCTd9+cY8|mDnDO8jQi3;68A7qYtBu*x_^RUh4R?O3 zB+(gyI3QVVXC-g@kMp&O zF5I!FtB#*fW{?UrJZIAvF|oTrsJeH~xbco6|dxqrAl7IycgDpOY(2CNU}|lsq9*az(busT zyi0y!Jnmk!WPr0IPb!>&M>I6tu1DLmMcHQBKn7H;G0n|WwWoWnU{m;$cS=PGO56^s zxA=~S+*tD;z~=AxH4XD54A!YOx{*Sn6V7V7(~*J_>FCVk-XSl*xLT%cECk5}NPtce z+xIk{vF?y*GyW)`4aLyTEx|?pXbu0ka;0sOmv+}eBYE_u2%947#Y+$M(5{56S*s5t zJGH=z+%n=Y5?1Nui{G47i3wRqAcqQprcIYwGqt4i2la$*d6W%L846xg!!_!zgk>Nd zi1oihMjBM1Bd0RznahLJl~)_Crn8|fRdt<#JHu3y(tiW~h{nu1z}7*UjHK9HG#zwr ziqyu<=4bgVF6g6~Bg~qPB`t@?2eq*8=;V`4TjIz}GFm~?P{f~)gNAs;>-7i3FBQ_& zax4YZW~(2J_}a%v3wjB*+QNZ((}q4%JCjY9`P>ABwj?sn4#@9BIRS}g8u*k|Dhw4| zZqTNQ={?8^)5(k~d14gf@56fd;mt61qjV#C@ZpuU0 z@RhXXbB5}xpQ{xsVGi8#BwOp(xllUW7ib0(Zm29z-Kyf@(P=C<6oPDLY;&Z~knJmI z_N@+mj$IT>>O=E7Z_-6tc-YT9;QcFJXwEVW7DxkzpZCa^vSrI7=AH#vD16U0zhZqs z4PY}73C9hKVW|eaV`^AKkdi1_#}cWI#EEjd-FNSsM19Em=$6N9hS99w2jvl{9Me{; zZZ&46P#oZkZ7LnFo%xaa(f9tj89Xy7%~q@dYTp$Hg)S^%CF{~F@<(v=xPOPIi~IxF z5i0m^;>ZngL~4oJQNeAx2?!p}2mwJrOMb)YGL%sT4gZFpd|Bdt>dD})&+*Jy-CO9a z`m!O}K5T@cH>JQsM2ycKKvE__f%_uq^5wDV`p?|*IwseCw39!^s|{1D1&J(`t%P5C zvE_C3^Tu2=+L_PfU_?}YM4Nzx6O+rz;Z{0^3I-3oyz=Zs^bK7HR8VFgRrGKS*&r3X znS;{Otky(cr+ZC#J8)qZv|oOU?-qkNb!FwXNAatw8V{%zCmKxbxF^|zYI0Ii&LPXu z6OKiwYC^H~XAi~dQJpOTz)>}OKzuRd~*4^?+@Oy$Cs zj?et-Xa~8m_tn&bMz|>yKEx|XwMLy~5xMo2{3gx@Fp(D#6B)@b*O*ro@KE8-3Aec&(!>k%F3r^w|^rlMDRpn`hXx4@r$#?F6G^Lf#Y$%6{s zKn16}L(6501x`?|)Mx~G&KoY56mH1ZJ-|qjVXxXRD=!|iA6>r7KiGw2p{`!IMlG(p zy(B6dFP?i89yUC{Ok92*D!z%H{FE>cM;I+Ay=+UOJxTB%!Y>b8xg3VAg~~9t#U){P|`q^MVz0LBGS#7 z2#F>wQd^hpA3sJ*UCRB{CG;%|qRvH${ggz)=K1MIQD7+d)l=vB41o5t3#+w@j-H$! zR$5I(31yT1rTbAY)@I?o8Ay+=ByrQZ%_#bQ-1ST0%!q1~m8<0>6CcIJb=rNp*K$4Z z_tisby|KPdiQaNRX6@R~*FjGsQPd_BqJ`)$SE&zso3`9924x^)oPwqW(b$Dfargks_MWN+5FKM3K5jn84}bIGyyeL%UHD? zoMj9YI*Io)amUxQB{UzJLT@}1uD&EuTJ%Qf^A~4P)0dXH`c&R_o^zCOcP-lUH}mo* zp|Z8tIL?TW3L8V3Jjt<973Kk6nOCf$r|bmU3x-~q#;mH%gZ}^`kS!}ZgSZh0OYlb{ zL%$de0zD>;W|A@Q#vLw&rvVQF{3)GQ@o%RKQ<(-UMbffDd5wgknEvh3xO0sc&c3oJV4Wa4V^E@YCpv@PBtrOIwRESSpA>l=flp ze}J3L4TOg$o`L08JC50_6JJLee<1OA)(Ti^s)eTOus+Z$(QWSRIT4uu!D_`O=qSzV zK9sjR3D?dV3`p>cZg&k^z=$yP`S7$PowD7(kM(pQiA5e!_s2iOK0u3v(Kfqjp%3EN3Q~Y&UoCzT=u$!m1|Mr z?oxJp!*I`;>9jg@^^5Dc*M6GRD!<8?*Fz#gWeqndaIghSSPh zVGjY=Fl3&#Oxw1Ol+K*LCvDZ0?OD+%KfA=iHsDWlT_^<9NqrF3I0|kRl5p{+BF=%j7gEVov6-pNN z9So`CUA|1M1h+0rR60~--+KqKfce<5UddU1!CpHN)qPf`8c#Dw;1*yg*dMlng-CRq zqMK>34LU^b>IZVVnR!+wU-s3-^LUIfD=?71K)JUUOBp+%_w?Q6w%NqSTal=obI1li zr=X3sH2TSI3QeZ^MYk2KNxT^dlg=bapQb)57VF==?9aTPusG??Y6Nro4?rs2+}nKg zL)yiV34k58nkenNdr4qEo4N%p+ZaQA{p^Ub1xG**cjDlE3~Jxj2nt zTAVwwISDPwC}%}dbnhCn(E-6{mDz`sgE=KnX7$vkqNFXEgmnMfC^LMKk$cPIgLRgj z9W6{O>wbpWwH<;^`-#+P=EmqR|~Un-9MITbTO+;{~Y=s%0KU_*v#zn0)JNqTJTH$*)Zj zRW(pD`ahDwe6^A}lqYFW*2ISUW|5I?)i2z1E%Qt_Y<;-z?TF#Eyn-)!^ARM{v}X#K z+~x4f-r*gs^u4=>=+`Ezo0!Xz1MHT{t+MgPsOhcgRlJ=NM^?RV`2ygQ|Abs>9<;?G zsjcGNk$O~{rB{O(^b|4x;3a5&E_~HxI6dnumu$pjsozs0CD@6TWvQ^LO(hEd$}T!o zZ*)p_uYj=_4_lgh&Do*=lVt!shNbT%ftS56KV+eZCBlJYnTMX$3QH5-Kn!f>dw=Ag&&M}LaQxw z4=#C@FG-g_Gs8p8T$Mb^QQfc_FCF8xch9Ywh}$QrP(8E6B1xZADW3T;TN7--Pf~^K zW4%EW`H=|+9=Lvl3B#uFFT9c6q;&DS;-3c7FA#Dm>|>rpn(y4+4wZJ^*?326W3hn( zRe6K1a1ziim%fMN(>h`Q=>Bo`w(}~OjaORCFa?|w{h(ezi0Q`p{x%W~GH6@;wPkhq z)WzspjyCzbd=oL>H0NEFZ01f{u<*jVLi%F3-&pE0vv+nM*|M}27-fA#YIEAv&NnnR z!}v=AhEKXFXsa44_Uh{BxAZ!_1P6b_{VMz^{r}6c6z!~_Qyl2??k+^@P2AM^g>>`r zn8prgwz}l%pqH&Y4HeNb`juyJ;L-fjTlr5A976#mj(CR!bvM$_(ZA2VM98PGA!>B0 z-SX$05;(`uQNGBiE9fsTE%6n(<+X$V!X<@H>gDAffnz)o(!x_(!uGWm^5{w%nFhHM z2FM_5kWp~|Z$apDJovh}D%Y}&VuHw3p9_<3nSlR;BPq(m9{v{E9Gm~Yuv%{5;7@zn z6@*s}%0vL|_grA9TjxyOWcrhDU7nGvmw(HJ(f1$26JKI~pCgIydPMPGUTpC}ni@6E zyI)K;=BQfcwzU+3yJbTavjf8Tqs-#lCxWaQhs|& zM|*t#0^iick#Q)-{5rfQdqnSI`u?P!lU>_1fvb$0)#z5)Rhur^B4-67V*F1fIIDsz zfYjlx%a64=Vc6(vIr8aimKCS+(|3-_r&;@Kl^o=JMTy#!jy8s@cB>j{lMu;u>4{AOLYqYgh}RK~rq-Z6Y91zHbz~SkPDy&~onhus{cP_I`G89;1wPH( znLB(0fNwk#w03Q6Qs$daT3$+05)&Eb9#Sk4&cXVCsZx2Iq`gw@BHwav`RX5;1SWon zaO+?Bpd7JR@FB5o=AE)V_6}}rfD^i*@3}_-=tSsNgIef=tl?m)P)|C*lpcMhbIiM% z=eN5%ZKFTO9(UL*Zl(u-tP4AY!YI2|#oajhKFQ{)JLiC_3y+mzRCeB-TEcEE@AB_9 zYHFMxmt-g7C0;*D=Q1iFf^LDFPiXY~td!_wCT4QhOP)E{KHdzt8z`QLnsb1AA{go4 z#y(}BWk(xxy+MwbRcotfubDpetnqyaN{Q#T#C^C>6w;?Lp~}z&PXw>)mKD(M##3X+ ziK6k{l7oTnA!U@E4rQSI?(YUgbl)aonzGbN*QVb6VG=6$lX2pbmDYL^5)Jpm$^FuG zcszLC$x;xi@Z`xQ?k8459n8;r&FQG6eSG!jR2Te49ycJR^i%15ZC_Ilq+*S8E_ECk zt7Zcuo*BsvwJke*IT6oD$WwbSnh{Zew|?I2Ma(&~1A0jJXR(e_Af$g@D&?oBjr^Wq zmC<1+_#_LXkV&SmD=vkmXXQw?Qi8l?70vI2w z3_7)G@|v3VV7eTaAK^J^S(n^Der!jlnx4`)l#Wtr$?~6Qj2ygWlyDIjAv|8Q?8SWF zGrLe)XDUm#T3_+1g-%o9vX!BPmYGhTLzYZBHg#Au40)AZ^gi{_Ep1nZwcX!eD%iyI z0Nmgbz5`)O^tDG~?#_qc#`?Dz*lx9=X0|Dcgl4JK_DR&C(78VzK0t1(S+_q6$b;5eqsHQnn(0G z%7MdP8NPVAT|X!YD6f7%MN8ogsQ9fLso#2mt;YSKB!O?p;A&Lt^!pmiR?V~C8^aIy5s9P%46}BMX;Eazo|vry#3x&_o)c`|Iu-)mzULSU z!WDd-tf{13s!CxOQ8J7)S+p$4clO{a@B>e_0j{ISbwpS<=m91SRriI}Hx^`H!G4Cp(9r5!CLh?(mf2O=+oU zuZ*e{;?i~AjOG@@Jz~q92exmH1q1Y8i%yfd@6uxYju35!n>lT8_3LEr)V2iRF*uL> zryHRDWF1Cbm8Bjwcc-zYHo*Rd9qgCVU2(6PqOOV(S#k=*q{ydT{*YOm!Cp0K#Zmre zgD4(cS3ZFDlMa;MCGLZ2v@i?GlOr<^s8V#^TQcK7l=@Mf{O5YHUNm8Pkj6+@>ue^P zv|gUcmzC~SS&t*hr|rJ?^s9!8r%H*EDi<8p0`$%Bhk#?DtEt3jJvycuCEZ5jQs4s1 zZml^aF^G%qicW(y(p^_F&7>lm)JDrirD5h3a`|N{J@(HETGtxJm(l&MbU-{J%d^DP zK-tcI%0^RcsOqB-&g?P|$uQ?uYiwfT&g#IQLRip|b1q%csGI)$XDQ{UT6SDoT68=L z!zO~QS7PPD5-Jg~WmCf4YYDY78P(N0CB5=6aYYkK&m($xD)6GUa^j3_Nfe^>XF{@+SIdJHphl7OE4WvK3Kvr3nTKLoR zhes>1uEP0Ff&ZiEyrbEE|27_**dt161hHb&h!(X8N$kB_yFy#E^ovrPQZsgHZ?RX= zR;fK|MbN6MSwx3j6u&3W-#I7e-J|Kr~fVwt^hkInmr!S5g9f zz)PFI9?YU55DqN_iH3-#kN65aZ>^AXK{vbFJd_JF16l=%(Nqss+p?rp9wQ!dF%mWvv}c zDSG0JT>y$C^MY_nVjbjrK>LK{RLAkIu8FG`t;JLyjqD2=E*CC|5@?F5qUEx8Md0gS zQws?V&$zc%0<1p%D1T|WvAdLm>x7(xf1yvZ>gPdOZmjPe6TGu+Hnh8-CCk4p#u@X6 zj3U7leYTX<+h!Oe3c@RI8^em$=#3K(5zE%OHAowkRuJ1DpraJ}BV}IP^ZCudQyX7V z$JgVFx7#t9V>VMeYIso4nD+=vFmg76yR$3e$+9d^?L>MrIbiJQh-9=R{ph!6>L*Dc z*Gx1WtE?cVk9Xs~qQQa4M&sz87ZcyU+6Hg_C$irB)gneo_qK>6GZSIcrxjx$ZOx$s z(orzjf(ql87JHB7w!Q`}4-I@H?g&)46GP4ePDb=DCqu+0;ixyQ?~MYnBop$@&L&n+ zI;J3?GG{hIS~FGbhj}lapDAAV_I?iB(^HxU4);G0BHk(|RqsZ)nYVwQ_4Ofli&};p za5b$BJ^c|%pX&0BYTnbv;wKEG6NL>+R9ZErXkwEhG%;RwzK|yL%^7z5rE#h)H~8lF zX#D2P>A_CbXy26ReRCJ-8rGSAX8)YAEyBxeJfQ`aFDun0DAq$UA(>C)RUB&wCQ_g2 z`b{Wm#d_I&*ls9KqgB6ejUCuZCFYynx1M>Aa{+bzntv=|@7%j% z193+7zANnYb1mPE8WEt54nAk|4z@j?tEhYbhmr4&&gSi^-(ap-z!nPdUjX1og{2Cq z@y>T$KhxM=;b)5LzP?X;o_=^@Y|!aTG6$E18sK;oUPs(vV&tNe(FQpv2M=P@JUz@R z?X5*)EgrqgOA@c=a7$R6n-)|YnJ$0&ocpSMT0X7+ZEQ3`gQI()1F)-+ClVKMuYTwr zuBxa?DTY_=X}cejjJc8;acZfy3V68biQG>0aA{diGY4k{{0wg4W~!eY#HE4+ACR-G zmSsU$#7v9Cf_4e9FU6Xg8*)42OsfH7rbzJ06upnQ*S=mB5A?AP)K3i-E^2*~lA4nq zPMic}9M>6KFun48T9;rNTWdF_O2pPzFKUFGsL>zpt-#BI*RnZ6vkY?SQ2)y%hHajV@*#~Cs5PN664kJ~St#m${Vl@K4?`v+kTEhOmwABI+ zZ#(N~xGM&;DY|{fEtYer(K320S&M3rX#xe%N}Wb%bTZ0xr7k%3h1F2L37hmb zh_9HhbC8Evv9wrk!oJi(s^cA^7>(9d@+*qWDf7iW42I`MnrulH^@zBaX6h~SW-V>x zPF*OURT72K42u#3$XAqObk9@gAd#oR8@^Zhyr{4PAdB-@h%?AVk#@=ps~dCFl9lK^ zLzq+;4a{EM9frOfL8i$YWC)xRDzFh$-_&#(XL*PPzyrvII~QfI25+@(+DEqbjFnb$ zxfyL1^$THd6Bb_*ir)((YG(w`u(qT=0FJ_D)RVz8XV(BZ7J}8*VZgl(_?jj&|HRCkEyfF(0+6R3x!?+F^|H zURKnjPe_X^>m9YPsyAvbNb!B)>Q9Vm?@jW{R|*0fW*2c!d! zNI5uQh+TG$YEo`zGV9#G3@wvbi~c(>w$H3{?#|S?)&V7KPcS>){`8`8%A4+W)Be#L zeK{DKS>VqnT=LWuI>DQIwcOng|SMmrDRif4nZ+>S-6L*Ls8X9aw9s<$4Sv zj}A!($bx0Qb{h*W%VMjX&;2AJBV{>YlKq&lgE|11DIzOlXL8*o+-2kJFcsDC9~?mJ+E}lkMR8!lQ0IXa`F~SYg1a6# z-zS@J$7E?@lP@yLpZMQvrPLy~G_$yUOPGQ$_g9hbgjIs_$YhQY`X3?y%7}H4DLI3&u+1NXR?k*1xN?q^`$iFZ56j1tuMFT*>U?7BFF^yaku5pbgaF&*7h zQK7>+&zfO~%gYjiu>_R_nL=cYQVpDax~%6(_e^9^4B zx;vt%mi))4#cpvldUuFKLW2C;9`h{uF#9pq+rR&{n3+AA)fOf^866 zMJVA^NKRHe`coaRTJUVPIl6hn^eo)Z_X}KElbz{_K8kBn-5`1-N~g$-x`Nz|} zPVGNB$`{Kasr)u}6?V8S3G#Flq#mVJ7I`-jPPECUGJZm1nEE#rMLj^Y8T#_|@{8vx z<_Q-}{U`VGGMUx-rqNCxNeE024$$zJAxl5prmVM=a>@)pGgaY(6--YJJN`jC2^MJn1>)FA@ zs!46NxEPQxr%Q>?M%)PpFw^g#yR%)aiz-c@w58j|Eio`^DO|uh-hFf=D4Cgld(!R7 z-~eZ1hRA;z?R!^JHL~U6O1+z3Nk(db9QV2LP2OI|rtXM${fV}6&CzA*6U$5?L`plr zLE`-KEBfl;L+0+&h8Cl9mOS9tfsE<7TJPsQeqLcbWoOUl8m1fnq$A94Q(cD72k(>S z=gKeR3tof=ZWA?YZr|vfxq7V9)AYy1pZbKf>$6(a1qfn>aIa~tvP5VSzpuO{u&il+ za|#kos*ul~-)5G;X{}%xoPpJuK|fAAH@<~US4m#qYkY1|^4F{S>i*`&0u(B7!tT}c zk=wDep}Uvr;(0SKFPYU^DK}i~=M*#6crgZ~j2@XQ4F?(=U;O*qANpCw26*lC!a3r9 z3*`^}5VPhs59Gf-m&vFf-E98CWNpotC8ZXaG0)1S*n39+qz^BnJy&Q=*|st*KZQ)K?WM&+mocxoAN zCb23QOVE0gA@(P`3@K#?ea$xTc5EHe$d5NwKLdIq`8JWg{CgCja);?nwc{glIxu)IH^*?~)QY(pu(V_=p_e1sApng|P%KY@IC}M4oZ`RZpN*ns0 zw*QicO|q&KVh;39*RyXqQaL=h-x_-JI%O@pR?`#!%x;ci%r&%IVzIG`wQ&E&Zzv_bTio z29hVF5Sc2)w2aAMR#UkbQ&l6WqY9r1M8O?u*@w!`=r=tHXU}Jf*!tUm;XU>Zvi&6Q zqL}dlwZzM}!}38x^%x&IVxi;{_-jsgU-q*boB#e2^@tQ7Cshv}jPY2Z;jjW}{QXIN*ViOBXpDKds*F2=Lhi*Z%L0l58ZW6v_GNVpIk{<>(c?w2clAc(T;Zv1l$ zH#9w%+*GuZ>E9tu+p7@lF3{uST(m=rmq16w{LrdyD$*p!$lu-Y$G)w_%$b7?zKJ!$ zza%w$mPz|3*wn*MAe#A#ruv$8f=CmskA;HZ^z`tvwk_TBw6BBi^$pEOm)s6gJ1i9S z_pDFsUdfP=2!P_s4@H-EZdycuw5$I=c%SBQm;Z!9L%>^WUdQ+T{;u+nhBNYB&oY83 zNg`$Pr4o8b+piXk(mvDFeymP>Y*QIc@)68sRV7FE`Bnav?GHCXlQXw0FxwV7GhtKe zY8Rh+9(65KgtGaGWdFlf!lP>1RB0S(H;N)w!q0v`D{DyCAQy@3f4PNC`jn*vp+Z~a zL-(o1yELq;okr{*yboP^=vBvkr%tHpgb*bBJtpFGp;zPdKM5|{AXm%Xz3su1>MxIl z0dEr0lV-vWVaDnaxkaId5BATE3p0oFVP&a3ZlLx#^U?eL2Sj9Kj(jAK+JBcZ*WbT3 z8}oni(z7i45WLI$t>O)bF5ddU&WFY~`C{h9toed-XQzT=iZ7`)MSZQt^zNq>xqF`f z9S`Hfq5lJDyM+IC>~eXefa6}9Z>X2O1*&>URat{N5fN0oAY}hjwKe<6RH$UdIj;oL zBl}9^p>Z9%t)=%_a$H7skhcX1BTF}y-BmZNTnvgwLpI_fRF5BUj|5O>Oi1bN75I>M z<^Z{)Dos&GA~Y})GdTHFi$m#=iwIuOA|2k%IyAyf7vtB^(<+-sZt9_54?eh#AdLv* zT>p;NPq~D&aMzXsa;9hy$dl@fYH-ld?FQ9P{SIO&NDrOdOg%g(x;5U6fovo1{aSQ; zkprZkd~SORwz8c#6x@Ey-~Kw+Hdg!**CGYk2WOKFKTp2csJ;K~p-=y&?uE5;rI%T` zJ&;Y|T+>iMmidq0!zktx{ z+3@vv_FK9^)wcbDi~ttE7jRX2(RJhW_&*k{1?Cq6*G(r6D$?Hczx;@-^chia*W7F> zlIjcCkZq)d=x4lRalb~D{{T-szs3a@Dtn?6^h zNEPdCYcTNktcnB3)ii1rQzfVJ8&-XtH=j4}vY?#T8Zpx}7nXOSeA5Hv*IjuZ1nVnO zChc~PCkvENPd9{(0X%DesOA?2s6W%UHd7i?{K8T}abNfKa&$5UB*L@z>p%H&3_O&K zH2AqwZ^)MoTaQZ|DG}=cX?h=P6sm4K;5tik->?bZy_{%x9QgL_%7vYM?5oF!m%V4t zzjBsZvFfI64=$d%r%f~rqg=~0jwg{P)FILI)2uM7WkCzEf^?bH0I; zC_lxXZXXwEj;!Ee+M{Zcr-94kOWD~B6kP>o1rMfTCK?qRoMdO(KY^m$N`WNX)XB<+ z^qrRm0)LkJ+{rg0Yt4Dnd#{DfxViJPDSJC#4r#*Xh(SF0AU9peTtJ|w@W;S-i-~Y2 z!P3oZgI+T^^z1wxY z(21jabu(2x>vzRVb1jNQ4QoyEHeqFnb?T^Jb~cl-gH&e-NJl)T1s8Af^9km3Q`w8n zVYX@O&R#5I1EnphazCBOT79PHFXh4SFnUehM^v9?IZzS3Gn|R@VzAN~REzunO9D#7JbjWA~|W zhrbB$6E9w05m&4c`8v91Xs|Vr%7+5446acNJ0rVmdT5bRl?VvG$1QR#QDu*&?k~%b z4RuiU)0k+6qg`VG?gxqPsVdY_OFBV}po3w6cGXZ!=6TPDqB%9(6BE-zP|41a3}c~u z>e`V&bdmko5W_K`s2dTJJ;2d=EAjp)MK?EjR@eTDQNVyN>Q|eJGdZ}swy^O=#$sFx z992pO3ERCcH)(zYL--L%%loL!>?>R9qFYz2lz;!a%9B4Qd+uzT?s1pf)y-UfJf`g> z@u^+DeVEHH;TVl%(lQUXbtC)SP0OjS!n<0nlV%nxuBp<|YzS`v*%Y_9cpA7wG9UG; z>4}^CNiTT6Vfx?q4iVZOsE-f4RB2B}&0<2h-nDRg*5EX9^(q4Jd|t|=F)BZfhw2DU zUPDI~a#C9>{p5smJfrkl=H9H7uj)EF%YMR6xY_Y@T5TusO8wOvPuGW7h+kp?`{{mz zu|W}rtPuDCslE2wG&CB zX{>qudXgUnQ$%luB!_HV-%3ExT!In@DCPB);KDd0LZxQSiFU)1;1ykFy1L+>61?dS z?uyNEQ4;0?lvrR?wk;&Bs=+N_Uc*T)^ChAzaO}TS3P4?*lA3cFJUS$+c=*~4ZCQG zs_G1UX&`DINq&QQ@r21ov&NtBSKCxgYTXmc4fPT8&$mz+|lah`dSN<&X~ z@1?K~t9(A8QTtFSxRQLD&ub+mR4BcJcSKyrSoiil{YjcLe?zGwXdKMBH!!;JA^Tq_ zYrD_1|E6knil`C*2B0j9-Bsdpwi-4Nh+nc@%%~Rr$zS!KF;uEcT6U2CUi@lnT0_(I zt!6WcK1)8esB^vtY2=X4n1PMEzRO0uax-;O^0^g|o6$i)3WokHk}Zl-yT3UW$m&63 z|LUe3Br=5dyX7_2%4dF69Vi*r|~;g|FkdsR4f10-wXh*WooIpHjIFtDDgIzPy~>GEqrjS~X@E zN(9-|;H^b!>L6@FHY!#CI*vwI95V?Mrl&(u{vg$HZb^W8_!qOmYq&UAMWcPSkSE->h_r-)F2$-3$*^$Wc}u6KB1&4o85G#(m7!`5MWPEx1vq%|O7P>~%BYhJ9z0X= zts=?fB60o@&q!^2wNo_C4j4yGjB(lpm9+`{G8io?*cekCjHbO3*4?8NeJ1_AyOKgQ z@rH#;_r>$BxCwwe*oQ^&G%Y(^`2-0~TBVD7mtkyZZiUM*D~qq@A5ao5Pu%0y?}>i7 za)e>5EQe9Qx=1_a$~NRcMD<>*T(V{BYa>ck1apgN8no4v&IZw!r?m>12iGogX$h{F^{~+HZcj(vv?(Tzv%Rhg`IX zF3XwH1CnR~`aBs)lGH#D2w)TUq0jQ2!HwKO>mNt+Rx@)5dbXFZ#i@YXCI9lvs*=D! zyX#p`B{AoF*+L;g9h7}Eu(em@v!mqZ`fl@AVXP-RmrL(wr@qd_F z(BdFWVvcP{nSgTX2*Kz<>eEr#`d=i9m-lWuKjb!L?zc)2ZdXGc@k#C(?XS%}>BfN9 z%v@6R^&TIx4rn(vIPAJmV$6+_+Aqe>4($fGeO|L0m}JY3Q2e{tt#zwHZUrv{i{~+{ z;0m)c!Pl}XX|#&A|sZR*z6RuLU79n+d-79_7#ma|wEh%&msm?xTotD613_MAL^ zM4}_!%HCLs-zx^fMRo}{VSZDeA6HIk=hn-xS2UvCzPkhJ8nWsiNyKNY=tWmGSmab~ zTPl=QWsvv;A9fK9MZk>#+Scc+S`;+`v5S>cG+n8Zj8?=j^$ulmXW&AK4{e3{6FF7D zo_|N4{gdc7s%maOq)1^dlLBa1i-h-rPo2exfSTzR(7I?1gt{&}xIu;Hf5>bs*L|iv zg+b#|HPr%f7>;E3faMS6Op4ZSKJ~*LmiGh_82L=Z9;)BF?WZIvL9Wy-Lnk3!Ll})t z@EL8zKR*(&{K{13N>%udz(_a&PZTo6md6Nj%Z8#waP`{kmAHuYtcvmGX~oi7 zZ2RWUR;-|~geuhK*7N7@(F21AJoF?4tv8KY7vFihq{9VE!&Bi;ZaE4(SPBRhX6)@~ zXr2Ot4RRtLLu2P$w{a!b)AU@N#J&vja}k!q$!1kk)qZ4X&Ju+*B;){Fv-iR0X?|Mss&e~Dkedx6tukbfUBDnm#f^=o zdel_yp-~-PiY;7xK1fV~o-m36{OB%GKIUrB>{EM-93}W1l;Xr*W#-x?OT;7 zDgFWKy!OB3tqd*QeC54$PbJ{I29K#m?w?o{F+{o>=9OlZTZLfe-QAKJgCwC{EzB$W zScgfb(Jg*&06E9Dm6U0Tr3ri6(=*B`vt&rtq|I!ov%PAd*+;Hu^I&GBhS2KE>S2w~ zUsMVv6@I3^aWE z%=CencnXuYzM09JF=z>I`LXss0ELalso-^l9s!mq`g%1cLoCKgUr9MXzRbvJ$q&Y) zo915B&6+Atc77Z4JHF<_+L+8t5kZyS71#hXWw!!k<>Ks*{S;$9!e%Xqpp@ekg1f2D zy?P*!?`o#ft#HVUBL-)H#cs^i1u&uH}De;gD; ztQKqEp1%Nw;@(VHSdudGtb7Vxqq33o!2W|#XRg<;Sd=fGf9?PA3IYjXdY}Y4qDuJE zcd)CO5K?QzR?~IhL=C#}ysZ5s52$8mLQldu8 zM0I-)Z`yV$zGH#CcMkHTv)iicbg?hZVZcB6kuM)e3vC^hln}yWuJqow(i~#|trLdu zU)`@e4c8Lbkmc;Vr#J>FiR@z!{uu#zW_K|+~iGNB%i}$83Sc+P4&3rnZ zRVf~Fw5#+LU=^a#GlReMiHnJjYtM$<5?GXy0b}f3yB=(t2}gNT>!2ro zu;#mIsEFIG3OJPjhN5hK;F3R0B!^6T7*T|*D(b?47nOjix!-Zg?WurY)9rKfVb}{KGXmHr9 zK9n+hL9p8$Il+`M8FW?QM!|edw5xddYJIr=xYBMW^B%m36WqLzK5S0CF(?iE)4ptk%VW6Z^I})2?7>`i>2-%g{wf_57 zVayo*Ok4>7+!t{2?IW_NiwcJ@#pPq_g#dE0L_mwUdG&sj$qLj~5|2OMGKy`R1(qWC zj;#{8h#5o!zUDRpsWvsk2b!nqgf7xFm~T{X6KU1w<)|oxa44ra0VS(nd%c$=ymQo* zaL*`xS%OGcq7XN)Rr)C2-k6Rd+)lfLI?WiD_eDY5OMNjudbi-IB^7OL6GmlT?s8_j zNC3bGN~tEBKi9qsg!P5|h-J;C4D0bNs(FnmU|6%m33prA?eaioPS{fg`eic|6*bteiTOA?{f1qQX$2LCjZk0B+DMTFfs|3GL#{a?uhTPpPx6w6)Nxk>9>AJ^i91;sF6y6 z6SM&Z0AypiNg*g*I#Y>!q*`J?;?y2wjR3NOO%ut3*TUbL{-5LA7`ShAzQm)vr!p;z z(Jl+!B5D}4)xn;hA4OvBP{p{8qKvj|1xHyH9}5}_=a5>WGYyzmoQue&FVYf;-5n(i z@W8fWvj1^GqAT?AR@qxQee8Z59OGDX4^ZjRs#FFp)G~ojpmD#gY`A8UUc}siUp|Qq zC1k7%6e}JuHwzZoJJMGQ4c=>6m;d*aQ27v>)|UJ-+avi?{XE05XSWH(_BW3%)mcZA zHeAezh5;2%tw8(k-PgG+Qxq1laxN6A2-P|AV$cx6eueCgLDtVVw@Le=*`QrTznwh3Lx;FMU7mA0fe zN0vdAPMhUId1wc-gu%SuS=VEg&A8#bKKFsS@peE`I%>+GP;y~`r%B|$i~F-){(Ws` zHC)sbmNp^?2`O~UNGY9Eow%v7T9AMLEVs}AGGpP~Jt~Db-#zoP(mExzQZ;yEX$3ZyODJ+!#NT-6Y*J(aQKjozqSv^JDBwJ>%g68a{n zj}LD+q?1M&E$eOw+?Lt^=8 z+7@bOG(huUjJu^dI)q87j1q6dW>F=YVUJ|8UN_M5O3%ia*_)IZGF~*e{sdp3750?$ zYmbywAXZjk2`mtg<0_;z_7?4D1!Y@Nn35E1hq8k1X01nXaUZCT|zOX&cel45S2VfHySX7WdNGYsr(1Xc9JkRcc2l@ z-mo;&Iya-f#Z`U75>ADlhMJw}WFMk4FdP_L?=NYYq+-XbTfefHb@?JWDheWvCHrIj z&jm;4>L#dPrU22$5ZNdPc*2_sn=FVqauQY2h!*pm*LdiS$UKqn z+P1v;{o(>U+h;mg(%>C@&Xh4AG6M{3l_;_O^A45_|4Vk{{$8LBBoY^?lZbrjM{*oW zSW!Odz6!j@1qRZJt!Iq8Lr&u2J6HeB-e>lJ&0ADFpzW?+(gtPF;pb>A-`bvK4=wq1L>Tk|jh0g-bEXHFyvi|>sAZy$fOtK9*8QeIPd1fq z){m7G1~0kX`xnalWgQyErvD^dG0FW8w=T?{h1AI|O;{FHtmh@)+$y2TpX6-~qWA!NA7ZmR2f{xEaP|~le z+bNCJ>P(LUqg^iEKS3x5G_i_U?hRZ^Rl#2ItWswN3&TuT{aLxGm%eA7_jXX5v9?vA zns{N#;l&5{{mdnoEA>n$+o*>AJl3W?-L$)T@MjzeNmYM%8(Z&y=4Y(oDk!6>k8%Y88zA|j^)48eEj6+=iX;2N6p zeDjAlEuDPbr@O<~|5K8>h~(6QRZ!AO;Q~sl2U&B?muOqxM&E!8i0ZPLdX?5NM-1rd z?$(%L=?rnI<7X9m6Ru_TweWfod}-crXJo??S`t6i+a#uvS{5tQ;P)6`H~f~y>^Az` zr*^dZu(ni5BmAz)ext0O-j$AiAf3!IOuxiJ8((jT!KaToY?N&s+E&Xcz4K~nenS{R zydDH)Dy634yv0V{t)q!HJt`?SKs<`)F6wEc804`0vwPm@=;KEzLvKlM&Fif7t%}vG zGS1!0uhRT;7M}Wmuwn!%z-CMZyR%*-OkpW)7%w@1|684(2lX)&avbmLW^eBwrQ3A_ zHuP%FEkD{XAOm`)3c}ukYhCEmKvbhe8rH*VwIdUwiz!Nh{sW>S^7kPSXPT6XcQlM2 zWlEloEG(XW9T9)&>~C<HDa(wZyb!3-&Y%Akn41naM0ZU0TfN@QtG4P=$7z$;6` zSy})Gi*@CTzBm!i8}zLj3fUM%cXac;x_|VG-j$bEWW1;-f^>fD#}?8dKxNx+b!$zf zn$KnN<@%G*Nq(+KWv|Vew});NI=&}Q?7TaVoB95^AgTCf_K#I|1`*u(x@ceRB(OjA z_LU4>?x&(2e#XJN8b%Iuvm0v)ugo)PDohYvOt|LS?-kiME)`~>2Uo?e)#M{(D*b@8 zf`N%xHxCz?gbdlA%Gf1lRbnr=tuC{50$)d>KhtWOb#7)}cW-}>t;^w)!tGxk{0KPO z(@|BIfZLRha_Zu&4lW^?=LdU=Bg)U96)htV%!Yd_%eK$M*QT!PnCGXxl zXGl#=a&^EnZ8^6-QX;(58zK?*BbHK&>ml*nzjTr>BLf9w{oywsyFgNL@$VB7be=YX{%`8M7E|r}GRfZLn*qgpU+)XERmO0r{De_X%(I zcZW9>Fmi3LdG(IUb!`bai$8Gag$y0{|UWH-sw~u)M*JE-`fqKqF6AW3;O;^g?G` zEXQMNiD?Fq1?0jkAn_Rj$|gI?;4&VY`Gk4$L$N6uOI3Ae2sMQ{C!<=?54IM{yd?zh zIePNREz?w<(PhpOv-PhqXA*;ZtC`=-WJN5ygyMzoTIKwP#K;N79 zhJ6u>jB`cTz-vZF*d!DvMl8L`;z}%ka8gdN&2$22oZXFH7{bz-6J4j*mqSFYy?#PA zi=Bu`R%DCY(DBcV_ceUofqiEvu+^qpIUUriH`g2*%`c8H+&zwtlkTG^8!;^OG&sI< zLuBud&;I~y?2A84)Q#1KOa&c)K?czXeRflAGds-hx#38k=`)0};_UNZ9f^uWHtky( zB17U(_4$>m(!%?e>aT6p1Sh8#KPNo=#Iy-OoeK*6P@b_Y@so$s9`cl^CuObr2g$3U zuJ3gNin0rpGYr!v8Gs}ZF*cqiI~%jPS<~_BOgvRnVD7O8bboZ94aEoZG5seveYi7` ztE1kr>Yl!5WaY2+g!Rh~nWHnc!56F0mE6rBI{HWp&##pq?3w%}<)`MtsS|l-4E>As zrmOUpKi#wf9_%1JqBw_=%qzd60P?i$zb6D?^K}(eTA@>~Qn0pWfBsTLJf4Zpyy+Y1PZO;}@SESkIStB$3U7SE20>FQ`;;siXkfEI=sJ#YK?8gN0pc zgqgk__&>QCvGyaI%iTR(t0#sVjiDm&bLc`6)l7!;b7WU3$vlAe&x}-8bh0Dm_aBy( z^M$M7DL$@86otB32PQ+u9W5f+B%x;WDN=DNz~D3(1vUmgCyl+8^%(`joNxrTSW|Nt zRFQ!|u0I{Xbnl)p(qloEqi)e~yL{u^6^$5XTKcs;gfR^F}reN1sfZRNY^ z^UJp;+M=)c7OzqZB}osEA5lDPG{h9$9l$E5%dL^^;-WjKL{O=^A2OoO< zCa$HXl}U!SHr%Qnz6vR5Dv(e@4aEu2c&K+^EsMIG9GqDg7+6G9N+0i64xG00Qv6)EtTYQuGBf0?)UJ8C+}3PHv7IV&@^`((3j1n)0h8X|g4CVaR=#?#xVx!1 zH~b^9q!zDb6_?D$r4Y$qv{SK5%%!`$d2oG8Vcw=d(xKr0CFk4UYkt+G(8z_6kkGj~ z0q21DaJZFu@Rg;ztA2`F%qP5F1@>*Q{IEs=>)789-x;XbjpoMlH?Er|8pMj(vvaZm z*V2T9(KPMD5rO;%9tY#C`ojG%6J(jN?SSV=bw4bOR&^m z{78tCKOC_qmxt%wH9GvzpnCN{KQ9VqJUtuH7GXNKG8~D7L~R{uYT$H*AZ?^{pn&+5 z)$uwVI0$ zL-qGgdTxFDQJWo2qr~O%ZbZZYbJX>6lAwUyg?wHt??3OHrP$hmbiVu^43jv1g@0j!VR~Jd4-5p_`DN$=gE^wd?Dp-QN8r9~btBo>}tr;INYQ>ulNb`kN~72C`6+HbZS=+c2aeXZ5~&0BYcc

                      Acrih5KDW9ugPSk3y-@mXy^-HnY=Jp77llly?k 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 UZy9t1&ejm9DrzW{${G9rFYJ}YXaE2J literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/post-bg.jpg b/novel-admin/src/main/resources/static/img/post-bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..21750a49b05043749df1d71e2ddcc3ee933a02ae GIT binary patch literal 140909 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­rP^1HmX!sBJ94Sf*ma^&0Ax4)M?q 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 z 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⪼1uZQRCHW?a3^Ud0 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/profile.jpg b/novel-admin/src/main/resources/static/img/profile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7be02564c7f6f0f55cb91cce061b6afb8164e26 GIT binary patch literal 38520 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/profile_big.jpg b/novel-admin/src/main/resources/static/img/profile_big.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8fb2205ed70c4680006a29abf55b37299037640d GIT binary patch literal 252814 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%0DMYqo_v7@YNM#Z6O=$23&Cnv*XC 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�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 OXo{@AB#8?~o%tWjVL&VZ literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/profile_small.jpg b/novel-admin/src/main/resources/static/img/profile_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c8e96d42780288ac914ec8753f612efeda45999c GIT binary patch literal 16101 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 C61Fb@ literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/qr_code.png b/novel-admin/src/main/resources/static/img/qr_code.png new file mode 100644 index 0000000000000000000000000000000000000000..07b5350a74ecbc58929eba3090e95a1000fe3b29 GIT binary patch literal 16646 zcmeI3cT^Ku7r=+62x3{gg2bR$lSx8CNDL7q3MfH@AXos0WPm6sBm)F2t73`kio1fV zB8XkVF4jfGRdjU~!Cp{NEUYM4z=8$7Nde*jbNtTkcfNln=cL?s-@W&}-@W%`{&`CS z{JrgL`q}^hVCU;22m}B#Yu(%00v$;ol2L?ybx`_DRs(=-H{II|$jIys0Gx+XQ795B z^y7*ZGAbldM8Z^!Oo`400NyB#5)#jZ5mF=^EtR{IU*#8&Nm7YBIfNyo36)-OjMOJt z1qUVji^Rz@#T*HF6yJuY;i3*?FanV@vRJvAt8pjm{c_RYx?zw^(oaEVx|2P10ZF04 z0FswN1(R4*7DY^B&`E3#mCj^e8LZNfGOeU8`BN<<0z76_|r;1 z2;oa*P&5oG<2$V);>Lhk6o}1)DNvLPOo5paF`FZHVT)Z{^$>+ZQ}Y(C1qyMzu3L<*C8%qb zo0tjHXb^=CM?n-0gDIxC(O41+hbeJ&5xa0)*$lYRwTXEP*ArAy^rVAgP3GuU|KEma z#Z8M)K2kMWpGhWli&n4xEDM6;z8!5;#7gyNk`hv>VO__$lN(#E=@4r=qjWa<&gDX4 z-D$=b>ly-<@W5|Io0rvOX*83zOyKuXHuyI&Z#za}3@pcMD1$5gthSw~6;Vhcq=G%8 z(VF<4UN?CC)(q>O2kK7$Sn2;D5o##mpQYjZ`skme0dpq(|I*N0#o`!99t}(QU}FI{ z4t!tc4Eg-FvlR1fgND99y6)3x zYO2PXPR2JiRbx$?EraD!M0Y;x7m67+vC{o#8V>Xz^zjbnyRuj=EFOp*###hOHE?XG zK#HEcYTbFlaAg{eu$opaC%0*7qA^+;l4bHJrtd<-DEgp>K4XGS51B0*wCNoCH-9v5 z>EHB<@kIo|0KpdtT=;x2S^^ga2);<*!smn061Xrx@I?X_J|B#hz=Z*VFA})$`CzmJ zE({QSk-&w|2cso$VSwO^1TK6&7%hPd0|Z|raN+a8XbD^xAowDI3!e{0OW?u)!50Z! z_j3g#m&u61edBV6+4-3=n*gz=h8Tqa|=* zfZ&S+E_^;1ErAOI1Yaa@;q$?030xQ;_#%M|pASY$;KBgG7YSVWd@x!97X}EvNZ`Wf zgV7SWFhKA{0vA3XjF!NK0fH~$;<9PJwh7D8yPApUrA+Pl95Q;LlO*;D6aqlvwYisKc9Xi<9*x1_IcI?>E&d#n=r%s(acka@qOV_SlfB4~tZr!?d@7}#fj~+dH z_UzTGSMT1v`}FD4w{PEm{rcJ4+dDWo^zYx_(a{mz=70eM$YipUlheR~0|yNnAvV#SJIe);9sUw>V>a%EatT6%i=s#U9g`|Y>Yt5>gCvu5quwHX;1>(;Hy%*@Qn z%38mEeRg*Ch7B7wZrr$O)27XvH*eXpW$V_h+qP}nzJ2?S9XoPza&mKXckbM|YuB#b zyLa!|vuE$#z5Dj<+rNMRfddEf^70NIJb38Pp~Hs{A31X5=+UFcjvf2`_uupL^N$}t ze&WQ5lP6CW6cn5~b?T2l{y2U5^qDhf3JVL*o;`c++_^vh{PXC&a5qN2-}FBcaVmz0!TxpL*|)vMR8UAun$`i&bmZr;3k>(;H?w{PFMbLZ~eyQQV2 z_wL=hfB*i22M@~1${s#^_~_B2^78V>j~_pI^5p5$r_Y`}tEi~>`|rP>KYw0XS^46{ ziAM}2+w)g!ClH9WmhmUtxOL2-WZtM#3%yO2EQ0cPcDQby^l{*hG_v9_pNf3NPv z?Jf1H-X5{p9_&#__J^X!rC|;Bh1H+V7N-Da=BT=$%ciX1bGe08Ha!h)-dK=wzpfBD zmOoYrj(FycF166lBc1F@4vz3~EPkA|M+8OJysJ3;MHke(knNF)ZUXVwBtNVbM;P5k z0CD;JDF3}aL1$RP6;)EbG?f`1SLw?ZVL=M=%%gBEW8%Kyn42P zU1AS@-15F=#@n8To!?$^G(6fmWsBssx7rZ`rpP*=2Am|su(GTU)ea%7HgrkAIk0l-H~ZP55(OO7wt;hY!e zJ>2Tb?p?-kbF|OR!iu|IBgOaKG-YFM_;Z#pT@h|fU#|hVR%vd92UFj4F0AgfBr8|$ z{jxU8%CJd;QhMXx}XR$iCN4cStlYV-!%HWB*2;cVow~{Cc+zozg1J4fR&-iP#P-wcD`$ zbH7^ya#xWJVah*v6uz*Fu(*<$PAQw5V{7C-8xU|OOsgz-LfV!_&(F4<@b>0rW9T@F zH!-w^s+>a5JC{a>Y}r&*I>m85+$reM2SQTS-l=2qFW(}wn~&(StZfC z6+~SndJvqWC)#zMdp_KIo_p?xng2V_yz@N2|2y+xqHh}O(9>L`0RYhJ>1vt*03koq zDO40^^NoSMy|Y5?p=m5SF49*bc~6cpj3hU!Q0<&LwOHZf^wk#lwC zM3KeEW8zp%Md@N_#wZu~-o%H#jf&|$oDF#EI#R#C)OS)ns=8dVjjigZY^0(~(Umrp z#n2VOd6>S1cC@z7E{LlK(+GF~C{@)xzQ@P>5O5HrtbF}SBjqOm@g1V20*ywQjS`n4 zPZ?L?={68d7^KlV@rD5vh6Skm$HVi1x;6xZO%pT+Ipn~u$I)RP+!OulQIYIf;Pxf>V?xa8Uv!{kLMY07?R|I2*JofH5&3p=ar=3(9LiBN0kl38?6R zglSaxH9#H!>^k}ReL+|{VA0;PRQ}_78FX3XEUENLWrBc$R_t2GAJqH3xgk|28*)v`;Y`@RxrrNPi&Q*YM)_ds*z#UBiab$OuS_c&X znmNHDMM=M*Asv}+TUI)PNkQAE9tq80g_7-@>4N>YO$DWES zC3MB@7t3#zkkv)+I`&uikTVBsHB!rw`@nhac{FrUhA87P-9p|=0y0b!)biA1VW!PO zSCR@1J_yz_{cPoMkdll<>5B4?FehAqK?9-?t?~lQ(FiFa!i#fy74MLP%!As4kIeX2 zM2j+IbT9HJbxquJt)x_VCCYofGkgKN(6S)Cz_q})Wle*1Q1^UyU_K{o*8M=Aa}l~I zvq<5TCZ%EVHp6VHFc--rn{XRmnu|AkZyH&6LFP$@LSHDGo zww%tG?rwn+!HYa&P3)#g)=w5p<`RJ+i*Wh4X&kM^wnYyzq3DizV41dswE27y_1BbQ z3mo?5nmLy_x=5)o5{E8yN2&RKUL1fG|T3- zxocecGKK_6CmUB>N@@zKShv`;SZA$4u57&ko8O>SXLT6NpwXc(WFw@5P9UDgE}M^= zPZiJok2nKPuQr%l>o+lWpi;Fzwf{{OeL6>==3M_N!o5hYm$i zMJGT(q9bxBx5;|CD|5p-NPn0jY+KY3dG^Wnsk32;gaPHZ!`i=TGsfL-x0x51cWZZR ze=A5K$R}uEv}&}GVP-_gzm~6LsASmD*W34|ZzNqdQ$=!AYB_T`b2M|N#_qQ7ZBcw7 z{-cv#<-+ZJs||epqww1bR(U9k+qPBOrP$J|BXy;91xy75<0Rwa>=ATJ`5*W$d{GT& z`QjJ_sSNLi541-+u%m0*%33y(8j=EQ1AjYKp`?!-XDH^r%^mdkgBOe9Eyd{!V%COQ zVB1d03Ji_vhxU(2&*LxjTx-3LHP0NEeJI?dxO-*O`(a6NE`H zx_X%(<_Jr)EFCSc$@9VO+i$X~?x}jco>!e$mYRCeT!o;?qJuSpt}6c(lT(BP7SxJa4Yqlcenj@Gv$=dg3M z^8xH>uufYKzg%MTPIv)ZkvOxcVv4$9l<|#MziU863fbbWZe8%X8c*Zb%-xK>0vnJU zh#EuKi0~M1>53Tnzxj`NC*=udQopkZ#b2yn9Y{)l-Es4MX^CL^kw1; zPdJXxC<%{VMK3u&?J02zuRLjc6k7x1Nv7;_t$I;%-b#!H56}OOye&K`LRpD+vUL93 z7u~IpQk;FgZ@sswoAg3HYxDK#I&(Ag>`Q!Jgn^|PH)^S&hSZYm=kvwk9Z;)l9YhuLvxc zDrY05Wdc}#SaRDW>ltY)F za-+Fn58xSF8QPiV8Hd&m*0mODKCbsD>@RIfy|+4|_cRY_XBVENH9| z<&&f#la9Kqx{NY{jVocpzo9z7d4Gi~Tb?+z)8O|9+v&(~wt~u3!?wTse%t=;4BJ$Y zm(Ve>r*7OwXrr{=r2g)X`ntwAVk&Z2&H7|=Y;*GYgGQg6?SV<1eTwkV{*%Pr1V+U9 zg!F`-2>OV%>>H{I3Ug{+$16t#i2i&1g4ygRZ%%s3*x6t~2g7Tl#DTPd+|;eqq|a{8 z@{U&<*Ervk+MC;XK6Uv@OWxVJb-3Q-GwH*<`F4iUWZ@a_bKz5$pB202UkVPBIFpi2 z$;r~Tj~u1NNN4{|UPoOsBLMub0)Pnx;OFUCT>;>U1OTgc04Syb!0!I?Zksj$=dATK zHITj&Kc*xfAWb-yWm)lGE-o2lT2 zKVJFC@g*BBL;aRN3>`~c-tWr{*epktwF6u_69@rR=Xj|wy#FnJ-=v>+xlU#m{y%sB z?zi#ShUv`U9^HZ!*A25e26x>kV!*KvAKF*gOyQ<2l$^h86M4Q)c zi{rVQ$63)3kEO~Qx<&;JKn^(wfEvd^zW>l^BYO;R@+}U8THA)c=S+6p@x@A2tK}1= zcPtB*&Lw&I?@i5=GEAM&Wo@TGpycXM@aOUWBR-Z#Y%=mFNl}->|G{WyJ$XWh;`{Fq z{@&(aL7n*u!?>6s8waqokHR@^}63x** z5Uh*Qq4)=Wac$_Gspm2qGXXADWQMKnQ}Le@K4n1vg8ci1{Re9!-c6ZtcCfm*`l%|7 pVL0hEB!TW9><@=7pS{7;Q!c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvO-#?>2=9ZF3nBND}m`vLFhHXsTY(OatnYqyQCInmZhe+73JqDfIV%MiQ6rPIL(9V zO~LIJBb<8mfsWA!MJ-ZP!-Rn82gHOYTp$OY^i%VI>AeV;u(vXbonl~MI_~M>7*cWT z%njcRVMh`65C6~Q2yI{K`NBQQh9heAinXE1(JfB=Ul%M;Ke#x6g%L8^f5l4Te zj&BcK1znDIyZS2~eC7F3K+}tVTa$=u*HTU0W4>0#`+Qf%|GkyBERBs#$Y}P@k7@U2 zd#*XsYr~WGeCA1uSK>2HTD)g9mP}Xrpg$+`K&8dx2JS~bjCx(hj5}1;-8qn2_>|?> zp{d+2q{I0hbQS!U-jOut`kSEi+IhQJGmBl4O%se*W?OGKZ0Mp?XmGnRgezL^8vCJ4 z#-ek9(R&%4!h+;oXA~Mtbyie=u#0PDiI#!iX`%2?^@kRL8ma*r6?+*}W4e|_8~J&& z+-+*Ub3{dDcAIF|!MTDz0#78qKYeaeVU$wDOOs3cR=e5FZ*O2e-6xc{Uu=$;!s>*M z>nZ|V>zUp8-oE6^wXjV+_UOvuE&SORr`;3hnBKu~e3rzlY@NRjD|5Ui2t>^@Ve7jy z)2vT>u1vesjJgG`f;l_n`FmbR~b^~{VzXB}7CdU_pt>lO9l=E;X#4<2bZu32r~J^e^%TSISQ_Qm$= z7d{rOo2%^RUGseJkpn9(MWszUQdl(i&RN5PBgZ0d#S7ZipShU3W`>Nsy6C#pCD*KW zyxHW%b?m|pr;dF;L$saa#oaeO`u=>jkXTjl9*cLEvOD!Jdr4ooKJW9gY7?D{e?uM^ z`_}E4`0yR0boA=9>3>WXzUH{&pDfpZ;_2xb=j*pKsk#WyD%J#5t{1#azeB z4SJq8H2*dJVX$xugZHVh{7U`u4@oM|quz5j-hRJi{qwh1k5uNqu`W>3HJG&Y^R}6R z$Gq-HPue$sd${oT*XKO8zN>Oe_%K^bZNm3^-vf7@5X#eigU-d7W4kL+ zDn6|BEcp;!D13^jUVF&OmmVsK2e*W+KzyET^J3Ee5 zmhUbn2%<94CM5B?)%iA;;{TC%6YY4}g<88&m(hc=k_Cxo#YjVt(4=0Ngp!gUcmW#- z!hJwZb)#L;k{#~NwDmK`eNjYsBWp(tYFB48q`q{t6*%z&$G>e`cR~v;n&4F!=RZsvH&gh z0#xFbp@HS3Idx+#p^deyV3l>WtmYBk5KCh*wA0#uT3s~Z`Ej;ugNqMqqYrgF?-m~H z(L&=iz7#VFp*fZNkoI^y%CviCcyT+GIJjqCYPwiiIOqEA0zaQm6*gVn8T7t(r7zVr z))YPuPgWEzdmo*0C2Bo>7qgFfRrPdk;!HXe`80dRJ<~82I``~$p7CDZfA{^4!p&Rb zXG`Ww(${})DSVrqc{Z}R@8S2Q((%eS=-Q;z4yL6Rn)4v zv)yNtNTj)n2&tMFwZy-gMkf07%J%iduo#zV@n|#ww?G(766w)+7*H6YEwCDf^l94~ z;7}6D-rJzj;#%bzP=^|skPXAM8chV7L<(JLH9@*07zg6vEe0fv@uKDu12E{r7#sLX zw$dbl6AcmDF*tgAlt#BbNf)ALtPBT2tso&_gmDP48j}$-XboeG>w?7Gw#{My;}AS4 zj4@$Kt5g9J6oUailNX?4b2xxNz~lt-1p#5{RT#D%e}kcq`%vTaA20xFgN4>cO6(Pmr?|Lb=~ zVY4R91hdqz8BM`-#KR?c*-Du}2?j$rifK?ZdFmEbi71Ym6HyZ&i537pN=RowY#YAg z45boOAZ8pwbg)7i#vnA927?~tOJt%Tb|9C-W%D^4880|QAQ8)WQofuMEEaJjQ(P&k zOEJO-KE>7l%jJEPYYT(XL{yf-m?0I`%Q4glj2{{_%;1I13uFtpaz3HQo7u|*S3iT7 zNv`0dToz%5WqaEHJoVHTkssT1I=IAQI{Gj|s zLrABQMF5Sm8=zAjTlVMGdII}WHeGsvSex8>aPW*~dEN^00n4|U<+`F)0+VSYbQ~WV z?F%~8cr8%bc)qMXNq@X|msi$rCx(p8ocoxvx95hP+ww7tVLzn=Dw}7u}%eHk8iyK22DPh{^tP z;8yePo+0GIiepheWjSKe7i~Cr%%6U%^FRaT+&;zKWI;yr)=Htb`;H~Dtv3>QdomZO zx?7%U#21`hX#U}z&+kj(Dq>0t3fzD1{LAk;=X>(P~1p?y-g&qe1}@0io|o5x=H z{k~yG;hpr+z9nb%C)FKYW7g36$AgPzSF1B*L3P7~x01H!jfYh9zSJYpH-vWSwGS*0 z9k5wfq^Y87ZYAwKPqD=-7B9#ulJ4(Z?b}N2rRFd6tR&}rUQ;I@OUoYF_>%W{SBSG; zOJyu`iA??nIWcheW%Lt#9#xJy!m>d^1>^7*Xzr3{YHG7TH`UuA+7(^ zqh7~c*~n7gqt4%h2dR`(bxr1l4`SNv%@iD(L0l(bA7m-!EPjeb=C literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/wenku_logo.png b/novel-admin/src/main/resources/static/img/wenku_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7f0aac163b13e152cca22c44fa125148ad466f4e GIT binary patch literal 20319 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 VR2Q%A+x<@^>MB~wC5o2<{|7>m*Lwf} literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/.DS_Store b/novel-admin/src/main/resources/static/js/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b34c7460ba31ec4ffb2d4d81264d44a86d9455fc GIT binary patch literal 8196 zcmeHM&u1{C1*`&Zr2^{t;9^yni?L-;KRVFp6acXwyLG`f<^h`H#+Zw- zWl&QwrpX>iOeJxOK@1(oUFD9Li?Lk;wmcRXaz#^H=z96Z-{&(ITNDmGjP=_-*bgj59nnmf! zMwIu$6@A7k)Q{T*Pp-Gy3ql0DZO>n1v{`b-&j~I)#%b6=UA@Y9MKtrG!7I^f(ZsvT zDssK#WC|hOKx)C`bdg2OX91I&=|OdroQbWi6Q`!#+0)z8?$*r5r?S)Tr`gln+s^HD z`p8G0oV~nU-@fz1z55RyK6?E8M}6Hu;+GMOne$!yQ@1Ltyb-HHp0-u_-Elf}dGFxx zh%tPvbqB zI-_o9EK|8l?Zz?FaA3+bFmrLp0vDVPPUQ-wZxH{CI1XpwGAzPPxCP(A_wWRs!O!p; z{0aY%0pgGk$#F7EJ|kzyMKVV&kplUWd}ZjV_J$s9PhpU(ASQ0}jbg|H!K*l;SVPdn z2S}hFg*9yTdZ2aw%uH}=tpaaEfj%?qq{{z4@BRJ%jjYX1Y89{wydDKe|M}wiJkHgA z`z5DUxweb-Ypkj$zm`EwL8H@gM4gT!?*79N+b+5)PA #wrapper").height() - 61; + $(".sidebard-panel").css("min-height", heightWithoutNavbar + "px"); + } + fix_height(); + + $(window).bind("load resize click scroll", function () { + if (!$("body").hasClass('body-small')) { + fix_height(); + } + }); + + //侧边栏滚动 + $(window).scroll(function () { + if ($(window).scrollTop() > 0 && !$('body').hasClass('fixed-nav')) { + $('#right-sidebar').addClass('sidebar-top'); + } else { + $('#right-sidebar').removeClass('sidebar-top'); + } + }); + + $('.full-height-scroll').slimScroll({ + height: '100%' + }); + + $('#side-menu>li').click(function () { + if ($('body').hasClass('mini-navbar')) { + NavToggle(); + } + }); + $('#side-menu>li li a').click(function () { + if ($(window).width() < 769) { + NavToggle(); + } + }); + + $('.nav-close').click(NavToggle); + + //ios浏览器兼容性处理 + if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { + $('#content-main').css('overflow-y', 'auto'); + } + +}); + +$(window).bind("load resize", function () { + if ($(this).width() < 769) { + $('body').addClass('mini-navbar'); + $('.navbar-static-side').fadeIn(); + } +}); + +function NavToggle() { + $('.navbar-minimalize').trigger('click'); +} + +function SmoothlyMenu() { + if (!$('body').hasClass('mini-navbar')) { + $('#side-menu').hide(); + setTimeout( + function () { + $('#side-menu').fadeIn(500); + }, 100); + } else if ($('body').hasClass('fixed-sidebar')) { + $('#side-menu').hide(); + setTimeout( + function () { + $('#side-menu').fadeIn(500); + }, 300); + } else { + $('#side-menu').removeAttr('style'); + } +} + + +//主题设置 +$(function () { + + // 顶部菜单固定 + $('#fixednavbar').click(function () { + if ($('#fixednavbar').is(':checked')) { + $(".navbar-static-top").removeClass('navbar-static-top').addClass('navbar-fixed-top'); + $("body").removeClass('boxed-layout'); + $("body").addClass('fixed-nav'); + $('#boxedlayout').prop('checked', false); + + if (localStorageSupport) { + localStorage.setItem("boxedlayout", 'off'); + } + + if (localStorageSupport) { + localStorage.setItem("fixednavbar", 'on'); + } + } else { + $(".navbar-fixed-top").removeClass('navbar-fixed-top').addClass('navbar-static-top'); + $("body").removeClass('fixed-nav'); + + if (localStorageSupport) { + localStorage.setItem("fixednavbar", 'off'); + } + } + }); + + + // 收起左侧菜单 + $('#collapsemenu').click(function () { + if ($('#collapsemenu').is(':checked')) { + $("body").addClass('mini-navbar'); + SmoothlyMenu(); + + if (localStorageSupport) { + localStorage.setItem("collapse_menu", 'on'); + } + + } else { + $("body").removeClass('mini-navbar'); + SmoothlyMenu(); + + if (localStorageSupport) { + localStorage.setItem("collapse_menu", 'off'); + } + } + }); + + // 固定宽度 + $('#boxedlayout').click(function () { + if ($('#boxedlayout').is(':checked')) { + $("body").addClass('boxed-layout'); + $('#fixednavbar').prop('checked', false); + $(".navbar-fixed-top").removeClass('navbar-fixed-top').addClass('navbar-static-top'); + $("body").removeClass('fixed-nav'); + if (localStorageSupport) { + localStorage.setItem("fixednavbar", 'off'); + } + + + if (localStorageSupport) { + localStorage.setItem("boxedlayout", 'on'); + } + } else { + $("body").removeClass('boxed-layout'); + + if (localStorageSupport) { + localStorage.setItem("boxedlayout", 'off'); + } + } + }); + + // 默认主题 + $('.s-skin-0').click(function () { + $("body").removeClass("skin-1"); + $("body").removeClass("skin-2"); + $("body").removeClass("skin-3"); + return false; + }); + + // 蓝色主题 + $('.s-skin-1').click(function () { + $("body").removeClass("skin-2"); + $("body").removeClass("skin-3"); + $("body").addClass("skin-1"); + return false; + }); + + // 黄色主题 + $('.s-skin-3').click(function () { + $("body").removeClass("skin-1"); + $("body").removeClass("skin-2"); + $("body").addClass("skin-3"); + return false; + }); + + if (localStorageSupport) { + var collapse = localStorage.getItem("collapse_menu"); + var fixednavbar = localStorage.getItem("fixednavbar"); + var boxedlayout = localStorage.getItem("boxedlayout"); + + if (collapse == 'on') { + $('#collapsemenu').prop('checked', 'checked') + } + if (fixednavbar == 'on') { + $('#fixednavbar').prop('checked', 'checked') + } + if (boxedlayout == 'on') { + $('#boxedlayout').prop('checked', 'checked') + } + } + + if (localStorageSupport) { + + var collapse = localStorage.getItem("collapse_menu"); + var fixednavbar = localStorage.getItem("fixednavbar"); + var boxedlayout = localStorage.getItem("boxedlayout"); + + var body = $('body'); + + if (collapse == 'on') { + if (!body.hasClass('body-small')) { + body.addClass('mini-navbar'); + } + } + + if (fixednavbar == 'on') { + $(".navbar-static-top").removeClass('navbar-static-top').addClass('navbar-fixed-top'); + body.addClass('fixed-nav'); + } + + if (boxedlayout == 'on') { + body.addClass('boxed-layout'); + } + } +}); + +//判断浏览器是否支持html5本地存储 +function localStorageSupport() { + return (('localStorage' in window) && window['localStorage'] !== null) +} diff --git a/novel-admin/src/main/resources/static/js/appjs/common/dict/add.js b/novel-admin/src/main/resources/static/js/appjs/common/dict/add.js new file mode 100644 index 0000000..ae0cf22 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/appjs/common/dict/add.js @@ -0,0 +1,49 @@ +$().ready(function() { + validateRule(); +}); + +$.validator.setDefaults({ + submitHandler : function() { + save(); + } +}); +function save() { + $.ajax({ + cache : true, + type : "POST", + url : "/common/dict/save", + data : $('#signupForm').serialize(), // 你的formid + async : false, + error : function(request) { + parent.layer.alert("网络超时"); + }, + success : function(data) { + if (data.code == 0) { + parent.layer.msg("操作成功"); + parent.reLoad(); + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); + + } else { + parent.layer.alert(data.msg) + } + + } + }); + +} +function validateRule() { + var icon = " "; + $("#signupForm").validate({ + rules : { + name : { + required : true + } + }, + messages : { + name : { + required : icon + "请输入名字" + } + } + }) +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/appjs/common/dict/dict.js b/novel-admin/src/main/resources/static/js/appjs/common/dict/dict.js new file mode 100644 index 0000000..52b5b78 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/appjs/common/dict/dict.js @@ -0,0 +1,266 @@ + +var prefix = "/common/dict" +$(function() { + + // var config = { + // '.chosen-select' : {}, + // '.chosen-select-deselect' : { + // allow_single_deselect : true + // }, + // '.chosen-select-no-single' : { + // disable_search_threshold : 10 + // }, + // '.chosen-select-no-results' : { + // no_results_text : '没有数据' + // }, + // '.chosen-select-width' : { + // width : "95%" + // } + // } + // for (var selector in config) { + // $(selector).chosen(config[selector]); + // } + load(); +}); +function selectLoad() { + var html = ""; + $.ajax({ + url : '/common/dict/type', + success : function(data) { + //加载数据 + for (var i = 0; i < data.length; i++) { + html += '' + } + $(".chosen-select").append(html); + $(".chosen-select").chosen({ + maxHeight : 200 + }); + //点击事件 + $('.chosen-select').on('change', function(e, params) { + console.log(params.selected); + var opt = { + query : { + type : params.selected, + } + } + $('#exampleTable').bootstrapTable('refresh', opt); + }); + } + }); +} +function load() { + selectLoad(); + $('#exampleTable') + .bootstrapTable( + { + method : 'get', // 服务器数据的请求方式 get or post + url : prefix + "/list", // 服务器数据的加载地址 + // showRefresh : true, + // showToggle : true, + // showColumns : true, + iconSize : 'outline', + toolbar : '#exampleToolbar', + striped : true, // 设置为true会有隔行变色效果 + dataType : "json", // 服务器返回的数据类型 + pagination : true, // 设置为true会在底部显示分页条 + // queryParamsType : "limit", + // //设置为limit则会发送符合RESTFull格式的参数 + singleSelect : false, // 设置为true将禁止多选 + // contentType : "application/x-www-form-urlencoded", + // //发送到服务器的数据编码类型 + pageSize : 10, // 如果设置了分页,每页数据条数 + pageNumber : 1, // 如果设置了分布,首页页码 + //search : true, // 是否显示搜索框 + showColumns : false, // 是否显示内容下拉框(选择显示的列) + sidePagination : "server", // 设置在哪里进行分页,可选值为"client" 或者 "server" + queryParams : function(params) { + return { + //说明:传入后台的参数包括offset开始索引,limit步长,sort排序列,order:desc或者,以及所有列的键值对 + limit : params.limit, + offset : params.offset, + // name:$('#searchName').val(), + type : $('#searchName').val(), + }; + }, + // //请求服务器数据时,你可以通过重写参数的方式添加一些额外的参数,例如 toolbar 中的参数 如果 + // queryParamsType = 'limit' ,返回参数必须包含 + // limit, offset, search, sort, order 否则, 需要包含: + // pageSize, pageNumber, searchText, sortName, + // sortOrder. + // 返回false将会终止请求 + columns : [ + { + checkbox : true + }, + { + field : 'id', + title : '编号' + }, + { + field : 'name', + title : '标签名' + }, + { + field : 'value', + title : '数据值', + width : '100px' + }, + { + field : 'type', + title : '类型' + }, + { + field : 'description', + title : '描述' + }, + { + visible : false, + field : 'sort', + title : '排序(升序)' + }, + { + visible : false, + field : 'parentId', + title : '父级编号' + }, + { + visible : false, + field : 'createBy', + title : '创建者' + }, + { + visible : false, + field : 'createDate', + title : '创建时间' + }, + { + visible : false, + field : 'updateBy', + title : '更新者' + }, + { + visible : false, + field : 'updateDate', + title : '更新时间' + }, + { + visible : false, + field : 'remarks', + title : '备注信息' + }, + { + visible : false, + field : 'delFlag', + title : '删除标记' + }, + { + title : '操作', + field : 'id', + align : 'center', + formatter : function(value, row, index) { + var e = ' '; + var d = ' '; + var f = ' '; + return e + d +f; + } + } ] + }); +} +function reLoad() { + var opt = { + query : { + type : $('.chosen-select').val(), + } + } + $('#exampleTable').bootstrapTable('refresh', opt); +} +function add() { + layer.open({ + type : 2, + title : '增加', + maxmin : true, + shadeClose : false, // 点击遮罩关闭层 + area : [ '800px', '520px' ], + content : prefix + '/add' // iframe的url + }); +} +function edit(id) { + layer.open({ + type : 2, + title : '编辑', + maxmin : true, + shadeClose : false, // 点击遮罩关闭层 + area : [ '800px', '520px' ], + content : prefix + '/edit/' + id // iframe的url + }); +} +function remove(id) { + layer.confirm('确定要删除选中的记录?', { + btn : [ '确定', '取消' ] + }, function() { + $.ajax({ + url : prefix + "/remove", + type : "post", + data : { + 'id' : id + }, + success : function(r) { + if (r.code == 0) { + layer.msg(r.msg); + reLoad(); + } else { + layer.msg(r.msg); + } + } + }); + }) +} + +function addD(type,description) { + layer.open({ + type : 2, + title : '增加', + maxmin : true, + shadeClose : false, // 点击遮罩关闭层 + area : [ '800px', '520px' ], + content : prefix + '/add/'+type+'/'+description // iframe的url + }); +} +function batchRemove() { + var rows = $('#exampleTable').bootstrapTable('getSelections'); // 返回所有选择的行,当没有选择的记录时,返回一个空数组 + if (rows.length == 0) { + layer.msg("请选择要删除的数据"); + return; + } + layer.confirm("确认要删除选中的'" + rows.length + "'条数据吗?", { + btn : [ '确定', '取消' ] + // 按钮 + }, function() { + var ids = new Array(); + // 遍历所有选择的行数据,取每条数据对应的ID + $.each(rows, function(i, row) { + ids[i] = row['id']; + }); + $.ajax({ + type : 'POST', + data : { + "ids" : ids + }, + url : prefix + '/batchRemove', + success : function(r) { + if (r.code == 0) { + layer.msg(r.msg); + reLoad(); + } else { + layer.msg(r.msg); + } + } + }); + }, function() {}); +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/appjs/common/dict/edit.js b/novel-admin/src/main/resources/static/js/appjs/common/dict/edit.js new file mode 100644 index 0000000..82d01b0 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/appjs/common/dict/edit.js @@ -0,0 +1,49 @@ +$().ready(function() { + validateRule(); +}); + +$.validator.setDefaults({ + submitHandler : function() { + update(); + } +}); +function update() { + $.ajax({ + cache : true, + type : "POST", + url : "/common/dict/update", + data : $('#signupForm').serialize(),// 你的formid + async : false, + error : function(request) { + parent.layer.alert("Connection error"); + }, + success : function(data) { + if (data.code == 0) { + parent.layer.msg("操作成功"); + parent.reLoad(); + var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引 + parent.layer.close(index); + + } else { + parent.layer.alert(data.msg) + } + + } + }); + +} +function validateRule() { + var icon = " "; + $("#signupForm").validate({ + rules : { + name : { + required : true + } + }, + messages : { + name : { + required : icon + "请输入名字" + } + } + }) +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/appjs/common/genColumns/add.js b/novel-admin/src/main/resources/static/js/appjs/common/genColumns/add.js new file mode 100644 index 0000000..5178e51 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/appjs/common/genColumns/add.js @@ -0,0 +1,49 @@ +$().ready(function() { + validateRule(); +}); + +$.validator.setDefaults({ + submitHandler : function() { + save(); + } +}); +function save() { + $.ajax({ + cache : true, + type : "POST", + url : "/common/genColumns/save", + data : $('#signupForm').serialize(),// 你的formid + async : false, + error : function(request) { + parent.layer.alert("Connection error"); + }, + success : function(data) { + if (data.code == 0) { + parent.layer.msg("操作成功"); + parent.reLoad(); + var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引 + parent.layer.close(index); + + } else { + parent.layer.alert(data.msg) + } + + } + }); + +} +function validateRule() { + var icon = " "; + $("#signupForm").validate({ + rules : { + name : { + required : true + } + }, + messages : { + name : { + required : icon + "请输入姓名" + } + } + }) +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/appjs/common/genColumns/edit.js b/novel-admin/src/main/resources/static/js/appjs/common/genColumns/edit.js new file mode 100644 index 0000000..315c051 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/appjs/common/genColumns/edit.js @@ -0,0 +1,68 @@ +var columnData = JSON.parse($("#genColumns").val()); +var columnJsData = [[]]; +var row_template = ['text','text','text','text','text','text','text','text','text']; +var headerCols = ['列名', '列类型', '映射java类型', '列注释', '列标签名', '页面显示类型', '字典类型', '是否必填', '列排序(升序)']; +for (var i = 0; i < columnData.length; i++) { + columnJsData[i] = [columnData[i].columnName, columnData[i].columnType, columnData[i].javaType, columnData[i].columnComment, + columnData[i].columnLabel, columnData[i].pageType, columnData[i].dictType, columnData[i].isRequired, columnData[i].columnSort]; + +} + + +var mynewtable = $('#edittable').editTable({ + field_templates: { + 'checkbox': { + html: '', + getValue: function (input) { + return $(input).is(':checked'); + }, + setValue: function (input, value) { + if (value) { + return $(input).attr('checked', true); + } + return $(input).removeAttr('checked'); + } + }, + 'textarea': { + html: '",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*\s*$/g,ia={option:[1,""],thead:[1,"","
                      "],col:[2,"","
                      "],tr:[2,"","
                      "],td:[3,"","
                      "],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("' + ,'' + ,''].join('')) + + //编辑器不兼容ie8以下 + if(device.ie && device.ie < 8){ + return textArea.removeClass('layui-hide').addClass(SHOW); + } + + haveBuild[0] && (haveBuild.remove()); + + setIframe.call(that, editor, textArea[0], set) + textArea.addClass('layui-hide').after(editor); + + return that.index; + }; + + //获得编辑器中内容 + Edit.prototype.getContent = function(index){ + var iframeWin = getWin(index); + if(!iframeWin[0]) return; + return toLower(iframeWin[0].document.body.innerHTML); + }; + + //获得编辑器中纯文本内容 + Edit.prototype.getText = function(index){ + var iframeWin = getWin(index); + if(!iframeWin[0]) return; + return $(iframeWin[0].document.body).text(); + }; + /** + * 设置编辑器内容 + * @param {[type]} index 编辑器索引 + * @param {[type]} content 要设置的内容 + * @param {[type]} flag 是否追加模式 + */ + Edit.prototype.setContent = function(index, content, flag){ + var iframeWin = getWin(index); + if(!iframeWin[0]) return; + if(flag){ + $(iframeWin[0].document.body).append(content) + }else{ + $(iframeWin[0].document.body).html(content) + }; + layedit.sync(index) + }; + //将编辑器内容同步到textarea(一般用于异步提交时) + Edit.prototype.sync = function(index){ + var iframeWin = getWin(index); + if(!iframeWin[0]) return; + var textarea = $('#'+iframeWin[1].attr('textarea')); + textarea.val(toLower(iframeWin[0].document.body.innerHTML)); + }; + + //获取编辑器选中内容 + Edit.prototype.getSelection = function(index){ + var iframeWin = getWin(index); + if(!iframeWin[0]) return; + var range = Range(iframeWin[0].document); + return document.selection ? range.text : range.toString(); + }; + + //iframe初始化 + var setIframe = function(editor, textArea, set){ + var that = this, iframe = editor.find('iframe'); + + iframe.css({ + height: set.height + }).on('load', function(){ + var conts = iframe.contents() + ,iframeWin = iframe.prop('contentWindow') + ,head = conts.find('head') + ,style = $([''].join('')) + ,body = conts.find('body'); + + head.append(style); + body.attr('contenteditable', 'true').css({ + 'min-height': set.height + }).html(textArea.value||''); + + hotkey.apply(that, [iframeWin, iframe, textArea, set]); //快捷键处理 + toolActive.call(that, iframeWin, editor, set); //触发工具 + + }); + } + + //获得iframe窗口对象 + ,getWin = function(index){ + var iframe = $('#LAY_layedit_'+ index) + ,iframeWin = iframe.prop('contentWindow'); + return [iframeWin, iframe]; + } + + //IE8下将标签处理成小写 + ,toLower = function(html){ + if(device.ie == 8){ + html = html.replace(/<.+>/g, function(str){ + return str.toLowerCase(); + }); + } + return html; + } + + //快捷键处理 + ,hotkey = function(iframeWin, iframe, textArea, set){ + var iframeDOM = iframeWin.document, body = $(iframeDOM.body); + body.on('keydown', function(e){ + var keycode = e.keyCode; + //处理回车 + if(keycode === 13){ + var range = Range(iframeDOM); + var container = getContainer(range) + ,parentNode = container.parentNode; + + if(parentNode.tagName.toLowerCase() === 'pre'){ + if(e.shiftKey) return + layer.msg('请暂时用shift+enter'); + return false; + } + iframeDOM.execCommand('formatBlock', false, '

                      '); + } + }); + + //给textarea同步内容 + $(textArea).parents('form').on('submit', function(){ + var html = body.html(); + //IE8下将标签处理成小写 + if(device.ie == 8){ + html = html.replace(/<.+>/g, function(str){ + return str.toLowerCase(); + }); + } + textArea.value = html; + }); + + //处理粘贴 + body.on('paste', function(e){ + iframeDOM.execCommand('formatBlock', false, '

                      '); + setTimeout(function(){ + filter.call(iframeWin, body); + textArea.value = body.html(); + }, 100); + }); + } + + //标签过滤 + ,filter = function(body){ + var iframeWin = this + ,iframeDOM = iframeWin.document; + + //清除影响版面的css属性 + body.find('*[style]').each(function(){ + var textAlign = this.style.textAlign; + this.removeAttribute('style'); + $(this).css({ + 'text-align': textAlign || '' + }) + }); + + //修饰表格 + body.find('table').addClass('layui-table'); + + //移除不安全的标签 + body.find('script,link').remove(); + } + + //Range对象兼容性处理 + ,Range = function(iframeDOM){ + return iframeDOM.selection + ? iframeDOM.selection.createRange() + : iframeDOM.getSelection().getRangeAt(0); + } + + //当前Range对象的endContainer兼容性处理 + ,getContainer = function(range){ + return range.endContainer || range.parentElement().childNodes[0] + } + + //在选区插入内联元素 + ,insertInline = function(tagName, attr, range){ + var iframeDOM = this.document + ,elem = document.createElement(tagName) + for(var key in attr){ + elem.setAttribute(key, attr[key]); + } + elem.removeAttribute('text'); + + if(iframeDOM.selection){ //IE + var text = range.text || attr.text; + if(tagName === 'a' && !text) return; + if(text){ + elem.innerHTML = text; + } + range.pasteHTML($(elem).prop('outerHTML')); + range.select(); + } else { //非IE + var text = range.toString() || attr.text; + if(tagName === 'a' && !text) return; + if(text){ + elem.innerHTML = text; + } + range.deleteContents(); + range.insertNode(elem); + } + } + + //工具选中 + ,toolCheck = function(tools, othis){ + var iframeDOM = this.document + ,CHECK = 'layedit-tool-active' + ,container = getContainer(Range(iframeDOM)) + ,item = function(type){ + return tools.find('.layedit-tool-'+type) + } + + if(othis){ + othis[othis.hasClass(CHECK) ? 'removeClass' : 'addClass'](CHECK); + } + + tools.find('>i').removeClass(CHECK); + item('unlink').addClass(ABLED); + + $(container).parents().each(function(){ + var tagName = this.tagName.toLowerCase() + ,textAlign = this.style.textAlign; + + //文字 + if(tagName === 'b' || tagName === 'strong'){ + item('b').addClass(CHECK) + } + if(tagName === 'i' || tagName === 'em'){ + item('i').addClass(CHECK) + } + if(tagName === 'u'){ + item('u').addClass(CHECK) + } + if(tagName === 'strike'){ + item('d').addClass(CHECK) + } + + //对齐 + if(tagName === 'p'){ + if(textAlign === 'center'){ + item('center').addClass(CHECK); + } else if(textAlign === 'right'){ + item('right').addClass(CHECK); + } else { + item('left').addClass(CHECK); + } + } + + //超链接 + if(tagName === 'a'){ + item('link').addClass(CHECK); + item('unlink').removeClass(ABLED); + } + }); + } + + //触发工具 + ,toolActive = function(iframeWin, editor, set){ + var iframeDOM = iframeWin.document + ,body = $(iframeDOM.body) + ,toolEvent = { + //超链接 + link: function(range){ + var container = getContainer(range) + ,parentNode = $(container).parent(); + + link.call(body, { + href: parentNode.attr('href') + ,target: parentNode.attr('target') + }, function(field){ + var parent = parentNode[0]; + if(parent.tagName === 'A'){ + parent.href = field.url; + } else { + insertInline.call(iframeWin, 'a', { + target: field.target + ,href: field.url + ,text: field.url + }, range); + } + }); + } + //清除超链接 + ,unlink: function(range){ + iframeDOM.execCommand('unlink'); + } + //表情 + ,face: function(range){ + face.call(this, function(img){ + insertInline.call(iframeWin, 'img', { + src: img.src + ,alt: img.alt + }, range); + }); + } + //图片 + ,image: function(range){ + var that = this; + layui.use('upload', function(upload){ + var uploadImage = set.uploadImage || {}; + upload.render({ + url: uploadImage.url + ,method: uploadImage.type + ,elem: $(that).find('input')[0] + ,done: function(res){ + if(res.code == 0){ + res.data = res.data || {}; + insertInline.call(iframeWin, 'img', { + src: res.data.src + ,alt: res.data.title + }, range); + } else { + layer.msg(res.msg||'上传失败'); + } + } + }); + }); + } + //插入代码 + ,code: function(range){ + code.call(body, function(pre){ + insertInline.call(iframeWin, 'pre', { + text: pre.code + ,'lay-lang': pre.lang + }, range); + }); + } + //帮助 + ,help: function(){ + layer.open({ + type: 2 + ,title: '帮助' + ,area: ['600px', '380px'] + ,shadeClose: true + ,shade: 0.1 + ,skin: 'layui-layer-msg' + ,content: ['http://www.layui.com/about/layedit/help.html', 'no'] + }); + } + } + ,tools = editor.find('.layui-layedit-tool') + + ,click = function(){ + var othis = $(this) + ,events = othis.attr('layedit-event') + ,command = othis.attr('lay-command'); + + if(othis.hasClass(ABLED)) return; + + body.focus(); + + var range = Range(iframeDOM) + ,container = range.commonAncestorContainer + + if(command){ + iframeDOM.execCommand(command); + if(/justifyLeft|justifyCenter|justifyRight/.test(command)){ + iframeDOM.execCommand('formatBlock', false, '

                      '); + } + setTimeout(function(){ + body.focus(); + }, 10); + } else { + toolEvent[events] && toolEvent[events].call(this, range); + } + toolCheck.call(iframeWin, tools, othis); + } + + ,isClick = /image/ + + tools.find('>i').on('mousedown', function(){ + var othis = $(this) + ,events = othis.attr('layedit-event'); + if(isClick.test(events)) return; + click.call(this) + }).on('click', function(){ + var othis = $(this) + ,events = othis.attr('layedit-event'); + if(!isClick.test(events)) return; + click.call(this) + }); + + //触发内容区域 + body.on('click', function(){ + toolCheck.call(iframeWin, tools); + layer.close(face.index); + }); + } + + //超链接面板 + ,link = function(options, callback){ + var body = this, index = layer.open({ + type: 1 + ,id: 'LAY_layedit_link' + ,area: '350px' + ,shade: 0.05 + ,shadeClose: true + ,moveType: 1 + ,title: '超链接' + ,skin: 'layui-layer-msg' + ,content: ['

                        ' + ,'
                      • ' + ,'' + ,'
                        ' + ,'' + ,'
                        ' + ,'
                      • ' + ,'
                      • ' + ,'' + ,'
                        ' + ,'' + ,'' + ,'
                        ' + ,'
                      • ' + ,'
                      • ' + ,'' + ,'' + ,'
                      • ' + ,'
                      '].join('') + ,success: function(layero, index){ + var eventFilter = 'submit(layedit-link-yes)'; + form.render('radio'); + layero.find('.layui-btn-primary').on('click', function(){ + layer.close(index); + body.focus(); + }); + form.on(eventFilter, function(data){ + layer.close(link.index); + callback && callback(data.field); + }); + } + }); + link.index = index; + } + + //表情面板 + ,face = function(callback){ + //表情库 + var faces = function(){ + var alt = ["[微笑]", "[嘻嘻]", "[哈哈]", "[可爱]", "[可怜]", "[挖鼻]", "[吃惊]", "[害羞]", "[挤眼]", "[闭嘴]", "[鄙视]", "[爱你]", "[泪]", "[偷笑]", "[亲亲]", "[生病]", "[太开心]", "[白眼]", "[右哼哼]", "[左哼哼]", "[嘘]", "[衰]", "[委屈]", "[吐]", "[哈欠]", "[抱抱]", "[怒]", "[疑问]", "[馋嘴]", "[拜拜]", "[思考]", "[汗]", "[困]", "[睡]", "[钱]", "[失望]", "[酷]", "[色]", "[哼]", "[鼓掌]", "[晕]", "[悲伤]", "[抓狂]", "[黑线]", "[阴险]", "[怒骂]", "[互粉]", "[心]", "[伤心]", "[猪头]", "[熊猫]", "[兔子]", "[ok]", "[耶]", "[good]", "[NO]", "[赞]", "[来]", "[弱]", "[草泥马]", "[神马]", "[囧]", "[浮云]", "[给力]", "[围观]", "[威武]", "[奥特曼]", "[礼物]", "[钟]", "[话筒]", "[蜡烛]", "[蛋糕]"], arr = {}; + layui.each(alt, function(index, item){ + arr[item] = layui.cache.dir + 'images/face/'+ index + '.gif'; + }); + return arr; + }(); + face.hide = face.hide || function(e){ + if($(e.target).attr('layedit-event') !== 'face'){ + layer.close(face.index); + } + } + return face.index = layer.tips(function(){ + var content = []; + layui.each(faces, function(key, item){ + content.push('
                    • '+ key +'
                    • '); + }); + return '
                        ' + content.join('') + '
                      '; + }(), this, { + tips: 1 + ,time: 0 + ,skin: 'layui-box layui-util-face' + ,maxWidth: 500 + ,success: function(layero, index){ + layero.css({ + marginTop: -4 + ,marginLeft: -10 + }).find('.layui-clear>li').on('click', function(){ + callback && callback({ + src: faces[this.title] + ,alt: this.title + }); + layer.close(index); + }); + $(document).off('click', face.hide).on('click', face.hide); + } + }); + } + + //插入代码面板 + ,code = function(callback){ + var body = this, index = layer.open({ + type: 1 + ,id: 'LAY_layedit_code' + ,area: '550px' + ,shade: 0.05 + ,shadeClose: true + ,moveType: 1 + ,title: '插入代码' + ,skin: 'layui-layer-msg' + ,content: ['
                        ' + ,'
                      • ' + ,'' + ,'
                        ' + ,'' + ,'
                        ' + ,'
                      • ' + ,'
                      • ' + ,'' + ,'
                        ' + ,'' + ,'
                        ' + ,'
                      • ' + ,'
                      • ' + ,'' + ,'' + ,'
                      • ' + ,'
                      '].join('') + ,success: function(layero, index){ + var eventFilter = 'submit(layedit-code-yes)'; + form.render('select'); + layero.find('.layui-btn-primary').on('click', function(){ + layer.close(index); + body.focus(); + }); + form.on(eventFilter, function(data){ + layer.close(code.index); + callback && callback(data.field); + }); + } + }); + code.index = index; + } + + //全部工具 + ,tools = { + html: '' + ,strong: '' + ,italic: '' + ,underline: '' + ,del: '' + + ,'|': '' + + ,left: '' + ,center: '' + ,right: '' + ,link: '' + ,unlink: '' + ,face: '' + ,image: '' + ,code: '' + + ,help: '' + } + + ,edit = new Edit(); + + exports(MOD_NAME, edit); +}); diff --git a/novel-admin/src/main/resources/static/js/lay/modules/layer.js b/novel-admin/src/main/resources/static/js/lay/modules/layer.js new file mode 100644 index 0000000..ab59053 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/layer.js @@ -0,0 +1,1294 @@ +/** + + @Name:layer v3.1.0 Web弹层组件 + @Author:贤心 + @Site:http://layer.layui.com + @License:MIT + + */ + +;!function(window, undefined){ +"use strict"; + +var isLayui = window.layui && layui.define, $, win, ready = { + getPath: function(){ + var js = document.scripts, script = js[js.length - 1], jsPath = script.src; + if(script.getAttribute('merge')) return; + return jsPath.substring(0, jsPath.lastIndexOf("/") + 1); + }(), + + config: {}, end: {}, minIndex: 0, minLeft: [], + btn: ['确定', '取消'], + + //五种原始层模式 + type: ['dialog', 'page', 'iframe', 'loading', 'tips'], + + //获取节点的style属性值 + getStyle: function(node, name){ + var style = node.currentStyle ? node.currentStyle : window.getComputedStyle(node, null); + return style[style.getPropertyValue ? 'getPropertyValue' : 'getAttribute'](name); + }, + + //载入CSS配件 + link: function(href, fn, cssname){ + + //未设置路径,则不主动加载css + if(!layer.path) return; + + var head = document.getElementsByTagName("head")[0], link = document.createElement('link'); + if(typeof fn === 'string') cssname = fn; + var app = (cssname || href).replace(/\.|\//g, ''); + var id = 'layuicss-'+ app, timeout = 0; + + link.rel = 'stylesheet'; + link.href = layer.path + href; + link.id = id; + + if(!document.getElementById(id)){ + head.appendChild(link); + } + + if(typeof fn !== 'function') return; + + //轮询css是否加载完毕 + (function poll() { + if(++timeout > 8 * 1000 / 100){ + return window.console && console.error('layer.css: Invalid'); + }; + parseInt(ready.getStyle(document.getElementById(id), 'width')) === 1989 ? fn() : setTimeout(poll, 100); + }()); + } +}; + +//默认内置方法。 +var layer = { + v: '3.1.0', + ie: function(){ //ie版本 + var agent = navigator.userAgent.toLowerCase(); + return (!!window.ActiveXObject || "ActiveXObject" in window) ? ( + (agent.match(/msie\s(\d+)/) || [])[1] || '11' //由于ie11并没有msie的标识 + ) : false; + }(), + index: (window.layer && window.layer.v) ? 100000 : 0, + path: ready.getPath, + config: function(options, fn){ + options = options || {}; + layer.cache = ready.config = $.extend({}, ready.config, options); + layer.path = ready.config.path || layer.path; + typeof options.extend === 'string' && (options.extend = [options.extend]); + + if(ready.config.path) layer.ready(); + + if(!options.extend) return this; + + isLayui + ? layui.addcss('modules/layer/' + options.extend) + : ready.link('theme/' + options.extend); + + return this; + }, + + //主体CSS等待事件 + ready: function(callback){ + var cssname = 'layer', ver = '' + ,path = (isLayui ? 'modules/layer/' : 'theme/') + 'default/layer.css?v='+ layer.v + ver; + isLayui ? layui.addcss(path, callback, cssname) : ready.link(path, callback, cssname); + return this; + }, + + //各种快捷引用 + alert: function(content, options, yes){ + var type = typeof options === 'function'; + if(type) yes = options; + return layer.open($.extend({ + content: content, + yes: yes + }, type ? {} : options)); + }, + + confirm: function(content, options, yes, cancel){ + var type = typeof options === 'function'; + if(type){ + cancel = yes; + yes = options; + } + return layer.open($.extend({ + content: content, + btn: ready.btn, + yes: yes, + btn2: cancel + }, type ? {} : options)); + }, + + msg: function(content, options, end){ //最常用提示层 + var type = typeof options === 'function', rskin = ready.config.skin; + var skin = (rskin ? rskin + ' ' + rskin + '-msg' : '')||'layui-layer-msg'; + var anim = doms.anim.length - 1; + if(type) end = options; + return layer.open($.extend({ + content: content, + time: 3000, + shade: false, + skin: skin, + title: false, + closeBtn: false, + btn: false, + resize: false, + end: end + }, (type && !ready.config.skin) ? { + skin: skin + ' layui-layer-hui', + anim: anim + } : function(){ + options = options || {}; + if(options.icon === -1 || options.icon === undefined && !ready.config.skin){ + options.skin = skin + ' ' + (options.skin||'layui-layer-hui'); + } + return options; + }())); + }, + + load: function(icon, options){ + return layer.open($.extend({ + type: 3, + icon: icon || 0, + resize: false, + shade: 0.01 + }, options)); + }, + + tips: function(content, follow, options){ + return layer.open($.extend({ + type: 4, + content: [content, follow], + closeBtn: false, + time: 3000, + shade: false, + resize: false, + fixed: false, + maxWidth: 210 + }, options)); + } +}; + +var Class = function(setings){ + var that = this; + that.index = ++layer.index; + that.config = $.extend({}, that.config, ready.config, setings); + document.body ? that.creat() : setTimeout(function(){ + that.creat(); + }, 30); +}; + +Class.pt = Class.prototype; + +//缓存常用字符 +var doms = ['layui-layer', '.layui-layer-title', '.layui-layer-main', '.layui-layer-dialog', 'layui-layer-iframe', 'layui-layer-content', 'layui-layer-btn', 'layui-layer-close']; +doms.anim = ['layer-anim-00', 'layer-anim-01', 'layer-anim-02', 'layer-anim-03', 'layer-anim-04', 'layer-anim-05', 'layer-anim-06']; + +//默认配置 +Class.pt.config = { + type: 0, + shade: 0.3, + fixed: true, + move: doms[1], + title: '信息', + offset: 'auto', + area: 'auto', + closeBtn: 1, + time: 0, //0表示不自动关闭 + zIndex: 19891014, + maxWidth: 360, + anim: 0, + isOutAnim: true, + icon: -1, + moveType: 1, + resize: true, + scrollbar: true, //是否允许浏览器滚动条 + tips: 2 +}; + +//容器 +Class.pt.vessel = function(conType, callback){ + var that = this, times = that.index, config = that.config; + var zIndex = config.zIndex + times, titype = typeof config.title === 'object'; + var ismax = config.maxmin && (config.type === 1 || config.type === 2); + var titleHTML = (config.title ? '
                      ' + + (titype ? config.title[0] : config.title) + + '
                      ' : ''); + + config.zIndex = zIndex; + callback([ + //遮罩 + config.shade ? ('
                      ') : '', + + //主体 + '
                      ' + + (conType && config.type != 2 ? '' : titleHTML) + + '
                      ' + + (config.type == 0 && config.icon !== -1 ? '' : '') + + (config.type == 1 && conType ? '' : (config.content||'')) + + '
                      ' + + ''+ function(){ + var closebtn = ismax ? '' : ''; + config.closeBtn && (closebtn += ''); + return closebtn; + }() + '' + + (config.btn ? function(){ + var button = ''; + typeof config.btn === 'string' && (config.btn = [config.btn]); + for(var i = 0, len = config.btn.length; i < len; i++){ + button += ''+ config.btn[i] +'' + } + return '
                      '+ button +'
                      ' + }() : '') + + (config.resize ? '' : '') + + '
                      ' + ], titleHTML, $('
                      ')); + return that; +}; + +//创建骨架 +Class.pt.creat = function(){ + var that = this + ,config = that.config + ,times = that.index, nodeIndex + ,content = config.content + ,conType = typeof content === 'object' + ,body = $('body'); + + if(config.id && $('#'+config.id)[0]) return; + + if(typeof config.area === 'string'){ + config.area = config.area === 'auto' ? ['', ''] : [config.area, '']; + } + + //anim兼容旧版shift + if(config.shift){ + config.anim = config.shift; + } + + if(layer.ie == 6){ + config.fixed = false; + } + + switch(config.type){ + case 0: + config.btn = ('btn' in config) ? config.btn : ready.btn[0]; + layer.closeAll('dialog'); + break; + case 2: + var content = config.content = conType ? config.content : [config.content||'http://layer.layui.com', 'auto']; + config.content = ''; + break; + case 3: + delete config.title; + delete config.closeBtn; + config.icon === -1 && (config.icon === 0); + layer.closeAll('loading'); + break; + case 4: + conType || (config.content = [config.content, 'body']); + config.follow = config.content[1]; + config.content = config.content[0] + ''; + delete config.title; + config.tips = typeof config.tips === 'object' ? config.tips : [config.tips, true]; + config.tipsMore || layer.closeAll('tips'); + break; + } + + //建立容器 + that.vessel(conType, function(html, titleHTML, moveElem){ + body.append(html[0]); + conType ? function(){ + (config.type == 2 || config.type == 4) ? function(){ + $('body').append(html[1]); + }() : function(){ + if(!content.parents('.'+doms[0])[0]){ + content.data('display', content.css('display')).show().addClass('layui-layer-wrap').wrap(html[1]); + $('#'+ doms[0] + times).find('.'+doms[5]).before(titleHTML); + } + }(); + }() : body.append(html[1]); + $('.layui-layer-move')[0] || body.append(ready.moveElem = moveElem); + that.layero = $('#'+ doms[0] + times); + config.scrollbar || doms.html.css('overflow', 'hidden').attr('layer-full', times); + }).auto(times); + + //遮罩 + $('#layui-layer-shade'+ that.index).css({ + 'background-color': config.shade[1] || '#000' + ,'opacity': config.shade[0]||config.shade + }); + + config.type == 2 && layer.ie == 6 && that.layero.find('iframe').attr('src', content[0]); + + //坐标自适应浏览器窗口尺寸 + config.type == 4 ? that.tips() : that.offset(); + if(config.fixed){ + win.on('resize', function(){ + that.offset(); + (/^\d+%$/.test(config.area[0]) || /^\d+%$/.test(config.area[1])) && that.auto(times); + config.type == 4 && that.tips(); + }); + } + + config.time <= 0 || setTimeout(function(){ + layer.close(that.index) + }, config.time); + that.move().callback(); + + //为兼容jQuery3.0的css动画影响元素尺寸计算 + if(doms.anim[config.anim]){ + var animClass = 'layer-anim '+ doms.anim[config.anim]; + that.layero.addClass(animClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ + $(this).removeClass(animClass); + }); + }; + + //记录关闭动画 + if(config.isOutAnim){ + that.layero.data('isOutAnim', true); + } +}; + +//自适应 +Class.pt.auto = function(index){ + var that = this, config = that.config, layero = $('#'+ doms[0] + index); + + if(config.area[0] === '' && config.maxWidth > 0){ + //为了修复IE7下一个让人难以理解的bug + if(layer.ie && layer.ie < 8 && config.btn){ + layero.width(layero.innerWidth()); + } + layero.outerWidth() > config.maxWidth && layero.width(config.maxWidth); + } + + var area = [layero.innerWidth(), layero.innerHeight()] + ,titHeight = layero.find(doms[1]).outerHeight() || 0 + ,btnHeight = layero.find('.'+doms[6]).outerHeight() || 0 + ,setHeight = function(elem){ + elem = layero.find(elem); + elem.height(area[1] - titHeight - btnHeight - 2*(parseFloat(elem.css('padding-top'))|0)); + }; + + switch(config.type){ + case 2: + setHeight('iframe'); + break; + default: + if(config.area[1] === ''){ + if(config.maxHeight > 0 && layero.outerHeight() > config.maxHeight){ + area[1] = config.maxHeight; + setHeight('.'+doms[5]); + } else if(config.fixed && area[1] >= win.height()){ + area[1] = win.height(); + setHeight('.'+doms[5]); + } + } else { + setHeight('.'+doms[5]); + } + break; + }; + + return that; +}; + +//计算坐标 +Class.pt.offset = function(){ + var that = this, config = that.config, layero = that.layero; + var area = [layero.outerWidth(), layero.outerHeight()]; + var type = typeof config.offset === 'object'; + that.offsetTop = (win.height() - area[1])/2; + that.offsetLeft = (win.width() - area[0])/2; + + if(type){ + that.offsetTop = config.offset[0]; + that.offsetLeft = config.offset[1]||that.offsetLeft; + } else if(config.offset !== 'auto'){ + + if(config.offset === 't'){ //上 + that.offsetTop = 0; + } else if(config.offset === 'r'){ //右 + that.offsetLeft = win.width() - area[0]; + } else if(config.offset === 'b'){ //下 + that.offsetTop = win.height() - area[1]; + } else if(config.offset === 'l'){ //左 + that.offsetLeft = 0; + } else if(config.offset === 'lt'){ //左上角 + that.offsetTop = 0; + that.offsetLeft = 0; + } else if(config.offset === 'lb'){ //左下角 + that.offsetTop = win.height() - area[1]; + that.offsetLeft = 0; + } else if(config.offset === 'rt'){ //右上角 + that.offsetTop = 0; + that.offsetLeft = win.width() - area[0]; + } else if(config.offset === 'rb'){ //右下角 + that.offsetTop = win.height() - area[1]; + that.offsetLeft = win.width() - area[0]; + } else { + that.offsetTop = config.offset; + } + + } + + if(!config.fixed){ + that.offsetTop = /%$/.test(that.offsetTop) ? + win.height()*parseFloat(that.offsetTop)/100 + : parseFloat(that.offsetTop); + that.offsetLeft = /%$/.test(that.offsetLeft) ? + win.width()*parseFloat(that.offsetLeft)/100 + : parseFloat(that.offsetLeft); + that.offsetTop += win.scrollTop(); + that.offsetLeft += win.scrollLeft(); + } + + if(layero.attr('minLeft')){ + that.offsetTop = win.height() - (layero.find(doms[1]).outerHeight() || 0); + that.offsetLeft = layero.css('left'); + } + + layero.css({top: that.offsetTop, left: that.offsetLeft}); +}; + +//Tips +Class.pt.tips = function(){ + var that = this, config = that.config, layero = that.layero; + var layArea = [layero.outerWidth(), layero.outerHeight()], follow = $(config.follow); + if(!follow[0]) follow = $('body'); + var goal = { + width: follow.outerWidth(), + height: follow.outerHeight(), + top: follow.offset().top, + left: follow.offset().left + }, tipsG = layero.find('.layui-layer-TipsG'); + + var guide = config.tips[0]; + config.tips[1] || tipsG.remove(); + + goal.autoLeft = function(){ + if(goal.left + layArea[0] - win.width() > 0){ + goal.tipLeft = goal.left + goal.width - layArea[0]; + tipsG.css({right: 12, left: 'auto'}); + } else { + goal.tipLeft = goal.left; + }; + }; + + //辨别tips的方位 + goal.where = [function(){ //上 + goal.autoLeft(); + goal.tipTop = goal.top - layArea[1] - 10; + tipsG.removeClass('layui-layer-TipsB').addClass('layui-layer-TipsT').css('border-right-color', config.tips[1]); + }, function(){ //右 + goal.tipLeft = goal.left + goal.width + 10; + goal.tipTop = goal.top; + tipsG.removeClass('layui-layer-TipsL').addClass('layui-layer-TipsR').css('border-bottom-color', config.tips[1]); + }, function(){ //下 + goal.autoLeft(); + goal.tipTop = goal.top + goal.height + 10; + tipsG.removeClass('layui-layer-TipsT').addClass('layui-layer-TipsB').css('border-right-color', config.tips[1]); + }, function(){ //左 + goal.tipLeft = goal.left - layArea[0] - 10; + goal.tipTop = goal.top; + tipsG.removeClass('layui-layer-TipsR').addClass('layui-layer-TipsL').css('border-bottom-color', config.tips[1]); + }]; + goal.where[guide-1](); + + /* 8*2为小三角形占据的空间 */ + if(guide === 1){ + goal.top - (win.scrollTop() + layArea[1] + 8*2) < 0 && goal.where[2](); + } else if(guide === 2){ + win.width() - (goal.left + goal.width + layArea[0] + 8*2) > 0 || goal.where[3]() + } else if(guide === 3){ + (goal.top - win.scrollTop() + goal.height + layArea[1] + 8*2) - win.height() > 0 && goal.where[0](); + } else if(guide === 4){ + layArea[0] + 8*2 - goal.left > 0 && goal.where[1]() + } + + layero.find('.'+doms[5]).css({ + 'background-color': config.tips[1], + 'padding-right': (config.closeBtn ? '30px' : '') + }); + layero.css({ + left: goal.tipLeft - (config.fixed ? win.scrollLeft() : 0), + top: goal.tipTop - (config.fixed ? win.scrollTop() : 0) + }); +} + +//拖拽层 +Class.pt.move = function(){ + var that = this + ,config = that.config + ,_DOC = $(document) + ,layero = that.layero + ,moveElem = layero.find(config.move) + ,resizeElem = layero.find('.layui-layer-resize') + ,dict = {}; + + if(config.move){ + moveElem.css('cursor', 'move'); + } + + moveElem.on('mousedown', function(e){ + e.preventDefault(); + if(config.move){ + dict.moveStart = true; + dict.offset = [ + e.clientX - parseFloat(layero.css('left')) + ,e.clientY - parseFloat(layero.css('top')) + ]; + ready.moveElem.css('cursor', 'move').show(); + } + }); + + resizeElem.on('mousedown', function(e){ + e.preventDefault(); + dict.resizeStart = true; + dict.offset = [e.clientX, e.clientY]; + dict.area = [ + layero.outerWidth() + ,layero.outerHeight() + ]; + ready.moveElem.css('cursor', 'se-resize').show(); + }); + + _DOC.on('mousemove', function(e){ + + //拖拽移动 + if(dict.moveStart){ + var X = e.clientX - dict.offset[0] + ,Y = e.clientY - dict.offset[1] + ,fixed = layero.css('position') === 'fixed'; + + e.preventDefault(); + + dict.stX = fixed ? 0 : win.scrollLeft(); + dict.stY = fixed ? 0 : win.scrollTop(); + + //控制元素不被拖出窗口外 + if(!config.moveOut){ + var setRig = win.width() - layero.outerWidth() + dict.stX + ,setBot = win.height() - layero.outerHeight() + dict.stY; + X < dict.stX && (X = dict.stX); + X > setRig && (X = setRig); + Y < dict.stY && (Y = dict.stY); + Y > setBot && (Y = setBot); + } + + layero.css({ + left: X + ,top: Y + }); + } + + //Resize + if(config.resize && dict.resizeStart){ + var X = e.clientX - dict.offset[0] + ,Y = e.clientY - dict.offset[1]; + + e.preventDefault(); + + layer.style(that.index, { + width: dict.area[0] + X + ,height: dict.area[1] + Y + }) + dict.isResize = true; + config.resizing && config.resizing(layero); + } + }).on('mouseup', function(e){ + if(dict.moveStart){ + delete dict.moveStart; + ready.moveElem.hide(); + config.moveEnd && config.moveEnd(layero); + } + if(dict.resizeStart){ + delete dict.resizeStart; + ready.moveElem.hide(); + } + }); + + return that; +}; + +Class.pt.callback = function(){ + var that = this, layero = that.layero, config = that.config; + that.openLayer(); + if(config.success){ + if(config.type == 2){ + layero.find('iframe').on('load', function(){ + config.success(layero, that.index); + }); + } else { + config.success(layero, that.index); + } + } + layer.ie == 6 && that.IE6(layero); + + //按钮 + layero.find('.'+ doms[6]).children('a').on('click', function(){ + var index = $(this).index(); + if(index === 0){ + if(config.yes){ + config.yes(that.index, layero) + } else if(config['btn1']){ + config['btn1'](that.index, layero) + } else { + layer.close(that.index); + } + } else { + var close = config['btn'+(index+1)] && config['btn'+(index+1)](that.index, layero); + close === false || layer.close(that.index); + } + }); + + //取消 + function cancel(){ + var close = config.cancel && config.cancel(that.index, layero); + close === false || layer.close(that.index); + } + + //右上角关闭回调 + layero.find('.'+ doms[7]).on('click', cancel); + + //点遮罩关闭 + if(config.shadeClose){ + $('#layui-layer-shade'+ that.index).on('click', function(){ + layer.close(that.index); + }); + } + + //最小化 + layero.find('.layui-layer-min').on('click', function(){ + var min = config.min && config.min(layero); + min === false || layer.min(that.index, config); + }); + + //全屏/还原 + layero.find('.layui-layer-max').on('click', function(){ + if($(this).hasClass('layui-layer-maxmin')){ + layer.restore(that.index); + config.restore && config.restore(layero); + } else { + layer.full(that.index, config); + setTimeout(function(){ + config.full && config.full(layero); + }, 100); + } + }); + + config.end && (ready.end[that.index] = config.end); +}; + +//for ie6 恢复select +ready.reselect = function(){ + $.each($('select'), function(index , value){ + var sthis = $(this); + if(!sthis.parents('.'+doms[0])[0]){ + (sthis.attr('layer') == 1 && $('.'+doms[0]).length < 1) && sthis.removeAttr('layer').show(); + } + sthis = null; + }); +}; + +Class.pt.IE6 = function(layero){ + //隐藏select + $('select').each(function(index , value){ + var sthis = $(this); + if(!sthis.parents('.'+doms[0])[0]){ + sthis.css('display') === 'none' || sthis.attr({'layer' : '1'}).hide(); + } + sthis = null; + }); +}; + +//需依赖原型的对外方法 +Class.pt.openLayer = function(){ + var that = this; + + //置顶当前窗口 + layer.zIndex = that.config.zIndex; + layer.setTop = function(layero){ + var setZindex = function(){ + layer.zIndex++; + layero.css('z-index', layer.zIndex + 1); + }; + layer.zIndex = parseInt(layero[0].style.zIndex); + layero.on('mousedown', setZindex); + return layer.zIndex; + }; +}; + +ready.record = function(layero){ + var area = [ + layero.width(), + layero.height(), + layero.position().top, + layero.position().left + parseFloat(layero.css('margin-left')) + ]; + layero.find('.layui-layer-max').addClass('layui-layer-maxmin'); + layero.attr({area: area}); +}; + +ready.rescollbar = function(index){ + if(doms.html.attr('layer-full') == index){ + if(doms.html[0].style.removeProperty){ + doms.html[0].style.removeProperty('overflow'); + } else { + doms.html[0].style.removeAttribute('overflow'); + } + doms.html.removeAttr('layer-full'); + } +}; + +/** 内置成员 */ + +window.layer = layer; + +//获取子iframe的DOM +layer.getChildFrame = function(selector, index){ + index = index || $('.'+doms[4]).attr('times'); + return $('#'+ doms[0] + index).find('iframe').contents().find(selector); +}; + +//得到当前iframe层的索引,子iframe时使用 +layer.getFrameIndex = function(name){ + return $('#'+ name).parents('.'+doms[4]).attr('times'); +}; + +//iframe层自适应宽高 +layer.iframeAuto = function(index){ + if(!index) return; + var heg = layer.getChildFrame('html', index).outerHeight(); + var layero = $('#'+ doms[0] + index); + var titHeight = layero.find(doms[1]).outerHeight() || 0; + var btnHeight = layero.find('.'+doms[6]).outerHeight() || 0; + layero.css({height: heg + titHeight + btnHeight}); + layero.find('iframe').css({height: heg}); +}; + +//重置iframe url +layer.iframeSrc = function(index, url){ + $('#'+ doms[0] + index).find('iframe').attr('src', url); +}; + +//设定层的样式 +layer.style = function(index, options, limit){ + var layero = $('#'+ doms[0] + index) + ,contElem = layero.find('.layui-layer-content') + ,type = layero.attr('type') + ,titHeight = layero.find(doms[1]).outerHeight() || 0 + ,btnHeight = layero.find('.'+doms[6]).outerHeight() || 0 + ,minLeft = layero.attr('minLeft'); + + if(type === ready.type[3] || type === ready.type[4]){ + return; + } + + if(!limit){ + if(parseFloat(options.width) <= 260){ + options.width = 260; + }; + + if(parseFloat(options.height) - titHeight - btnHeight <= 64){ + options.height = 64 + titHeight + btnHeight; + }; + } + + layero.css(options); + btnHeight = layero.find('.'+doms[6]).outerHeight(); + + if(type === ready.type[2]){ + layero.find('iframe').css({ + height: parseFloat(options.height) - titHeight - btnHeight + }); + } else { + contElem.css({ + height: parseFloat(options.height) - titHeight - btnHeight + - parseFloat(contElem.css('padding-top')) + - parseFloat(contElem.css('padding-bottom')) + }) + } +}; + +//最小化 +layer.min = function(index, options){ + var layero = $('#'+ doms[0] + index) + ,titHeight = layero.find(doms[1]).outerHeight() || 0 + ,left = layero.attr('minLeft') || (181*ready.minIndex)+'px' + ,position = layero.css('position'); + + ready.record(layero); + + if(ready.minLeft[0]){ + left = ready.minLeft[0]; + ready.minLeft.shift(); + } + + layero.attr('position', position); + + layer.style(index, { + width: 180 + ,height: titHeight + ,left: left + ,top: win.height() - titHeight + ,position: 'fixed' + ,overflow: 'hidden' + }, true); + + layero.find('.layui-layer-min').hide(); + layero.attr('type') === 'page' && layero.find(doms[4]).hide(); + ready.rescollbar(index); + + if(!layero.attr('minLeft')){ + ready.minIndex++; + } + layero.attr('minLeft', left); +}; + +//还原 +layer.restore = function(index){ + var layero = $('#'+ doms[0] + index), area = layero.attr('area').split(','); + var type = layero.attr('type'); + layer.style(index, { + width: parseFloat(area[0]), + height: parseFloat(area[1]), + top: parseFloat(area[2]), + left: parseFloat(area[3]), + position: layero.attr('position'), + overflow: 'visible' + }, true); + layero.find('.layui-layer-max').removeClass('layui-layer-maxmin'); + layero.find('.layui-layer-min').show(); + layero.attr('type') === 'page' && layero.find(doms[4]).show(); + ready.rescollbar(index); +}; + +//全屏 +layer.full = function(index){ + var layero = $('#'+ doms[0] + index), timer; + ready.record(layero); + if(!doms.html.attr('layer-full')){ + doms.html.css('overflow','hidden').attr('layer-full', index); + } + clearTimeout(timer); + timer = setTimeout(function(){ + var isfix = layero.css('position') === 'fixed'; + layer.style(index, { + top: isfix ? 0 : win.scrollTop(), + left: isfix ? 0 : win.scrollLeft(), + width: win.width(), + height: win.height() + }, true); + layero.find('.layui-layer-min').hide(); + }, 100); +}; + +//改变title +layer.title = function(name, index){ + var title = $('#'+ doms[0] + (index||layer.index)).find(doms[1]); + title.html(name); +}; + +//关闭layer总方法 +layer.close = function(index){ + var layero = $('#'+ doms[0] + index), type = layero.attr('type'), closeAnim = 'layer-anim-close'; + if(!layero[0]) return; + var WRAP = 'layui-layer-wrap', remove = function(){ + if(type === ready.type[1] && layero.attr('conType') === 'object'){ + layero.children(':not(.'+ doms[5] +')').remove(); + var wrap = layero.find('.'+WRAP); + for(var i = 0; i < 2; i++){ + wrap.unwrap(); + } + wrap.css('display', wrap.data('display')).removeClass(WRAP); + } else { + //低版本IE 回收 iframe + if(type === ready.type[2]){ + try { + var iframe = $('#'+doms[4]+index)[0]; + iframe.contentWindow.document.write(''); + iframe.contentWindow.close(); + layero.find('.'+doms[5])[0].removeChild(iframe); + } catch(e){} + } + layero[0].innerHTML = ''; + layero.remove(); + } + typeof ready.end[index] === 'function' && ready.end[index](); + delete ready.end[index]; + }; + + if(layero.data('isOutAnim')){ + layero.addClass('layer-anim '+ closeAnim); + } + + $('#layui-layer-moves, #layui-layer-shade' + index).remove(); + layer.ie == 6 && ready.reselect(); + ready.rescollbar(index); + if(layero.attr('minLeft')){ + ready.minIndex--; + ready.minLeft.push(layero.attr('minLeft')); + } + + if((layer.ie && layer.ie < 10) || !layero.data('isOutAnim')){ + remove() + } else { + setTimeout(function(){ + remove(); + }, 200); + } +}; + +//关闭所有层 +layer.closeAll = function(type){ + $.each($('.'+doms[0]), function(){ + var othis = $(this); + var is = type ? (othis.attr('type') === type) : 1; + is && layer.close(othis.attr('times')); + is = null; + }); +}; + +/** + + 拓展模块,layui开始合并在一起 + + */ + +var cache = layer.cache||{}, skin = function(type){ + return (cache.skin ? (' ' + cache.skin + ' ' + cache.skin + '-'+type) : ''); +}; + +//仿系统prompt +layer.prompt = function(options, yes){ + var style = ''; + options = options || {}; + + if(typeof options === 'function') yes = options; + + if(options.area){ + var area = options.area; + style = 'style="width: '+ area[0] +'; height: '+ area[1] + ';"'; + delete options.area; + } + var prompt, content = options.formType == 2 ? '' : function(){ + return ''; + }(); + + var success = options.success; + delete options.success; + + return layer.open($.extend({ + type: 1 + ,btn: ['确定','取消'] + ,content: content + ,skin: 'layui-layer-prompt' + skin('prompt') + ,maxWidth: win.width() + ,success: function(layero){ + prompt = layero.find('.layui-layer-input'); + prompt.focus(); + typeof success === 'function' && success(layero); + } + ,resize: false + ,yes: function(index){ + var value = prompt.val(); + if(value === ''){ + prompt.focus(); + } else if(value.length > (options.maxlength||500)) { + layer.tips('最多输入'+ (options.maxlength || 500) +'个字数', prompt, {tips: 1}); + } else { + yes && yes(value, index, prompt); + } + } + }, options)); +}; + +//tab层 +layer.tab = function(options){ + options = options || {}; + + var tab = options.tab || {} + ,THIS = 'layui-this' + ,success = options.success; + + delete options.success; + + return layer.open($.extend({ + type: 1, + skin: 'layui-layer-tab' + skin('tab'), + resize: false, + title: function(){ + var len = tab.length, ii = 1, str = ''; + if(len > 0){ + str = ''+ tab[0].title +''; + for(; ii < len; ii++){ + str += ''+ tab[ii].title +''; + } + } + return str; + }(), + content: '
                        '+ function(){ + var len = tab.length, ii = 1, str = ''; + if(len > 0){ + str = '
                      • '+ (tab[0].content || 'no content') +'
                      • '; + for(; ii < len; ii++){ + str += '
                      • '+ (tab[ii].content || 'no content') +'
                      • '; + } + } + return str; + }() +'
                      ', + success: function(layero){ + var btn = layero.find('.layui-layer-title').children(); + var main = layero.find('.layui-layer-tabmain').children(); + btn.on('mousedown', function(e){ + e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true; + var othis = $(this), index = othis.index(); + othis.addClass(THIS).siblings().removeClass(THIS); + main.eq(index).show().siblings().hide(); + typeof options.change === 'function' && options.change(index); + }); + typeof success === 'function' && success(layero); + } + }, options)); +}; + +//相册层 +layer.photos = function(options, loop, key){ + var dict = {}; + options = options || {}; + if(!options.photos) return; + var type = options.photos.constructor === Object; + var photos = type ? options.photos : {}, data = photos.data || []; + var start = photos.start || 0; + dict.imgIndex = (start|0) + 1; + + options.img = options.img || 'img'; + + var success = options.success; + delete options.success; + + if(!type){ //页面直接获取 + var parent = $(options.photos), pushData = function(){ + data = []; + parent.find(options.img).each(function(index){ + var othis = $(this); + othis.attr('layer-index', index); + data.push({ + alt: othis.attr('alt'), + pid: othis.attr('layer-pid'), + src: othis.attr('layer-src') || othis.attr('src'), + thumb: othis.attr('src') + }); + }) + }; + + pushData(); + + if (data.length === 0) return; + + loop || parent.on('click', options.img, function(){ + var othis = $(this), index = othis.attr('layer-index'); + layer.photos($.extend(options, { + photos: { + start: index, + data: data, + tab: options.tab + }, + full: options.full + }), true); + pushData(); + }) + + //不直接弹出 + if(!loop) return; + + } else if (data.length === 0){ + return layer.msg('没有图片'); + } + + //上一张 + dict.imgprev = function(key){ + dict.imgIndex--; + if(dict.imgIndex < 1){ + dict.imgIndex = data.length; + } + dict.tabimg(key); + }; + + //下一张 + dict.imgnext = function(key,errorMsg){ + dict.imgIndex++; + if(dict.imgIndex > data.length){ + dict.imgIndex = 1; + if (errorMsg) {return}; + } + dict.tabimg(key) + }; + + //方向键 + dict.keyup = function(event){ + if(!dict.end){ + var code = event.keyCode; + event.preventDefault(); + if(code === 37){ + dict.imgprev(true); + } else if(code === 39) { + dict.imgnext(true); + } else if(code === 27) { + layer.close(dict.index); + } + } + } + + //切换 + dict.tabimg = function(key){ + if(data.length <= 1) return; + photos.start = dict.imgIndex - 1; + layer.close(dict.index); + return layer.photos(options, true, key); + setTimeout(function(){ + layer.photos(options, true, key); + }, 200); + } + + //一些动作 + dict.event = function(){ + dict.bigimg.hover(function(){ + dict.imgsee.show(); + }, function(){ + dict.imgsee.hide(); + }); + + dict.bigimg.find('.layui-layer-imgprev').on('click', function(event){ + event.preventDefault(); + dict.imgprev(); + }); + + dict.bigimg.find('.layui-layer-imgnext').on('click', function(event){ + event.preventDefault(); + dict.imgnext(); + }); + + $(document).on('keyup', dict.keyup); + }; + + //图片预加载 + function loadImage(url, callback, error) { + var img = new Image(); + img.src = url; + if(img.complete){ + return callback(img); + } + img.onload = function(){ + img.onload = null; + callback(img); + }; + img.onerror = function(e){ + img.onerror = null; + error(e); + }; + }; + + dict.loadi = layer.load(1, { + shade: 'shade' in options ? false : 0.9, + scrollbar: false + }); + + loadImage(data[start].src, function(img){ + layer.close(dict.loadi); + dict.index = layer.open($.extend({ + type: 1, + id: 'layui-layer-photos', + area: function(){ + var imgarea = [img.width, img.height]; + var winarea = [$(window).width() - 100, $(window).height() - 100]; + + //如果 实际图片的宽或者高比 屏幕大(那么进行缩放) + if(!options.full && (imgarea[0]>winarea[0]||imgarea[1]>winarea[1])){ + var wh = [imgarea[0]/winarea[0],imgarea[1]/winarea[1]];//取宽度缩放比例、高度缩放比例 + if(wh[0] > wh[1]){//取缩放比例最大的进行缩放 + imgarea[0] = imgarea[0]/wh[0]; + imgarea[1] = imgarea[1]/wh[0]; + } else if(wh[0] < wh[1]){ + imgarea[0] = imgarea[0]/wh[1]; + imgarea[1] = imgarea[1]/wh[1]; + } + } + + return [imgarea[0]+'px', imgarea[1]+'px']; + }(), + title: false, + shade: 0.9, + shadeClose: true, + closeBtn: false, + move: '.layui-layer-phimg img', + moveType: 1, + scrollbar: false, + moveOut: true, + //anim: Math.random()*5|0, + isOutAnim: false, + skin: 'layui-layer-photos' + skin('photos'), + content: '
                      ' + +''+ (data[start].alt||'') +'' + +'
                      ' + +(data.length > 1 ? '' : '') + +'
                      '+ (data[start].alt||'') +''+ dict.imgIndex +'/'+ data.length +'
                      ' + +'
                      ' + +'
                      ', + success: function(layero, index){ + dict.bigimg = layero.find('.layui-layer-phimg'); + dict.imgsee = layero.find('.layui-layer-imguide,.layui-layer-imgbar'); + dict.event(layero); + options.tab && options.tab(data[start], layero); + typeof success === 'function' && success(layero); + }, end: function(){ + dict.end = true; + $(document).off('keyup', dict.keyup); + } + }, options)); + }, function(){ + layer.close(dict.loadi); + layer.msg('当前图片地址异常
                      是否继续查看下一张?', { + time: 30000, + btn: ['下一张', '不看了'], + yes: function(){ + data.length > 1 && dict.imgnext(true,true); + } + }); + }); +}; + +//主入口 +ready.run = function(_$){ + $ = _$; + win = $(window); + doms.html = $('html'); + layer.open = function(deliver){ + var o = new Class(deliver); + return o.index; + }; +}; + +//加载方式 +window.layui && layui.define ? ( + layer.ready() + ,layui.define('jquery', function(exports){ //layui加载 + layer.path = layui.cache.dir; + ready.run(layui.$); + + //暴露模块 + window.layer = layer; + exports('layer', layer); + }) +) : ( + (typeof define === 'function' && define.amd) ? define(['jquery'], function(){ //requirejs加载 + ready.run(window.jQuery); + return layer; + }) : function(){ //普通script标签加载 + ready.run(window.jQuery); + layer.ready(); + }() +); + +}(window); diff --git a/novel-admin/src/main/resources/static/js/lay/modules/laypage.js b/novel-admin/src/main/resources/static/js/lay/modules/laypage.js new file mode 100644 index 0000000..dbc98ba --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/laypage.js @@ -0,0 +1,304 @@ +/** + + @Name : layui.laypage 分页组件 + @Author:贤心 + @License:MIT + + */ + +layui.define(function(exports){ + "use strict"; + + var doc = document + ,id = 'getElementById' + ,tag = 'getElementsByTagName' + + //字符常量 + ,MOD_NAME = 'laypage', DISABLED = 'layui-disabled' + + //构造器 + ,Class = function(options){ + var that = this; + that.config = options || {}; + that.config.index = ++laypage.index; + that.render(true); + }; + + //判断传入的容器类型 + Class.prototype.type = function(){ + var config = this.config; + if(typeof config.elem === 'object'){ + return config.elem.length === undefined ? 2 : 3; + } + }; + + //分页视图 + Class.prototype.view = function(){ + var that = this + ,config = that.config + ,groups = config.groups = 'groups' in config ? (config.groups|0) : 5; //连续页码个数 + + //排版 + config.layout = typeof config.layout === 'object' + ? config.layout + : ['prev', 'page', 'next']; + + config.count = config.count|0; //数据总数 + config.curr = (config.curr|0) || 1; //当前页 + + //每页条数的选择项 + config.limits = typeof config.limits === 'object' + ? config.limits + : [10, 20, 30, 40, 50]; + config.limit = (config.limit|0) || 10; //默认条数 + + //总页数 + config.pages = Math.ceil(config.count/config.limit) || 1; + + //当前页不能超过总页数 + if(config.curr > config.pages){ + config.curr = config.pages; + } + + //连续分页个数不能低于0且不能大于总页数 + if(groups < 0){ + groups = 1; + } else if (groups > config.pages){ + groups = config.pages; + } + + config.prev = 'prev' in config ? config.prev : '上一页'; //上一页文本 + config.next = 'next' in config ? config.next : '下一页'; //下一页文本 + + //计算当前组 + var index = config.pages > groups + ? Math.ceil( (config.curr + (groups > 1 ? 1 : 0)) / (groups > 0 ? groups : 1) ) + : 1 + + //试图片段 + ,views = { + //上一页 + prev: function(){ + return config.prev + ? ''+ config.prev +'' + : ''; + }() + + //页码 + ,page: function(){ + var pager = []; + + //数据量为0时,不输出页码 + if(config.count < 1){ + return ''; + } + + //首页 + if(index > 1 && config.first !== false && groups !== 0){ + pager.push(''+ (config.first || 1) +''); + } + + //计算当前页码组的起始页 + var halve = Math.floor((groups-1)/2) //页码数等分 + ,start = index > 1 ? config.curr - halve : 1 + ,end = index > 1 ? (function(){ + var max = config.curr + (groups - halve - 1); + return max > config.pages ? config.pages : max; + }()) : groups; + + //防止最后一组出现“不规定”的连续页码数 + if(end - start < groups - 1){ + start = end - groups + 1; + } + + //输出左分割符 + if(config.first !== false && start > 2){ + pager.push('') + } + + //输出连续页码 + for(; start <= end; start++){ + if(start === config.curr){ + //当前页 + pager.push(''+ start +''); + } else { + pager.push(''+ start +''); + } + } + + //输出输出右分隔符 & 末页 + if(config.pages > groups && config.pages > end && config.last !== false){ + if(end + 1 < config.pages){ + pager.push(''); + } + if(groups !== 0){ + pager.push(''+ (config.last || config.pages) +''); + } + } + + return pager.join(''); + }() + + //下一页 + ,next: function(){ + return config.next + ? ''+ config.next +'' + : ''; + }() + + //数据总数 + ,count: '共 '+ config.count +' 条' + + //每页条数 + ,limit: function(){ + var options = [''; + }() + + //跳页区域 + ,skip: function(){ + return ['到第' + ,'' + ,'页' + ,''].join(''); + }() + }; + + return ['
                      ' + ,function(){ + var plate = []; + layui.each(config.layout, function(index, item){ + if(views[item]){ + plate.push(views[item]) + } + }); + return plate.join(''); + }() + ,'
                      '].join(''); + }; + + //跳页的回调 + Class.prototype.jump = function(elem, isskip){ + if(!elem) return; + var that = this + ,config = that.config + ,childs = elem.children + ,btn = elem[tag]('button')[0] + ,input = elem[tag]('input')[0] + ,select = elem[tag]('select')[0] + ,skip = function(){ + var curr = input.value.replace(/\s|\D/g, '')|0; + if(curr){ + config.curr = curr; + that.render(); + } + }; + + if(isskip) return skip(); + + //页码 + for(var i = 0, len = childs.length; i < len; i++){ + if(childs[i].nodeName.toLowerCase() === 'a'){ + laypage.on(childs[i], 'click', function(){ + var curr = this.getAttribute('data-page')|0; + if(curr < 1 || curr > config.pages) return; + config.curr = curr; + that.render(); + }); + } + } + + //条数 + if(select){ + laypage.on(select, 'change', function(){ + var value = this.value; + if(config.curr*value > config.count){ + config.curr = Math.ceil(config.count/value); + } + config.limit = value; + that.render(); + }); + } + + //确定 + if(btn){ + laypage.on(btn, 'click', function(){ + skip(); + }); + } + }; + + //输入页数字控制 + Class.prototype.skip = function(elem){ + if(!elem) return; + var that = this, input = elem[tag]('input')[0]; + if(!input) return; + laypage.on(input, 'keyup', function(e){ + var value = this.value + ,keyCode = e.keyCode; + if(/^(37|38|39|40)$/.test(keyCode)) return; + if(/\D/.test(value)){ + this.value = value.replace(/\D/, ''); + } + if(keyCode === 13){ + that.jump(elem, true) + } + }); + }; + + //渲染分页 + Class.prototype.render = function(load){ + var that = this + ,config = that.config + ,type = that.type() + ,view = that.view(); + + if(type === 2){ + config.elem && (config.elem.innerHTML = view); + } else if(type === 3){ + config.elem.html(view); + } else { + if(doc[id](config.elem)){ + doc[id](config.elem).innerHTML = view; + } + } + + config.jump && config.jump(config, load); + + var elem = doc[id]('layui-laypage-' + config.index); + that.jump(elem); + + if(config.hash && !load){ + location.hash = '!'+ config.hash +'='+ config.curr; + } + + that.skip(elem); + }; + + //外部接口 + var laypage = { + //分页渲染 + render: function(options){ + var o = new Class(options); + return o.index; + } + ,index: layui.laypage ? (layui.laypage.index + 10000) : 0 + ,on: function(elem, even, fn){ + elem.attachEvent ? elem.attachEvent('on'+ even, function(e){ + fn.call(elem, e); //for ie + }) : elem.addEventListener(even, fn, false); + return this; + } + } + + exports(MOD_NAME, laypage); +}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/lay/modules/laytpl.js b/novel-admin/src/main/resources/static/js/lay/modules/laytpl.js new file mode 100644 index 0000000..e800196 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/laytpl.js @@ -0,0 +1,111 @@ +/** + + @Name : layui.laytpl 模板引擎 + @Author:贤心 + @License:MIT + + */ + +layui.define(function(exports){ + + "use strict"; + + var config = { + open: '{{', + close: '}}' + }; + + var tool = { + exp: function(str){ + return new RegExp(str, 'g'); + }, + //匹配满足规则内容 + query: function(type, _, __){ + var types = [ + '#([\\s\\S])+?', //js语句 + '([^{#}])*?' //普通字段 + ][type || 0]; + return exp((_||'') + config.open + types + config.close + (__||'')); + }, + escape: function(html){ + return String(html||'').replace(/&(?!#?[a-zA-Z0-9]+;)/g, '&') + .replace(//g, '>').replace(/'/g, ''').replace(/"/g, '"'); + }, + error: function(e, tplog){ + var error = 'Laytpl Error:'; + typeof console === 'object' && console.error(error + e + '\n'+ (tplog || '')); + return error + e; + } + }; + + var exp = tool.exp, Tpl = function(tpl){ + this.tpl = tpl; + }; + + Tpl.pt = Tpl.prototype; + + window.errors = 0; + + //编译模版 + Tpl.pt.parse = function(tpl, data){ + var that = this, tplog = tpl; + var jss = exp('^'+config.open+'#', ''), jsse = exp(config.close+'$', ''); + + tpl = tpl.replace(/\s+|\r|\t|\n/g, ' ').replace(exp(config.open+'#'), config.open+'# ') + + .replace(exp(config.close+'}'), '} '+config.close).replace(/\\/g, '\\\\') + + .replace(/(?="|')/g, '\\').replace(tool.query(), function(str){ + str = str.replace(jss, '').replace(jsse, ''); + return '";' + str.replace(/\\/g, '') + ';view+="'; + }) + + .replace(tool.query(1), function(str){ + var start = '"+('; + if(str.replace(/\s/g, '') === config.open+config.close){ + return ''; + } + str = str.replace(exp(config.open+'|'+config.close), ''); + if(/^=/.test(str)){ + str = str.replace(/^=/, ''); + start = '"+_escape_('; + } + return start + str.replace(/\\/g, '') + ')+"'; + }); + + tpl = '"use strict";var view = "' + tpl + '";return view;'; + + try{ + that.cache = tpl = new Function('d, _escape_', tpl); + return tpl(data, tool.escape); + } catch(e){ + delete that.cache; + return tool.error(e, tplog); + } + }; + + Tpl.pt.render = function(data, callback){ + var that = this, tpl; + if(!data) return tool.error('no data'); + tpl = that.cache ? that.cache(data, tool.escape) : that.parse(that.tpl, data); + if(!callback) return tpl; + callback(tpl); + }; + + var laytpl = function(tpl){ + if(typeof tpl !== 'string') return tool.error('Template not found'); + return new Tpl(tpl); + }; + + laytpl.config = function(options){ + options = options || {}; + for(var i in options){ + config[i] = options[i]; + } + }; + + laytpl.v = '1.2.0'; + + exports('laytpl', laytpl); + +}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/lay/modules/mobile.js b/novel-admin/src/main/resources/static/js/lay/modules/mobile.js new file mode 100644 index 0000000..e6f0016 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/mobile.js @@ -0,0 +1,30 @@ +/** + + @Name:layui 移动模块入口 | 构建后则为移动模块集合 + @Author:贤心 + @License:MIT + + */ + + +if(!layui['layui.mobile']){ + layui.config({ + base: layui.cache.dir + 'lay/modules/mobile/' + }).extend({ + 'layer-mobile': 'layer-mobile' + ,'zepto': 'zepto' + ,'upload-mobile': 'upload-mobile' + ,'layim-mobile': 'layim-mobile' + }); +} + +layui.define([ + 'layer-mobile' + ,'zepto' + ,'layim-mobile' +], function(exports){ + exports('mobile', { + layer: layui['layer-mobile'] //弹层 + ,layim: layui['layim-mobile'] //WebIM + }); +}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/lay/modules/mobile/layer-mobile.js b/novel-admin/src/main/resources/static/js/lay/modules/mobile/layer-mobile.js new file mode 100644 index 0000000..1b9ff1f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/mobile/layer-mobile.js @@ -0,0 +1,189 @@ +/*! + + @Name:layer mobile v2.0.0 弹层组件移动版 + @Author:贤心 + @Site:http://layer.layui.com/mobie/ + @License:MIT + + */ + +layui.define(function(exports){ + + "use strict"; + + var win = window, doc = document, query = 'querySelectorAll', claname = 'getElementsByClassName', S = function(s){ + return doc[query](s); + }; + + //默认配置 + var config = { + type: 0 + ,shade: true + ,shadeClose: true + ,fixed: true + ,anim: 'scale' //默认动画类型 + }; + + var ready = { + extend: function(obj){ + var newobj = JSON.parse(JSON.stringify(config)); + for(var i in obj){ + newobj[i] = obj[i]; + } + return newobj; + }, + timer: {}, end: {} + }; + + //点触事件 + ready.touch = function(elem, fn){ + elem.addEventListener('click', function(e){ + fn.call(this, e); + }, false); + }; + + var index = 0, classs = ['layui-m-layer'], Layer = function(options){ + var that = this; + that.config = ready.extend(options); + that.view(); + }; + + Layer.prototype.view = function(){ + var that = this, config = that.config, layerbox = doc.createElement('div'); + + that.id = layerbox.id = classs[0] + index; + layerbox.setAttribute('class', classs[0] + ' ' + classs[0]+(config.type || 0)); + layerbox.setAttribute('index', index); + + //标题区域 + var title = (function(){ + var titype = typeof config.title === 'object'; + return config.title + ? '

                      '+ (titype ? config.title[0] : config.title) +'

                      ' + : ''; + }()); + + //按钮区域 + var button = (function(){ + typeof config.btn === 'string' && (config.btn = [config.btn]); + var btns = (config.btn || []).length, btndom; + if(btns === 0 || !config.btn){ + return ''; + } + btndom = ''+ config.btn[0] +'' + if(btns === 2){ + btndom = ''+ config.btn[1] +'' + btndom; + } + return '
                      '+ btndom + '
                      '; + }()); + + if(!config.fixed){ + config.top = config.hasOwnProperty('top') ? config.top : 100; + config.style = config.style || ''; + config.style += ' top:'+ ( doc.body.scrollTop + config.top) + 'px'; + } + + if(config.type === 2){ + config.content = '

                      '+ (config.content||'') +'

                      '; + } + + if(config.skin) config.anim = 'up'; + if(config.skin === 'msg') config.shade = false; + + layerbox.innerHTML = (config.shade ? '
                      ' : '') + +'
                      ' + +'
                      ' + +'
                      ' + + title + +'
                      '+ config.content +'
                      ' + + button + +'
                      ' + +'
                      ' + +'
                      '; + + if(!config.type || config.type === 2){ + var dialogs = doc[claname](classs[0] + config.type), dialen = dialogs.length; + if(dialen >= 1){ + layer.close(dialogs[0].getAttribute('index')) + } + } + + document.body.appendChild(layerbox); + var elem = that.elem = S('#'+that.id)[0]; + config.success && config.success(elem); + + that.index = index++; + that.action(config, elem); + }; + + Layer.prototype.action = function(config, elem){ + var that = this; + + //自动关闭 + if(config.time){ + ready.timer[that.index] = setTimeout(function(){ + layer.close(that.index); + }, config.time*1000); + } + + //确认取消 + var btn = function(){ + var type = this.getAttribute('type'); + if(type == 0){ + config.no && config.no(); + layer.close(that.index); + } else { + config.yes ? config.yes(that.index) : layer.close(that.index); + } + }; + if(config.btn){ + var btns = elem[claname]('layui-m-layerbtn')[0].children, btnlen = btns.length; + for(var ii = 0; ii < btnlen; ii++){ + ready.touch(btns[ii], btn); + } + } + + //点遮罩关闭 + if(config.shade && config.shadeClose){ + var shade = elem[claname]('layui-m-layershade')[0]; + ready.touch(shade, function(){ + layer.close(that.index, config.end); + }); + } + + config.end && (ready.end[that.index] = config.end); + }; + + var layer = { + v: '2.0 m', + index: index, + + //核心方法 + open: function(options){ + var o = new Layer(options || {}); + return o.index; + }, + + close: function(index){ + var ibox = S('#'+classs[0]+index)[0]; + if(!ibox) return; + ibox.innerHTML = ''; + doc.body.removeChild(ibox); + clearTimeout(ready.timer[index]); + delete ready.timer[index]; + typeof ready.end[index] === 'function' && ready.end[index](); + delete ready.end[index]; + }, + + //关闭所有layer层 + closeAll: function(){ + var boxs = doc[claname](classs[0]); + for(var i = 0, len = boxs.length; i < len; i++){ + layer.close((boxs[0].getAttribute('index')|0)); + } + } + }; + + exports('layer-mobile', layer); + +}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/lay/modules/mobile/layim-mobile-open.js b/novel-admin/src/main/resources/static/js/lay/modules/mobile/layim-mobile-open.js new file mode 100644 index 0000000..bd623c5 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/mobile/layim-mobile-open.js @@ -0,0 +1,11 @@ +/** + + @Name:layim mobile 开源包 + @Author:贤心 + @License:MIT + + */ + +layui.define(function(exports){ + exports('layim-mobile', layui.v); +}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/lay/modules/mobile/upload-mobile.js b/novel-admin/src/main/resources/static/js/lay/modules/mobile/upload-mobile.js new file mode 100644 index 0000000..4f4ac7a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/mobile/upload-mobile.js @@ -0,0 +1,166 @@ +/*! + + @Title: layui.upload 单文件上传 - 全浏览器兼容版 + @Author: 贤心 + @License:MIT + + */ + +layui.define(['layer-mobile', 'zepto'] , function(exports){ + "use strict"; + + var $ = layui.zepto; + var layer = layui['layer-mobile']; + var device = layui.device(); + + var elemDragEnter = 'layui-upload-enter'; + var elemIframe = 'layui-upload-iframe'; + + var msgConf = { + icon: 2 + ,shift: 6 + }, fileType = { + file: '文件' + ,video: '视频' + ,audio: '音频' + }; + + layer.msg = function(content){ + return layer.open({ + content: content || '' + ,skin: 'msg' + ,time: 2 //2秒后自动关闭 + }); + }; + + var Upload = function(options){ + this.options = options; + }; + + //初始化渲染 + Upload.prototype.init = function(){ + var that = this, options = that.options; + var body = $('body'), elem = $(options.elem || '.layui-upload-file'); + var iframe = $(''); + + //插入iframe + $('#'+elemIframe)[0] || body.append(iframe); + + return elem.each(function(index, item){ + item = $(item); + var form = '
                      '; + + var type = item.attr('lay-type') || options.type; //获取文件类型 + + //包裹ui元素 + if(!options.unwrap){ + form = '
                      ' + form + ''+ ( + item.attr('lay-title') || options.title|| ('上传'+ (fileType[type]||'图片') ) + ) +'
                      '; + } + + form = $(form); + + //拖拽支持 + if(!options.unwrap){ + form.on('dragover', function(e){ + e.preventDefault(); + $(this).addClass(elemDragEnter); + }).on('dragleave', function(){ + $(this).removeClass(elemDragEnter); + }).on('drop', function(){ + $(this).removeClass(elemDragEnter); + }); + } + + //如果已经实例化,则移除包裹元素 + if(item.parent('form').attr('target') === elemIframe){ + if(options.unwrap){ + item.unwrap(); + } else { + item.parent().next().remove(); + item.unwrap().unwrap(); + } + }; + + //包裹元素 + item.wrap(form); + + //触发上传 + item.off('change').on('change', function(){ + that.action(this, type); + }); + }); + }; + + //提交上传 + Upload.prototype.action = function(input, type){ + var that = this, options = that.options, val = input.value; + var item = $(input), ext = item.attr('lay-ext') || options.ext || ''; //获取支持上传的文件扩展名; + + if(!val){ + return; + }; + + //校验文件 + switch(type){ + case 'file': //一般文件 + if(ext && !RegExp('\\w\\.('+ ext +')$', 'i').test(escape(val))){ + layer.msg('不支持该文件格式', msgConf); + return input.value = ''; + } + break; + case 'video': //视频文件 + if(!RegExp('\\w\\.('+ (ext||'avi|mp4|wma|rmvb|rm|flash|3gp|flv') +')$', 'i').test(escape(val))){ + layer.msg('不支持该视频格式', msgConf); + return input.value = ''; + } + break; + case 'audio': //音频文件 + if(!RegExp('\\w\\.('+ (ext||'mp3|wav|mid') +')$', 'i').test(escape(val))){ + layer.msg('不支持该音频格式', msgConf); + return input.value = ''; + } + break; + default: //图片文件 + if(!RegExp('\\w\\.('+ (ext||'jpg|png|gif|bmp|jpeg') +')$', 'i').test(escape(val))){ + layer.msg('不支持该图片格式', msgConf); + return input.value = ''; + } + break; + } + + options.before && options.before(input); + item.parent().submit(); + + var iframe = $('#'+elemIframe), timer = setInterval(function() { + var res; + try { + res = iframe.contents().find('body').text(); + } catch(e) { + layer.msg('上传接口存在跨域', msgConf); + clearInterval(timer); + } + if(res){ + clearInterval(timer); + iframe.contents().find('body').html(''); + try { + res = JSON.parse(res); + } catch(e){ + res = {}; + return layer.msg('请对上传接口返回JSON字符', msgConf); + } + typeof options.success === 'function' && options.success(res, input); + } + }, 30); + + input.value = ''; + }; + + //暴露接口 + exports('upload-mobile', function(options){ + var upload = new Upload(options = options || {}); + upload.init(); + }); +}); + diff --git a/novel-admin/src/main/resources/static/js/lay/modules/mobile/zepto.js b/novel-admin/src/main/resources/static/js/lay/modules/mobile/zepto.js new file mode 100644 index 0000000..404ec0b --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/mobile/zepto.js @@ -0,0 +1,1646 @@ +/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */ + +layui.define(function(exports){ + + var Zepto = (function() { + var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice, + document = window.document, + elementDisplay = {}, classCache = {}, + cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 }, + fragmentRE = /^\s*<(\w+|!)[^>]*>/, + singleTagRE = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + rootNodeRE = /^(?:body|html)$/i, + capitalRE = /([A-Z])/g, + + // special attributes that should be get/set via method calls + methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'], + + adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ], + table = document.createElement('table'), + tableRow = document.createElement('tr'), + containers = { + 'tr': document.createElement('tbody'), + 'tbody': table, 'thead': table, 'tfoot': table, + 'td': tableRow, 'th': tableRow, + '*': document.createElement('div') + }, + readyRE = /complete|loaded|interactive/, + simpleSelectorRE = /^[\w-]*$/, + class2type = {}, + toString = class2type.toString, + zepto = {}, + camelize, uniq, + tempParent = document.createElement('div'), + propMap = { + 'tabindex': 'tabIndex', + 'readonly': 'readOnly', + 'for': 'htmlFor', + 'class': 'className', + 'maxlength': 'maxLength', + 'cellspacing': 'cellSpacing', + 'cellpadding': 'cellPadding', + 'rowspan': 'rowSpan', + 'colspan': 'colSpan', + 'usemap': 'useMap', + 'frameborder': 'frameBorder', + 'contenteditable': 'contentEditable' + }, + isArray = Array.isArray || + function(object){ return object instanceof Array } + + zepto.matches = function(element, selector) { + if (!selector || !element || element.nodeType !== 1) return false + var matchesSelector = element.matches || element.webkitMatchesSelector || + element.mozMatchesSelector || element.oMatchesSelector || + element.matchesSelector + if (matchesSelector) return matchesSelector.call(element, selector) + // fall back to performing a selector: + var match, parent = element.parentNode, temp = !parent + if (temp) (parent = tempParent).appendChild(element) + match = ~zepto.qsa(parent, selector).indexOf(element) + temp && tempParent.removeChild(element) + return match + } + + function type(obj) { + return obj == null ? String(obj) : + class2type[toString.call(obj)] || "object" + } + + function isFunction(value) { return type(value) == "function" } + function isWindow(obj) { return obj != null && obj == obj.window } + function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE } + function isObject(obj) { return type(obj) == "object" } + function isPlainObject(obj) { + return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype + } + + function likeArray(obj) { + var length = !!obj && 'length' in obj && obj.length, + type = $.type(obj) + + return 'function' != type && !isWindow(obj) && ( + 'array' == type || length === 0 || + (typeof length == 'number' && length > 0 && (length - 1) in obj) + ) + } + + function compact(array) { return filter.call(array, function(item){ return item != null }) } + function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array } + camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) } + function dasherize(str) { + return str.replace(/::/g, '/') + .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') + .replace(/([a-z\d])([A-Z])/g, '$1_$2') + .replace(/_/g, '-') + .toLowerCase() + } + uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) } + + function classRE(name) { + return name in classCache ? + classCache[name] : (classCache[name] = new RegExp('(^|\\s)' + name + '(\\s|$)')) + } + + function maybeAddPx(name, value) { + return (typeof value == "number" && !cssNumber[dasherize(name)]) ? value + "px" : value + } + + function defaultDisplay(nodeName) { + var element, display + if (!elementDisplay[nodeName]) { + element = document.createElement(nodeName) + document.body.appendChild(element) + display = getComputedStyle(element, '').getPropertyValue("display") + element.parentNode.removeChild(element) + display == "none" && (display = "block") + elementDisplay[nodeName] = display + } + return elementDisplay[nodeName] + } + + function children(element) { + return 'children' in element ? + slice.call(element.children) : + $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node }) + } + + function Z(dom, selector) { + var i, len = dom ? dom.length : 0 + for (i = 0; i < len; i++) this[i] = dom[i] + this.length = len + this.selector = selector || '' + } + + // `$.zepto.fragment` takes a html string and an optional tag name + // to generate DOM nodes from the given html string. + // The generated DOM nodes are returned as an array. + // This function can be overridden in plugins for example to make + // it compatible with browsers that don't support the DOM fully. + zepto.fragment = function(html, name, properties) { + var dom, nodes, container + + // A special case optimization for a single tag + if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1)) + + if (!dom) { + if (html.replace) html = html.replace(tagExpanderRE, "<$1>") + if (name === undefined) name = fragmentRE.test(html) && RegExp.$1 + if (!(name in containers)) name = '*' + + container = containers[name] + container.innerHTML = '' + html + dom = $.each(slice.call(container.childNodes), function(){ + container.removeChild(this) + }) + } + + if (isPlainObject(properties)) { + nodes = $(dom) + $.each(properties, function(key, value) { + if (methodAttributes.indexOf(key) > -1) nodes[key](value) + else nodes.attr(key, value) + }) + } + + return dom + } + + // `$.zepto.Z` swaps out the prototype of the given `dom` array + // of nodes with `$.fn` and thus supplying all the Zepto functions + // to the array. This method can be overridden in plugins. + zepto.Z = function(dom, selector) { + return new Z(dom, selector) + } + + // `$.zepto.isZ` should return `true` if the given object is a Zepto + // collection. This method can be overridden in plugins. + zepto.isZ = function(object) { + return object instanceof zepto.Z + } + + // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and + // takes a CSS selector and an optional context (and handles various + // special cases). + // This method can be overridden in plugins. + zepto.init = function(selector, context) { + var dom + // If nothing given, return an empty Zepto collection + if (!selector) return zepto.Z() + // Optimize for string selectors + else if (typeof selector == 'string') { + selector = selector.trim() + // If it's a html fragment, create nodes from it + // Note: In both Chrome 21 and Firefox 15, DOM error 12 + // is thrown if the fragment doesn't begin with < + if (selector[0] == '<' && fragmentRE.test(selector)) + dom = zepto.fragment(selector, RegExp.$1, context), selector = null + // If there's a context, create a collection on that context first, and select + // nodes from there + else if (context !== undefined) return $(context).find(selector) + // If it's a CSS selector, use it to select nodes. + else dom = zepto.qsa(document, selector) + } + // If a function is given, call it when the DOM is ready + else if (isFunction(selector)) return $(document).ready(selector) + // If a Zepto collection is given, just return it + else if (zepto.isZ(selector)) return selector + else { + // normalize array if an array of nodes is given + if (isArray(selector)) dom = compact(selector) + // Wrap DOM nodes. + else if (isObject(selector)) + dom = [selector], selector = null + // If it's a html fragment, create nodes from it + else if (fragmentRE.test(selector)) + dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null + // If there's a context, create a collection on that context first, and select + // nodes from there + else if (context !== undefined) return $(context).find(selector) + // And last but no least, if it's a CSS selector, use it to select nodes. + else dom = zepto.qsa(document, selector) + } + // create a new Zepto collection from the nodes found + return zepto.Z(dom, selector) + } + + // `$` will be the base `Zepto` object. When calling this + // function just call `$.zepto.init, which makes the implementation + // details of selecting nodes and creating Zepto collections + // patchable in plugins. + $ = function(selector, context){ + return zepto.init(selector, context) + } + + function extend(target, source, deep) { + for (key in source) + if (deep && (isPlainObject(source[key]) || isArray(source[key]))) { + if (isPlainObject(source[key]) && !isPlainObject(target[key])) + target[key] = {} + if (isArray(source[key]) && !isArray(target[key])) + target[key] = [] + extend(target[key], source[key], deep) + } + else if (source[key] !== undefined) target[key] = source[key] + } + + // Copy all but undefined properties from one or more + // objects to the `target` object. + $.extend = function(target){ + var deep, args = slice.call(arguments, 1) + if (typeof target == 'boolean') { + deep = target + target = args.shift() + } + args.forEach(function(arg){ extend(target, arg, deep) }) + return target + } + + // `$.zepto.qsa` is Zepto's CSS selector implementation which + // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`. + // This method can be overridden in plugins. + zepto.qsa = function(element, selector){ + var found, + maybeID = selector[0] == '#', + maybeClass = !maybeID && selector[0] == '.', + nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked + isSimple = simpleSelectorRE.test(nameOnly) + return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById + ( (found = element.getElementById(nameOnly)) ? [found] : [] ) : + (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] : + slice.call( + isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName + maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class + element.getElementsByTagName(selector) : // Or a tag + element.querySelectorAll(selector) // Or it's not simple, and we need to query all + ) + } + + function filtered(nodes, selector) { + return selector == null ? $(nodes) : $(nodes).filter(selector) + } + + $.contains = document.documentElement.contains ? + function(parent, node) { + return parent !== node && parent.contains(node) + } : + function(parent, node) { + while (node && (node = node.parentNode)) + if (node === parent) return true + return false + } + + function funcArg(context, arg, idx, payload) { + return isFunction(arg) ? arg.call(context, idx, payload) : arg + } + + function setAttribute(node, name, value) { + value == null ? node.removeAttribute(name) : node.setAttribute(name, value) + } + + // access className property while respecting SVGAnimatedString + function className(node, value){ + var klass = node.className || '', + svg = klass && klass.baseVal !== undefined + + if (value === undefined) return svg ? klass.baseVal : klass + svg ? (klass.baseVal = value) : (node.className = value) + } + + // "true" => true + // "false" => false + // "null" => null + // "42" => 42 + // "42.5" => 42.5 + // "08" => "08" + // JSON => parse if valid + // String => self + function deserializeValue(value) { + try { + return value ? + value == "true" || + ( value == "false" ? false : + value == "null" ? null : + +value + "" == value ? +value : + /^[\[\{]/.test(value) ? $.parseJSON(value) : + value ) + : value + } catch(e) { + return value + } + } + + $.type = type + $.isFunction = isFunction + $.isWindow = isWindow + $.isArray = isArray + $.isPlainObject = isPlainObject + + $.isEmptyObject = function(obj) { + var name + for (name in obj) return false + return true + } + + $.isNumeric = function(val) { + var num = Number(val), type = typeof val + return val != null && type != 'boolean' && + (type != 'string' || val.length) && + !isNaN(num) && isFinite(num) || false + } + + $.inArray = function(elem, array, i){ + return emptyArray.indexOf.call(array, elem, i) + } + + $.camelCase = camelize + $.trim = function(str) { + return str == null ? "" : String.prototype.trim.call(str) + } + + // plugin compatibility + $.uuid = 0 + $.support = { } + $.expr = { } + $.noop = function() {} + + $.map = function(elements, callback){ + var value, values = [], i, key + if (likeArray(elements)) + for (i = 0; i < elements.length; i++) { + value = callback(elements[i], i) + if (value != null) values.push(value) + } + else + for (key in elements) { + value = callback(elements[key], key) + if (value != null) values.push(value) + } + return flatten(values) + } + + $.each = function(elements, callback){ + var i, key + if (likeArray(elements)) { + for (i = 0; i < elements.length; i++) + if (callback.call(elements[i], i, elements[i]) === false) return elements + } else { + for (key in elements) + if (callback.call(elements[key], key, elements[key]) === false) return elements + } + + return elements + } + + $.grep = function(elements, callback){ + return filter.call(elements, callback) + } + + if (window.JSON) $.parseJSON = JSON.parse + + // Populate the class2type map + $.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase() + }) + + // Define methods that will be available on all + // Zepto collections + $.fn = { + constructor: zepto.Z, + length: 0, + + // Because a collection acts like an array + // copy over these useful array functions. + forEach: emptyArray.forEach, + reduce: emptyArray.reduce, + push: emptyArray.push, + sort: emptyArray.sort, + splice: emptyArray.splice, + indexOf: emptyArray.indexOf, + concat: function(){ + var i, value, args = [] + for (i = 0; i < arguments.length; i++) { + value = arguments[i] + args[i] = zepto.isZ(value) ? value.toArray() : value + } + return concat.apply(zepto.isZ(this) ? this.toArray() : this, args) + }, + + // `map` and `slice` in the jQuery API work differently + // from their array counterparts + map: function(fn){ + return $($.map(this, function(el, i){ return fn.call(el, i, el) })) + }, + slice: function(){ + return $(slice.apply(this, arguments)) + }, + + ready: function(callback){ + // need to check if document.body exists for IE as that browser reports + // document ready when it hasn't yet created the body element + if (readyRE.test(document.readyState) && document.body) callback($) + else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false) + return this + }, + get: function(idx){ + return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length] + }, + toArray: function(){ return this.get() }, + size: function(){ + return this.length + }, + remove: function(){ + return this.each(function(){ + if (this.parentNode != null) + this.parentNode.removeChild(this) + }) + }, + each: function(callback){ + emptyArray.every.call(this, function(el, idx){ + return callback.call(el, idx, el) !== false + }) + return this + }, + filter: function(selector){ + if (isFunction(selector)) return this.not(this.not(selector)) + return $(filter.call(this, function(element){ + return zepto.matches(element, selector) + })) + }, + add: function(selector,context){ + return $(uniq(this.concat($(selector,context)))) + }, + is: function(selector){ + return this.length > 0 && zepto.matches(this[0], selector) + }, + not: function(selector){ + var nodes=[] + if (isFunction(selector) && selector.call !== undefined) + this.each(function(idx){ + if (!selector.call(this,idx)) nodes.push(this) + }) + else { + var excludes = typeof selector == 'string' ? this.filter(selector) : + (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector) + this.forEach(function(el){ + if (excludes.indexOf(el) < 0) nodes.push(el) + }) + } + return $(nodes) + }, + has: function(selector){ + return this.filter(function(){ + return isObject(selector) ? + $.contains(this, selector) : + $(this).find(selector).size() + }) + }, + eq: function(idx){ + return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1) + }, + first: function(){ + var el = this[0] + return el && !isObject(el) ? el : $(el) + }, + last: function(){ + var el = this[this.length - 1] + return el && !isObject(el) ? el : $(el) + }, + find: function(selector){ + var result, $this = this + if (!selector) result = $() + else if (typeof selector == 'object') + result = $(selector).filter(function(){ + var node = this + return emptyArray.some.call($this, function(parent){ + return $.contains(parent, node) + }) + }) + else if (this.length == 1) result = $(zepto.qsa(this[0], selector)) + else result = this.map(function(){ return zepto.qsa(this, selector) }) + return result + }, + closest: function(selector, context){ + var nodes = [], collection = typeof selector == 'object' && $(selector) + this.each(function(_, node){ + while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) + node = node !== context && !isDocument(node) && node.parentNode + if (node && nodes.indexOf(node) < 0) nodes.push(node) + }) + return $(nodes) + }, + parents: function(selector){ + var ancestors = [], nodes = this + while (nodes.length > 0) + nodes = $.map(nodes, function(node){ + if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) { + ancestors.push(node) + return node + } + }) + return filtered(ancestors, selector) + }, + parent: function(selector){ + return filtered(uniq(this.pluck('parentNode')), selector) + }, + children: function(selector){ + return filtered(this.map(function(){ return children(this) }), selector) + }, + contents: function() { + return this.map(function() { return this.contentDocument || slice.call(this.childNodes) }) + }, + siblings: function(selector){ + return filtered(this.map(function(i, el){ + return filter.call(children(el.parentNode), function(child){ return child!==el }) + }), selector) + }, + empty: function(){ + return this.each(function(){ this.innerHTML = '' }) + }, + // `pluck` is borrowed from Prototype.js + pluck: function(property){ + return $.map(this, function(el){ return el[property] }) + }, + show: function(){ + return this.each(function(){ + this.style.display == "none" && (this.style.display = '') + if (getComputedStyle(this, '').getPropertyValue("display") == "none") + this.style.display = defaultDisplay(this.nodeName) + }) + }, + replaceWith: function(newContent){ + return this.before(newContent).remove() + }, + wrap: function(structure){ + var func = isFunction(structure) + if (this[0] && !func) + var dom = $(structure).get(0), + clone = dom.parentNode || this.length > 1 + + return this.each(function(index){ + $(this).wrapAll( + func ? structure.call(this, index) : + clone ? dom.cloneNode(true) : dom + ) + }) + }, + wrapAll: function(structure){ + if (this[0]) { + $(this[0]).before(structure = $(structure)) + var children + // drill down to the inmost element + while ((children = structure.children()).length) structure = children.first() + $(structure).append(this) + } + return this + }, + wrapInner: function(structure){ + var func = isFunction(structure) + return this.each(function(index){ + var self = $(this), contents = self.contents(), + dom = func ? structure.call(this, index) : structure + contents.length ? contents.wrapAll(dom) : self.append(dom) + }) + }, + unwrap: function(){ + this.parent().each(function(){ + $(this).replaceWith($(this).children()) + }) + return this + }, + clone: function(){ + return this.map(function(){ return this.cloneNode(true) }) + }, + hide: function(){ + return this.css("display", "none") + }, + toggle: function(setting){ + return this.each(function(){ + var el = $(this) + ;(setting === undefined ? el.css("display") == "none" : setting) ? el.show() : el.hide() + }) + }, + prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') }, + next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') }, + html: function(html){ + return 0 in arguments ? + this.each(function(idx){ + var originHtml = this.innerHTML + $(this).empty().append( funcArg(this, html, idx, originHtml) ) + }) : + (0 in this ? this[0].innerHTML : null) + }, + text: function(text){ + return 0 in arguments ? + this.each(function(idx){ + var newText = funcArg(this, text, idx, this.textContent) + this.textContent = newText == null ? '' : ''+newText + }) : + (0 in this ? this.pluck('textContent').join("") : null) + }, + attr: function(name, value){ + var result + return (typeof name == 'string' && !(1 in arguments)) ? + (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) : + this.each(function(idx){ + if (this.nodeType !== 1) return + if (isObject(name)) for (key in name) setAttribute(this, key, name[key]) + else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name))) + }) + }, + removeAttr: function(name){ + return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){ + setAttribute(this, attribute) + }, this)}) + }, + prop: function(name, value){ + name = propMap[name] || name + return (1 in arguments) ? + this.each(function(idx){ + this[name] = funcArg(this, value, idx, this[name]) + }) : + (this[0] && this[0][name]) + }, + removeProp: function(name){ + name = propMap[name] || name + return this.each(function(){ delete this[name] }) + }, + data: function(name, value){ + var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase() + + var data = (1 in arguments) ? + this.attr(attrName, value) : + this.attr(attrName) + + return data !== null ? deserializeValue(data) : undefined + }, + val: function(value){ + if (0 in arguments) { + if (value == null) value = "" + return this.each(function(idx){ + this.value = funcArg(this, value, idx, this.value) + }) + } else { + return this[0] && (this[0].multiple ? + $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') : + this[0].value) + } + }, + offset: function(coordinates){ + if (coordinates) return this.each(function(index){ + var $this = $(this), + coords = funcArg(this, coordinates, index, $this.offset()), + parentOffset = $this.offsetParent().offset(), + props = { + top: coords.top - parentOffset.top, + left: coords.left - parentOffset.left + } + + if ($this.css('position') == 'static') props['position'] = 'relative' + $this.css(props) + }) + if (!this.length) return null + if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0])) + return {top: 0, left: 0} + var obj = this[0].getBoundingClientRect() + return { + left: obj.left + window.pageXOffset, + top: obj.top + window.pageYOffset, + width: Math.round(obj.width), + height: Math.round(obj.height) + } + }, + css: function(property, value){ + if (arguments.length < 2) { + var element = this[0] + if (typeof property == 'string') { + if (!element) return + return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property) + } else if (isArray(property)) { + if (!element) return + var props = {} + var computedStyle = getComputedStyle(element, '') + $.each(property, function(_, prop){ + props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop)) + }) + return props + } + } + + var css = '' + if (type(property) == 'string') { + if (!value && value !== 0) + this.each(function(){ this.style.removeProperty(dasherize(property)) }) + else + css = dasherize(property) + ":" + maybeAddPx(property, value) + } else { + for (key in property) + if (!property[key] && property[key] !== 0) + this.each(function(){ this.style.removeProperty(dasherize(key)) }) + else + css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';' + } + + return this.each(function(){ this.style.cssText += ';' + css }) + }, + index: function(element){ + return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]) + }, + hasClass: function(name){ + if (!name) return false + return emptyArray.some.call(this, function(el){ + return this.test(className(el)) + }, classRE(name)) + }, + addClass: function(name){ + if (!name) return this + return this.each(function(idx){ + if (!('className' in this)) return + classList = [] + var cls = className(this), newName = funcArg(this, name, idx, cls) + newName.split(/\s+/g).forEach(function(klass){ + if (!$(this).hasClass(klass)) classList.push(klass) + }, this) + classList.length && className(this, cls + (cls ? " " : "") + classList.join(" ")) + }) + }, + removeClass: function(name){ + return this.each(function(idx){ + if (!('className' in this)) return + if (name === undefined) return className(this, '') + classList = className(this) + funcArg(this, name, idx, classList).split(/\s+/g).forEach(function(klass){ + classList = classList.replace(classRE(klass), " ") + }) + className(this, classList.trim()) + }) + }, + toggleClass: function(name, when){ + if (!name) return this + return this.each(function(idx){ + var $this = $(this), names = funcArg(this, name, idx, className(this)) + names.split(/\s+/g).forEach(function(klass){ + (when === undefined ? !$this.hasClass(klass) : when) ? + $this.addClass(klass) : $this.removeClass(klass) + }) + }) + }, + scrollTop: function(value){ + if (!this.length) return + var hasScrollTop = 'scrollTop' in this[0] + if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset + return this.each(hasScrollTop ? + function(){ this.scrollTop = value } : + function(){ this.scrollTo(this.scrollX, value) }) + }, + scrollLeft: function(value){ + if (!this.length) return + var hasScrollLeft = 'scrollLeft' in this[0] + if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset + return this.each(hasScrollLeft ? + function(){ this.scrollLeft = value } : + function(){ this.scrollTo(value, this.scrollY) }) + }, + position: function() { + if (!this.length) return + + var elem = this[0], + // Get *real* offsetParent + offsetParent = this.offsetParent(), + // Get correct offsets + offset = this.offset(), + parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset() + + // Subtract element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + offset.top -= parseFloat( $(elem).css('margin-top') ) || 0 + offset.left -= parseFloat( $(elem).css('margin-left') ) || 0 + + // Add offsetParent borders + parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0 + parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0 + + // Subtract the two offsets + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + } + }, + offsetParent: function() { + return this.map(function(){ + var parent = this.offsetParent || document.body + while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static") + parent = parent.offsetParent + return parent + }) + } + } + + // for now + $.fn.detach = $.fn.remove + + // Generate the `width` and `height` functions + ;['width', 'height'].forEach(function(dimension){ + var dimensionProperty = + dimension.replace(/./, function(m){ return m[0].toUpperCase() }) + + $.fn[dimension] = function(value){ + var offset, el = this[0] + if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] : + isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : + (offset = this.offset()) && offset[dimension] + else return this.each(function(idx){ + el = $(this) + el.css(dimension, funcArg(this, value, idx, el[dimension]())) + }) + } + }) + + function traverseNode(node, fun) { + fun(node) + for (var i = 0, len = node.childNodes.length; i < len; i++) + traverseNode(node.childNodes[i], fun) + } + + // Generate the `after`, `prepend`, `before`, `append`, + // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods. + adjacencyOperators.forEach(function(operator, operatorIndex) { + var inside = operatorIndex % 2 //=> prepend, append + + $.fn[operator] = function(){ + // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings + var argType, nodes = $.map(arguments, function(arg) { + var arr = [] + argType = type(arg) + if (argType == "array") { + arg.forEach(function(el) { + if (el.nodeType !== undefined) return arr.push(el) + else if ($.zepto.isZ(el)) return arr = arr.concat(el.get()) + arr = arr.concat(zepto.fragment(el)) + }) + return arr + } + return argType == "object" || arg == null ? + arg : zepto.fragment(arg) + }), + parent, copyByClone = this.length > 1 + if (nodes.length < 1) return this + + return this.each(function(_, target){ + parent = inside ? target : target.parentNode + + // convert all methods to a "before" operation + target = operatorIndex == 0 ? target.nextSibling : + operatorIndex == 1 ? target.firstChild : + operatorIndex == 2 ? target : + null + + var parentInDocument = $.contains(document.documentElement, parent) + + nodes.forEach(function(node){ + if (copyByClone) node = node.cloneNode(true) + else if (!parent) return $(node).remove() + + parent.insertBefore(node, target) + if (parentInDocument) traverseNode(node, function(el){ + if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && + (!el.type || el.type === 'text/javascript') && !el.src){ + var target = el.ownerDocument ? el.ownerDocument.defaultView : window + target['eval'].call(target, el.innerHTML) + } + }) + }) + }) + } + + // after => insertAfter + // prepend => prependTo + // before => insertBefore + // append => appendTo + $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){ + $(html)[operator](this) + return this + } + }) + + zepto.Z.prototype = Z.prototype = $.fn + + // Export internal API functions in the `$.zepto` namespace + zepto.uniq = uniq + zepto.deserializeValue = deserializeValue + $.zepto = zepto + + return $ +})() + +;(function($){ + var _zid = 1, undefined, + slice = Array.prototype.slice, + isFunction = $.isFunction, + isString = function(obj){ return typeof obj == 'string' }, + handlers = {}, + specialEvents={}, + focusinSupported = 'onfocusin' in window, + focus = { focus: 'focusin', blur: 'focusout' }, + hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' } + + specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents' + + function zid(element) { + return element._zid || (element._zid = _zid++) + } + function findHandlers(element, event, fn, selector) { + event = parse(event) + if (event.ns) var matcher = matcherFor(event.ns) + return (handlers[zid(element)] || []).filter(function(handler) { + return handler + && (!event.e || handler.e == event.e) + && (!event.ns || matcher.test(handler.ns)) + && (!fn || zid(handler.fn) === zid(fn)) + && (!selector || handler.sel == selector) + }) + } + function parse(event) { + var parts = ('' + event).split('.') + return {e: parts[0], ns: parts.slice(1).sort().join(' ')} + } + function matcherFor(ns) { + return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)') + } + + function eventCapture(handler, captureSetting) { + return handler.del && + (!focusinSupported && (handler.e in focus)) || + !!captureSetting + } + + function realEvent(type) { + return hover[type] || (focusinSupported && focus[type]) || type + } + + function add(element, events, fn, data, selector, delegator, capture){ + var id = zid(element), set = (handlers[id] || (handlers[id] = [])) + events.split(/\s/).forEach(function(event){ + if (event == 'ready') return $(document).ready(fn) + var handler = parse(event) + handler.fn = fn + handler.sel = selector + // emulate mouseenter, mouseleave + if (handler.e in hover) fn = function(e){ + var related = e.relatedTarget + if (!related || (related !== this && !$.contains(this, related))) + return handler.fn.apply(this, arguments) + } + handler.del = delegator + var callback = delegator || fn + handler.proxy = function(e){ + e = compatible(e) + if (e.isImmediatePropagationStopped()) return + e.data = data + var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args)) + if (result === false) e.preventDefault(), e.stopPropagation() + return result + } + handler.i = set.length + set.push(handler) + if ('addEventListener' in element) + element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) + }) + } + function remove(element, events, fn, selector, capture){ + var id = zid(element) + ;(events || '').split(/\s/).forEach(function(event){ + findHandlers(element, event, fn, selector).forEach(function(handler){ + delete handlers[id][handler.i] + if ('removeEventListener' in element) + element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) + }) + }) + } + + $.event = { add: add, remove: remove } + + $.proxy = function(fn, context) { + var args = (2 in arguments) && slice.call(arguments, 2) + if (isFunction(fn)) { + var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) } + proxyFn._zid = zid(fn) + return proxyFn + } else if (isString(context)) { + if (args) { + args.unshift(fn[context], fn) + return $.proxy.apply(null, args) + } else { + return $.proxy(fn[context], fn) + } + } else { + throw new TypeError("expected function") + } + } + + $.fn.bind = function(event, data, callback){ + return this.on(event, data, callback) + } + $.fn.unbind = function(event, callback){ + return this.off(event, callback) + } + $.fn.one = function(event, selector, data, callback){ + return this.on(event, selector, data, callback, 1) + } + + var returnTrue = function(){return true}, + returnFalse = function(){return false}, + ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/, + eventMethods = { + preventDefault: 'isDefaultPrevented', + stopImmediatePropagation: 'isImmediatePropagationStopped', + stopPropagation: 'isPropagationStopped' + } + + function compatible(event, source) { + if (source || !event.isDefaultPrevented) { + source || (source = event) + + $.each(eventMethods, function(name, predicate) { + var sourceMethod = source[name] + event[name] = function(){ + this[predicate] = returnTrue + return sourceMethod && sourceMethod.apply(source, arguments) + } + event[predicate] = returnFalse + }) + + event.timeStamp || (event.timeStamp = Date.now()) + + if (source.defaultPrevented !== undefined ? source.defaultPrevented : + 'returnValue' in source ? source.returnValue === false : + source.getPreventDefault && source.getPreventDefault()) + event.isDefaultPrevented = returnTrue + } + return event + } + + function createProxy(event) { + var key, proxy = { originalEvent: event } + for (key in event) + if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key] + + return compatible(proxy, event) + } + + $.fn.delegate = function(selector, event, callback){ + return this.on(event, selector, callback) + } + $.fn.undelegate = function(selector, event, callback){ + return this.off(event, selector, callback) + } + + $.fn.live = function(event, callback){ + $(document.body).delegate(this.selector, event, callback) + return this + } + $.fn.die = function(event, callback){ + $(document.body).undelegate(this.selector, event, callback) + return this + } + + $.fn.on = function(event, selector, data, callback, one){ + var autoRemove, delegator, $this = this + if (event && !isString(event)) { + $.each(event, function(type, fn){ + $this.on(type, selector, data, fn, one) + }) + return $this + } + + if (!isString(selector) && !isFunction(callback) && callback !== false) + callback = data, data = selector, selector = undefined + if (callback === undefined || data === false) + callback = data, data = undefined + + if (callback === false) callback = returnFalse + + return $this.each(function(_, element){ + if (one) autoRemove = function(e){ + remove(element, e.type, callback) + return callback.apply(this, arguments) + } + + if (selector) delegator = function(e){ + var evt, match = $(e.target).closest(selector, element).get(0) + if (match && match !== element) { + evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element}) + return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1))) + } + } + + add(element, event, callback, data, selector, delegator || autoRemove) + }) + } + $.fn.off = function(event, selector, callback){ + var $this = this + if (event && !isString(event)) { + $.each(event, function(type, fn){ + $this.off(type, selector, fn) + }) + return $this + } + + if (!isString(selector) && !isFunction(callback) && callback !== false) + callback = selector, selector = undefined + + if (callback === false) callback = returnFalse + + return $this.each(function(){ + remove(this, event, callback, selector) + }) + } + + $.fn.trigger = function(event, args){ + event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event) + event._args = args + return this.each(function(){ + // handle focus(), blur() by calling them directly + if (event.type in focus && typeof this[event.type] == "function") this[event.type]() + // items in the collection might not be DOM elements + else if ('dispatchEvent' in this) this.dispatchEvent(event) + else $(this).triggerHandler(event, args) + }) + } + + // triggers event handlers on current element just as if an event occurred, + // doesn't trigger an actual event, doesn't bubble + $.fn.triggerHandler = function(event, args){ + var e, result + this.each(function(i, element){ + e = createProxy(isString(event) ? $.Event(event) : event) + e._args = args + e.target = element + $.each(findHandlers(element, event.type || event), function(i, handler){ + result = handler.proxy(e) + if (e.isImmediatePropagationStopped()) return false + }) + }) + return result + } + + // shortcut methods for `.bind(event, fn)` for each event type + ;('focusin focusout focus blur load resize scroll unload click dblclick '+ + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+ + 'change select keydown keypress keyup error').split(' ').forEach(function(event) { + $.fn[event] = function(callback) { + return (0 in arguments) ? + this.bind(event, callback) : + this.trigger(event) + } + }) + + $.Event = function(type, props) { + if (!isString(type)) props = type, type = props.type + var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true + if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name]) + event.initEvent(type, bubbles, true) + return compatible(event) + } + +})(Zepto) + +;(function($){ + var jsonpID = +new Date(), + document = window.document, + key, + name, + rscript = /)<[^<]*)*<\/script>/gi, + scriptTypeRE = /^(?:text|application)\/javascript/i, + xmlTypeRE = /^(?:text|application)\/xml/i, + jsonType = 'application/json', + htmlType = 'text/html', + blankRE = /^\s*$/, + originAnchor = document.createElement('a') + + originAnchor.href = window.location.href + + // trigger a custom event and return false if it was cancelled + function triggerAndReturn(context, eventName, data) { + var event = $.Event(eventName) + $(context).trigger(event, data) + return !event.isDefaultPrevented() + } + + // trigger an Ajax "global" event + function triggerGlobal(settings, context, eventName, data) { + if (settings.global) return triggerAndReturn(context || document, eventName, data) + } + + // Number of active Ajax requests + $.active = 0 + + function ajaxStart(settings) { + if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart') + } + function ajaxStop(settings) { + if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop') + } + + // triggers an extra global event "ajaxBeforeSend" that's like "ajaxSend" but cancelable + function ajaxBeforeSend(xhr, settings) { + var context = settings.context + if (settings.beforeSend.call(context, xhr, settings) === false || + triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) + return false + + triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]) + } + function ajaxSuccess(data, xhr, settings, deferred) { + var context = settings.context, status = 'success' + settings.success.call(context, data, status, xhr) + if (deferred) deferred.resolveWith(context, [data, status, xhr]) + triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]) + ajaxComplete(status, xhr, settings) + } + // type: "timeout", "error", "abort", "parsererror" + function ajaxError(error, type, xhr, settings, deferred) { + var context = settings.context + settings.error.call(context, xhr, type, error) + if (deferred) deferred.rejectWith(context, [xhr, type, error]) + triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type]) + ajaxComplete(type, xhr, settings) + } + // status: "success", "notmodified", "error", "timeout", "abort", "parsererror" + function ajaxComplete(status, xhr, settings) { + var context = settings.context + settings.complete.call(context, xhr, status) + triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]) + ajaxStop(settings) + } + + function ajaxDataFilter(data, type, settings) { + if (settings.dataFilter == empty) return data + var context = settings.context + return settings.dataFilter.call(context, data, type) + } + + // Empty function, used as default callback + function empty() {} + + $.ajaxJSONP = function(options, deferred){ + if (!('type' in options)) return $.ajax(options) + + var _callbackName = options.jsonpCallback, + callbackName = ($.isFunction(_callbackName) ? + _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)), + script = document.createElement('script'), + originalCallback = window[callbackName], + responseData, + abort = function(errorType) { + $(script).triggerHandler('error', errorType || 'abort') + }, + xhr = { abort: abort }, abortTimeout + + if (deferred) deferred.promise(xhr) + + $(script).on('load error', function(e, errorType){ + clearTimeout(abortTimeout) + $(script).off().remove() + + if (e.type == 'error' || !responseData) { + ajaxError(null, errorType || 'error', xhr, options, deferred) + } else { + ajaxSuccess(responseData[0], xhr, options, deferred) + } + + window[callbackName] = originalCallback + if (responseData && $.isFunction(originalCallback)) + originalCallback(responseData[0]) + + originalCallback = responseData = undefined + }) + + if (ajaxBeforeSend(xhr, options) === false) { + abort('abort') + return xhr + } + + window[callbackName] = function(){ + responseData = arguments + } + + script.src = options.url.replace(/\?(.+)=\?/, '?$1=' + callbackName) + document.head.appendChild(script) + + if (options.timeout > 0) abortTimeout = setTimeout(function(){ + abort('timeout') + }, options.timeout) + + return xhr + } + + $.ajaxSettings = { + // Default type of request + type: 'GET', + // Callback that is executed before request + beforeSend: empty, + // Callback that is executed if the request succeeds + success: empty, + // Callback that is executed the the server drops error + error: empty, + // Callback that is executed on request complete (both: error and success) + complete: empty, + // The context for the callbacks + context: null, + // Whether to trigger "global" Ajax events + global: true, + // Transport + xhr: function () { + return new window.XMLHttpRequest() + }, + // MIME types mapping + // IIS returns Javascript as "application/x-javascript" + accepts: { + script: 'text/javascript, application/javascript, application/x-javascript', + json: jsonType, + xml: 'application/xml, text/xml', + html: htmlType, + text: 'text/plain' + }, + // Whether the request is to another domain + crossDomain: false, + // Default timeout + timeout: 0, + // Whether data should be serialized to string + processData: true, + // Whether the browser should be allowed to cache GET responses + cache: true, + //Used to handle the raw response data of XMLHttpRequest. + //This is a pre-filtering function to sanitize the response. + //The sanitized response should be returned + dataFilter: empty + } + + function mimeToDataType(mime) { + if (mime) mime = mime.split(';', 2)[0] + return mime && ( mime == htmlType ? 'html' : + mime == jsonType ? 'json' : + scriptTypeRE.test(mime) ? 'script' : + xmlTypeRE.test(mime) && 'xml' ) || 'text' + } + + function appendQuery(url, query) { + if (query == '') return url + return (url + '&' + query).replace(/[&?]{1,2}/, '?') + } + + // serialize payload and append it to the URL for GET requests + function serializeData(options) { + if (options.processData && options.data && $.type(options.data) != "string") + options.data = $.param(options.data, options.traditional) + if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType)) + options.url = appendQuery(options.url, options.data), options.data = undefined + } + + $.ajax = function(options){ + var settings = $.extend({}, options || {}), + deferred = $.Deferred && $.Deferred(), + urlAnchor, hashIndex + for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key] + + ajaxStart(settings) + + if (!settings.crossDomain) { + urlAnchor = document.createElement('a') + urlAnchor.href = settings.url + // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049 + urlAnchor.href = urlAnchor.href + settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host) + } + + if (!settings.url) settings.url = window.location.toString() + if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex) + serializeData(settings) + + var dataType = settings.dataType, hasPlaceholder = /\?.+=\?/.test(settings.url) + if (hasPlaceholder) dataType = 'jsonp' + + if (settings.cache === false || ( + (!options || options.cache !== true) && + ('script' == dataType || 'jsonp' == dataType) + )) + settings.url = appendQuery(settings.url, '_=' + Date.now()) + + if ('jsonp' == dataType) { + if (!hasPlaceholder) + settings.url = appendQuery(settings.url, + settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?') + return $.ajaxJSONP(settings, deferred) + } + + var mime = settings.accepts[dataType], + headers = { }, + setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] }, + protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol, + xhr = settings.xhr(), + nativeSetHeader = xhr.setRequestHeader, + abortTimeout + + if (deferred) deferred.promise(xhr) + + if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest') + setHeader('Accept', mime || '*/*') + if (mime = settings.mimeType || mime) { + if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0] + xhr.overrideMimeType && xhr.overrideMimeType(mime) + } + if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET')) + setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded') + + if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name]) + xhr.setRequestHeader = setHeader + + xhr.onreadystatechange = function(){ + if (xhr.readyState == 4) { + xhr.onreadystatechange = empty + clearTimeout(abortTimeout) + var result, error = false + if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) { + dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type')) + + if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob') + result = xhr.response + else { + result = xhr.responseText + + try { + // http://perfectionkills.com/global-eval-what-are-the-options/ + // sanitize response accordingly if data filter callback provided + result = ajaxDataFilter(result, dataType, settings) + if (dataType == 'script') (1,eval)(result) + else if (dataType == 'xml') result = xhr.responseXML + else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result) + } catch (e) { error = e } + + if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred) + } + + ajaxSuccess(result, xhr, settings, deferred) + } else { + ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred) + } + } + } + + if (ajaxBeforeSend(xhr, settings) === false) { + xhr.abort() + ajaxError(null, 'abort', xhr, settings, deferred) + return xhr + } + + var async = 'async' in settings ? settings.async : true + xhr.open(settings.type, settings.url, async, settings.username, settings.password) + + if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name] + + for (name in headers) nativeSetHeader.apply(xhr, headers[name]) + + if (settings.timeout > 0) abortTimeout = setTimeout(function(){ + xhr.onreadystatechange = empty + xhr.abort() + ajaxError(null, 'timeout', xhr, settings, deferred) + }, settings.timeout) + + // avoid sending empty string (#319) + xhr.send(settings.data ? settings.data : null) + return xhr + } + + // handle optional data/success arguments + function parseArguments(url, data, success, dataType) { + if ($.isFunction(data)) dataType = success, success = data, data = undefined + if (!$.isFunction(success)) dataType = success, success = undefined + return { + url: url + , data: data + , success: success + , dataType: dataType + } + } + + $.get = function(/* url, data, success, dataType */){ + return $.ajax(parseArguments.apply(null, arguments)) + } + + $.post = function(/* url, data, success, dataType */){ + var options = parseArguments.apply(null, arguments) + options.type = 'POST' + return $.ajax(options) + } + + $.getJSON = function(/* url, data, success */){ + var options = parseArguments.apply(null, arguments) + options.dataType = 'json' + return $.ajax(options) + } + + $.fn.load = function(url, data, success){ + if (!this.length) return this + var self = this, parts = url.split(/\s/), selector, + options = parseArguments(url, data, success), + callback = options.success + if (parts.length > 1) options.url = parts[0], selector = parts[1] + options.success = function(response){ + self.html(selector ? + $('
                      ').html(response.replace(rscript, "")).find(selector) + : response) + callback && callback.apply(self, arguments) + } + $.ajax(options) + return this + } + + var escape = encodeURIComponent + + function serialize(params, obj, traditional, scope){ + var type, array = $.isArray(obj), hash = $.isPlainObject(obj) + $.each(obj, function(key, value) { + type = $.type(value) + if (scope) key = traditional ? scope : + scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']' + // handle data in serializeArray() format + if (!scope && array) params.add(value.name, value.value) + // recurse into nested objects + else if (type == "array" || (!traditional && type == "object")) + serialize(params, value, traditional, key) + else params.add(key, value) + }) + } + + $.param = function(obj, traditional){ + var params = [] + params.add = function(key, value) { + if ($.isFunction(value)) value = value() + if (value == null) value = "" + this.push(escape(key) + '=' + escape(value)) + } + serialize(params, obj, traditional) + return params.join('&').replace(/%20/g, '+') + } +})(Zepto) + +;(function($){ + $.fn.serializeArray = function() { + var name, type, result = [], + add = function(value) { + if (value.forEach) return value.forEach(add) + result.push({ name: name, value: value }) + } + if (this[0]) $.each(this[0].elements, function(_, field){ + type = field.type, name = field.name + if (name && field.nodeName.toLowerCase() != 'fieldset' && + !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' && + ((type != 'radio' && type != 'checkbox') || field.checked)) + add($(field).val()) + }) + return result + } + + $.fn.serialize = function(){ + var result = [] + this.serializeArray().forEach(function(elm){ + result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value)) + }) + return result.join('&') + } + + $.fn.submit = function(callback) { + if (0 in arguments) this.bind('submit', callback) + else if (this.length) { + var event = $.Event('submit') + this.eq(0).trigger(event) + if (!event.isDefaultPrevented()) this.get(0).submit() + } + return this + } + +})(Zepto) + +;(function(){ + // getComputedStyle shouldn't freak out when called + // without a valid element as argument + try { + getComputedStyle(undefined) + } catch(e) { + var nativeGetComputedStyle = getComputedStyle + window.getComputedStyle = function(element, pseudoElement){ + try { + return nativeGetComputedStyle(element, pseudoElement) + } catch(e) { + return null + } + } + } +})() + + + exports('zepto', Zepto) +}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/lay/modules/table.js b/novel-admin/src/main/resources/static/js/lay/modules/table.js new file mode 100644 index 0000000..bc23d31 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/table.js @@ -0,0 +1,1053 @@ +/** + + @Name:layui.table 表格操作 + @Author:贤心 + @License:MIT + + */ + +layui.define(['laytpl', 'laypage', 'layer', 'form'], function(exports){ + "use strict"; + + var $ = layui.$ + ,laytpl = layui.laytpl + ,laypage = layui.laypage + ,layer = layui.layer + ,form = layui.form + ,hint = layui.hint() + ,device = layui.device() + + //外部接口 + ,table = { + config: { + checkName: 'LAY_CHECKED' //是否选中状态的字段名 + ,indexName: 'LAY_TABLE_INDEX' //下标索引名 + } //全局配置项 + ,cache: {} //数据缓存 + ,index: layui.table ? (layui.table.index + 10000) : 0 + + //设置全局项 + ,set: function(options){ + var that = this; + that.config = $.extend({}, that.config, options); + return that; + } + + //事件监听 + ,on: function(events, callback){ + return layui.onevent.call(this, MOD_NAME, events, callback); + } + } + + //操作当前实例 + ,thisTable = function(){ + var that = this + ,options = that.config + ,id = options.id; + + id && (thisTable.config[id] = options); + + return { + reload: function(options){ + that.reload.call(that, options); + } + ,config: options + } + } + + //字符常量 + ,MOD_NAME = 'table', ELEM = '.layui-table', THIS = 'layui-this', SHOW = 'layui-show', HIDE = 'layui-hide', DISABLED = 'layui-disabled', NONE = 'layui-none' + + ,ELEM_VIEW = 'layui-table-view', ELEM_HEADER = '.layui-table-header', ELEM_BODY = '.layui-table-body', ELEM_MAIN = '.layui-table-main', ELEM_FIXED = '.layui-table-fixed', ELEM_FIXL = '.layui-table-fixed-l', ELEM_FIXR = '.layui-table-fixed-r', ELEM_TOOL = '.layui-table-tool', ELEM_SORT = '.layui-table-sort', ELEM_EDIT = 'layui-table-edit', ELEM_HOVER = 'layui-table-hover' + + //thead区域模板 + ,TPL_HEADER = function(options){ + options = options || {}; + return ['' + ,'' + ,'{{# layui.each(d.data.cols, function(i1, item1){ }}' + ,'' + ,'{{# layui.each(item1, function(i2, item2){ }}' + ,'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}' + ,'{{# if(item2.fixed === "right"){ right = true; } }}' + ,function(){ + if(options.fixed && options.fixed !== 'right'){ + return '{{# if(item2.fixed && item2.fixed !== "right"){ }}'; + } + if(options.fixed === 'right'){ + return '{{# if(item2.fixed === "right"){ }}'; + } + return ''; + }() + ,'{{# if(item2.checkbox){ }}' + ,'' + ,'{{# } else if(item2.space){ }}' + ,'' + ,'{{# } else { }}' + ,'' + ,'{{# }; }}' + ,(options.fixed ? '{{# }; }}' : '') + ,'{{# }); }}' + ,'' + ,'{{# }); }}' + ,'' + ,'
                      ' + ,'{{# if(item2.colspan > 1){ }}' + ,'
                      ' + ,'{{item2.title||""}}' + ,'
                      ' + ,'{{# } else { }}' + ,'
                      ' + ,'{{item2.title||""}}' + ,'{{# if(item2.sort){ }}' + ,'' + ,'{{# } }}' + ,'
                      ' + ,'{{# } }}' + ,'
                      '].join(''); + } + + //tbody区域模板 + ,TPL_BODY = ['' + ,'' + ,'
                      '].join('') + + //主模板 + ,TPL_MAIN = ['
                      ' + ,'{{# var left, right; }}' + ,'
                      ' + ,TPL_HEADER() + ,'
                      ' + ,'
                      ' + ,TPL_BODY + ,'
                      ' + + ,'{{# if(left){ }}' + ,'
                      ' + ,'
                      ' + ,TPL_HEADER({fixed: true}) + ,'
                      ' + ,'
                      ' + ,TPL_BODY + ,'
                      ' + ,'
                      ' + ,'{{# }; }}' + + ,'{{# if(right){ }}' + ,'
                      ' + ,'
                      ' + ,TPL_HEADER({fixed: 'right'}) + ,'
                      ' + ,'
                      ' + ,'
                      ' + ,TPL_BODY + ,'
                      ' + ,'
                      ' + ,'{{# }; }}' + + ,'{{# if(d.data.page){ }}' + ,'
                      ' + ,'
                      ' + ,'
                      ' + ,'{{# } }}' + + ,'' + ,'
                      '].join('') + + ,_WIN = $(window) + ,_DOC = $(document) + + //构造器 + ,Class = function(options){ + var that = this; + that.index = ++table.index; + that.config = $.extend({}, that.config, table.config, options); + that.render(); + }; + + //默认配置 + Class.prototype.config = { + limit: 30 //每页显示的数量 + ,loading: true //请求数据时,是否显示loading + }; + + //表格渲染 + Class.prototype.render = function(sets){ + var that = this, options; + + if(sets) that.config = sets; + options = that.config; + + options.elem = $(options.elem); + options.where = options.where || {}; + + //请求参数的自定义格式 + options.request = $.extend({ + pageName: 'page' + ,limitName: 'limit' + }, options.request) + + //响应数据的自定义格式 + options.response = $.extend({ + statusName: 'code' + ,statusCode: 0 + ,msgName: 'msg' + ,dataName: 'data' + ,countName: 'count' + }, options.response); + + if(!options.elem[0]) return that; + + var othis = options.elem + ,hasRender = othis.next('.' + ELEM_VIEW); + + if(options.height && /^full-\d+$/.test(options.height)){ //full-差距值 + that.fullHeightGap = options.height.split('-')[1]; + options.height = _WIN.height() - that.fullHeightGap; + } + + //替代元素 + var reElem = that.elem = $(laytpl(TPL_MAIN).render({ + VIEW_CLASS: ELEM_VIEW + ,data: options + ,index: that.index //索引 + })); + + options.index = that.index; + + //生成替代元素 + hasRender[0] && hasRender.remove(); //如果已经渲染,则Rerender + othis.after(reElem); + + //各级容器 + that.layHeader = reElem.find(ELEM_HEADER); + that.layMain = reElem.find(ELEM_MAIN); + that.layBody = reElem.find(ELEM_BODY); + that.layFixed = reElem.find(ELEM_FIXED); + that.layFixLeft = reElem.find(ELEM_FIXL); + that.layFixRight = reElem.find(ELEM_FIXR); + that.layTool = reElem.find(ELEM_TOOL); + + //设置body区域高度 + if(options.height){ + that.fullSize(); + } + + //如果多级表头,则填补表头高度 + if(options.cols.length > 1){ + var th = that.layFixed.find(ELEM_HEADER).find('th'); + th.height(that.layHeader.height() - 1 - parseFloat(th.css('padding-top')) - parseFloat(th.css('padding-bottom'))); + } + + that.pullData(1); + that.events(); + }; + + //表格重载 + Class.prototype.reload = function(options){ + var that = this; + that.config = $.extend({}, that.config, options); + that.render(); + }; + + //获得数据 + Class.prototype.pullData = function(curr, loadIndex){ + var that = this + ,options = that.config + ,request = options.request + ,response = options.response + ,sort = function(){ + if(typeof options.initSort === 'object'){ + that.sort(options.initSort.field, options.initSort.type); + } + }; + + if(options.url){ //Ajax请求 + var params = {}; + params[request.pageName] = curr; + params[request.limitName] = options.limit; + $.ajax({ + type: options.method || 'get' + ,url: options.url + ,data: $.extend(params, options.where) + ,dataType: 'json' + ,success: function(res){ + if(res[response.statusName] != response.statusCode){ + that.renderForm(); + return that.layMain.html('
                      '+ (res[response.msgName] || '返回的数据状态异常') +'
                      '); + } + that.renderData(res, curr, res[response.countName]), sort(); + loadIndex && layer.close(loadIndex); + typeof options.done === 'function' && options.done(res, curr, res[response.countName]); + } + ,error: function(e, m){ + that.layMain.html('
                      数据接口请求异常
                      '); + that.renderForm(); + loadIndex && layer.close(loadIndex); + } + }); + } else if(options.data && options.data.constructor === Array){ //已知数据 + var res = {} + ,startLimit = curr*options.limit - options.limit + + res[response.dataName] = options.data.concat().splice(startLimit, options.limit); + res[response.countName] = options.data.length; + + that.renderData(res, curr, options.data.length), sort(); + typeof options.done === 'function' && options.done(res, curr, res[response.countName]); + } + }; + + //页码 + Class.prototype.page = 1; + + //遍历表头 + Class.prototype.eachCols = function(callback){ + var cols = $.extend(true, [], this.config.cols) + ,arrs = [], index = 0; + + //重新整理表头结构 + layui.each(cols, function(i1, item1){ + layui.each(item1, function(i2, item2){ + //如果是组合列,则捕获对应的子列 + if(item2.colspan > 1){ + var childIndex = 0; + index++ + item2.CHILD_COLS = []; + layui.each(cols[i1 + 1], function(i22, item22){ + if(item22.PARENT_COL || childIndex == item2.colspan) return; + item22.PARENT_COL = index; + item2.CHILD_COLS.push(item22); + childIndex = childIndex + (item22.colspan > 1 ? item22.colspan : 1); + }); + } + if(item2.PARENT_COL) return; //如果是子列,则不进行追加,因为已经存储在父列中 + arrs.push(item2) + }); + }); + + //重新遍历列,如果有子列,则进入递归 + var eachArrs = function(obj){ + layui.each(obj || arrs, function(i, item){ + if(item.CHILD_COLS) return eachArrs(item.CHILD_COLS); + callback(i, item); + }); + }; + + eachArrs(); + }; + + //数据渲染 + Class.prototype.renderData = function(res, curr, count, sort){ + var that = this + ,options = that.config + ,data = res[options.response.dataName] || [] + ,trs = [] + ,trs_fixed = [] + ,trs_fixed_r = [] + + //渲染视图 + ,render = function(){ + if(!sort && that.sortKey){ + return that.sort(that.sortKey.field, that.sortKey.sort, true); + } + layui.each(data, function(i1, item1){ + var tds = [], tds_fixed = [], tds_fixed_r = []; + if(item1.length === 0) return; + if(!sort){ + item1[table.config.indexName] = i1; + } + that.eachCols(function(i3, item3){ + var content = item1[item3.field||i3]; + if(content === undefined || content === null) content = ''; + if(item3.colspan > 1) return; + + var td = ['' + ,'
                      ' + function(){ + if(item3.checkbox){ + return ''; + } + if(item3.toolbar){ + return laytpl($(item3.toolbar).html()||'').render(item1); + } + return item3.templet ? laytpl($(item3.templet).html() || String(content)).render(item1) : content; + }() + ,'
                      '].join(''); + + tds.push(td); + if(item3.fixed && item3.fixed !== 'right') tds_fixed.push(td); + if(item3.fixed === 'right') tds_fixed_r.push(td); + }); + trs.push(''+ tds.join('') + ''); + trs_fixed.push(''+ tds_fixed.join('') + ''); + trs_fixed_r.push(''+ tds_fixed_r.join('') + ''); + }); + + that.layBody.scrollTop(0); + that.layMain.find('.'+ NONE).remove(); + that.layMain.find('tbody').html(trs.join('')); + that.layFixLeft.find('tbody').html(trs_fixed.join('')); + that.layFixRight.find('tbody').html(trs_fixed_r.join('')); + + that.renderForm(); + that.syncCheckAll(); + that.haveInit ? that.scrollPatch() : setTimeout(function(){ + that.scrollPatch(); + }, 50); + that.haveInit = true; + layer.close(that.tipsIndex); + }; + + that.key = options.id || options.index; + table.cache[that.key] = data; //记录数据 + + //排序 + if(sort){ + return render(); + } + + if(data.length === 0){ + that.renderForm(); + that.layFixed.remove(); + that.layMain.find('tbody').html(''); + that.layMain.find('.'+ NONE).remove(); + return that.layMain.append('
                      无数据
                      '); + } + + render(); + + //分页 + if(options.page){ + that.page = curr; + that.count = count; + laypage.render({ + elem: 'layui-table-page' + options.index + ,count: count + ,groups: 3 + ,limits: options.limits || [10,20,30,40,50,60,70,80,90] + ,limit: options.limit + ,curr: curr + ,layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'] + ,prev: '' + ,next: '' + ,jump: function(obj, first){ + if(!first){ + that.page = obj.curr; + options.limit = obj.limit; + that.pullData(obj.curr, that.loading()); + } + } + }); + that.layTool.find('.layui-table-count span').html(count) + } + }; + + //渲染表单 + Class.prototype.renderForm = function(type){ + form.render((type || 'checkbox'), 'LAY-table-'+ this.index); + } + + //数据排序 + Class.prototype.sort = function(th, type, pull, formEvent){ + var that = this + ,field + ,res = {} + ,config = that.config + ,filter = config.elem.attr('lay-filter') + ,data = table.cache[that.key], thisData; + + //字段匹配 + if(typeof th === 'string'){ + that.layHeader.find('th').each(function(i, item){ + var othis = $(this) + ,_field = othis.data('field'); + if(_field === th){ + th = othis; + field = _field; + return false; + } + }); + } + + try { + var field = field || th.data('field'); + + //如果欲执行的排序已在状态中,则不执行渲染 + if(that.sortKey && !pull){ + if(field === that.sortKey.field && type === that.sortKey.sort){ + return; + } + } + + var elemSort = that.layHeader.find('th .laytable-cell-'+ config.index +'-'+ field).find(ELEM_SORT); + that.layHeader.find('th').find(ELEM_SORT).removeAttr('lay-sort'); //清除其它标题排序状态 + elemSort.attr('lay-sort', type || null); + that.layFixed.find('th') + } catch(e){ + return hint.error('Table modules: Did not match to field'); + } + + //记录排序索引和类型 + that.sortKey = { + field: field + ,sort: type + }; + + if(type === 'asc'){ //升序 + thisData = layui.sort(data, field); + } else if(type === 'desc'){ //降序 + thisData = layui.sort(data, field, true); + } else { //清除排序 + thisData = layui.sort(data, table.config.indexName); + delete that.sortKey; + } + + res[config.response.dataName] = thisData; + that.renderData(res, that.page, that.count, true); + layer.close(that.tipsIndex); + + if(formEvent){ + layui.event.call(th, MOD_NAME, 'sort('+ filter +')', { + field: field + ,type: type + }); + } + }; + + //请求loading + Class.prototype.loading = function(){ + var that = this + ,config = that.config; + if(config.loading && config.url){ + return layer.msg('数据请求中', { + icon: 16 + ,offset: [ + that.elem.offset().top + that.elem.height()/2 - 35 - _WIN.scrollTop() + 'px' + ,that.elem.offset().left + that.elem.width()/2 - 90 - _WIN.scrollLeft() + 'px' + ] + ,anim: -1 + ,fixed: false + }); + } + }; + + //同步选中值状态 + Class.prototype.setCheckData = function(index, checked){ + var that = this + ,config = that.config + ,thisData = table.cache[that.key]; + if(!thisData[index]) return; + thisData[index][config.checkName] = checked; + }; + + //同步全选按钮状态 + Class.prototype.syncCheckAll = function(){ + var that = this + ,config = that.config + ,checkAllElem = that.layHeader.find('input[name="layTableCheckbox"]') + ,syncColsCheck = function(checked){ + that.eachCols(function(i, item){ + if(item.checkbox){ + item[config.checkName] = checked; + } + }); + return checked; + }; + + if(!checkAllElem[0]) return + + if(table.checkStatus(that.key).isAll){ + if(!checkAllElem[0].checked){ + checkAllElem.prop('checked', true); + that.renderForm(); + } + syncColsCheck(true); + } else { + if(checkAllElem[0].checked){ + checkAllElem.prop('checked', false); + that.renderForm(); + } + syncColsCheck(false); + } + }; + + //获取cssRule + Class.prototype.getCssRule = function(field, callback){ + var that = this + ,style = that.elem.find('style')[0] + ,sheet = style.sheet || style.styleSheet + ,rules = sheet.cssRules || sheet.rules; + layui.each(rules, function(i, item){ + if(item.selectorText === ('.laytable-cell-'+ that.index +'-'+ field)){ + return callback(item), true; + } + }); + }; + + //尺寸始终铺满 + Class.prototype.fullSize = function(){ + var that = this + ,options = that.config + ,height = options.height, bodyHeight; + + if(that.fullHeightGap){ + height = _WIN.height() - that.fullHeightGap; + if(height < 135) height = 135; + that.elem.css('height', height); + } + + //tbody区域高度 + bodyHeight = parseFloat(height) - parseFloat(that.layHeader.height()) - 1; + if(options.page){ + bodyHeight = bodyHeight - parseFloat(that.layTool.outerHeight() + 1); + } + that.layMain.css('height', bodyHeight); + + }; + + //滚动条补丁 + Class.prototype.scrollPatch = function(){ + var that = this + ,layMainTable = that.layMain.children('table') + ,scollWidth = that.layMain.width() - that.layMain.prop('clientWidth') //纵向滚动条宽度 + ,scollHeight = that.layMain.height() - that.layMain.prop('clientHeight'); //横向滚动条高度 + + if(scollWidth && scollHeight){ + if(!that.elem.find('.layui-table-patch')[0]){ + var patchElem = $('
                      '); //补丁元素 + patchElem.find('div').css({ + width: scollWidth + }); + that.layHeader.eq(0).find('thead tr').append(patchElem) + } + } else { + that.layHeader.eq(0).find('.layui-table-patch').remove(); + } + + //固定列区域高度 + var mainHeight = that.layMain.height() + ,fixHeight = mainHeight - scollHeight; + that.layFixed.find(ELEM_BODY).css('height', layMainTable.height() > fixHeight ? fixHeight : 'auto'); + + //表格宽度小于容器宽度时,隐藏固定列 + that.layFixRight[layMainTable.width() > that.layMain.width() ? 'removeClass' : 'addClass'](HIDE); + + //操作栏 + that.layFixRight.css('right', scollWidth - 1); + }; + + //事件处理 + Class.prototype.events = function(){ + var that = this + ,config = that.config + ,_BODY = $('body') + ,dict = {} + ,th = that.layHeader.find('th') + ,resizing + ,ELEM_CELL = '.layui-table-cell' + ,filter = config.elem.attr('lay-filter'); + + //拖拽调整宽度 + th.on('mousemove', function(e){ + var othis = $(this) + ,oLeft = othis.offset().left + ,pLeft = e.clientX - oLeft; + if(othis.attr('colspan') > 1 || othis.attr('unresize') || dict.resizeStart){ + return; + } + dict.allowResize = othis.width() - pLeft <= 10; //是否处于拖拽允许区域 + _BODY.css('cursor', (dict.allowResize ? 'col-resize' : '')); + }).on('mouseleave', function(){ + var othis = $(this); + if(dict.resizeStart) return; + _BODY.css('cursor', ''); + }).on('mousedown', function(e){ + if(dict.allowResize){ + var field = $(this).data('field'); + e.preventDefault(); + dict.resizeStart = true; //开始拖拽 + dict.offset = [e.clientX, e.clientY]; //记录初始坐标 + + that.getCssRule(field, function(item){ + dict.rule = item; + dict.ruleWidth = parseFloat(item.style.width); + }); + } + }); + //拖拽中 + _DOC.on('mousemove', function(e){ + if(dict.resizeStart){ + e.preventDefault(); + if(dict.rule){ + var setWidth = dict.ruleWidth + e.clientX - dict.offset[0]; + dict.rule.style.width = setWidth + 'px'; + layer.close(that.tipsIndex); + } + resizing = 1 + } + }).on('mouseup', function(e){ + if(dict.resizeStart){ + dict = {}; + _BODY.css('cursor', ''); + that.scrollPatch(); + } + if(resizing === 2){ + resizing = null; + } + }); + + //排序 + th.on('click', function(){ + var othis = $(this) + ,elemSort = othis.find(ELEM_SORT) + ,nowType = elemSort.attr('lay-sort') + ,type; + + if(!elemSort[0] || resizing === 1) return resizing = 2; + + if(nowType === 'asc'){ + type = 'desc'; + } else if(nowType === 'desc'){ + type = null; + } else { + type = 'asc'; + } + that.sort(othis, type, null, true); + }).find(ELEM_SORT+' .layui-edge ').on('click', function(e){ + var othis = $(this) + ,index = othis.index() + ,field = othis.parents('th').eq(0).data('field') + layui.stope(e); + if(index === 0){ + that.sort(field, 'asc', null, true); + } else { + that.sort(field, 'desc', null, true); + } + }); + + //复选框选择 + that.elem.on('click', 'input[name="layTableCheckbox"]+', function(){ + var checkbox = $(this).prev() + ,childs = that.layBody.find('input[name="layTableCheckbox"]') + ,index = checkbox.parents('tr').eq(0).data('index') + ,checked = checkbox[0].checked + ,isAll = checkbox.attr('lay-filter') === 'layTableAllChoose'; + + //全选 + if(isAll){ + childs.each(function(i, item){ + item.checked = checked; + that.setCheckData(i, checked); + }); + that.syncCheckAll(); + that.renderForm(); + } else { + that.setCheckData(index, checked); + that.syncCheckAll(); + } + layui.event.call(this, MOD_NAME, 'checkbox('+ filter +')', { + checked: checked + ,data: table.cache[that.key][index] + ,type: isAll ? 'all' : 'one' + }); + }); + + //行事件 + that.layBody.on('mouseenter', 'tr', function(){ + var othis = $(this) + ,index = othis.index(); + that.layBody.find('tr:eq('+ index +')').addClass(ELEM_HOVER) + }).on('mouseleave', 'tr', function(){ + var othis = $(this) + ,index = othis.index(); + that.layBody.find('tr:eq('+ index +')').removeClass(ELEM_HOVER) + }); + + //单元格编辑 + that.layBody.on('change', '.'+ELEM_EDIT, function(){ + var othis = $(this) + ,value = this.value + ,field = othis.parent().data('field') + ,index = othis.parents('tr').eq(0).data('index') + ,data = table.cache[that.key][index]; + + data[field] = value; //更新缓存中的值 + + layui.event.call(this, MOD_NAME, 'edit('+ filter +')', { + value: value + ,data: data + ,field: field + }); + }).on('blur', '.'+ELEM_EDIT, function(){ + var templet + ,othis = $(this) + ,field = othis.parent().data('field') + ,index = othis.parents('tr').eq(0).data('index') + ,data = table.cache[that.key][index]; + that.eachCols(function(i, item){ + if(item.field == field && item.templet){ + templet = item.templet; + } + }); + othis.siblings(ELEM_CELL).html( + templet ? laytpl($(templet).html() || this.value).render(data) : this.value + ); + othis.parent().data('content', this.value); + othis.remove(); + }); + + //单元格事件 + that.layBody.on('click', 'td', function(){ + var othis = $(this) + ,field = othis.data('field') + ,elemCell = othis.children(ELEM_CELL); + + if(othis.data('off')) return; + + //显示编辑框 + if(othis.data('edit')){ + var input = $(''); + input[0].value = othis.data('content') || elemCell.text(); + othis.find('.'+ELEM_EDIT)[0] || othis.append(input); + return input.focus(); + } + + //如果出现省略,则可查看更多 + if(elemCell.prop('scrollWidth') > elemCell.outerWidth()){ + that.tipsIndex = layer.tips([ + '
                      ' + ,elemCell.html() + ,'
                      ' + ,'' + ].join(''), elemCell[0], { + tips: [3, ''] + ,time: -1 + ,anim: -1 + ,maxWidth: (device.ios || device.android) ? 300 : 600 + ,isOutAnim: false + ,skin: 'layui-table-tips' + ,success: function(layero, index){ + layero.find('.layui-table-tips-c').on('click', function(){ + layer.close(index); + }); + } + }); + } + }); + + //工具条操作事件 + that.layBody.on('click', '*[lay-event]', function(){ + var othis = $(this) + ,index = othis.parents('tr').eq(0).data('index') + ,tr = that.layBody.find('tr[data-index="'+ index +'"]') + ,ELEM_CLICK = 'layui-table-click' + ,data = table.cache[that.key][index]; + + layui.event.call(this, MOD_NAME, 'tool('+ filter +')', { + data: table.clearCacheKey(data) + ,event: othis.attr('lay-event') + ,tr: tr + ,del: function(){ + table.cache[that.key][index] = []; + tr.remove(); + that.scrollPatch(); + } + ,update: function(fields){ + fields = fields || {}; + layui.each(fields, function(key, value){ + if(key in data){ + var templet, td = tr.children('td[data-field="'+ key +'"]'); + data[key] = value; + that.eachCols(function(i, item2){ + if(item2.field == key && item2.templet){ + templet = item2.templet; + } + }); + td.children(ELEM_CELL).html( + templet ? laytpl($(templet).html() || value).render(data) : value + ); + td.data('content', value); + } + }); + } + }); + tr.addClass(ELEM_CLICK).siblings('tr').removeClass(ELEM_CLICK); + }); + + //同步滚动条 + that.layMain.on('scroll', function(){ + var othis = $(this) + ,scrollLeft = othis.scrollLeft() + ,scrollTop = othis.scrollTop(); + + that.layHeader.scrollLeft(scrollLeft); + that.layFixed.find(ELEM_BODY).scrollTop(scrollTop); + + layer.close(that.tipsIndex); + }); + + _WIN.on('resize', function(){ //自适应 + that.fullSize(); + that.scrollPatch(); + }); + }; + + //初始化 + table.init = function(filter, settings){ + settings = settings || {}; + var that = this + ,elemTable = filter ? $('table[lay-filter="'+ filter +'"]') : $(ELEM + '[lay-data]') + ,errorTips = 'Table element property lay-data configuration item has a syntax error: '; + + //遍历数据表格 + elemTable.each(function(){ + var othis = $(this), tableData = othis.attr('lay-data'); + + try{ + tableData = new Function('return '+ tableData)(); + } catch(e){ + hint.error(errorTips + tableData) + } + + var cols = [], options = $.extend({ + elem: this + ,cols: [] + ,data: [] + ,skin: othis.attr('lay-skin') //风格 + ,size: othis.attr('lay-size') //尺寸 + ,even: typeof othis.attr('lay-even') === 'string' //偶数行背景 + }, table.config, settings, tableData); + + filter && othis.hide(); + + //获取表头数据 + othis.find('thead>tr').each(function(i){ + options.cols[i] = []; + $(this).children().each(function(ii){ + var th = $(this), itemData = th.attr('lay-data'); + + try{ + itemData = new Function('return '+ itemData)(); + } catch(e){ + return hint.error(errorTips + itemData) + } + + var row = $.extend({ + title: th.text() + ,colspan: th.attr('colspan') || 0 //列单元格 + ,rowspan: th.attr('rowspan') || 0 //行单元格 + }, itemData); + + if(row.colspan < 2) cols.push(row); + options.cols[i].push(row); + }); + }); + + //获取表体数据 + othis.find('tbody>tr').each(function(i1){ + var tr = $(this), row = {}; + //如果定义了字段名 + tr.children('td').each(function(i2, item2){ + var td = $(this) + ,field = td.data('field'); + if(field){ + return row[field] = td.html(); + } + }); + //如果未定义字段名 + layui.each(cols, function(i3, item3){ + var td = tr.children('td').eq(i3); + row[item3.field] = td.html(); + }); + options.data[i1] = row; + }); + table.render(options); + }); + + return that; + }; + + //表格选中状态 + table.checkStatus = function(id){ + var nums = 0 + ,arr = [] + ,data = table.cache[id]; + if(!data) return {}; + //计算全选个数 + layui.each(data, function(i, item){ + if(item[table.config.checkName]){ + nums++; + arr.push(table.clearCacheKey(item)); + } + }); + return { + data: arr //选中的数据 + ,isAll: nums === data.length //是否全选 + }; + }; + + //表格重载 + thisTable.config = {}; + table.reload = function(id, options){ + var config = thisTable.config[id]; + if(!config) return hint.error('The ID option was not found in the table instance'); + return table.render($.extend({}, config, options)); + }; + + //核心入口 + table.render = function(options){ + var inst = new Class(options); + return thisTable.call(inst); + }; + + //清除临时Key + table.clearCacheKey = function(data){ + data = $.extend({}, data); + delete data[table.config.checkName]; + delete data[table.config.indexName]; + return data; + }; + + //自动完成渲染 + table.init(); + + exports(MOD_NAME, table); +}); + + diff --git a/novel-admin/src/main/resources/static/js/lay/modules/tree.js b/novel-admin/src/main/resources/static/js/lay/modules/tree.js new file mode 100644 index 0000000..1aef5a8 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/tree.js @@ -0,0 +1,215 @@ +/** + + @Name:layui.tree 树组件 + @Author:贤心 + @License:MIT + + */ + + +layui.define('jquery', function(exports){ + "use strict"; + + var $ = layui.$ + ,hint = layui.hint(); + + var enterSkin = 'layui-tree-enter', Tree = function(options){ + this.options = options; + }; + + //图标 + var icon = { + arrow: ['', ''] //箭头 + ,checkbox: ['', ''] //复选框 + ,radio: ['', ''] //单选框 + ,branch: ['', ''] //父节点 + ,leaf: '' //叶节点 + }; + + //初始化 + Tree.prototype.init = function(elem){ + var that = this; + elem.addClass('layui-box layui-tree'); //添加tree样式 + if(that.options.skin){ + elem.addClass('layui-tree-skin-'+ that.options.skin); + } + that.tree(elem); + that.on(elem); + }; + + //树节点解析 + Tree.prototype.tree = function(elem, children){ + var that = this, options = that.options + var nodes = children || options.nodes; + + layui.each(nodes, function(index, item){ + var hasChild = item.children && item.children.length > 0; + var ul = $('
                        '); + var li = $(['
                      • ' + //展开箭头 + ,function(){ + return hasChild ? ''+ ( + item.spread ? icon.arrow[1] : icon.arrow[0] + ) +'' : ''; + }() + + //复选框/单选框 + ,function(){ + return options.check ? ( + ''+ ( + options.check === 'checkbox' ? icon.checkbox[0] : ( + options.check === 'radio' ? icon.radio[0] : '' + ) + ) +'' + ) : ''; + }() + + //节点 + ,function(){ + return '' + + (''+ ( + hasChild ? ( + item.spread ? icon.branch[1] : icon.branch[0] + ) : icon.leaf + ) +'') //节点图标 + + (''+ (item.name||'未命名') +''); + }() + + ,'
                      • '].join('')); + + //如果有子节点,则递归继续生成树 + if(hasChild){ + li.append(ul); + that.tree(ul, item.children); + } + + elem.append(li); + + //触发点击节点回调 + typeof options.click === 'function' && that.click(li, item); + + //伸展节点 + that.spread(li, item); + + //拖拽节点 + options.drag && that.drag(li, item); + }); + }; + + //点击节点回调 + Tree.prototype.click = function(elem, item){ + var that = this, options = that.options; + elem.children('a').on('click', function(e){ + layui.stope(e); + options.click(item) + }); + }; + + //伸展节点 + Tree.prototype.spread = function(elem, item){ + var that = this, options = that.options; + var arrow = elem.children('.layui-tree-spread') + var ul = elem.children('ul'), a = elem.children('a'); + + //执行伸展 + var open = function(){ + if(elem.data('spread')){ + elem.data('spread', null) + ul.removeClass('layui-show'); + arrow.html(icon.arrow[0]); + a.find('.layui-icon').html(icon.branch[0]); + } else { + elem.data('spread', true); + ul.addClass('layui-show'); + arrow.html(icon.arrow[1]); + a.find('.layui-icon').html(icon.branch[1]); + } + }; + + //如果没有子节点,则不执行 + if(!ul[0]) return; + + arrow.on('click', open); + a.on('dblclick', open); + } + + //通用事件 + Tree.prototype.on = function(elem){ + var that = this, options = that.options; + var dragStr = 'layui-tree-drag'; + + //屏蔽选中文字 + elem.find('i').on('selectstart', function(e){ + return false + }); + + //拖拽 + if(options.drag){ + $(document).on('mousemove', function(e){ + var move = that.move; + if(move.from){ + var to = move.to, treeMove = $('
                        '); + e.preventDefault(); + $('.' + dragStr)[0] || $('body').append(treeMove); + var dragElem = $('.' + dragStr)[0] ? $('.' + dragStr) : treeMove; + (dragElem).addClass('layui-show').html(move.from.elem.children('a').html()); + dragElem.css({ + left: e.pageX + 10 + ,top: e.pageY + 10 + }) + } + }).on('mouseup', function(){ + var move = that.move; + if(move.from){ + move.from.elem.children('a').removeClass(enterSkin); + move.to && move.to.elem.children('a').removeClass(enterSkin); + that.move = {}; + $('.' + dragStr).remove(); + } + }); + } + }; + + //拖拽节点 + Tree.prototype.move = {}; + Tree.prototype.drag = function(elem, item){ + var that = this, options = that.options; + var a = elem.children('a'), mouseenter = function(){ + var othis = $(this), move = that.move; + if(move.from){ + move.to = { + item: item + ,elem: elem + }; + othis.addClass(enterSkin); + } + }; + a.on('mousedown', function(){ + var move = that.move + move.from = { + item: item + ,elem: elem + }; + }); + a.on('mouseenter', mouseenter).on('mousemove', mouseenter) + .on('mouseleave', function(){ + var othis = $(this), move = that.move; + if(move.from){ + delete move.to; + othis.removeClass(enterSkin); + } + }); + }; + + //暴露接口 + exports('tree', function(options){ + var tree = new Tree(options = options || {}); + var elem = $(options.elem); + if(!elem[0]){ + return hint.error('layui.tree 没有找到'+ options.elem +'元素'); + } + tree.init(elem); + }); +}); diff --git a/novel-admin/src/main/resources/static/js/lay/modules/upload.js b/novel-admin/src/main/resources/static/js/lay/modules/upload.js new file mode 100644 index 0000000..5140d1f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/upload.js @@ -0,0 +1,474 @@ +layui.define('layer' , function(exports){ + "use strict"; + + var $ = layui.$ + ,layer = layui.layer + ,hint = layui.hint() + ,device = layui.device() + + //外部接口 + ,upload = { + config: {} //全局配置项 + + //设置全局项 + ,set: function(options){ + var that = this; + that.config = $.extend({}, that.config, options); + return that; + } + + //事件监听 + ,on: function(events, callback){ + return layui.onevent.call(this, MOD_NAME, events, callback); + } + } + + //操作当前实例 + ,thisUpload = function(){ + var that = this; + return { + upload: function(files){ + that.upload.call(that, files); + } + ,config: that.config + } + } + + //字符常量 + ,MOD_NAME = 'upload', ELEM = '.layui-upload', THIS = 'layui-this', SHOW = 'layui-show', HIDE = 'layui-hide', DISABLED = 'layui-disabled' + + ,ELEM_FILE = 'layui-upload-file', ELEM_FORM = 'layui-upload-form', ELEM_IFRAME = 'layui-upload-iframe', ELEM_CHOOSE = 'layui-upload-choose', ELEM_DRAG = 'layui-upload-drag' + + + //构造器 + ,Class = function(options){ + var that = this; + that.config = $.extend({}, that.config, upload.config, options); + that.render(); + }; + + //默认配置 + Class.prototype.config = { + accept: 'images' //允许上传的文件类型:images/file/video/audio + ,exts: '' //允许上传的文件后缀名 + ,auto: true //是否选完文件后自动上传 + ,bindAction: '' //手动上传触发的元素 + ,url: '' //上传地址 + ,field: 'file' //文件字段名 + ,method: 'post' //请求上传的http类型 + ,data: {} //请求上传的额外参数 + ,drag: true //是否允许拖拽上传 + ,size: 0 //文件限制大小,默认不限制 + ,multiple: false //是否允许多文件上传,不支持ie8-9 + }; + + //初始渲染 + Class.prototype.render = function(options){ + var that = this + ,options = that.config; + + options.elem = $(options.elem); + options.bindAction = $(options.bindAction); + + that.file(); + that.events(); + }; + + //追加文件域 + Class.prototype.file = function(){ + var that = this + ,options = that.config + ,elemFile = that.elemFile = $([ + '' + ].join('')) + ,next = options.elem.next(); + + if(next.hasClass(ELEM_FILE) || next.hasClass(ELEM_FORM)){ + next.remove(); + } + + //包裹ie8/9容器 + if(device.ie && device.ie < 10){ + options.elem.wrap('
                        '); + } + + that.isFile() ? ( + that.elemFile = options.elem + ,options.field = options.elem[0].name + ) : options.elem.after(elemFile); + + //初始化ie8/9的Form域 + if(device.ie && device.ie < 10){ + that.initIE(); + } + }; + + //ie8-9初始化 + Class.prototype.initIE = function(){ + var that = this + ,options = that.config + ,iframe = $('') + ,elemForm = $(['
                        ' + ,'
                        '].join('')); + + //插入iframe + $('#'+ ELEM_IFRAME)[0] || $('body').append(iframe); + + //包裹文件域 + if(!options.elem.next().hasClass(ELEM_IFRAME)){ + that.elemFile.wrap(elemForm); + + //追加额外的参数 + options.elem.next('.'+ ELEM_IFRAME).append(function(){ + var arr = []; + layui.each(options.data, function(key, value){ + arr.push('') + }); + return arr.join(''); + }()); + } + }; + + //异常提示 + Class.prototype.msg = function(content){ + return layer.msg(content, { + icon: 2 + ,shift: 6 + }); + }; + + //判断绑定元素是否为文件域本身 + Class.prototype.isFile = function(){ + var elem = this.config.elem[0]; + if(!elem) return; + return elem.tagName.toLocaleLowerCase() === 'input' && elem.type === 'file' + } + + //预读图片信息 + Class.prototype.preview = function(callback){ + var that = this; + if(window.FileReader){ + layui.each(that.chooseFiles, function(index, file){ + var reader = new FileReader(); + reader.readAsDataURL(file); + reader.onload = function(){ + callback && callback(index, file, this.result); + } + }); + } + }; + + //执行上传 + Class.prototype.upload = function(files, type){ + var that = this + ,options = that.config + ,elemFile = that.elemFile[0] + + //高级浏览器处理方式,支持跨域 + ,ajaxSend = function(){ + layui.each(files || that.files || that.chooseFiles || elemFile.files, function(index, file){ + var formData = new FormData(); + + formData.append(options.field, file); + + //追加额外的参数 + layui.each(options.data, function(key, value){ + formData.append(key, value); + }); + + $.ajax({ + url: options.url + ,type: options.method + ,data: formData + ,contentType: false + ,processData: false + ,dataType: 'json' + ,success: function(res){ + done(index, res); + } + ,error: function(){ + that.msg('请求上传接口出现异常'); + error(index); + } + }); + }); + } + + //低版本IE处理方式,不支持跨域 + ,iframeSend = function(){ + var iframe = $('#'+ ELEM_IFRAME); + + that.elemFile.parent().submit(); + + //获取响应信息 + clearInterval(Class.timer); + Class.timer = setInterval(function() { + var res, iframeBody = iframe.contents().find('body'); + try { + res = iframeBody.text(); + } catch(e) { + that.msg('获取上传后的响应信息出现异常'); + clearInterval(Class.timer); + error(); + } + if(res){ + clearInterval(Class.timer); + iframeBody.html(''); + done(0, res); + } + }, 30); + } + + //统一回调 + ,done = function(index, res){ + that.elemFile.next('.'+ ELEM_CHOOSE).remove(); + elemFile.value = ''; + if(typeof res !== 'object'){ + try { + res = JSON.parse(res); + } catch(e){ + res = {}; + return that.msg('请对上传接口返回有效JSON'); + } + } + typeof options.done === 'function' && options.done(res, index || 0, function(files){ + that.upload(files); + }); + } + + //统一网络异常回调 + ,error = function(index){ + if(options.auto){ + elemFile.value = ''; + } + typeof options.error === 'function' && options.error(index || 0, function(files){ + that.upload(files); + }); + } + + ,exts = options.exts + ,check ,value = function(){ + var arr = []; + layui.each(files || that.chooseFiles, function(i, item){ + arr.push(item.name); + }); + return arr; + }() + + //回调返回的参数 + ,args = { + preview: function(callback){ + that.preview(callback); + } + ,upload: function(index, file){ + var thisFile = {}; + thisFile[index] = file; + that.upload(thisFile); + } + ,pushFile: function(){ + that.files = that.files || {}; + layui.each(that.chooseFiles, function(index, item){ + that.files[index] = item; + }); + return that.files; + } + } + + //提交上传 + ,send = function(){ + if(type === 'choose'){ + return options.choose && options.choose(args); + } + + //上传前的回调 + options.before && options.before(args); + + //IE兼容处理 + if(device.ie){ + return device.ie > 9 ? ajaxSend() : iframeSend(); + } + + ajaxSend(); + } + + //校验文件格式 + value = value.length === 0 + ? ((elemFile.value.match(/[^\/\\]+\..+/g)||[]) || '') + : value; + + switch(options.accept){ + case 'file': //一般文件 + if(exts && !RegExp('\\w\\.('+ exts +')$', 'i').test(escape(value))){ + that.msg('选择的文件中包含不支持的格式'); + return elemFile.value = ''; + } + break; + case 'video': //视频文件 + if(!RegExp('\\w\\.('+ (exts || 'avi|mp4|wma|rmvb|rm|flash|3gp|flv') +')$', 'i').test(escape(value))){ + that.msg('选择的视频中包含不支持的格式'); + return elemFile.value = ''; + } + break; + case 'audio': //音频文件 + if(!RegExp('\\w\\.('+ (exts || 'mp3|wav|mid') +')$', 'i').test(escape(value))){ + that.msg('选择的音频中包含不支持的格式'); + return elemFile.value = ''; + } + break; + default: //图片文件 + layui.each(value, function(i, item){ + if(!RegExp('\\w\\.('+ (exts || 'jpg|png|gif|bmp|jpeg$') +')', 'i').test(escape(item))){ + check = true; + } + }); + if(check){ + that.msg('选择的图片中包含不支持的格式'); + return elemFile.value = ''; + } + break; + } + + //检验文件大小 + if(options.size > 0 && !(device.ie && device.ie < 10)){ + var limitSize; + layui.each(that.chooseFiles, function(index, file){ + if(file.size > 1024*options.size){ + var size = options.size/1024; + size = size >= 1 + ? (Math.floor(size) + (size%1 > 0 ? size.toFixed(1) : 0)) + 'MB' + : options.size + 'KB' + elemFile.value = ''; + limitSize = size; + + } + }); + if(limitSize) return that.msg('文件不能超过'+ limitSize); + } + send(); + }; + + //事件处理 + Class.prototype.events = function(){ + var that = this + ,options = that.config + + //设置当前选择的文件队列 + ,setChooseFile = function(files){ + that.chooseFiles = {}; + layui.each(files, function(i, item){ + var time = new Date().getTime(); + that.chooseFiles[time + '-' + i] = item; + }); + } + + //设置选择的文本 + ,setChooseText = function(files, filename){ + var elemFile = that.elemFile + ,value = files.length > 1 + ? files.length + '个文件' + : ((files[0] || {}).name || (elemFile[0].value.match(/[^\/\\]+\..+/g)||[]) || ''); + + if(elemFile.next().hasClass(ELEM_CHOOSE)){ + elemFile.next().remove(); + } + that.upload(null, 'choose'); + if(that.isFile() || options.choose) return; + elemFile.after(''+ value +''); + }; + + //点击上传容器 + options.elem.off('upload.start').on('upload.start', function(){ + var othis = $(this), data = othis.attr('lay-data'); + + if(data){ + try{ + data = new Function('return '+ data)(); + that.config = $.extend({}, options, data); + } catch(e){ + hint.error('Upload element property lay-data configuration item has a syntax error: ' + data) + } + } + + that.config.item = othis; + that.elemFile[0].click(); + }); + + //拖拽上传 + if(!(device.ie && device.ie < 10)){ + options.elem.off('upload.over').on('upload.over', function(){ + var othis = $(this) + othis.attr('lay-over', ''); + }) + .off('upload.leave').on('upload.leave', function(){ + var othis = $(this) + othis.removeAttr('lay-over'); + }) + .off('upload.drop').on('upload.drop', function(e, param){ + var othis = $(this), files = param.originalEvent.dataTransfer.files || []; + + othis.removeAttr('lay-over'); + setChooseFile(files); + + if(options.auto){ + that.upload(files); + } else { + setChooseText(files); + } + }); + } + + //文件选择 + that.elemFile.off('upload.change').on('upload.change', function(){ + var files = this.files || []; + setChooseFile(files); + options.auto ? that.upload() : setChooseText(files); //是否自动触发上传 + }); + + //手动触发上传 + options.bindAction.off('upload.action').on('upload.action', function(){ + that.upload(); + }); + + //防止事件重复绑定 + if(options.elem.data('haveEvents')) return; + + that.elemFile.on('change', function(){ + $(this).trigger('upload.change'); + }); + + options.elem.on('click', function(){ + if(that.isFile()) return; + $(this).trigger('upload.start'); + }); + + if(options.drag){ + options.elem.on('dragover', function(e){ + e.preventDefault(); + $(this).trigger('upload.over'); + }).on('dragleave', function(e){ + $(this).trigger('upload.leave'); + }).on('drop', function(e){ + e.preventDefault(); + $(this).trigger('upload.drop', e); + }); + } + + options.bindAction.on('click', function(){ + $(this).trigger('upload.action'); + }); + + options.elem.data('haveEvents', true); + }; + + //核心入口 + upload.render = function(options){ + var inst = new Class(options); + return thisUpload.call(inst); + }; + + exports(MOD_NAME, upload); +}); + diff --git a/novel-admin/src/main/resources/static/js/lay/modules/util.js b/novel-admin/src/main/resources/static/js/lay/modules/util.js new file mode 100644 index 0000000..3127f2f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/lay/modules/util.js @@ -0,0 +1,123 @@ +/** + + @Name:layui.util 工具集 + @Author:贤心 + @License:MIT + +*/ + +layui.define('jquery', function(exports){ + "use strict"; + + var $ = layui.$ + + //外部接口 + ,util = { + //固定块 + fixbar: function(options){ + var ELEM = 'layui-fixbar', TOP_BAR = 'layui-fixbar-top' + ,dom = $(document), body = $('body') + ,is, timer; + + options = $.extend({ + showHeight: 200 //出现TOP的滚动条高度临界值 + }, options); + + options.bar1 = options.bar1 === true ? '' : options.bar1; + options.bar2 = options.bar2 === true ? '' : options.bar2; + options.bgcolor = options.bgcolor ? ('background-color:' + options.bgcolor) : ''; + + var icon = [options.bar1, options.bar2, ''] //图标:信息、问号、TOP + ,elem = $(['
                          ' + ,options.bar1 ? '
                        • '+ icon[0] +'
                        • ' : '' + ,options.bar2 ? '
                        • '+ icon[1] +'
                        • ' : '' + ,'
                        • '+ icon[2] +'
                        • ' + ,'
                        '].join('')) + ,topBar = elem.find('.'+TOP_BAR) + ,scroll = function(){ + var stop = dom.scrollTop(); + if(stop >= (options.showHeight)){ + is || (topBar.show(), is = 1); + } else { + is && (topBar.hide(), is = 0); + } + }; + if($('.'+ ELEM)[0]) return; + + typeof options.css === 'object' && elem.css(options.css); + body.append(elem), scroll(); + + //bar点击事件 + elem.find('li').on('click', function(){ + var othis = $(this), type = othis.attr('lay-type'); + if(type === 'top'){ + $('html,body').animate({ + scrollTop : 0 + }, 200); + } + options.click && options.click.call(this, type); + }); + + //Top显示控制 + dom.on('scroll', function(){ + clearTimeout(timer); + timer = setTimeout(function(){ + scroll(); + }, 100); + }); + } + + //倒计时 + ,countdown: function(endTime, serverTime, callback){ + var that = this + ,type = typeof serverTime === 'function' + ,end = new Date(endTime).getTime() + ,now = new Date((!serverTime || type) ? new Date().getTime() : serverTime).getTime() + ,count = end - now + ,time = [ + Math.floor(count/(1000*60*60*24)) //天 + ,Math.floor(count/(1000*60*60)) % 24 //时 + ,Math.floor(count/(1000*60)) % 60 //分 + ,Math.floor(count/1000) % 60 //秒 + ]; + + if(type) callback = serverTime; + + var timer = setTimeout(function(){ + that.countdown(endTime, now + 1000, callback); + }, 1000); + + callback && callback(count > 0 ? time : [0,0,0,0], serverTime, timer); + + if(count <= 0) clearTimeout(timer); + return timer; + } + + //某个时间在当前时间的多久前 + ,timeAgo: function(time, onlyDate){ + var stamp = new Date().getTime() - new Date(time).getTime(); + + //超过30天,返回具体日期 + if(stamp > 1000*60*60*24*30){ + stamp = new Date(time).toLocaleString(); + onlyDate && (stamp = stamp.replace(/\s[\S]+$/g, '')); + return stamp; + } + + //30天以内,返回“多久前” + if(stamp >= 1000*60*60*24){ + return ((stamp/1000/60/60/24)|0) + '天前'; + } else if(stamp >= 1000*60*60){ + return ((stamp/1000/60/60)|0) + '小时前'; + } else if(stamp >= 1000*60*3){ //3分钟以内为:刚刚 + return ((stamp/1000/60)|0) + '分钟前'; + } else if(stamp < 0){ + return '未来'; + } else { + return '刚刚'; + } + } + }; + + exports('util', util); +}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/layui.js b/novel-admin/src/main/resources/static/js/layui.js new file mode 100644 index 0000000..b24fda9 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/layui.js @@ -0,0 +1,486 @@ +/*! + + @Title: Layui + @Description:经典模块化前端框架 + @Site: www.layui.com + @Author: 贤心 + @License:MIT + + */ + +;!function(win){ + "use strict"; + + var doc = document, config = { + modules: {} //记录模块物理路径 + ,status: {} //记录模块加载状态 + ,timeout: 10 //符合规范的模块请求最长等待秒数 + ,event: {} //记录模块自定义事件 + } + + ,Layui = function(){ + this.v = '2.1.5'; //版本号 + } + + //获取layui所在目录 + ,getPath = function(){ + var js = doc.scripts + ,jsPath = js[js.length - 1].src; + return jsPath.substring(0, jsPath.lastIndexOf('/') + 1); + }() + + //异常提示 + ,error = function(msg){ + win.console && console.error && console.error('Layui hint: ' + msg); + } + + ,isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]' + + //内置模块 + ,modules = { + layer: 'modules/layer' //弹层 + ,laydate: 'modules/laydate' //日期 + ,laypage: 'modules/laypage' //分页 + ,laytpl: 'modules/laytpl' //模板引擎 + ,layim: 'modules/layim' //web通讯 + ,layedit: 'modules/layedit' //富文本编辑器 + ,form: 'modules/form' //表单集 + ,upload: 'modules/upload' //上传 + ,tree: 'modules/tree' //树结构 + ,table: 'modules/table' //表格 + ,element: 'modules/element' //常用元素操作 + ,util: 'modules/util' //工具块 + ,flow: 'modules/flow' //流加载 + ,carousel: 'modules/carousel' //轮播 + ,code: 'modules/code' //代码修饰器 + ,jquery: 'modules/jquery' //DOM库(第三方) + + ,mobile: 'modules/mobile' //移动大模块 | 若当前为开发目录,则为移动模块入口,否则为移动模块集合 + ,'layui.all': '../layui.all' //PC模块合并版 + }; + + //记录基础数据 + Layui.prototype.cache = config; + + //定义模块 + Layui.prototype.define = function(deps, callback){ + var that = this + ,type = typeof deps === 'function' + ,mods = function(){ + typeof callback === 'function' && callback(function(app, exports){ + layui[app] = exports; + config.status[app] = true; + }); + return this; + }; + + type && ( + callback = deps, + deps = [] + ); + + if(layui['layui.all'] || (!layui['layui.all'] && layui['layui.mobile'])){ + return mods.call(that); + } + + that.use(deps, mods); + return that; + }; + + //使用特定模块 + Layui.prototype.use = function(apps, callback, exports){ + var that = this + ,dir = config.dir = config.dir ? config.dir : getPath + ,head = doc.getElementsByTagName('head')[0]; + + apps = typeof apps === 'string' ? [apps] : apps; + + //如果页面已经存在jQuery1.7+库且所定义的模块依赖jQuery,则不加载内部jquery模块 + if(window.jQuery && jQuery.fn.on){ + that.each(apps, function(index, item){ + if(item === 'jquery'){ + apps.splice(index, 1); + } + }); + layui.jquery = layui.$ = jQuery; + } + + var item = apps[0] + ,timeout = 0; + exports = exports || []; + + //静态资源host + config.host = config.host || (dir.match(/\/\/([\s\S]+?)\//)||['//'+ location.host +'/'])[0]; + + //加载完毕 + function onScriptLoad(e, url){ + var readyRegExp = navigator.platform === 'PLaySTATION 3' ? /^complete$/ : /^(complete|loaded)$/ + if (e.type === 'load' || (readyRegExp.test((e.currentTarget || e.srcElement).readyState))) { + config.modules[item] = url; + head.removeChild(node); + (function poll() { + if(++timeout > config.timeout * 1000 / 4){ + return error(item + ' is not a valid module'); + }; + config.status[item] ? onCallback() : setTimeout(poll, 4); + }()); + } + } + + //回调 + function onCallback(){ + exports.push(layui[item]); + apps.length > 1 ? + that.use(apps.slice(1), callback, exports) + : ( typeof callback === 'function' && callback.apply(layui, exports) ); + } + + //如果使用了 layui.all.js + if(apps.length === 0 + || (layui['layui.all'] && modules[item]) + || (!layui['layui.all'] && layui['layui.mobile'] && modules[item]) + ){ + return onCallback(), that; + } + + //首次加载模块 + if(!config.modules[item]){ + var node = doc.createElement('script') + ,url = ( + modules[item] ? (dir + 'lay/') : (config.base || '') + ) + (that.modules[item] || item) + '.js'; + + node.async = true; + node.charset = 'utf-8'; + node.src = url + function(){ + var version = config.version === true + ? (config.v || (new Date()).getTime()) + : (config.version||''); + return version ? ('?v=' + version) : ''; + }(); + + head.appendChild(node); + + if(node.attachEvent && !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) && !isOpera){ + node.attachEvent('onreadystatechange', function(e){ + onScriptLoad(e, url); + }); + } else { + node.addEventListener('load', function(e){ + onScriptLoad(e, url); + }, false); + } + + config.modules[item] = url; + } else { //缓存 + (function poll() { + if(++timeout > config.timeout * 1000 / 4){ + return error(item + ' is not a valid module'); + }; + (typeof config.modules[item] === 'string' && config.status[item]) + ? onCallback() + : setTimeout(poll, 4); + }()); + } + + return that; + }; + + //获取节点的style属性值 + Layui.prototype.getStyle = function(node, name){ + var style = node.currentStyle ? node.currentStyle : win.getComputedStyle(node, null); + return style[style.getPropertyValue ? 'getPropertyValue' : 'getAttribute'](name); + }; + + //css外部加载器 + Layui.prototype.link = function(href, fn, cssname){ + var that = this + ,link = doc.createElement('link') + ,head = doc.getElementsByTagName('head')[0]; + + if(typeof fn === 'string') cssname = fn; + + var app = (cssname || href).replace(/\.|\//g, '') + ,id = link.id = 'layuicss-'+app + ,timeout = 0; + + link.rel = 'stylesheet'; + link.href = href + (config.debug ? '?v='+new Date().getTime() : ''); + link.media = 'all'; + + if(!doc.getElementById(id)){ + head.appendChild(link); + } + + if(typeof fn !== 'function') return that; + + //轮询css是否加载完毕 + (function poll() { + if(++timeout > config.timeout * 1000 / 100){ + return error(href + ' timeout'); + }; + parseInt(that.getStyle(doc.getElementById(id), 'width')) === 1989 ? function(){ + fn(); + }() : setTimeout(poll, 100); + }()); + + return that; + }; + + //css内部加载器 + Layui.prototype.addcss = function(firename, fn, cssname){ + return layui.link(config.dir + 'css/' + firename, fn, cssname); + }; + + //图片预加载 + Layui.prototype.img = function(url, callback, error) { + var img = new Image(); + img.src = url; + if(img.complete){ + return callback(img); + } + img.onload = function(){ + img.onload = null; + callback(img); + }; + img.onerror = function(e){ + img.onerror = null; + error(e); + }; + }; + + //全局配置 + Layui.prototype.config = function(options){ + options = options || {}; + for(var key in options){ + config[key] = options[key]; + } + return this; + }; + + //记录全部模块 + Layui.prototype.modules = function(){ + var clone = {}; + for(var o in modules){ + clone[o] = modules[o]; + } + return clone; + }(); + + //拓展模块 + Layui.prototype.extend = function(options){ + var that = this; + + //验证模块是否被占用 + options = options || {}; + for(var o in options){ + if(that[o] || that.modules[o]){ + error('\u6A21\u5757\u540D '+ o +' \u5DF2\u88AB\u5360\u7528'); + } else { + that.modules[o] = options[o]; + } + } + + return that; + }; + + //路由解析 + Layui.prototype.router = function(hash){ + var that = this + ,hash = hash || location.hash + ,data = { + path: [] + ,search: {} + ,hash: (hash.match(/[^#](#.*$)/) || [])[1] || '' + }; + + if(!/^#\//.test(hash)) return data; //禁止非路由规范 + hash = hash.replace(/^#\//, '').replace(/([^#])(#.*$)/, '$1').split('/') || []; + + //提取Hash结构 + that.each(hash, function(index, item){ + /^\w+=/.test(item) ? function(){ + item = item.split('='); + data.search[item[0]] = item[1]; + }() : data.path.push(item); + }); + + return data; + }; + + //本地存储 + Layui.prototype.data = function(table, settings){ + table = table || 'layui'; + + if(!win.JSON || !win.JSON.parse) return; + + //如果settings为null,则删除表 + if(settings === null){ + return delete localStorage[table]; + } + + settings = typeof settings === 'object' + ? settings + : {key: settings}; + + try{ + var data = JSON.parse(localStorage[table]); + } catch(e){ + var data = {}; + } + + if(settings.value) data[settings.key] = settings.value; + if(settings.remove) delete data[settings.key]; + localStorage[table] = JSON.stringify(data); + + return settings.key ? data[settings.key] : data; + }; + + //设备信息 + Layui.prototype.device = function(key){ + var agent = navigator.userAgent.toLowerCase() + + //获取版本号 + ,getVersion = function(label){ + var exp = new RegExp(label + '/([^\\s\\_\\-]+)'); + label = (agent.match(exp)||[])[1]; + return label || false; + } + + //返回结果集 + ,result = { + os: function(){ //底层操作系统 + if(/windows/.test(agent)){ + return 'windows'; + } else if(/linux/.test(agent)){ + return 'linux'; + } else if(/iphone|ipod|ipad|ios/.test(agent)){ + return 'ios'; + } else if(/mac/.test(agent)){ + return 'mac'; + } + }() + ,ie: function(){ //ie版本 + return (!!win.ActiveXObject || "ActiveXObject" in win) ? ( + (agent.match(/msie\s(\d+)/) || [])[1] || '11' //由于ie11并没有msie的标识 + ) : false; + }() + ,weixin: getVersion('micromessenger') //是否微信 + }; + + //任意的key + if(key && !result[key]){ + result[key] = getVersion(key); + } + + //移动设备 + result.android = /android/.test(agent); + result.ios = result.os === 'ios'; + + return result; + }; + + //提示 + Layui.prototype.hint = function(){ + return { + error: error + } + }; + + //遍历 + Layui.prototype.each = function(obj, fn){ + var key + ,that = this; + if(typeof fn !== 'function') return that; + obj = obj || []; + if(obj.constructor === Object){ + for(key in obj){ + if(fn.call(obj[key], key, obj[key])) break; + } + } else { + for(key = 0; key < obj.length; key++){ + if(fn.call(obj[key], key, obj[key])) break; + } + } + return that; + }; + + //将数组中的对象按其某个成员排序 + Layui.prototype.sort = function(obj, key, desc){ + var clone = JSON.parse( + JSON.stringify(obj) + ); + + if(!key) return clone; + + //如果是数字,按大小排序,如果是非数字,按字典序排序 + clone.sort(function(o1, o2){ + var isNum = /^-?\d+$/ + ,v1 = o1[key] + ,v2 = o2[key]; + + if(isNum.test(v1)) v1 = parseFloat(v1); + if(isNum.test(v2)) v2 = parseFloat(v2); + + if(v1 && !v2){ + return 1; + } else if(!v1 && v2){ + return -1; + } + + if(v1 > v2){ + return 1; + } else if (v1 < v2) { + return -1; + } else { + return 0; + } + }); + + desc && clone.reverse(); //倒序 + return clone; + }; + + //阻止事件冒泡 + Layui.prototype.stope = function(e){ + e = e || win.event; + e.stopPropagation + ? e.stopPropagation() + : e.cancelBubble = true; + }; + + //自定义模块事件 + Layui.prototype.onevent = function(modName, events, callback){ + if(typeof modName !== 'string' + || typeof callback !== 'function') return this; + config.event[modName + '.' + events] = [callback]; + + //不再对多次事件监听做支持 + /* + config.event[modName + '.' + events] + ? config.event[modName + '.' + events].push(callback) + : config.event[modName + '.' + events] = [callback]; + */ + + return this; + }; + + //执行自定义模块事件 + Layui.prototype.event = function(modName, events, params){ + var that = this + ,result = null + ,filter = events.match(/\(.*\)$/)||[] //提取事件过滤器 + ,set = (events = modName + '.'+ events).replace(filter, '') //获取事件本体名 + ,callback = function(_, item){ + var res = item && item.call(that, params); + res === false && result === null && (result = false); + }; + layui.each(config.event[set], callback); + filter[0] && layui.each(config.event[events], callback); //执行过滤器中的事件 + return result; + }; + + win.layui = new Layui(); + +}(window); + diff --git a/novel-admin/src/main/resources/static/js/openTab.js b/novel-admin/src/main/resources/static/js/openTab.js new file mode 100644 index 0000000..3390a5e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/openTab.js @@ -0,0 +1,12 @@ +function openPage(url,title) { + var nav = $(window.parent.document).find('.J_menuTabs .page-tabs-content '); + $(window.parent.document).find('.J_menuTabs .page-tabs-content ').find(".J_menuTab.active").removeClass("active"); + $(window.parent.document).find('.J_mainContent').find("iframe").css("display", "none"); + var iframe = ''; + $(window.parent.document).find('.J_menuTabs .page-tabs-content ').append( + ' ' + title + ' '); + $(window.parent.document).find('.J_mainContent').append(iframe); + console.log('--success--') +} +//$('.openPage').on('click', openPage('','')); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/.DS_Store b/novel-admin/src/main/resources/static/js/plugins/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a5b9778b7509389dc2cfc04fb57cd9aca2a099b2 GIT binary patch literal 14340 zcmeHNO>Y}T7=G8EYdaJpKpc>e#i>Y%JZEu=w9k21OW1A>a zPCf7odgl9QAOunm`~bLf;K-3%c;0u$(ax-`3M8m1&8~K5vVNZVc;=nidEYD%d0UhI zC89PF`M5Z3uHp88sKsgK;NSVm9Ys9xa9zcPe3NKSA&uV~#J%nyht5AJ;1TmnxXLu3 zAj^-tc#0y6_W+t9-#9zN{o2_zji1yHmg^;1oDl zfY*l>E>1Ufda6=cI&kAHJpayHcsY>Ard^)3bh@e2Qk;S**+oub5O_;oNs**&}D!tYkeW#B@TnbO>BgG7C} z#I;O`1H^}PbZJp@k@e21cL61iQ6_6Xr(L8ocJ?JazQau1;*_Zs7D;i0{OuWQv0k@iqmj5ZBS4y#|d4XsLA zs~WJZKU*n}7)IM-U>uBE%3!cHjBJbJaWIfoASZMer&y3#E{}$^q^w(Fq2202yt-Jb zSSt*V_yiWh>&94SUTTk@SneakaucjY%IX8QS}?6uKrA=QVJn%674~4c%&_L5$F`eg zRK#Kfv6W?Zo5lLTs(E;XIzoG1h|QY#BiNr>UjlHKS!@>Hkp6a|)CjB?+$HOhSnne! zUeortg5~T|>~e)VmVH7_cQ^%{0!{&^fK$LJ@Kh`CDq6n=FEGRoYJzIoyPy)tKvOQz-5nSWcmWU-!#zA0v+Q_)&5bujSc*@+y}+plP=Fg-6LgD|`id-}d}Gc%sJmRRkSl^bo}`$C`KZ2DSk#@5F>|%|{L3 zg&M3naIx&;55eIGNX|dz9lgQfn%F1ih{?*D*e^9$+;c8{gfrJJvGa$9ch!eV%0FJw z7qRw-sHLv$wT^x$&hEm(a|*MKGsn}MrbGo0r=UH|CuZ~b?4gZ1Z>laMlx?REzUtNI z=v&_F=TXYy8^BLcHX;hpnvHfq~<4)ylnctv2v$ zz;je`fR?Ce#876#l9++Pt0JnzQBRJ)<~Gp&cKQ*kiVq8jzvP;T3N+8G%`51S(*BrhDBt`@k!T z6-j0+ziknzp$+6Bli^`KF&JEWLLW#BscT`ex-Y@*qHIKwOsptBgYxJr?pWhc?h$Z^ zG(**~tX0 + http://jsbeautifier.org/ + + Usage: + style_html(html_source); + + style_html(html_source, options); + + The options are: + indent_size (default 4) — indentation size, + indent_char (default space) — character to indent with, + max_char (default 250) - maximum amount of characters per line (0 = disable) + brace_style (default "collapse") - "collapse" | "expand" | "end-expand" + put braces on the same line as control statements (default), or put braces on own line (Allman / ANSI style), or just put end braces on own line. + unformatted (defaults to inline tags) - list of tags, that shouldn't be reformatted + indent_scripts (default normal) - "keep"|"separate"|"normal" + + e.g. + + style_html(html_source, { + 'indent_size': 2, + 'indent_char': ' ', + 'max_char': 78, + 'brace_style': 'expand', + 'unformatted': ['a', 'sub', 'sup', 'b', 'i', 'u'] + }); +*/ + +(function() { + + function style_html(html_source, options, js_beautify, css_beautify) { + //Wrapper function to invoke all the necessary constructors and deal with the output. + + var multi_parser, + indent_size, + indent_character, + max_char, + brace_style, + unformatted; + + options = options || {}; + indent_size = options.indent_size || 4; + indent_character = options.indent_char || ' '; + brace_style = options.brace_style || 'collapse'; + max_char = options.max_char === 0 ? Infinity : options.max_char || 250; + unformatted = options.unformatted || ['a', 'span', 'bdo', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'sub', 'sup', 'tt', 'i', 'b', 'big', 'small', 'u', 's', 'strike', 'font', 'ins', 'del', 'pre', 'address', 'dt', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6']; + + function Parser() { + + this.pos = 0; //Parser position + this.token = ''; + this.current_mode = 'CONTENT'; //reflects the current Parser mode: TAG/CONTENT + this.tags = { //An object to hold tags, their position, and their parent-tags, initiated with default values + parent: 'parent1', + parentcount: 1, + parent1: '' + }; + this.tag_type = ''; + this.token_text = this.last_token = this.last_text = this.token_type = ''; + + this.Utils = { //Uilities made available to the various functions + whitespace: "\n\r\t ".split(''), + single_token: 'br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?='.split(','), //all the single tags for HTML + extra_liners: 'head,body,/html'.split(','), //for tags that need a line of whitespace before them + in_array: function (what, arr) { + for (var i=0; i= this.input.length) { + return content.length?content.join(''):['', 'TK_EOF']; + } + + input_char = this.input.charAt(this.pos); + this.pos++; + this.line_char_count++; + + if (this.Utils.in_array(input_char, this.Utils.whitespace)) { + if (content.length) { + space = true; + } + this.line_char_count--; + continue; //don't want to insert unnecessary space + } + else if (space) { + if (this.line_char_count >= this.max_char) { //insert a line when the max_char is reached + content.push('\n'); + for (var i=0; i', 'igm'); + reg_match.lastIndex = this.pos; + var reg_array = reg_match.exec(this.input); + var end_script = reg_array?reg_array.index:this.input.length; //absolute end of script + if(this.pos < end_script) { //get everything in between the script tags + content = this.input.substring(this.pos, end_script); + this.pos = end_script; + } + return content; + }; + + this.record_tag = function (tag){ //function to record a tag and its parent in this.tags Object + if (this.tags[tag + 'count']) { //check for the existence of this tag type + this.tags[tag + 'count']++; + this.tags[tag + this.tags[tag + 'count']] = this.indent_level; //and record the present indent level + } + else { //otherwise initialize this tag type + this.tags[tag + 'count'] = 1; + this.tags[tag + this.tags[tag + 'count']] = this.indent_level; //and record the present indent level + } + this.tags[tag + this.tags[tag + 'count'] + 'parent'] = this.tags.parent; //set the parent (i.e. in the case of a div this.tags.div1parent) + this.tags.parent = tag + this.tags[tag + 'count']; //and make this the current parent (i.e. in the case of a div 'div1') + }; + + this.retrieve_tag = function (tag) { //function to retrieve the opening tag to the corresponding closer + if (this.tags[tag + 'count']) { //if the openener is not in the Object we ignore it + var temp_parent = this.tags.parent; //check to see if it's a closable tag. + while (temp_parent) { //till we reach '' (the initial value); + if (tag + this.tags[tag + 'count'] === temp_parent) { //if this is it use it + break; + } + temp_parent = this.tags[temp_parent + 'parent']; //otherwise keep on climbing up the DOM Tree + } + if (temp_parent) { //if we caught something + this.indent_level = this.tags[tag + this.tags[tag + 'count']]; //set the indent_level accordingly + this.tags.parent = this.tags[temp_parent + 'parent']; //and set the current parent + } + delete this.tags[tag + this.tags[tag + 'count'] + 'parent']; //delete the closed tags parent reference... + delete this.tags[tag + this.tags[tag + 'count']]; //...and the tag itself + if (this.tags[tag + 'count'] === 1) { + delete this.tags[tag + 'count']; + } + else { + this.tags[tag + 'count']--; + } + } + }; + + this.get_tag = function (peek) { //function to get a full tag and parse its type + var input_char = '', + content = [], + comment = '', + space = false, + tag_start, tag_end, + orig_pos = this.pos, + orig_line_char_count = this.line_char_count; + + peek = peek !== undefined ? peek : false; + + do { + if (this.pos >= this.input.length) { + if (peek) { + this.pos = orig_pos; + this.line_char_count = orig_line_char_count; + } + return content.length?content.join(''):['', 'TK_EOF']; + } + + input_char = this.input.charAt(this.pos); + this.pos++; + this.line_char_count++; + + if (this.Utils.in_array(input_char, this.Utils.whitespace)) { //don't want to insert unnecessary space + space = true; + this.line_char_count--; + continue; + } + + if (input_char === "'" || input_char === '"') { + if (!content[1] || content[1] !== '!') { //if we're in a comment strings don't get treated specially + input_char += this.get_unformatted(input_char); + space = true; + } + } + + if (input_char === '=') { //no space before = + space = false; + } + + if (content.length && content[content.length-1] !== '=' && input_char !== '>' && space) { + //no space after = or before > + if (this.line_char_count >= this.max_char) { + this.print_newline(false, content); + this.line_char_count = 0; + } + else { + content.push(' '); + this.line_char_count++; + } + space = false; + } + if (input_char === '<') { + tag_start = this.pos - 1; + } + content.push(input_char); //inserts character at-a-time (or string) + } while (input_char !== '>'); + + var tag_complete = content.join(''); + var tag_index; + if (tag_complete.indexOf(' ') !== -1) { //if there's whitespace, thats where the tag name ends + tag_index = tag_complete.indexOf(' '); + } + else { //otherwise go with the tag ending + tag_index = tag_complete.indexOf('>'); + } + var tag_check = tag_complete.substring(1, tag_index).toLowerCase(); + if (tag_complete.charAt(tag_complete.length-2) === '/' || + this.Utils.in_array(tag_check, this.Utils.single_token)) { //if this tag name is a single tag type (either in the list or has a closing /) + if ( ! peek) { + this.tag_type = 'SINGLE'; + } + } + else if (tag_check === 'script') { //for later script handling + if ( ! peek) { + this.record_tag(tag_check); + this.tag_type = 'SCRIPT'; + } + } + else if (tag_check === 'style') { //for future style handling (for now it justs uses get_content) + if ( ! peek) { + this.record_tag(tag_check); + this.tag_type = 'STYLE'; + } + } + else if (this.is_unformatted(tag_check, unformatted)) { // do not reformat the "unformatted" tags + comment = this.get_unformatted('', tag_complete); //...delegate to get_unformatted function + content.push(comment); + // Preserve collapsed whitespace either before or after this tag. + if (tag_start > 0 && this.Utils.in_array(this.input.charAt(tag_start - 1), this.Utils.whitespace)){ + content.splice(0, 0, this.input.charAt(tag_start - 1)); + } + tag_end = this.pos - 1; + if (this.Utils.in_array(this.input.charAt(tag_end + 1), this.Utils.whitespace)){ + content.push(this.input.charAt(tag_end + 1)); + } + this.tag_type = 'SINGLE'; + } + else if (tag_check.charAt(0) === '!') { //peek for so... + comment = this.get_unformatted('-->', tag_complete); //...delegate to get_unformatted + content.push(comment); + } + if ( ! peek) { + this.tag_type = 'START'; + } + } + else if (tag_check.indexOf('[endif') !== -1) {//peek for ', tag_complete); + content.push(comment); + this.tag_type = 'SINGLE'; + } + } + else if ( ! peek) { + if (tag_check.charAt(0) === '/') { //this tag is a double tag so check for tag-ending + this.retrieve_tag(tag_check.substring(1)); //remove it and all ancestors + this.tag_type = 'END'; + } + else { //otherwise it's a start-tag + this.record_tag(tag_check); //push it on the tag stack + this.tag_type = 'START'; + } + if (this.Utils.in_array(tag_check, this.Utils.extra_liners)) { //check if this double needs an extra line + this.print_newline(true, this.output); + } + } + + if (peek) { + this.pos = orig_pos; + this.line_char_count = orig_line_char_count; + } + + return content.join(''); //returns fully formatted tag + }; + + this.get_unformatted = function (delimiter, orig_tag) { //function to return unformatted content in its entirety + + if (orig_tag && orig_tag.toLowerCase().indexOf(delimiter) !== -1) { + return ''; + } + var input_char = ''; + var content = ''; + var space = true; + do { + + if (this.pos >= this.input.length) { + return content; + } + + input_char = this.input.charAt(this.pos); + this.pos++; + + if (this.Utils.in_array(input_char, this.Utils.whitespace)) { + if (!space) { + this.line_char_count--; + continue; + } + if (input_char === '\n' || input_char === '\r') { + content += '\n'; + /* Don't change tab indention for unformatted blocks. If using code for html editing, this will greatly affect
                         tags if they are specified in the 'unformatted array'
                        +                for (var i=0; i]*>\s*$/);
                        +
                        +            // if next_tag comes back but is not an isolated tag, then
                        +            // let's treat the 'a' tag as having content
                        +            // and respect the unformatted option
                        +            if (!tag || this.Utils.in_array(tag, unformatted)){
                        +                return true;
                        +            } else {
                        +                return false;
                        +            }
                        +        };
                        +
                        +        this.printer = function (js_source, indent_character, indent_size, max_char, brace_style) { //handles input/output and some other printing functions
                        +
                        +          this.input = js_source || ''; //gets the input for the Parser
                        +          this.output = [];
                        +          this.indent_character = indent_character;
                        +          this.indent_string = '';
                        +          this.indent_size = indent_size;
                        +          this.brace_style = brace_style;
                        +          this.indent_level = 0;
                        +          this.max_char = max_char;
                        +          this.line_char_count = 0; //count to see if max_char was exceeded
                        +
                        +          for (var i=0; i 0) {
                        +              this.indent_level--;
                        +            }
                        +          };
                        +        };
                        +        return this;
                        +      }
                        +
                        +      /*_____________________--------------------_____________________*/
                        +
                        +      multi_parser = new Parser(); //wrapping functions Parser
                        +      multi_parser.printer(html_source, indent_character, indent_size, max_char, brace_style); //initialize starting values
                        +
                        +      while (true) {
                        +          var t = multi_parser.get_token();
                        +          multi_parser.token_text = t[0];
                        +          multi_parser.token_type = t[1];
                        +
                        +        if (multi_parser.token_type === 'TK_EOF') {
                        +          break;
                        +        }
                        +
                        +        switch (multi_parser.token_type) {
                        +          case 'TK_TAG_START':
                        +            multi_parser.print_newline(false, multi_parser.output);
                        +            multi_parser.print_token(multi_parser.token_text);
                        +            multi_parser.indent();
                        +            multi_parser.current_mode = 'CONTENT';
                        +            break;
                        +          case 'TK_TAG_STYLE':
                        +          case 'TK_TAG_SCRIPT':
                        +            multi_parser.print_newline(false, multi_parser.output);
                        +            multi_parser.print_token(multi_parser.token_text);
                        +            multi_parser.current_mode = 'CONTENT';
                        +            break;
                        +          case 'TK_TAG_END':
                        +            //Print new line only if the tag has no content and has child
                        +            if (multi_parser.last_token === 'TK_CONTENT' && multi_parser.last_text === '') {
                        +                var tag_name = multi_parser.token_text.match(/\w+/)[0];
                        +                var tag_extracted_from_last_output = multi_parser.output[multi_parser.output.length -1].match(/<\s*(\w+)/);
                        +                if (tag_extracted_from_last_output === null || tag_extracted_from_last_output[1] !== tag_name) {
                        +                    multi_parser.print_newline(true, multi_parser.output);
                        +                }
                        +            }
                        +            multi_parser.print_token(multi_parser.token_text);
                        +            multi_parser.current_mode = 'CONTENT';
                        +            break;
                        +          case 'TK_TAG_SINGLE':
                        +            // Don't add a newline before elements that should remain unformatted.
                        +            var tag_check = multi_parser.token_text.match(/^\s*<([a-z]+)/i);
                        +            if (!tag_check || !multi_parser.Utils.in_array(tag_check[1], unformatted)){
                        +                multi_parser.print_newline(false, multi_parser.output);
                        +            }
                        +            multi_parser.print_token(multi_parser.token_text);
                        +            multi_parser.current_mode = 'CONTENT';
                        +            break;
                        +          case 'TK_CONTENT':
                        +            if (multi_parser.token_text !== '') {
                        +              multi_parser.print_token(multi_parser.token_text);
                        +            }
                        +            multi_parser.current_mode = 'TAG';
                        +            break;
                        +          case 'TK_STYLE':
                        +          case 'TK_SCRIPT':
                        +            if (multi_parser.token_text !== '') {
                        +              multi_parser.output.push('\n');
                        +              var text = multi_parser.token_text,
                        +                  _beautifier,
                        +                  script_indent_level = 1;
                        +              if (multi_parser.token_type === 'TK_SCRIPT') {
                        +                _beautifier = typeof js_beautify === 'function' && js_beautify;
                        +              } else if (multi_parser.token_type === 'TK_STYLE') {
                        +                _beautifier = typeof css_beautify === 'function' && css_beautify;
                        +              }
                        +
                        +              if (options.indent_scripts === "keep") {
                        +                script_indent_level = 0;
                        +              } else if (options.indent_scripts === "separate") {
                        +                script_indent_level = -multi_parser.indent_level;
                        +              }
                        +
                        +              var indentation = multi_parser.get_full_indent(script_indent_level);
                        +              if (_beautifier) {
                        +                // call the Beautifier if avaliable
                        +                text = _beautifier(text.replace(/^\s*/, indentation), options);
                        +              } else {
                        +                // simply indent the string otherwise
                        +                var white = text.match(/^\s*/)[0];
                        +                var _level = white.match(/[^\n\r]*$/)[0].split(multi_parser.indent_string).length - 1;
                        +                var reindent = multi_parser.get_full_indent(script_indent_level -_level);
                        +                text = text.replace(/^\s*/, indentation)
                        +                       .replace(/\r\n|\r|\n/g, '\n' + reindent)
                        +                       .replace(/\s*$/, '');
                        +              }
                        +              if (text) {
                        +                multi_parser.print_token(text);
                        +                multi_parser.print_newline(true, multi_parser.output);
                        +              }
                        +            }
                        +            multi_parser.current_mode = 'TAG';
                        +            break;
                        +        }
                        +        multi_parser.last_token = multi_parser.token_type;
                        +        multi_parser.last_text = multi_parser.token_text;
                        +      }
                        +      return multi_parser.output.join('');
                        +    }
                        +
                        +    // If we're running a web page and don't have either of the above, add our one global
                        +    window.html_beautify = function(html_source, options) {
                        +        return style_html(html_source, options, window.js_beautify, window.css_beautify);
                        +    };
                        +
                        +}());
                        diff --git a/novel-admin/src/main/resources/static/js/plugins/blueimp/jquery.blueimp-gallery.min.js b/novel-admin/src/main/resources/static/js/plugins/blueimp/jquery.blueimp-gallery.min.js
                        new file mode 100644
                        index 0000000..d5e0d34
                        --- /dev/null
                        +++ b/novel-admin/src/main/resources/static/js/plugins/blueimp/jquery.blueimp-gallery.min.js
                        @@ -0,0 +1 @@
                        +!function(a){"use strict";"function"==typeof define&&define.amd?define(["./blueimp-helper"],a):(window.blueimp=window.blueimp||{},window.blueimp.Gallery=a(window.blueimp.helper||window.jQuery))}(function(a){"use strict";function b(a,c){return void 0===document.body.style.maxHeight?null:this&&this.options===b.prototype.options?a&&a.length?(this.list=a,this.num=a.length,this.initOptions(c),void this.initialize()):void this.console.log("blueimp Gallery: No or empty list provided as first argument.",a):new b(a,c)}return a.extend(b.prototype,{options:{container:"#blueimp-gallery",slidesContainer:"div",titleElement:"h3",displayClass:"blueimp-gallery-display",controlsClass:"blueimp-gallery-controls",singleClass:"blueimp-gallery-single",leftEdgeClass:"blueimp-gallery-left",rightEdgeClass:"blueimp-gallery-right",playingClass:"blueimp-gallery-playing",slideClass:"slide",slideLoadingClass:"slide-loading",slideErrorClass:"slide-error",slideContentClass:"slide-content",toggleClass:"toggle",prevClass:"prev",nextClass:"next",closeClass:"close",playPauseClass:"play-pause",typeProperty:"type",titleProperty:"title",urlProperty:"href",displayTransition:!0,clearSlides:!0,stretchImages:!1,toggleControlsOnReturn:!0,toggleSlideshowOnSpace:!0,enableKeyboardNavigation:!0,closeOnEscape:!0,closeOnSlideClick:!0,closeOnSwipeUpOrDown:!0,emulateTouchEvents:!0,stopTouchEventsPropagation:!1,hidePageScrollbars:!0,disableScroll:!0,carousel:!1,continuous:!0,unloadElements:!0,startSlideshow:!1,slideshowInterval:5e3,index:0,preloadRange:2,transitionSpeed:400,slideshowTransitionSpeed:void 0,event:void 0,onopen:void 0,onopened:void 0,onslide:void 0,onslideend:void 0,onslidecomplete:void 0,onclose:void 0,onclosed:void 0},carouselOptions:{hidePageScrollbars:!1,toggleControlsOnReturn:!1,toggleSlideshowOnSpace:!1,enableKeyboardNavigation:!1,closeOnEscape:!1,closeOnSlideClick:!1,closeOnSwipeUpOrDown:!1,disableScroll:!1,startSlideshow:!0},console:window.console&&"function"==typeof window.console.log?window.console:{log:function(){}},support:function(b){var c={touch:void 0!==window.ontouchstart||window.DocumentTouch&&document instanceof DocumentTouch},d={webkitTransition:{end:"webkitTransitionEnd",prefix:"-webkit-"},MozTransition:{end:"transitionend",prefix:"-moz-"},OTransition:{end:"otransitionend",prefix:"-o-"},transition:{end:"transitionend",prefix:""}},e=function(){var a,d,e=c.transition;document.body.appendChild(b),e&&(a=e.name.slice(0,-9)+"ransform",void 0!==b.style[a]&&(b.style[a]="translateZ(0)",d=window.getComputedStyle(b).getPropertyValue(e.prefix+"transform"),c.transform={prefix:e.prefix,name:a,translate:!0,translateZ:!!d&&"none"!==d})),void 0!==b.style.backgroundSize&&(c.backgroundSize={},b.style.backgroundSize="contain",c.backgroundSize.contain="contain"===window.getComputedStyle(b).getPropertyValue("background-size"),b.style.backgroundSize="cover",c.backgroundSize.cover="cover"===window.getComputedStyle(b).getPropertyValue("background-size")),document.body.removeChild(b)};return function(a,c){var d;for(d in c)if(c.hasOwnProperty(d)&&void 0!==b.style[d]){a.transition=c[d],a.transition.name=d;break}}(c,d),document.body?e():a(document).on("DOMContentLoaded",e),c}(document.createElement("div")),requestAnimationFrame:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,initialize:function(){return this.initStartIndex(),this.initWidget()===!1?!1:(this.initEventListeners(),this.onslide(this.index),this.ontransitionend(),void(this.options.startSlideshow&&this.play()))},slide:function(a,b){window.clearTimeout(this.timeout);var c,d,e,f=this.index;if(f!==a&&1!==this.num){if(b||(b=this.options.transitionSpeed),this.support.transform){for(this.options.continuous||(a=this.circle(a)),c=Math.abs(f-a)/(f-a),this.options.continuous&&(d=c,c=-this.positions[this.circle(a)]/this.slideWidth,c!==d&&(a=-c*this.num+a)),e=Math.abs(f-a)-1;e;)e-=1,this.move(this.circle((a>f?a:f)-e-1),this.slideWidth*c,0);a=this.circle(a),this.move(f,this.slideWidth*c,b),this.move(a,0,b),this.options.continuous&&this.move(this.circle(a-c),-(this.slideWidth*c),0)}else a=this.circle(a),this.animate(f*-this.slideWidth,a*-this.slideWidth,b);this.onslide(a)}},getIndex:function(){return this.index},getNumber:function(){return this.num},prev:function(){(this.options.continuous||this.index)&&this.slide(this.index-1)},next:function(){(this.options.continuous||this.index1&&(this.timeout=this.setTimeout(!this.requestAnimationFrame&&this.slide||function(a,c){b.animationFrameId=b.requestAnimationFrame.call(window,function(){b.slide(a,c)})},[this.index+1,this.options.slideshowTransitionSpeed],this.interval)),this.container.addClass(this.options.playingClass)},pause:function(){window.clearTimeout(this.timeout),this.interval=null,this.container.removeClass(this.options.playingClass)},add:function(a){var b;for(a.concat||(a=Array.prototype.slice.call(a)),this.list.concat||(this.list=Array.prototype.slice.call(this.list)),this.list=this.list.concat(a),this.num=this.list.length,this.num>2&&null===this.options.continuous&&(this.options.continuous=!0,this.container.removeClass(this.options.leftEdgeClass)),this.container.removeClass(this.options.rightEdgeClass).removeClass(this.options.singleClass),b=this.num-a.length;bc?(d.slidesContainer[0].style.left=b+"px",d.ontransitionend(),void window.clearInterval(f)):void(d.slidesContainer[0].style.left=(b-a)*(Math.floor(g/c*100)/100)+a+"px")},4)},preventDefault:function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},onresize:function(){this.initSlides(!0)},onmousedown:function(a){a.which&&1===a.which&&"VIDEO"!==a.target.nodeName&&(a.preventDefault(),(a.originalEvent||a).touches=[{pageX:a.pageX,pageY:a.pageY}],this.ontouchstart(a))},onmousemove:function(a){this.touchStart&&((a.originalEvent||a).touches=[{pageX:a.pageX,pageY:a.pageY}],this.ontouchmove(a))},onmouseup:function(a){this.touchStart&&(this.ontouchend(a),delete this.touchStart)},onmouseout:function(b){if(this.touchStart){var c=b.target,d=b.relatedTarget;(!d||d!==c&&!a.contains(c,d))&&this.onmouseup(b)}},ontouchstart:function(a){this.options.stopTouchEventsPropagation&&this.stopPropagation(a);var b=(a.originalEvent||a).touches[0];this.touchStart={x:b.pageX,y:b.pageY,time:Date.now()},this.isScrolling=void 0,this.touchDelta={}},ontouchmove:function(a){this.options.stopTouchEventsPropagation&&this.stopPropagation(a);var b,c,d=(a.originalEvent||a).touches[0],e=(a.originalEvent||a).scale,f=this.index;if(!(d.length>1||e&&1!==e))if(this.options.disableScroll&&a.preventDefault(),this.touchDelta={x:d.pageX-this.touchStart.x,y:d.pageY-this.touchStart.y},b=this.touchDelta.x,void 0===this.isScrolling&&(this.isScrolling=this.isScrolling||Math.abs(b)0||f===this.num-1&&0>b?Math.abs(b)/this.slideWidth+1:1,c=[f],f&&c.push(f-1),f20||Math.abs(this.touchDelta.x)>i/2,l=!g&&this.touchDelta.x>0||g===this.num-1&&this.touchDelta.x<0,m=!k&&this.options.closeOnSwipeUpOrDown&&(j&&Math.abs(this.touchDelta.y)>20||Math.abs(this.touchDelta.y)>this.slideHeight/2);this.options.continuous&&(l=!1),b=this.touchDelta.x<0?-1:1,this.isScrolling?m?this.close():this.translateY(g,0,h):k&&!l?(c=g+b,d=g-b,e=i*b,f=-i*b,this.options.continuous?(this.move(this.circle(c),e,0),this.move(this.circle(g-2*b),f,0)):c>=0&&cthis.container[0].clientHeight&&(d.style.maxHeight=this.container[0].clientHeight),this.interval&&this.slides[this.index]===e&&this.play(),this.setTimeout(this.options.onslidecomplete,[c,e]))},onload:function(a){this.oncomplete(a)},onerror:function(a){this.oncomplete(a)},onkeydown:function(a){switch(a.which||a.keyCode){case 13:this.options.toggleControlsOnReturn&&(this.preventDefault(a),this.toggleControls());break;case 27:this.options.closeOnEscape&&(this.close(),a.stopImmediatePropagation());break;case 32:this.options.toggleSlideshowOnSpace&&(this.preventDefault(a),this.toggleSlideshow());break;case 37:this.options.enableKeyboardNavigation&&(this.preventDefault(a),this.prev());break;case 39:this.options.enableKeyboardNavigation&&(this.preventDefault(a),this.next())}},handleClick:function(b){var c=this.options,d=b.target||b.srcElement,e=d.parentNode,f=function(b){return a(d).hasClass(b)||a(e).hasClass(b)};f(c.toggleClass)?(this.preventDefault(b),this.toggleControls()):f(c.prevClass)?(this.preventDefault(b),this.prev()):f(c.nextClass)?(this.preventDefault(b),this.next()):f(c.closeClass)?(this.preventDefault(b),this.close()):f(c.playPauseClass)?(this.preventDefault(b),this.toggleSlideshow()):e===this.slidesContainer[0]?(this.preventDefault(b),c.closeOnSlideClick?this.close():this.toggleControls()):e.parentNode&&e.parentNode===this.slidesContainer[0]&&(this.preventDefault(b),this.toggleControls())},onclick:function(a){return this.options.emulateTouchEvents&&this.touchDelta&&(Math.abs(this.touchDelta.x)>20||Math.abs(this.touchDelta.y)>20)?void delete this.touchDelta:this.handleClick(a)},updateEdgeClasses:function(a){a?this.container.removeClass(this.options.leftEdgeClass):this.container.addClass(this.options.leftEdgeClass),a===this.num-1?this.container.addClass(this.options.rightEdgeClass):this.container.removeClass(this.options.rightEdgeClass)},handleSlide:function(a){this.options.continuous||this.updateEdgeClasses(a),this.loadElements(a),this.options.unloadElements&&this.unloadElements(a),this.setTitle(a)},onslide:function(a){this.index=a,this.handleSlide(a),this.setTimeout(this.options.onslide,[a,this.slides[a]])},setTitle:function(a){var b=this.slides[a].firstChild.title,c=this.titleElement;c.length&&(this.titleElement.empty(),b&&c[0].appendChild(document.createTextNode(b)))},setTimeout:function(a,b,c){var d=this;return a&&window.setTimeout(function(){a.apply(d,b||[])},c||0)},imageFactory:function(b,c){var d,e,f,g=this,h=this.imagePrototype.cloneNode(!1),i=b,j=this.options.stretchImages,k=function(b){if(!d){if(b={type:b.type,target:e},!e.parentNode)return g.setTimeout(k,[b]);d=!0,a(h).off("load error",k),j&&"load"===b.type&&(e.style.background='url("'+i+'") center no-repeat',e.style.backgroundSize=j),c(b)}};return"string"!=typeof i&&(i=this.getItemProperty(b,this.options.urlProperty),f=this.getItemProperty(b,this.options.titleProperty)),j===!0&&(j="contain"),j=this.support.backgroundSize&&this.support.backgroundSize[j]&&j,j?e=this.elementPrototype.cloneNode(!1):(e=h,h.draggable=!1),f&&(e.title=f),a(h).on("load error",k),h.src=i,e},createElement:function(b,c){var d=b&&this.getItemProperty(b,this.options.typeProperty),e=d&&this[d.split("/")[0]+"Factory"]||this.imageFactory,f=b&&e.call(this,b,c);return f||(f=this.elementPrototype.cloneNode(!1),this.setTimeout(c,[{type:"error",target:f}])),a(f).addClass(this.options.slideContentClass),f},loadElement:function(b){this.elements[b]||(this.slides[b].firstChild?this.elements[b]=a(this.slides[b]).hasClass(this.options.slideErrorClass)?3:2:(this.elements[b]=1,a(this.slides[b]).addClass(this.options.slideLoadingClass),this.slides[b].appendChild(this.createElement(this.list[b],this.proxyListener))))},loadElements:function(a){var b,c=Math.min(this.num,2*this.options.preloadRange+1),d=a;for(b=0;c>b;b+=1)d+=b*(b%2===0?-1:1),d=this.circle(d),this.loadElement(d)},unloadElements:function(a){var b,c;for(b in this.elements)this.elements.hasOwnProperty(b)&&(c=Math.abs(a-b),c>this.options.preloadRange&&c+this.options.preloadRangea?-this.slideWidth:this.indexa;a++)this.unloadSlide(a)},toggleControls:function(){var a=this.options.controlsClass;this.container.hasClass(a)?this.container.removeClass(a):this.container.addClass(a)},toggleSlideshow:function(){this.interval?this.pause():this.play()},getNodeIndex:function(a){return parseInt(a.getAttribute("data-index"),10)},getNestedProperty:function(a,b){return b.replace(/\[(?:'([^']+)'|"([^"]+)"|(\d+))\]|(?:(?:^|\.)([^\.\[]+))/g,function(b,c,d,e,f){var g=f||c||d||e&&parseInt(e,10);b&&a&&(a=a[g])}),a},getDataProperty:function(b,c){if(b.getAttribute){var d=b.getAttribute("data-"+c.replace(/([A-Z])/g,"-$1").toLowerCase());if("string"==typeof d){if(/^(true|false|null|-?\d+(\.\d+)?|\{[\s\S]*\}|\[[\s\S]*\])$/.test(d))try{return a.parseJSON(d)}catch(e){}return d}}},getItemProperty:function(a,b){var c=a[b];return void 0===c&&(c=this.getDataProperty(a,b),void 0===c&&(c=this.getNestedProperty(a,b))),c},initStartIndex:function(){var a,b=this.options.index,c=this.options.urlProperty;if(b&&"number"!=typeof b)for(a=0;a2&&!this.$element.is("ul"))throw"in Bootstrap version 3 the pagination root item must be an ul element.";this.currentPage=1,this.lastPage=1,this.setOptions(options),this.initialized=!0},setOptions:function(options){this.options=$.extend({},this.options||$.fn.bootstrapPaginator.defaults,options),this.totalPages=parseInt(this.options.totalPages,10),this.numberOfPages=parseInt(this.options.numberOfPages,10),options&&"undefined"!=typeof options.currentPage&&this.setCurrentPage(options.currentPage),this.listen(),this.render(),this.initialized||this.lastPage===this.currentPage||this.$element.trigger("page-changed",[this.lastPage,this.currentPage])},listen:function(){this.$element.off("page-clicked"),this.$element.off("page-changed"),"function"==typeof this.options.onPageClicked&&this.$element.bind("page-clicked",this.options.onPageClicked),"function"==typeof this.options.onPageChanged&&this.$element.on("page-changed",this.options.onPageChanged),this.$element.bind("page-clicked",this.onPageClicked)},destroy:function(){this.$element.off("page-clicked"),this.$element.off("page-changed"),this.$element.removeData("bootstrapPaginator"),this.$element.empty()},show:function(page){this.setCurrentPage(page),this.render(),this.lastPage!==this.currentPage&&this.$element.trigger("page-changed",[this.lastPage,this.currentPage])},showNext:function(){var pages=this.getPages();pages.next&&this.show(pages.next)},showPrevious:function(){var pages=this.getPages();pages.prev&&this.show(pages.prev)},showFirst:function(){var pages=this.getPages();pages.first&&this.show(pages.first)},showLast:function(){var pages=this.getPages();pages.last&&this.show(pages.last)},onPageItemClicked:function(event){var type=event.data.type,page=event.data.page;this.$element.trigger("page-clicked",[event,type,page])},onPageClicked:function(event,originalEvent,type,page){var currentTarget=$(event.currentTarget);switch(type){case"first":currentTarget.bootstrapPaginator("showFirst");break;case"prev":currentTarget.bootstrapPaginator("showPrevious");break;case"next":currentTarget.bootstrapPaginator("showNext");break;case"last":currentTarget.bootstrapPaginator("showLast");break;case"page":currentTarget.bootstrapPaginator("show",page)}},render:function(){var containerClass=this.getValueFromOption(this.options.containerClass,this.$element),size=this.options.size||"normal",alignment=this.options.alignment||"left",pages=this.getPages(),listContainer=2===this.options.bootstrapMajorVersion?$("
                          "):this.$element,listContainerClass=2===this.options.bootstrapMajorVersion?this.getValueFromOption(this.options.listContainerClass,listContainer):null,first=null,prev=null,next=null,last=null,p=null,i=0;switch(this.$element.prop("class",""),this.$element.addClass("pagination"),size.toLowerCase()){case"large":case"small":case"mini":this.$element.addClass($.fn.bootstrapPaginator.sizeArray[this.options.bootstrapMajorVersion][size.toLowerCase()])}if(2===this.options.bootstrapMajorVersion)switch(alignment.toLowerCase()){case"center":this.$element.addClass("pagination-centered");break;case"right":this.$element.addClass("pagination-right")}for(this.$element.addClass(containerClass),this.$element.empty(),2===this.options.bootstrapMajorVersion&&(this.$element.append(listContainer),listContainer.addClass(listContainerClass)),this.pageRef=[],pages.first&&(first=this.buildPageItem("first",pages.first),first&&listContainer.append(first)),pages.prev&&(prev=this.buildPageItem("prev",pages.prev),prev&&listContainer.append(prev)),i=0;i"),itemContent=$(""),text="",title="",itemContainerClass=this.options.itemContainerClass(type,page,this.currentPage),itemContentClass=this.getValueFromOption(this.options.itemContentClass,type,page,this.currentPage),tooltipOpts=null;switch(type){case"first":if(!this.getValueFromOption(this.options.shouldShowPage,type,page,this.currentPage))return;text=this.options.itemTexts(type,page,this.currentPage),title=this.options.tooltipTitles(type,page,this.currentPage);break;case"last":if(!this.getValueFromOption(this.options.shouldShowPage,type,page,this.currentPage))return;text=this.options.itemTexts(type,page,this.currentPage),title=this.options.tooltipTitles(type,page,this.currentPage);break;case"prev":if(!this.getValueFromOption(this.options.shouldShowPage,type,page,this.currentPage))return;text=this.options.itemTexts(type,page,this.currentPage),title=this.options.tooltipTitles(type,page,this.currentPage);break;case"next":if(!this.getValueFromOption(this.options.shouldShowPage,type,page,this.currentPage))return;text=this.options.itemTexts(type,page,this.currentPage),title=this.options.tooltipTitles(type,page,this.currentPage);break;case"page":if(!this.getValueFromOption(this.options.shouldShowPage,type,page,this.currentPage))return;text=this.options.itemTexts(type,page,this.currentPage),title=this.options.tooltipTitles(type,page,this.currentPage)}return itemContainer.addClass(itemContainerClass).append(itemContent),itemContent.addClass(itemContentClass).html(text).on("click",null,{type:type,page:page},$.proxy(this.onPageItemClicked,this)),this.options.pageUrl&&itemContent.attr("href",this.getValueFromOption(this.options.pageUrl,type,page,this.currentPage)),this.options.useBootstrapTooltip?(tooltipOpts=$.extend({},this.options.bootstrapTooltipOptions,{title:title}),itemContent.tooltip(tooltipOpts)):itemContent.attr("title",title),itemContainer},setCurrentPage:function(page){if(page>this.totalPages||1>page)throw"Page out of range";this.lastPage=this.currentPage,this.currentPage=parseInt(page,10)},getPages:function(){var totalPages=this.totalPages,pageStart=0===this.currentPage%this.numberOfPages?(parseInt(this.currentPage/this.numberOfPages,10)-1)*this.numberOfPages+1:parseInt(this.currentPage/this.numberOfPages,10)*this.numberOfPages+1,output=[],i=0,counter=0;for(pageStart=1>pageStart?1:pageStart,i=pageStart,counter=0;counter=i;i+=1,counter+=1)output.push(i);return output.first=1,output.prev=this.currentPage>1?this.currentPage-1:1,output.next=this.currentPagetj-i8rU?3RyWI)e{#HN@F zc8+#*P+18;oUq%3wmyV4CKb#DJ4cRC#6yW5Dy75_4`+WWez{=h=;4r3d`Ox3qj(XU zo%xfwL$YJ&U?3P6GN83DWv2K41^+UmMZUR&3I>9K|H^<&mN&}u0Rt>NjQ{`u literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js b/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js new file mode 100644 index 0000000..3e59359 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js @@ -0,0 +1,7 @@ +/* +* bootstrap-table - v1.9.0 - 2015-09-30 +* https://github.com/wenzhixin/bootstrap-table +* Copyright (c) 2015 zhixin wen +* Licensed MIT License +*/ +!function(a){"use strict";var b=function(b,c){b.options.columnsHidden.length>0&&a.each(b.columns,function(d,e){-1!==b.options.columnsHidden.indexOf(e.field)&&e.visible!==c&&b.toggleColumn(a.fn.bootstrapTable.utils.getFieldIndex(b.columns,e.field),c,!0)})},c=function(a){(a.options.height||a.options.showFooter)&&setTimeout(a.resetView,1)},d=function(a,b,d){a.options.minHeight?b<=a.options.minWidth&&d<=a.options.minHeight?e(a):b>a.options.minWidth&&d>a.options.minHeight&&f(a):b<=a.options.minWidth?e(a):b>a.options.minWidth&&f(a),c(a)},e=function(a){g(a,!1),b(a,!1)},f=function(a){g(a,!0),b(a,!0)},g=function(a,b){a.options.cardView=b,a.toggleView()},h=function(a,b){var c;return function(){var d=this,e=arguments,f=function(){c=null,a.apply(d,e)};clearTimeout(c),c=setTimeout(f,b)}};a.extend(a.fn.bootstrapTable.defaults,{mobileResponsive:!1,minWidth:562,minHeight:void 0,heightThreshold:100,checkOnInit:!0,columnsHidden:[]});var i=a.fn.bootstrapTable.Constructor,j=i.prototype.init;i.prototype.init=function(){if(j.apply(this,Array.prototype.slice.apply(arguments)),this.options.mobileResponsive&&this.options.minWidth){var b=this,c={width:a(window).width(),height:a(window).height()};if(a(window).on("resize orientationchange",h(function(){var e=a(this).height(),f=a(this).width();(Math.abs(c.height-e)>b.options.heightThreshold||c.width!=f)&&(d(b,f,e),c={width:f,height:e})},200)),this.options.checkOnInit){var e=a(window).height(),f=a(window).width();d(this,f,e),c={width:f,height:e}}}}}(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/bootstrap-table.js b/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/bootstrap-table.js new file mode 100644 index 0000000..39bf40c --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/bootstrap-table.js @@ -0,0 +1,1306 @@ +/* +* bootstrap-table - v1.9.0 - 2015-09-30 +* https://github.com/wenzhixin/bootstrap-table +* Copyright (c) 2015 zhixin wen +* Licensed MIT License +*/ +! + function(a) { + "use strict"; + var b = null, + c = function(a) { + var b = arguments, + c = !0, + d = 1; + return a = a.replace(/%s/g, + function() { + var a = b[d++]; + return "undefined" == typeof a ? (c = !1, "") : a + }), + c ? a: "" + }, + d = function(b, c, d, e) { + var f = ""; + return a.each(b, + function(a, b) { + return b[c] === e ? (f = b[d], !1) : !0 + }), + f + }, + e = function(b, c) { + var d = -1; + return a.each(b, + function(a, b) { + return b.field === c ? (d = a, !1) : !0 + }), + d + }, + f = function(b) { + var c, d, e, f = 0, + g = []; + for (c = 0; c < b[0].length; c++) f += b[0][c].colspan || 1; + for (c = 0; c < b.length; c++) for (g[c] = [], d = 0; f > d; d++) g[c][d] = !1; + for (c = 0; c < b.length; c++) for (d = 0; d < b[c].length; d++) { + var h = b[c][d], + i = h.rowspan || 1, + j = h.colspan || 1, + k = a.inArray(!1, g[c]); + for (1 === j && (h.fieldIndex = k, "undefined" == typeof h.field && (h.field = k)), e = 0; i > e; e++) g[c + e][k] = !0; + for (e = 0; j > e; e++) g[c][k + e] = !0 + } + }, + g = function() { + if (null === b) { + var c, d, e = a("

                          ").addClass("fixed-table-scroll-inner"), + f = a("

                          ").addClass("fixed-table-scroll-outer"); + f.append(e), + a("body").append(f), + c = e[0].offsetWidth, + f.css("overflow", "scroll"), + d = e[0].offsetWidth, + c === d && (d = f[0].clientWidth), + f.remove(), + b = c - d + } + return b + }, + h = function(b, d, e, f) { + var g = d; + if ("string" == typeof d) { + var h = d.split("."); + h.length > 1 ? (g = window, a.each(h, + function(a, b) { + g = g[b] + })) : g = window[d] + } + return "object" == typeof g ? g: "function" == typeof g ? g.apply(b, e) : !g && "string" == typeof d && c.apply(this, [d].concat(e)) ? c.apply(this, [d].concat(e)) : f + }, + i = function(b, c, d) { + var e = Object.getOwnPropertyNames(b), + f = Object.getOwnPropertyNames(c), + g = ""; + if (d && e.length !== f.length) return ! 1; + for (var h = 0; h < e.length; h++) if (g = e[h], a.inArray(g, f) > -1 && b[g] !== c[g]) return ! 1; + return ! 0 + }, + j = function(a) { + return "string" == typeof a ? a.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'") : a + }, + k = function(b) { + var c = 0; + return b.children().each(function() { + c < a(this).outerHeight(!0) && (c = a(this).outerHeight(!0)) + }), + c + }, + l = function(a) { + for (var b in a) { + var c = b.split(/(?=[A-Z])/).join("-").toLowerCase(); + c !== b && (a[c] = a[b], delete a[b]) + } + return a + }, + m = function(a, b) { + var c = a; + if ("string" != typeof b || a.hasOwnProperty(b)) return a[b]; + var d = b.split("."); + for (var e in d) c = c[d[e]]; + return c + }, + n = function(b, c) { + this.options = c, + this.$el = a(b), + this.$el_ = this.$el.clone(), + this.timeoutId_ = 0, + this.timeoutFooter_ = 0, + this.init() + }; + n.DEFAULTS = { + classes: "table table-hover", + locale: void 0, + height: void 0, + undefinedText: "-", + sortName: void 0, + sortOrder: "asc", + striped: !1, + columns: [[]], + data: [], + dataField: "rows", + method: "get", + url: void 0, + ajax: void 0, + cache: !0, + contentType: "application/json", + dataType: "json", + ajaxOptions: {}, + queryParams: function(a) { + return a + }, + queryParamsType: "limit", + responseHandler: function(a) { + return a + }, + pagination: !1, + sidePagination: "client", + totalRows: 0, + pageNumber: 1, + pageSize: 10, + pageList: [10, 25, 50, 100], + paginationHAlign: "right", + paginationVAlign: "bottom", + paginationDetailHAlign: "left", + paginationFirstText: "«", + paginationPreText: "‹", + paginationNextText: "›", + paginationLastText: "»", + search: !1, + strictSearch: !1, + searchAlign: "right", + selectItemName: "btSelectItem", + showHeader: !0, + showFooter: !1, + showColumns: !1, + showPaginationSwitch: !1, + showRefresh: !1, + showToggle: !1, + buttonsAlign: "right", + smartDisplay: !0, + minimumCountColumns: 1, + idField: void 0, + uniqueId: void 0, + cardView: !1, + detailView: !1, + detailFormatter: function() { + return "" + }, + trimOnSearch: !0, + clickToSelect: !1, + singleSelect: !1, + toolbar: void 0, + toolbarAlign: "left", + checkboxHeader: !0, + sortable: !0, + silentSort: !0, + maintainSelected: !1, + searchTimeOut: 500, + searchText: "", + iconSize: void 0, + iconsPrefix: "glyphicon", + icons: { + paginationSwitchDown: "glyphicon-collapse-down icon-chevron-down", + paginationSwitchUp: "glyphicon-collapse-up icon-chevron-up", + refresh: "glyphicon-refresh icon-refresh", + toggle: "glyphicon-list-alt icon-list-alt", + columns: "glyphicon-th icon-th", + detailOpen: "glyphicon-plus icon-plus", + detailClose: "glyphicon-minus icon-minus" + }, + rowStyle: function() { + return {} + }, + rowAttributes: function() { + return {} + }, + onAll: function() { + return ! 1 + }, + onClickCell: function() { + return ! 1 + }, + onDblClickCell: function() { + return ! 1 + }, + onClickRow: function() { + return ! 1 + }, + onDblClickRow: function() { + return ! 1 + }, + onSort: function() { + return ! 1 + }, + onCheck: function() { + return ! 1 + }, + onUncheck: function() { + return ! 1 + }, + onCheckAll: function() { + return ! 1 + }, + onUncheckAll: function() { + return ! 1 + }, + onCheckSome: function() { + return ! 1 + }, + onUncheckSome: function() { + return ! 1 + }, + onLoadSuccess: function() { + return ! 1 + }, + onLoadError: function() { + return ! 1 + }, + onColumnSwitch: function() { + return ! 1 + }, + onPageChange: function() { + return ! 1 + }, + onSearch: function() { + return ! 1 + }, + onToggle: function() { + return ! 1 + }, + onPreBody: function() { + return ! 1 + }, + onPostBody: function() { + return ! 1 + }, + onPostHeader: function() { + return ! 1 + }, + onExpandRow: function() { + return ! 1 + }, + onCollapseRow: function() { + return ! 1 + }, + onRefreshOptions: function() { + return ! 1 + }, + onResetView: function() { + return ! 1 + } + }, + n.LOCALES = [], + n.LOCALES["en-US"] = n.LOCALES.en = { + formatLoadingMessage: function() { + return "Loading, please wait..." + }, + formatRecordsPerPage: function(a) { + return c("%s records per page", a) + }, + formatShowingRows: function(a, b, d) { + return c("Showing %s to %s of %s rows", a, b, d) + }, + formatSearch: function() { + return "Search" + }, + formatNoMatches: function() { + return "No matching records found" + }, + formatPaginationSwitch: function() { + return "Hide/Show pagination" + }, + formatRefresh: function() { + return "Refresh" + }, + formatToggle: function() { + return "Toggle" + }, + formatColumns: function() { + return "Columns" + }, + formatAllRows: function() { + return "All" + } + }, + a.extend(n.DEFAULTS, n.LOCALES["en-US"]), + n.COLUMN_DEFAULTS = { + radio: !1, + checkbox: !1, + checkboxEnabled: !0, + field: void 0, + title: void 0, + titleTooltip: void 0, + "class": void 0, + align: void 0, + halign: void 0, + falign: void 0, + valign: void 0, + width: void 0, + sortable: !1, + order: "asc", + visible: !0, + switchable: !0, + clickToSelect: !0, + formatter: void 0, + footerFormatter: void 0, + events: void 0, + sorter: void 0, + sortName: void 0, + cellStyle: void 0, + searchable: !0, + searchFormatter: !0, + cardVisible: !0 + }, + n.EVENTS = { + "all.bs.table": "onAll", + "click-cell.bs.table": "onClickCell", + "dbl-click-cell.bs.table": "onDblClickCell", + "click-row.bs.table": "onClickRow", + "dbl-click-row.bs.table": "onDblClickRow", + "sort.bs.table": "onSort", + "check.bs.table": "onCheck", + "uncheck.bs.table": "onUncheck", + "check-all.bs.table": "onCheckAll", + "uncheck-all.bs.table": "onUncheckAll", + "check-some.bs.table": "onCheckSome", + "uncheck-some.bs.table": "onUncheckSome", + "load-success.bs.table": "onLoadSuccess", + "load-error.bs.table": "onLoadError", + "column-switch.bs.table": "onColumnSwitch", + "page-change.bs.table": "onPageChange", + "search.bs.table": "onSearch", + "toggle.bs.table": "onToggle", + "pre-body.bs.table": "onPreBody", + "post-body.bs.table": "onPostBody", + "post-header.bs.table": "onPostHeader", + "expand-row.bs.table": "onExpandRow", + "collapse-row.bs.table": "onCollapseRow", + "refresh-options.bs.table": "onRefreshOptions", + "reset-view.bs.table": "onResetView" + }, + n.prototype.init = function() { + this.initLocale(), + this.initContainer(), + this.initTable(), + this.initHeader(), + this.initData(), + this.initFooter(), + this.initToolbar(), + this.initPagination(), + this.initBody(), + this.initSearchText(), + this.initServer() + }, + n.prototype.initLocale = function() { + if (this.options.locale) { + var b = this.options.locale.split(/-|_/); + b[0].toLowerCase(), + b[1] && b[1].toUpperCase(), + a.fn.bootstrapTable.locales[this.options.locale] ? a.extend(this.options, a.fn.bootstrapTable.locales[this.options.locale]) : a.fn.bootstrapTable.locales[b.join("-")] ? a.extend(this.options, a.fn.bootstrapTable.locales[b.join("-")]) : a.fn.bootstrapTable.locales[b[0]] && a.extend(this.options, a.fn.bootstrapTable.locales[b[0]]) + } + }, + n.prototype.initContainer = function() { + this.$container = a(['
                          ', '
                          ', "top" === this.options.paginationVAlign || "both" === this.options.paginationVAlign ? '
                          ': "", '
                          ', '
                          ', '
                          ', '
                          ', this.options.formatLoadingMessage(), "
                          ", "
                          ", '', "bottom" === this.options.paginationVAlign || "both" === this.options.paginationVAlign ? '
                          ': "", "
                          ", "
                          "].join("")), + this.$container.insertAfter(this.$el), + this.$tableContainer = this.$container.find(".fixed-table-container"), + this.$tableHeader = this.$container.find(".fixed-table-header"), + this.$tableBody = this.$container.find(".fixed-table-body"), + this.$tableLoading = this.$container.find(".fixed-table-loading"), + this.$tableFooter = this.$container.find(".fixed-table-footer"), + this.$toolbar = this.$container.find(".fixed-table-toolbar"), + this.$pagination = this.$container.find(".fixed-table-pagination"), + this.$tableBody.append(this.$el), + this.$container.after('
                          '), + this.$el.addClass(this.options.classes), + this.options.striped && this.$el.addClass("table-striped"), + -1 !== a.inArray("table-no-bordered", this.options.classes.split(" ")) && this.$tableContainer.addClass("table-no-bordered") + }, + n.prototype.initTable = function() { + var b = this, + c = [], + d = []; + this.$header = this.$el.find("thead"), + this.$header.length || (this.$header = a("").appendTo(this.$el)), + this.$header.find("tr").each(function() { + var b = []; + a(this).find("th").each(function() { + b.push(a.extend({}, + { + title: a(this).html(), + "class": a(this).attr("class"), + titleTooltip: a(this).attr("title"), + rowspan: a(this).attr("rowspan") ? +a(this).attr("rowspan") : void 0, + colspan: a(this).attr("colspan") ? +a(this).attr("colspan") : void 0 + }, + a(this).data())) + }), + c.push(b) + }), + a.isArray(this.options.columns[0]) || (this.options.columns = [this.options.columns]), + this.options.columns = a.extend(!0, [], c, this.options.columns), + this.columns = [], + f(this.options.columns), + a.each(this.options.columns, + function(c, d) { + a.each(d, + function(d, e) { + e = a.extend({}, + n.COLUMN_DEFAULTS, e), + "undefined" != typeof e.fieldIndex && (b.columns[e.fieldIndex] = e), + b.options.columns[c][d] = e + }) + }), + this.options.data.length || (this.$el.find("tbody tr").each(function() { + var c = {}; + c._id = a(this).attr("id"), + c._class = a(this).attr("class"), + c._data = l(a(this).data()), + a(this).find("td").each(function(d) { + var e = b.columns[d].field; + c[e] = a(this).html(), + c["_" + e + "_id"] = a(this).attr("id"), + c["_" + e + "_class"] = a(this).attr("class"), + c["_" + e + "_rowspan"] = a(this).attr("rowspan"), + c["_" + e + "_title"] = a(this).attr("title"), + c["_" + e + "_data"] = l(a(this).data()) + }), + d.push(c) + }), this.options.data = d) + }, + n.prototype.initHeader = function() { + var b = this, + d = {}, + e = []; + this.header = { + fields: [], + styles: [], + classes: [], + formatters: [], + events: [], + sorters: [], + sortNames: [], + cellStyles: [], + searchables: [] + }, + a.each(this.options.columns, + function(f, g) { + e.push(""), + 0 == f && !b.options.cardView && b.options.detailView && e.push(c('
                          ', b.options.columns.length)), + a.each(g, + function(a, f) { + var g = "", + h = "", + i = "", + j = "", + k = c(' class="%s"', f["class"]), + l = (b.options.sortOrder || f.order, "px"), + m = f.width; + if (void 0 === f.width || b.options.cardView || "string" == typeof f.width && -1 !== f.width.indexOf("%") && (l = "%"), f.width && "string" == typeof f.width && (m = f.width.replace("%", "").replace("px", "")), h = c("text-align: %s; ", f.halign ? f.halign: f.align), i = c("text-align: %s; ", f.align), j = c("vertical-align: %s; ", f.valign), j += c("width: %s; ", !f.checkbox && !f.radio || m ? m ? m + l: void 0 : "36px"), "undefined" != typeof f.fieldIndex) { + if (b.header.fields[f.fieldIndex] = f.field, b.header.styles[f.fieldIndex] = i + j, b.header.classes[f.fieldIndex] = k, b.header.formatters[f.fieldIndex] = f.formatter, b.header.events[f.fieldIndex] = f.events, b.header.sorters[f.fieldIndex] = f.sorter, b.header.sortNames[f.fieldIndex] = f.sortName, b.header.cellStyles[f.fieldIndex] = f.cellStyle, b.header.searchables[f.fieldIndex] = f.searchable, !f.visible) return; + if (b.options.cardView && !f.cardVisible) return; + d[f.field] = f + } + e.push(""), + e.push(c('
                          ', b.options.sortable && f.sortable ? "sortable both": "")), + g = f.title, + f.checkbox && (!b.options.singleSelect && b.options.checkboxHeader && (g = ''), b.header.stateField = f.field), + f.radio && (g = "", b.header.stateField = f.field, b.options.singleSelect = !0), + e.push(g), + e.push("
                          "), + e.push('
                          '), + e.push("
                          "), + e.push("") + }), + e.push("") + }), + this.$header.html(e.join("")), + this.$header.find("th[data-field]").each(function() { + a(this).data(d[a(this).data("field")]) + }), + this.$container.off("click", ".th-inner").on("click", ".th-inner", + function(c) { + b.options.sortable && a(this).parent().data().sortable && b.onSort(c) + }), + this.$header.children().children().off("keypress").on("keypress", + function(c) { + if (b.options.sortable && a(this).data().sortable) { + var d = c.keyCode || c.which; + 13 == d && b.onSort(c) + } + }), + !this.options.showHeader || this.options.cardView ? (this.$header.hide(), this.$tableHeader.hide(), this.$tableLoading.css("top", 0)) : (this.$header.show(), this.$tableHeader.show(), this.$tableLoading.css("top", this.$header.outerHeight() + 1), this.getCaret()), + this.$selectAll = this.$header.find('[name="btSelectAll"]'), + this.$container.off("click", '[name="btSelectAll"]').on("click", '[name="btSelectAll"]', + function() { + var c = a(this).prop("checked"); + b[c ? "checkAll": "uncheckAll"]() + }) + }, + n.prototype.initFooter = function() { ! this.options.showFooter || this.options.cardView ? this.$tableFooter.hide() : this.$tableFooter.show() + }, + n.prototype.initData = function(a, b) { + this.data = "append" === b ? this.data.concat(a) : "prepend" === b ? [].concat(a).concat(this.data) : a || this.options.data, + this.options.data = "append" === b ? this.options.data.concat(a) : "prepend" === b ? [].concat(a).concat(this.options.data) : this.data, + "server" !== this.options.sidePagination && this.initSort() + }, + n.prototype.initSort = function() { + var b = this, + c = this.options.sortName, + d = "desc" === this.options.sortOrder ? -1 : 1, + e = a.inArray(this.options.sortName, this.header.fields); - 1 !== e && this.data.sort(function(f, g) { + b.header.sortNames[e] && (c = b.header.sortNames[e]); + var i = m(f, c), + j = m(g, c), + k = h(b.header, b.header.sorters[e], [i, j]); + return void 0 !== k ? d * k: ((void 0 === i || null === i) && (i = ""), (void 0 === j || null === j) && (j = ""), a.isNumeric(i) && a.isNumeric(j) ? (i = parseFloat(i), j = parseFloat(j), j > i ? -1 * d: d) : i === j ? 0 : ("string" != typeof i && (i = i.toString()), -1 === i.localeCompare(j) ? -1 * d: d)) + }) + }, + n.prototype.onSort = function(b) { + var c = "keypress" === b.type ? a(b.currentTarget) : a(b.currentTarget).parent(), + d = this.$header.find("th").eq(c.index()); + return this.$header.add(this.$header_).find("span.order").remove(), + this.options.sortName === c.data("field") ? this.options.sortOrder = "asc" === this.options.sortOrder ? "desc": "asc": (this.options.sortName = c.data("field"), this.options.sortOrder = "asc" === c.data("order") ? "desc": "asc"), + this.trigger("sort", this.options.sortName, this.options.sortOrder), + c.add(d).data("order", this.options.sortOrder), + this.getCaret(), + "server" === this.options.sidePagination ? void this.initServer(this.options.silentSort) : (this.initSort(), void this.initBody()) + }, + n.prototype.initToolbar = function() { + var b, d, f = this, + g = [], + i = 0, + j = 0; + this.$toolbar.html(""), + ("string" == typeof this.options.toolbar || "object" == typeof this.options.toolbar) && a(c('
                          ', this.options.toolbarAlign)).appendTo(this.$toolbar).append(a(this.options.toolbar)), + g = [c('
                          ', this.options.buttonsAlign, this.options.buttonsAlign)], + "string" == typeof this.options.icons && (this.options.icons = h(null, this.options.icons)), + this.options.showPaginationSwitch && g.push(c('"), + this.options.showRefresh && g.push(c('"), + this.options.showToggle && g.push(c('"), + this.options.showColumns && (g.push(c('
                          ', this.options.formatColumns()), '", '", "
                          ")), + g.push("
                          "), + (this.showToolbar || g.length > 2) && this.$toolbar.append(g.join("")), + this.options.showPaginationSwitch && this.$toolbar.find('button[name="paginationSwitch"]').off("click").on("click", a.proxy(this.togglePagination, this)), + this.options.showRefresh && this.$toolbar.find('button[name="refresh"]').off("click").on("click", a.proxy(this.refresh, this)), + this.options.showToggle && this.$toolbar.find('button[name="toggle"]').off("click").on("click", + function() { + f.toggleView() + }), + this.options.showColumns && (b = this.$toolbar.find(".keep-open"), j <= this.options.minimumCountColumns && b.find("input").prop("disabled", !0), b.find("li").off("click").on("click", + function(a) { + a.stopImmediatePropagation() + }), b.find("input").off("click").on("click", + function() { + var b = a(this); + f.toggleColumn(e(f.columns, a(this).data("field")), b.prop("checked"), !1), + f.trigger("column-switch", a(this).data("field"), b.prop("checked")) + })), + this.options.search && (g = [], g.push('"), this.$toolbar.append(g.join("")), d = this.$toolbar.find(".search input"), d.off("keyup drop").on("keyup drop", + function(a) { + clearTimeout(i), + i = setTimeout(function() { + f.onSearch(a) + }, + f.options.searchTimeOut) + })) + }, + n.prototype.onSearch = function(b) { + var c = a.trim(a(b.currentTarget).val()); + this.options.trimOnSearch && a(b.currentTarget).val() !== c && a(b.currentTarget).val(c), + c !== this.searchText && (this.searchText = c, this.options.pageNumber = 1, this.initSearch(), this.updatePagination(), this.trigger("search", c)) + }, + n.prototype.initSearch = function() { + var b = this; + if ("server" !== this.options.sidePagination) { + var c = this.searchText && this.searchText.toLowerCase(), + d = a.isEmptyObject(this.filterColumns) ? null: this.filterColumns; + this.data = d ? a.grep(this.options.data, + function(a) { + for (var b in d) if (a[b] !== d[b]) return ! 1; + return ! 0 + }) : this.options.data, + this.data = c ? a.grep(this.data, + function(d, f) { + for (var g in d) { + g = a.isNumeric(g) ? parseInt(g, 10) : g; + var i = d[g], + j = b.columns[e(b.columns, g)], + k = a.inArray(g, b.header.fields); + j && j.searchFormatter && (i = h(j, b.header.formatters[k], [i, d, f], i)); + var l = a.inArray(g, b.header.fields); + if ( - 1 !== l && b.header.searchables[l] && ("string" == typeof i || "number" == typeof i)) if (b.options.strictSearch) { + if ((i + "").toLowerCase() === c) return ! 0 + } else if ( - 1 !== (i + "").toLowerCase().indexOf(c)) return ! 0 + } + return ! 1 + }) : this.data + } + }, + n.prototype.initPagination = function() { + if (!this.options.pagination) return void this.$pagination.hide(); + this.$pagination.show(); + var b, d, e, f, g, h, i, j, k, l = this, + m = [], + n = !1, + o = this.getData(); + if ("server" !== this.options.sidePagination && (this.options.totalRows = o.length), this.totalPages = 0, this.options.totalRows) { + if (this.options.pageSize === this.options.formatAllRows()) this.options.pageSize = this.options.totalRows, + n = !0; + else if (this.options.pageSize === this.options.totalRows) { + var p = "string" == typeof this.options.pageList ? this.options.pageList.replace("[", "").replace("]", "").replace(/ /g, "").toLowerCase().split(",") : this.options.pageList; + p.indexOf(this.options.formatAllRows().toLowerCase()) > -1 && (n = !0) + } + this.totalPages = ~~ ((this.options.totalRows - 1) / this.options.pageSize) + 1, + this.options.totalPages = this.totalPages + } + this.totalPages > 0 && this.options.pageNumber > this.totalPages && (this.options.pageNumber = this.totalPages), + this.pageFrom = (this.options.pageNumber - 1) * this.options.pageSize + 1, + this.pageTo = this.options.pageNumber * this.options.pageSize, + this.pageTo > this.options.totalRows && (this.pageTo = this.options.totalRows), + m.push('
                          ', '', this.options.formatShowingRows(this.pageFrom, this.pageTo, this.options.totalRows), ""), + m.push(''); + var q = [c('', "top" === this.options.paginationVAlign || "both" === this.options.paginationVAlign ? "dropdown": "dropup"), '", '"), m.push(this.options.formatRecordsPerPage(q.join(""))), m.push(""), m.push("
                          ", '"), + this.$pagination.html(m.join("")), + f = this.$pagination.find(".page-list a"), + g = this.$pagination.find(".page-first"), + h = this.$pagination.find(".page-pre"), + i = this.$pagination.find(".page-next"), + j = this.$pagination.find(".page-last"), + k = this.$pagination.find(".page-number"), + this.options.pageNumber <= 1 && (g.addClass("disabled"), h.addClass("disabled")), + this.options.pageNumber >= this.totalPages && (i.addClass("disabled"), j.addClass("disabled")), + this.options.smartDisplay && (this.totalPages <= 1 && this.$pagination.find("div.pagination").hide(), (r.length < 2 || this.options.totalRows <= r[0]) && this.$pagination.find("span.page-list").hide(), this.$pagination[this.getData().length ? "show": "hide"]()), + n && (this.options.pageSize = this.options.formatAllRows()), + f.off("click").on("click", a.proxy(this.onPageListChange, this)), + g.off("click").on("click", a.proxy(this.onPageFirst, this)), + h.off("click").on("click", a.proxy(this.onPagePre, this)), + i.off("click").on("click", a.proxy(this.onPageNext, this)), + j.off("click").on("click", a.proxy(this.onPageLast, this)), + k.off("click").on("click", a.proxy(this.onPageNumber, this)) + }, + n.prototype.updatePagination = function(b) { + b && a(b.currentTarget).hasClass("disabled") || (this.options.maintainSelected || this.resetRows(), this.initPagination(), "server" === this.options.sidePagination ? this.initServer() : this.initBody(), this.trigger("page-change", this.options.pageNumber, this.options.pageSize)) + }, + n.prototype.onPageListChange = function(b) { + var c = a(b.currentTarget); + c.parent().addClass("active").siblings().removeClass("active"), + this.options.pageSize = c.text().toUpperCase() === this.options.formatAllRows().toUpperCase() ? this.options.formatAllRows() : +c.text(), + this.$toolbar.find(".page-size").text(this.options.pageSize), + this.updatePagination(b) + }, + n.prototype.onPageFirst = function(a) { + this.options.pageNumber = 1, + this.updatePagination(a) + }, + n.prototype.onPagePre = function(a) { + this.options.pageNumber--, + this.updatePagination(a) + }, + n.prototype.onPageNext = function(a) { + this.options.pageNumber++, + this.updatePagination(a) + }, + n.prototype.onPageLast = function(a) { + this.options.pageNumber = this.totalPages, + this.updatePagination(a) + }, + n.prototype.onPageNumber = function(b) { + this.options.pageNumber !== +a(b.currentTarget).text() && (this.options.pageNumber = +a(b.currentTarget).text(), this.updatePagination(b)) + }, + n.prototype.initBody = function(b) { + var f = this, + g = [], + i = this.getData(); + this.trigger("pre-body", i), + this.$body = this.$el.find("tbody"), + this.$body.length || (this.$body = a("").appendTo(this.$el)), + this.options.pagination && "server" !== this.options.sidePagination || (this.pageFrom = 1, this.pageTo = i.length); + for (var k = this.pageFrom - 1; k < this.pageTo; k++) { + var l, n = i[k], + o = {}, + p = [], + q = "", + r = {}, + s = []; + if (o = h(this.options, this.options.rowStyle, [n, k], o), o && o.css) for (l in o.css) p.push(l + ": " + o.css[l]); + if (r = h(this.options, this.options.rowAttributes, [n, k], r)) for (l in r) s.push(c('%s="%s"', l, j(r[l]))); + n._data && !a.isEmptyObject(n._data) && a.each(n._data, + function(a, b) { + "index" !== a && (q += c(' data-%s="%s"', a, b)) + }), + g.push(""), + this.options.cardView && g.push(c('', this.header.fields.length)), + !this.options.cardView && this.options.detailView && g.push("", '', c('', this.options.iconsPrefix, this.options.icons.detailOpen), "", ""), + a.each(this.header.fields, + function(b, i) { + var j = "", + l = m(n, i), + q = "", + r = {}, + s = "", + t = f.header.classes[b], + u = "", + v = "", + w = "", + x = f.columns[e(f.columns, i)]; + if (x.visible) { + if (o = c('style="%s"', p.concat(f.header.styles[b]).join("; ")), l = h(x, f.header.formatters[b], [l, n, k], l), n["_" + i + "_id"] && (s = c(' id="%s"', n["_" + i + "_id"])), n["_" + i + "_class"] && (t = c(' class="%s"', n["_" + i + "_class"])), n["_" + i + "_rowspan"] && (v = c(' rowspan="%s"', n["_" + i + "_rowspan"])), n["_" + i + "_title"] && (w = c(' title="%s"', n["_" + i + "_title"])), r = h(f.header, f.header.cellStyles[b], [l, n, k], r), r.classes && (t = c(' class="%s"', r.classes)), r.css) { + var y = []; + for (var z in r.css) y.push(z + ": " + r.css[z]); + o = c('style="%s"', y.concat(f.header.styles[b]).join("; ")) + } + n["_" + i + "_data"] && !a.isEmptyObject(n["_" + i + "_data"]) && a.each(n["_" + i + "_data"], + function(a, b) { + "index" !== a && (u += c(' data-%s="%s"', a, b)) + }), + x.checkbox || x.radio ? (q = x.checkbox ? "checkbox": q, q = x.radio ? "radio": q, j = [f.options.cardView ? '
                          ': '', "", f.header.formatters[b] && "string" == typeof l ? l: "", f.options.cardView ? "
                          ": ""].join(""), n[f.header.stateField] = l === !0 || l && l.checked) : (l = "undefined" == typeof l || null === l ? f.options.undefinedText: l, j = f.options.cardView ? ['
                          ', f.options.showHeader ? c('%s', o, d(f.columns, "field", "title", i)) : "", c('%s', l), "
                          "].join("") : [c("", s, t, o, u, v, w), l, ""].join(""), f.options.cardView && f.options.smartDisplay && "" === l && (j = "")), + g.push(j) + } + }), + this.options.cardView && g.push(""), + g.push("") + } + g.length || g.push('', c('%s', this.$header.find("th").length, this.options.formatNoMatches()), ""), + this.$body.html(g.join("")), + b || this.scrollTo(0), + this.$body.find("> tr[data-index] > td").off("click dblclick").on("click dblclick", + function(b) { + var d = a(this), + g = d.parent(), + h = f.data[g.data("index")], + i = d[0].cellIndex, + j = f.header.fields[f.options.detailView && !f.options.cardView ? i - 1 : i], + k = f.columns[e(f.columns, j)], + l = m(h, j); + if (!d.find(".detail-icon").length && (f.trigger("click" === b.type ? "click-cell": "dbl-click-cell", j, l, h, d), f.trigger("click" === b.type ? "click-row": "dbl-click-row", h, g), "click" === b.type && f.options.clickToSelect && k.clickToSelect)) { + var n = g.find(c('[name="%s"]', f.options.selectItemName)); + n.length && n[0].click() + } + }), + this.$body.find("> tr[data-index] > td > .detail-icon").off("click").on("click", + function() { + var b = a(this), + d = b.parent().parent(), + e = d.data("index"), + g = i[e]; + d.next().is("tr.detail-view") ? (b.find("i").attr("class", c("%s %s", f.options.iconsPrefix, f.options.icons.detailOpen)), d.next().remove(), f.trigger("collapse-row", e, g)) : (b.find("i").attr("class", c("%s %s", f.options.iconsPrefix, f.options.icons.detailClose)), d.after(c('%s', d.find("td").length, h(f.options, f.options.detailFormatter, [e, g], ""))), f.trigger("expand-row", e, g, d.next().find("td"))), + f.resetView() + }), + this.$selectItem = this.$body.find(c('[name="%s"]', this.options.selectItemName)), + this.$selectItem.off("click").on("click", + function(b) { + b.stopImmediatePropagation(); + var c = a(this), + d = c.prop("checked"), + e = f.data[c.data("index")]; + f.options.maintainSelected && a(this).is(":radio") && a.each(f.options.data, + function(a, b) { + b[f.header.stateField] = !1 + }), + e[f.header.stateField] = d, + f.options.singleSelect && (f.$selectItem.not(this).each(function() { + f.data[a(this).data("index")][f.header.stateField] = !1 + }), f.$selectItem.filter(":checked").not(this).prop("checked", !1)), + f.updateSelected(), + f.trigger(d ? "check": "uncheck", e, c) + }), + a.each(this.header.events, + function(b, c) { + if (c) { + "string" == typeof c && (c = h(null, c)); + var d = f.header.fields[b], + e = a.inArray(d, f.getVisibleFields()); + f.options.detailView && !f.options.cardView && (e += 1); + for (var g in c) f.$body.find("tr").each(function() { + var b = a(this), + h = b.find(f.options.cardView ? ".card-view": "td").eq(e), + i = g.indexOf(" "), + j = g.substring(0, i), + k = g.substring(i + 1), + l = c[g]; + h.find(k).off(j).on(j, + function(a) { + var c = b.data("index"), + e = f.data[c], + g = e[d]; + l.apply(this, [a, g, e, c]) + }) + }) + } + }), + this.updateSelected(), + this.resetView(), + this.trigger("post-body") + }, + n.prototype.initServer = function(b, c) { + var d, e = this, + f = {}, + g = { + pageSize: this.options.pageSize === this.options.formatAllRows() ? this.options.totalRows: this.options.pageSize, + pageNumber: this.options.pageNumber, + searchText: this.searchText, + sortName: this.options.sortName, + sortOrder: this.options.sortOrder + }; (this.options.url || this.options.ajax) && ("limit" === this.options.queryParamsType && (g = { + search: g.searchText, + sort: g.sortName, + order: g.sortOrder + }, + this.options.pagination && (g.limit = this.options.pageSize === this.options.formatAllRows() ? this.options.totalRows: this.options.pageSize, g.offset = this.options.pageSize === this.options.formatAllRows() ? 0 : this.options.pageSize * (this.options.pageNumber - 1))), a.isEmptyObject(this.filterColumnsPartial) || (g.filter = JSON.stringify(this.filterColumnsPartial, null)), f = h(this.options, this.options.queryParams, [g], f), a.extend(f, c || {}), f !== !1 && (b || this.$tableLoading.show(), d = a.extend({}, + h(null, this.options.ajaxOptions), { + type: this.options.method, + url: this.options.url, + data: "application/json" === this.options.contentType && "post" === this.options.method ? JSON.stringify(f) : f, + cache: this.options.cache, + contentType: this.options.contentType, + dataType: this.options.dataType, + success: function(a) { + a = h(e.options, e.options.responseHandler, [a], a), + e.load(a), + e.trigger("load-success", a) + }, + error: function(a) { + e.trigger("load-error", a.status, a) + }, + complete: function() { + b || e.$tableLoading.hide() + } + }), this.options.ajax ? h(this, this.options.ajax, [d], null) : a.ajax(d))) + }, + n.prototype.initSearchText = function() { + if (this.options.search && "" !== this.options.searchText) { + var a = this.$toolbar.find(".search input"); + a.val(this.options.searchText), + this.onSearch({ + currentTarget: a + }) + } + }, + n.prototype.getCaret = function() { + var b = this; + a.each(this.$header.find("th"), + function(c, d) { + a(d).find(".sortable").removeClass("desc asc").addClass(a(d).data("field") === b.options.sortName ? b.options.sortOrder: "both") + }) + }, + n.prototype.updateSelected = function() { + var b = this.$selectItem.filter(":enabled").length && this.$selectItem.filter(":enabled").length === this.$selectItem.filter(":enabled").filter(":checked").length; + this.$selectAll.add(this.$selectAll_).prop("checked", b), + this.$selectItem.each(function() { + a(this).closest("tr")[a(this).prop("checked") ? "addClass": "removeClass"]("selected") + }) + }, + n.prototype.updateRows = function() { + var b = this; + this.$selectItem.each(function() { + b.data[a(this).data("index")][b.header.stateField] = a(this).prop("checked") + }) + }, + n.prototype.resetRows = function() { + var b = this; + a.each(this.data, + function(a, c) { + b.$selectAll.prop("checked", !1), + b.$selectItem.prop("checked", !1), + b.header.stateField && (c[b.header.stateField] = !1) + }) + }, + n.prototype.trigger = function(b) { + var c = Array.prototype.slice.call(arguments, 1); + b += ".bs.table", + this.options[n.EVENTS[b]].apply(this.options, c), + this.$el.trigger(a.Event(b), c), + this.options.onAll(b, c), + this.$el.trigger(a.Event("all.bs.table"), [b, c]) + }, + n.prototype.resetHeader = function() { + clearTimeout(this.timeoutId_), + this.timeoutId_ = setTimeout(a.proxy(this.fitHeader, this), this.$el.is(":hidden") ? 100 : 0) + }, + n.prototype.fitHeader = function() { + var b, d, e, f, h = this; + if (h.$el.is(":hidden")) return void(h.timeoutId_ = setTimeout(a.proxy(h.fitHeader, h), 100)); + if (b = this.$tableBody.get(0), d = b.scrollWidth > b.clientWidth && b.scrollHeight > b.clientHeight + this.$header.outerHeight() ? g() : 0, this.$el.css("margin-top", -this.$header.outerHeight()), e = a(":focus"), e.length > 0) { + var i = e.parents("th"); + if (i.length > 0) { + var j = i.attr("data-field"); + if (void 0 !== j) { + var k = this.$header.find("[data-field='" + j + "']"); + k.length > 0 && k.find(":input").addClass("focus-temp") + } + } + } + this.$header_ = this.$header.clone(!0, !0), + this.$selectAll_ = this.$header_.find('[name="btSelectAll"]'), + this.$tableHeader.css({ + "margin-right": d + }).find("table").css("width", this.$el.outerWidth()).html("").attr("class", this.$el.attr("class")).append(this.$header_), + f = a(".focus-temp:visible:eq(0)"), + f.length > 0 && (f.focus(), this.$header.find(".focus-temp").removeClass("focus-temp")), + this.$header.find("th[data-field]").each(function() { + h.$header_.find(c('th[data-field="%s"]', a(this).data("field"))).data(a(this).data()) + }); + var l = this.getVisibleFields(); + this.$body.find("tr:first-child:not(.no-records-found) > *").each(function(b) { + var d = a(this), + e = b; + h.options.detailView && !h.options.cardView && (0 === b && h.$header_.find("th.detail").find(".fht-cell").width(d.innerWidth()), e = b - 1), + h.$header_.find(c('th[data-field="%s"]', l[e])).find(".fht-cell").width(d.innerWidth()) + }), + this.$tableBody.off("scroll").on("scroll", + function() { + h.$tableHeader.scrollLeft(a(this).scrollLeft()), + h.options.showFooter && !h.options.cardView && h.$tableFooter.scrollLeft(a(this).scrollLeft()) + }), + h.trigger("post-header") + }, + n.prototype.resetFooter = function() { + var b = this, + d = b.getData(), + e = []; + this.options.showFooter && !this.options.cardView && (!this.options.cardView && this.options.detailView && e.push('
                           
                          '), a.each(this.columns, + function(a, f) { + var g = "", + i = "", + j = c(' class="%s"', f["class"]); + f.visible && (!b.options.cardView || f.cardVisible) && (g = c("text-align: %s; ", f.falign ? f.falign: f.align), i = c("vertical-align: %s; ", f.valign), e.push(""), e.push('
                          '), e.push(h(f, f.footerFormatter, [d], " ") || " "), e.push("
                          "), e.push('
                          '), e.push("
                          "), e.push("")) + }), this.$tableFooter.find("tr").html(e.join("")), clearTimeout(this.timeoutFooter_), this.timeoutFooter_ = setTimeout(a.proxy(this.fitFooter, this), this.$el.is(":hidden") ? 100 : 0)) + }, + n.prototype.fitFooter = function() { + var b, c, d; + return clearTimeout(this.timeoutFooter_), + this.$el.is(":hidden") ? void(this.timeoutFooter_ = setTimeout(a.proxy(this.fitFooter, this), 100)) : (c = this.$el.css("width"), d = c > this.$tableBody.width() ? g() : 0, this.$tableFooter.css({ + "margin-right": d + }).find("table").css("width", c).attr("class", this.$el.attr("class")), b = this.$tableFooter.find("td"), void this.$body.find("tr:first-child:not(.no-records-found) > *").each(function(c) { + var d = a(this); + b.eq(c).find(".fht-cell").width(d.innerWidth()) + })) + }, + n.prototype.toggleColumn = function(a, b, d) { + if ( - 1 !== a && (this.columns[a].visible = b, this.initHeader(), this.initSearch(), this.initPagination(), this.initBody(), this.options.showColumns)) { + var e = this.$toolbar.find(".keep-open input").prop("disabled", !1); + d && e.filter(c('[value="%s"]', a)).prop("checked", b), + e.filter(":checked").length <= this.options.minimumCountColumns && e.filter(":checked").prop("disabled", !0) + } + }, + n.prototype.toggleRow = function(a, b, d) { - 1 !== a && this.$body.find("undefined" != typeof a ? c('tr[data-index="%s"]', a) : c('tr[data-uniqueid="%s"]', b))[d ? "show": "hide"]() + }, + n.prototype.getVisibleFields = function() { + var b = this, + c = []; + return a.each(this.header.fields, + function(a, d) { + var f = b.columns[e(b.columns, d)]; + f.visible && c.push(d) + }), + c + }, + n.prototype.resetView = function(a) { + var b = 0; + if (a && a.height && (this.options.height = a.height), this.$selectAll.prop("checked", this.$selectItem.length > 0 && this.$selectItem.length === this.$selectItem.filter(":checked").length), this.options.height) { + var c = k(this.$toolbar), + d = k(this.$pagination), + e = this.options.height - c - d; + this.$tableContainer.css("height", e + "px") + } + return this.options.cardView ? (this.$el.css("margin-top", "0"), void this.$tableContainer.css("padding-bottom", "0")) : (this.options.showHeader && this.options.height ? (this.$tableHeader.show(), this.resetHeader(), b += this.$header.outerHeight()) : (this.$tableHeader.hide(), this.trigger("post-header")), this.options.showFooter && (this.resetFooter(), this.options.height && (b += this.$tableFooter.outerHeight() + 1)), this.getCaret(), this.$tableContainer.css("padding-bottom", b + "px"), void this.trigger("reset-view")) + }, + n.prototype.getData = function(b) { + return ! this.searchText && a.isEmptyObject(this.filterColumns) && a.isEmptyObject(this.filterColumnsPartial) ? b ? this.options.data.slice(this.pageFrom - 1, this.pageTo) : this.options.data: b ? this.data.slice(this.pageFrom - 1, this.pageTo) : this.data + }, + n.prototype.load = function(b) { + var c = !1; + "server" === this.options.sidePagination ? (this.options.totalRows = b.total, c = b.fixedScroll, b = b[this.options.dataField]) : a.isArray(b) || (c = b.fixedScroll, b = b.data), + this.initData(b), + this.initSearch(), + this.initPagination(), + this.initBody(c) + }, + n.prototype.append = function(a) { + this.initData(a, "append"), + this.initSearch(), + this.initPagination(), + this.initBody(!0) + }, + n.prototype.prepend = function(a) { + this.initData(a, "prepend"), + this.initSearch(), + this.initPagination(), + this.initBody(!0) + }, + n.prototype.remove = function(b) { + var c, d, e = this.options.data.length; + if (b.hasOwnProperty("field") && b.hasOwnProperty("values")) { + for (c = e - 1; c >= 0; c--) d = this.options.data[c], + d.hasOwnProperty(b.field) && -1 !== a.inArray(d[b.field], b.values) && this.options.data.splice(c, 1); + e !== this.options.data.length && (this.initSearch(), this.initPagination(), this.initBody(!0)) + } + }, + n.prototype.removeAll = function() { + this.options.data.length > 0 && (this.options.data.splice(0, this.options.data.length), this.initSearch(), this.initPagination(), this.initBody(!0)) + }, + n.prototype.getRowByUniqueId = function(a) { + var b, c, d = this.options.uniqueId, + e = this.options.data.length, + f = null; + for (b = e - 1; b >= 0; b--) if (c = this.options.data[b], c.hasOwnProperty(d) && ("string" == typeof c[d] ? a = a.toString() : "number" == typeof c[d] && (Number(c[d]) === c[d] && c[d] % 1 === 0 ? a = parseInt(a) : c[d] === Number(c[d]) && 0 !== c[d] && (a = parseFloat(a))), c[d] === a)) { + f = c; + break + } + return f + }, + n.prototype.removeByUniqueId = function(a) { + var b = this.options.data.length, + c = this.getRowByUniqueId(a); + c && this.options.data.splice(this.options.data.indexOf(c), 1), + b !== this.options.data.length && (this.initSearch(), this.initPagination(), this.initBody(!0)) + }, + n.prototype.insertRow = function(a) { + a.hasOwnProperty("index") && a.hasOwnProperty("row") && (this.data.splice(a.index, 0, a.row), this.initSearch(), this.initPagination(), this.initSort(), this.initBody(!0)) + }, + n.prototype.updateRow = function(b) { + b.hasOwnProperty("index") && b.hasOwnProperty("row") && (a.extend(this.data[b.index], b.row), this.initSort(), this.initBody(!0)) + }, + n.prototype.showRow = function(a) { + a.hasOwnProperty("index") && a.hasOwnProperty("uniqueId") && this.toggleRow(a.index, a.uniqueId, !0) + }, + n.prototype.hideRow = function(a) { + a.hasOwnProperty("index") && a.hasOwnProperty("uniqueId") && this.toggleRow(a.index, a.uniqueId, !1) + }, + n.prototype.getRowsHidden = function(b) { + var c = a(this.$body[0]).children().filter(":hidden"), + d = 0; + if (b) for (; d < c.length; d++) a(c[d]).show(); + return c + }, + n.prototype.mergeCells = function(b) { + var c, d, e, f = b.index, + g = a.inArray(b.field, this.getVisibleFields()), + h = b.rowspan || 1, + i = b.colspan || 1, + j = this.$body.find("tr"); + if (this.options.detailView && !this.options.cardView && (g += 1), e = j.eq(f).find("td").eq(g), !(0 > f || 0 > g || f >= this.data.length)) { + for (c = f; f + h > c; c++) for (d = g; g + i > d; d++) j.eq(c).find("td").eq(d).hide(); + e.attr("rowspan", h).attr("colspan", i).show() + } + }, + n.prototype.updateCell = function(a) { + a.hasOwnProperty("index") && a.hasOwnProperty("field") && a.hasOwnProperty("value") && (this.data[a.index][a.field] = a.value, this.initSort(), this.initBody(!0)) + }, + n.prototype.getOptions = function() { + return this.options + }, + n.prototype.getSelections = function() { + var b = this; + return a.grep(this.data, + function(a) { + return a[b.header.stateField] + }) + }, + n.prototype.getAllSelections = function() { + var b = this; + return a.grep(this.options.data, + function(a) { + return a[b.header.stateField] + }) + }, + n.prototype.checkAll = function() { + this.checkAll_(!0) + }, + n.prototype.uncheckAll = function() { + this.checkAll_(!1) + }, + n.prototype.checkAll_ = function(a) { + var b; + a || (b = this.getSelections()), + this.$selectAll.add(this.$selectAll_).prop("checked", a), + this.$selectItem.filter(":enabled").prop("checked", a), + this.updateRows(), + a && (b = this.getSelections()), + this.trigger(a ? "check-all": "uncheck-all", b) + }, + n.prototype.check = function(a) { + this.check_(!0, a) + }, + n.prototype.uncheck = function(a) { + this.check_(!1, a) + }, + n.prototype.check_ = function(a, b) { + this.$selectItem.filter(c('[data-index="%s"]', b)).prop("checked", a), + this.data[b][this.header.stateField] = a, + this.updateSelected(), + this.trigger(a ? "check": "uncheck", this.data[b]) + }, + n.prototype.checkBy = function(a) { + this.checkBy_(!0, a) + }, + n.prototype.uncheckBy = function(a) { + this.checkBy_(!1, a) + }, + n.prototype.checkBy_ = function(b, d) { + if (d.hasOwnProperty("field") && d.hasOwnProperty("values")) { + var e = this, + f = []; + a.each(this.options.data, + function(g, h) { + return h.hasOwnProperty(d.field) ? void( - 1 !== a.inArray(h[d.field], d.values) && (e.$selectItem.filter(":enabled").filter(c('[data-index="%s"]', g)).prop("checked", b), h[e.header.stateField] = b, f.push(h), e.trigger(b ? "check": "uncheck", h))) : !1 + }), + this.updateSelected(), + this.trigger(b ? "check-some": "uncheck-some", f) + } + }, + n.prototype.destroy = function() { + this.$el.insertBefore(this.$container), + a(this.options.toolbar).insertBefore(this.$el), + this.$container.next().remove(), + this.$container.remove(), + this.$el.html(this.$el_.html()).css("margin-top", "0").attr("class", this.$el_.attr("class") || "") + }, + n.prototype.showLoading = function() { + this.$tableLoading.show() + }, + n.prototype.hideLoading = function() { + this.$tableLoading.hide() + }, + n.prototype.togglePagination = function() { + this.options.pagination = !this.options.pagination; + var a = this.$toolbar.find('button[name="paginationSwitch"] i'); + this.options.pagination ? a.attr("class", this.options.iconsPrefix + " " + this.options.icons.paginationSwitchDown) : a.attr("class", this.options.iconsPrefix + " " + this.options.icons.paginationSwitchUp), + this.updatePagination() + }, + n.prototype.refresh = function(a) { + a && a.url && (this.options.url = a.url, this.options.pageNumber = 1), + this.initServer(a && a.silent, a && a.query) + }, + n.prototype.resetWidth = function() { + this.options.showHeader && this.options.height && this.fitHeader(), + this.options.showFooter && this.fitFooter() + }, + n.prototype.showColumn = function(a) { + this.toggleColumn(e(this.columns, a), !0, !0) + }, + n.prototype.hideColumn = function(a) { + this.toggleColumn(e(this.columns, a), !1, !0) + }, + n.prototype.getHiddenColumns = function() { + return a.grep(this.columns, + function(a) { + return ! a.visible + }) + }, + n.prototype.filterBy = function(b) { + this.filterColumns = a.isEmptyObject(b) ? {}: b, + this.options.pageNumber = 1, + this.initSearch(), + this.updatePagination() + }, + n.prototype.scrollTo = function(a) { + return "string" == typeof a && (a = "bottom" === a ? this.$tableBody[0].scrollHeight: 0), + "number" == typeof a && this.$tableBody.scrollTop(a), + "undefined" == typeof a ? this.$tableBody.scrollTop() : void 0 + }, + n.prototype.getScrollPosition = function() { + return this.scrollTo() + }, + n.prototype.selectPage = function(a) { + a > 0 && a <= this.options.totalPages && (this.options.pageNumber = a, this.updatePagination()) + }, + n.prototype.prevPage = function() { + this.options.pageNumber > 1 && (this.options.pageNumber--, this.updatePagination()) + }, + n.prototype.nextPage = function() { + this.options.pageNumber < this.options.totalPages && (this.options.pageNumber++, this.updatePagination()) + }, + n.prototype.toggleView = function() { + this.options.cardView = !this.options.cardView, + this.initHeader(), + this.initBody(), + this.trigger("toggle", this.options.cardView) + }, + n.prototype.refreshOptions = function(b) { + i(this.options, b, !1) || (this.options = a.extend(this.options, b), this.trigger("refresh-options", this.options), this.destroy(), this.init()) + }, + n.prototype.resetSearch = function(a) { + var b = this.$toolbar.find(".search input"); + b.val(a || ""), + this.onSearch({ + currentTarget: b + }) + }, + n.prototype.expandRow_ = function(a, b) { + var d = this.$body.find(c('> tr[data-index="%s"]', b)); + d.next().is("tr.detail-view") === (a ? !1 : !0) && d.find("> td > .detail-icon").click() + }, + n.prototype.expandRow = function(a) { + this.expandRow_(!0, a) + }, + n.prototype.collapseRow = function(a) { + this.expandRow_(!1, a) + }, + n.prototype.expandAllRows = function(b) { + if (b) { + var d = this.$body.find(c('> tr[data-index="%s"]', 0)), + e = this, + f = null, + g = !1, + h = -1; + if (d.next().is("tr.detail-view") ? d.next().next().is("tr.detail-view") || (d.next().find(".detail-icon").click(), g = !0) : (d.find("> td > .detail-icon").click(), g = !0), g) try { + h = setInterval(function() { + f = e.$body.find("tr.detail-view").last().find(".detail-icon"), + f.length > 0 ? f.click() : clearInterval(h) + }, + 1) + } catch(i) { + clearInterval(h) + } + } else for (var j = this.$body.children(), k = 0; k < j.length; k++) this.expandRow_(!0, a(j[k]).data("index")) + }, + n.prototype.collapseAllRows = function(b) { + if (b) this.expandRow_(!1, 0); + else for (var c = this.$body.children(), d = 0; d < c.length; d++) this.expandRow_(!1, a(c[d]).data("index")) + }; + var o = ["getOptions", "getSelections", "getAllSelections", "getData", "load", "append", "prepend", "remove", "removeAll", "insertRow", "updateRow", "updateCell", "removeByUniqueId", "getRowByUniqueId", "showRow", "hideRow", "getRowsHidden", "mergeCells", "checkAll", "uncheckAll", "check", "uncheck", "checkBy", "uncheckBy", "refresh", "resetView", "resetWidth", "destroy", "showLoading", "hideLoading", "showColumn", "hideColumn", "getHiddenColumns", "filterBy", "scrollTo", "getScrollPosition", "selectPage", "prevPage", "nextPage", "togglePagination", "toggleView", "refreshOptions", "resetSearch", "expandRow", "collapseRow", "expandAllRows", "collapseAllRows"]; + a.fn.bootstrapTable = function(b) { + var c, d = Array.prototype.slice.call(arguments, 1); + return this.each(function() { + var e = a(this), + f = e.data("bootstrap.table"), + g = a.extend({}, + n.DEFAULTS, e.data(), "object" == typeof b && b); + if ("string" == typeof b) { + if (a.inArray(b, o) < 0) throw new Error("Unknown method: " + b); + if (!f) return; + c = f[b].apply(f, d), + "destroy" === b && e.removeData("bootstrap.table") + } + f || e.data("bootstrap.table", f = new n(this, g)) + }), + "undefined" == typeof c ? this: c + }, + a.fn.bootstrapTable.Constructor = n, + a.fn.bootstrapTable.defaults = n.DEFAULTS, + a.fn.bootstrapTable.columnDefaults = n.COLUMN_DEFAULTS, + a.fn.bootstrapTable.locales = n.LOCALES, + a.fn.bootstrapTable.methods = o, + a.fn.bootstrapTable.utils = { + sprintf: c, + getFieldIndex: e, + compareObjects: i, + calculateObjectValue: h + }, + a(function() { + a('[data-toggle="table"]').bootstrapTable() + }) + } (jQuery); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js b/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js new file mode 100644 index 0000000..32e87aa --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js @@ -0,0 +1,40 @@ +/** + * Bootstrap Table Chinese translation + * Author: Zhixin Wen + */ +(function ($) { + 'use strict'; + + $.fn.bootstrapTable.locales['zh-CN'] = { + formatLoadingMessage: function () { + return '正在努力地加载数据中,请稍候……'; + }, + formatRecordsPerPage: function (pageNumber) { + return '每页显示 ' + pageNumber + ' 条记录'; + }, + formatShowingRows: function (pageFrom, pageTo, totalRows) { + return '显示第 ' + pageFrom + ' 到第 ' + pageTo + ' 条记录,总共 ' + totalRows + ' 条记录'; + }, + formatSearch: function () { + return '搜索'; + }, + formatNoMatches: function () { + return '没有找到匹配的记录'; + }, + formatPaginationSwitch: function () { + return '隐藏/显示分页'; + }, + formatRefresh: function () { + return '刷新'; + }, + formatToggle: function () { + return '切换'; + }, + formatColumns: function () { + return '列'; + } + }; + + $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-CN']); + +})(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js b/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js new file mode 100644 index 0000000..0e1dfad --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js @@ -0,0 +1,7 @@ +/* +* bootstrap-table - v1.9.0 - 2015-09-30 +* https://github.com/wenzhixin/bootstrap-table +* Copyright (c) 2015 zhixin wen +* Licensed MIT License +*/ +!function(a){"use strict";a.fn.bootstrapTable.locales["zh-CN"]={formatLoadingMessage:function(){return"正在努力地加载数据中,请稍候……"},formatRecordsPerPage:function(a){return"每页显示 "+a+" 条记录"},formatShowingRows:function(a,b,c){return"显示第 "+a+" 到第 "+b+" 条记录,总共 "+c+" 条记录"},formatSearch:function(){return"搜索"},formatNoMatches:function(){return"没有找到匹配的记录"},formatPaginationSwitch:function(){return"隐藏/显示分页"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切换"},formatColumns:function(){return"列"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["zh-CN"])}(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/chartJs/Chart.min.js b/novel-admin/src/main/resources/static/js/plugins/chartJs/Chart.min.js new file mode 100644 index 0000000..644e7ad --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/chartJs/Chart.min.js @@ -0,0 +1,11 @@ +/*! + * Chart.js + * http://chartjs.org/ + * Version: 1.0.1-beta.4 + * + * Copyright 2014 Nick Downie + * Released under the MIT license + * https://github.com/nnnick/Chart.js/blob/master/LICENSE.md + */ +(function(){"use strict";var t=this,i=t.Chart,e=function(t){this.canvas=t.canvas,this.ctx=t;this.width=t.canvas.width,this.height=t.canvas.height;return this.aspectRatio=this.width/this.height,s.retinaScale(this),this};e.defaults={global:{animation:!0,animationSteps:60,animationEasing:"easeOutQuart",showScale:!0,scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!0,scaleLabel:"<%=value%>",scaleIntegersOnly:!0,scaleBeginAtZero:!1,scaleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",responsive:!1,maintainAspectRatio:!0,showTooltips:!0,tooltipEvents:["mousemove","touchstart","touchmove","mouseout"],tooltipFillColor:"rgba(0,0,0,0.8)",tooltipFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipFontSize:14,tooltipFontStyle:"normal",tooltipFontColor:"#fff",tooltipTitleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipTitleFontSize:14,tooltipTitleFontStyle:"bold",tooltipTitleFontColor:"#fff",tooltipYPadding:6,tooltipXPadding:6,tooltipCaretSize:8,tooltipCornerRadius:6,tooltipXOffset:10,tooltipTemplate:"<%if (label){%><%=label%>: <%}%><%= value %>",multiTooltipTemplate:"<%= value %>",multiTooltipKeyBackground:"#fff",onAnimationProgress:function(){},onAnimationComplete:function(){}}},e.types={};var s=e.helpers={},n=s.each=function(t,i,e){var s=Array.prototype.slice.call(arguments,3);if(t)if(t.length===+t.length){var n;for(n=0;n=0;s--){var n=t[s];if(i(n))return n}},s.inherits=function(t){var i=this,e=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return i.apply(this,arguments)},s=function(){this.constructor=e};return s.prototype=i.prototype,e.prototype=new s,e.extend=r,t&&a(e.prototype,t),e.__super__=i.prototype,e}),c=s.noop=function(){},u=s.uid=function(){var t=0;return function(){return"chart-"+t++}}(),d=s.warn=function(t){window.console&&"function"==typeof window.console.warn&&console.warn(t)},p=s.amd="function"==typeof t.define&&t.define.amd,f=s.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},g=s.max=function(t){return Math.max.apply(Math,t)},m=s.min=function(t){return Math.min.apply(Math,t)},v=(s.cap=function(t,i,e){if(f(i)){if(t>i)return i}else if(f(e)&&e>t)return e;return t},s.getDecimalPlaces=function(t){return t%1!==0&&f(t)?t.toString().split(".")[1].length:0}),x=s.radians=function(t){return t*(Math.PI/180)},S=(s.getAngleFromPoint=function(t,i){var e=i.x-t.x,s=i.y-t.y,n=Math.sqrt(e*e+s*s),o=2*Math.PI+Math.atan2(s,e);return 0>e&&0>s&&(o+=2*Math.PI),{angle:o,distance:n}},s.aliasPixel=function(t){return t%2===0?0:.5}),y=(s.splineCurve=function(t,i,e,s){var n=Math.sqrt(Math.pow(i.x-t.x,2)+Math.pow(i.y-t.y,2)),o=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2)),a=s*n/(n+o),h=s*o/(n+o);return{inner:{x:i.x-a*(e.x-t.x),y:i.y-a*(e.y-t.y)},outer:{x:i.x+h*(e.x-t.x),y:i.y+h*(e.y-t.y)}}},s.calculateOrderOfMagnitude=function(t){return Math.floor(Math.log(t)/Math.LN10)}),C=(s.calculateScaleRange=function(t,i,e,s,n){var o=2,a=Math.floor(i/(1.5*e)),h=o>=a,l=g(t),r=m(t);l===r&&(l+=.5,r>=.5&&!s?r-=.5:l+=.5);for(var c=Math.abs(l-r),u=y(c),d=Math.ceil(l/(1*Math.pow(10,u)))*Math.pow(10,u),p=s?0:Math.floor(r/(1*Math.pow(10,u)))*Math.pow(10,u),f=d-p,v=Math.pow(10,u),x=Math.round(f/v);(x>a||a>2*x)&&!h;)if(x>a)v*=2,x=Math.round(f/v),x%1!==0&&(h=!0);else if(n&&u>=0){if(v/2%1!==0)break;v/=2,x=Math.round(f/v)}else v/=2,x=Math.round(f/v);return h&&(x=o,v=f/x),{steps:x,stepValue:v,min:p,max:p+x*v}},s.template=function(t,i){function e(t,i){var e=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<%").join(" ").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split(" ").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):s[t]=s[t];return i?e(i):e}if(t instanceof Function)return t(i);var s={};return e(t,i)}),b=(s.generateLabels=function(t,i,e,s){var o=new Array(i);return labelTemplateString&&n(o,function(i,n){o[n]=C(t,{value:e+s*(n+1)})}),o},s.easingEffects={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-1*t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-0.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return 1*((t=t/1-1)*t*t+1)},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-1*((t=t/1-1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-0.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return 1*(t/=1)*t*t*t*t},easeOutQuint:function(t){return 1*((t=t/1-1)*t*t*t*t+1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return-1*Math.cos(t/1*(Math.PI/2))+1},easeOutSine:function(t){return 1*Math.sin(t/1*(Math.PI/2))},easeInOutSine:function(t){return-0.5*(Math.cos(Math.PI*t/1)-1)},easeInExpo:function(t){return 0===t?1:1*Math.pow(2,10*(t/1-1))},easeOutExpo:function(t){return 1===t?1:1*(-Math.pow(2,-10*t/1)+1)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(-Math.pow(2,-10*--t)+2)},easeInCirc:function(t){return t>=1?t:-1*(Math.sqrt(1-(t/=1)*t)-1)},easeOutCirc:function(t){return 1*Math.sqrt(1-(t=t/1-1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-0.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var i=1.70158,e=0,s=1;return 0===t?0:1==(t/=1)?1:(e||(e=.3),st?-.5*s*Math.pow(2,10*(t-=1))*Math.sin(2*(1*t-i)*Math.PI/e):s*Math.pow(2,-10*(t-=1))*Math.sin(2*(1*t-i)*Math.PI/e)*.5+1)},easeInBack:function(t){var i=1.70158;return 1*(t/=1)*t*((i+1)*t-i)},easeOutBack:function(t){var i=1.70158;return 1*((t=t/1-1)*t*((i+1)*t+i)+1)},easeInOutBack:function(t){var i=1.70158;return(t/=.5)<1?.5*t*t*(((i*=1.525)+1)*t-i):.5*((t-=2)*t*(((i*=1.525)+1)*t+i)+2)},easeInBounce:function(t){return 1-b.easeOutBounce(1-t)},easeOutBounce:function(t){return(t/=1)<1/2.75?7.5625*t*t:2/2.75>t?1*(7.5625*(t-=1.5/2.75)*t+.75):2.5/2.75>t?1*(7.5625*(t-=2.25/2.75)*t+.9375):1*(7.5625*(t-=2.625/2.75)*t+.984375)},easeInOutBounce:function(t){return.5>t?.5*b.easeInBounce(2*t):.5*b.easeOutBounce(2*t-1)+.5}}),w=s.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),P=(s.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(t){return window.clearTimeout(t,1e3/60)}}(),s.animationLoop=function(t,i,e,s,n,o){var a=0,h=b[e]||b.linear,l=function(){a++;var e=a/i,r=h(e);t.call(o,r,e,a),s.call(o,r,e),i>a?o.animationFrame=w(l):n.apply(o)};w(l)},s.getRelativePosition=function(t){var i,e,s=t.originalEvent||t,n=t.currentTarget||t.srcElement,o=n.getBoundingClientRect();return s.touches?(i=s.touches[0].clientX-o.left,e=s.touches[0].clientY-o.top):(i=s.clientX-o.left,e=s.clientY-o.top),{x:i,y:e}},s.addEvent=function(t,i,e){t.addEventListener?t.addEventListener(i,e):t.attachEvent?t.attachEvent("on"+i,e):t["on"+i]=e}),L=s.removeEvent=function(t,i,e){t.removeEventListener?t.removeEventListener(i,e,!1):t.detachEvent?t.detachEvent("on"+i,e):t["on"+i]=c},k=(s.bindEvents=function(t,i,e){t.events||(t.events={}),n(i,function(i){t.events[i]=function(){e.apply(t,arguments)},P(t.chart.canvas,i,t.events[i])})},s.unbindEvents=function(t,i){n(i,function(i,e){L(t.chart.canvas,e,i)})}),F=s.getMaximumWidth=function(t){var i=t.parentNode;return i.clientWidth},R=s.getMaximumHeight=function(t){var i=t.parentNode;return i.clientHeight},A=(s.getMaximumSize=s.getMaximumWidth,s.retinaScale=function(t){var i=t.ctx,e=t.canvas.width,s=t.canvas.height;window.devicePixelRatio&&(i.canvas.style.width=e+"px",i.canvas.style.height=s+"px",i.canvas.height=s*window.devicePixelRatio,i.canvas.width=e*window.devicePixelRatio,i.scale(window.devicePixelRatio,window.devicePixelRatio))}),T=s.clear=function(t){t.ctx.clearRect(0,0,t.width,t.height)},M=s.fontString=function(t,i,e){return i+" "+t+"px "+e},W=s.longestText=function(t,i,e){t.font=i;var s=0;return n(e,function(i){var e=t.measureText(i).width;s=e>s?e:s}),s},z=s.drawRoundedRectangle=function(t,i,e,s,n,o){t.beginPath(),t.moveTo(i+o,e),t.lineTo(i+s-o,e),t.quadraticCurveTo(i+s,e,i+s,e+o),t.lineTo(i+s,e+n-o),t.quadraticCurveTo(i+s,e+n,i+s-o,e+n),t.lineTo(i+o,e+n),t.quadraticCurveTo(i,e+n,i,e+n-o),t.lineTo(i,e+o),t.quadraticCurveTo(i,e,i+o,e),t.closePath()};e.instances={},e.Type=function(t,i,s){this.options=i,this.chart=s,this.id=u(),e.instances[this.id]=this,i.responsive&&this.resize(),this.initialize.call(this,t)},a(e.Type.prototype,{initialize:function(){return this},clear:function(){return T(this.chart),this},stop:function(){return s.cancelAnimFrame.call(t,this.animationFrame),this},resize:function(t){this.stop();var i=this.chart.canvas,e=F(this.chart.canvas),s=this.options.maintainAspectRatio?e/this.chart.aspectRatio:R(this.chart.canvas);return i.width=this.chart.width=e,i.height=this.chart.height=s,A(this.chart),"function"==typeof t&&t.apply(this,Array.prototype.slice.call(arguments,1)),this},reflow:c,render:function(t){return t&&this.reflow(),this.options.animation&&!t?s.animationLoop(this.draw,this.options.animationSteps,this.options.animationEasing,this.options.onAnimationProgress,this.options.onAnimationComplete,this):(this.draw(),this.options.onAnimationComplete.call(this)),this},generateLegend:function(){return C(this.options.legendTemplate,this)},destroy:function(){this.clear(),k(this,this.events),delete e.instances[this.id]},showTooltip:function(t,i){"undefined"==typeof this.activeElements&&(this.activeElements=[]);var o=function(t){var i=!1;return t.length!==this.activeElements.length?i=!0:(n(t,function(t,e){t!==this.activeElements[e]&&(i=!0)},this),i)}.call(this,t);if(o||i){if(this.activeElements=t,this.draw(),t.length>0)if(this.datasets&&this.datasets.length>1){for(var a,h,r=this.datasets.length-1;r>=0&&(a=this.datasets[r].points||this.datasets[r].bars||this.datasets[r].segments,h=l(a,t[0]),-1===h);r--);var c=[],u=[],d=function(){var t,i,e,n,o,a=[],l=[],r=[];return s.each(this.datasets,function(i){t=i.points||i.bars||i.segments,t[h]&&t[h].hasValue()&&a.push(t[h])}),s.each(a,function(t){l.push(t.x),r.push(t.y),c.push(s.template(this.options.multiTooltipTemplate,t)),u.push({fill:t._saved.fillColor||t.fillColor,stroke:t._saved.strokeColor||t.strokeColor})},this),o=m(r),e=g(r),n=m(l),i=g(l),{x:n>this.chart.width/2?n:i,y:(o+e)/2}}.call(this,h);new e.MultiTooltip({x:d.x,y:d.y,xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,xOffset:this.options.tooltipXOffset,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,titleTextColor:this.options.tooltipTitleFontColor,titleFontFamily:this.options.tooltipTitleFontFamily,titleFontStyle:this.options.tooltipTitleFontStyle,titleFontSize:this.options.tooltipTitleFontSize,cornerRadius:this.options.tooltipCornerRadius,labels:c,legendColors:u,legendColorBackground:this.options.multiTooltipKeyBackground,title:t[0].label,chart:this.chart,ctx:this.chart.ctx}).draw()}else n(t,function(t){var i=t.tooltipPosition();new e.Tooltip({x:Math.round(i.x),y:Math.round(i.y),xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,caretHeight:this.options.tooltipCaretSize,cornerRadius:this.options.tooltipCornerRadius,text:C(this.options.tooltipTemplate,t),chart:this.chart}).draw()},this);return this}},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)}}),e.Type.extend=function(t){var i=this,s=function(){return i.apply(this,arguments)};if(s.prototype=o(i.prototype),a(s.prototype,t),s.extend=e.Type.extend,t.name||i.prototype.name){var n=t.name||i.prototype.name,l=e.defaults[i.prototype.name]?o(e.defaults[i.prototype.name]):{};e.defaults[n]=a(l,t.defaults),e.types[n]=s,e.prototype[n]=function(t,i){var o=h(e.defaults.global,e.defaults[n],i||{});return new s(t,o,this)}}else d("Name not provided for this chart, so it hasn't been registered");return i},e.Element=function(t){a(this,t),this.initialize.apply(this,arguments),this.save()},a(e.Element.prototype,{initialize:function(){},restore:function(t){return t?n(t,function(t){this[t]=this._saved[t]},this):a(this,this._saved),this},save:function(){return this._saved=o(this),delete this._saved._saved,this},update:function(t){return n(t,function(t,i){this._saved[i]=this[i],this[i]=t},this),this},transition:function(t,i){return n(t,function(t,e){this[e]=(t-this._saved[e])*i+this._saved[e]},this),this},tooltipPosition:function(){return{x:this.x,y:this.y}},hasValue:function(){return f(this.value)}}),e.Element.extend=r,e.Point=e.Element.extend({display:!0,inRange:function(t,i){var e=this.hitDetectionRadius+this.radius;return Math.pow(t-this.x,2)+Math.pow(i-this.y,2)=this.startAngle&&e.angle<=this.endAngle,o=e.distance>=this.innerRadius&&e.distance<=this.outerRadius;return n&&o},tooltipPosition:function(){var t=this.startAngle+(this.endAngle-this.startAngle)/2,i=(this.outerRadius-this.innerRadius)/2+this.innerRadius;return{x:this.x+Math.cos(t)*i,y:this.y+Math.sin(t)*i}},draw:function(t){var i=this.ctx;i.beginPath(),i.arc(this.x,this.y,this.outerRadius,this.startAngle,this.endAngle),i.arc(this.x,this.y,this.innerRadius,this.endAngle,this.startAngle,!0),i.closePath(),i.strokeStyle=this.strokeColor,i.lineWidth=this.strokeWidth,i.fillStyle=this.fillColor,i.fill(),i.lineJoin="bevel",this.showStroke&&i.stroke()}}),e.Rectangle=e.Element.extend({draw:function(){var t=this.ctx,i=this.width/2,e=this.x-i,s=this.x+i,n=this.base-(this.base-this.y),o=this.strokeWidth/2;this.showStroke&&(e+=o,s-=o,n+=o),t.beginPath(),t.fillStyle=this.fillColor,t.strokeStyle=this.strokeColor,t.lineWidth=this.strokeWidth,t.moveTo(e,this.base),t.lineTo(e,n),t.lineTo(s,n),t.lineTo(s,this.base),t.fill(),this.showStroke&&t.stroke()},height:function(){return this.base-this.y},inRange:function(t,i){return t>=this.x-this.width/2&&t<=this.x+this.width/2&&i>=this.y&&i<=this.base}}),e.Tooltip=e.Element.extend({draw:function(){var t=this.chart.ctx;t.font=M(this.fontSize,this.fontStyle,this.fontFamily),this.xAlign="center",this.yAlign="above";var i=2,e=t.measureText(this.text).width+2*this.xPadding,s=this.fontSize+2*this.yPadding,n=s+this.caretHeight+i;this.x+e/2>this.chart.width?this.xAlign="left":this.x-e/2<0&&(this.xAlign="right"),this.y-n<0&&(this.yAlign="below");var o=this.x-e/2,a=this.y-n;switch(t.fillStyle=this.fillColor,this.yAlign){case"above":t.beginPath(),t.moveTo(this.x,this.y-i),t.lineTo(this.x+this.caretHeight,this.y-(i+this.caretHeight)),t.lineTo(this.x-this.caretHeight,this.y-(i+this.caretHeight)),t.closePath(),t.fill();break;case"below":a=this.y+i+this.caretHeight,t.beginPath(),t.moveTo(this.x,this.y+i),t.lineTo(this.x+this.caretHeight,this.y+i+this.caretHeight),t.lineTo(this.x-this.caretHeight,this.y+i+this.caretHeight),t.closePath(),t.fill()}switch(this.xAlign){case"left":o=this.x-e+(this.cornerRadius+this.caretHeight);break;case"right":o=this.x-(this.cornerRadius+this.caretHeight)}z(t,o,a,e,s,this.cornerRadius),t.fill(),t.fillStyle=this.textColor,t.textAlign="center",t.textBaseline="middle",t.fillText(this.text,o+e/2,a+s/2)}}),e.MultiTooltip=e.Element.extend({initialize:function(){this.font=M(this.fontSize,this.fontStyle,this.fontFamily),this.titleFont=M(this.titleFontSize,this.titleFontStyle,this.titleFontFamily),this.height=this.labels.length*this.fontSize+(this.labels.length-1)*(this.fontSize/2)+2*this.yPadding+1.5*this.titleFontSize,this.ctx.font=this.titleFont;var t=this.ctx.measureText(this.title).width,i=W(this.ctx,this.font,this.labels)+this.fontSize+3,e=g([i,t]);this.width=e+2*this.xPadding;var s=this.height/2;this.y-s<0?this.y=s:this.y+s>this.chart.height&&(this.y=this.chart.height-s),this.x>this.chart.width/2?this.x-=this.xOffset+this.width:this.x+=this.xOffset},getLineHeight:function(t){var i=this.y-this.height/2+this.yPadding,e=t-1;return 0===t?i+this.titleFontSize/2:i+(1.5*this.fontSize*e+this.fontSize/2)+1.5*this.titleFontSize},draw:function(){z(this.ctx,this.x,this.y-this.height/2,this.width,this.height,this.cornerRadius);var t=this.ctx;t.fillStyle=this.fillColor,t.fill(),t.closePath(),t.textAlign="left",t.textBaseline="middle",t.fillStyle=this.titleTextColor,t.font=this.titleFont,t.fillText(this.title,this.x+this.xPadding,this.getLineHeight(0)),t.font=this.font,s.each(this.labels,function(i,e){t.fillStyle=this.textColor,t.fillText(i,this.x+this.xPadding+this.fontSize+3,this.getLineHeight(e+1)),t.fillStyle=this.legendColorBackground,t.fillRect(this.x+this.xPadding,this.getLineHeight(e+1)-this.fontSize/2,this.fontSize,this.fontSize),t.fillStyle=this.legendColors[e].fill,t.fillRect(this.x+this.xPadding,this.getLineHeight(e+1)-this.fontSize/2,this.fontSize,this.fontSize)},this)}}),e.Scale=e.Element.extend({initialize:function(){this.fit()},buildYLabels:function(){this.yLabels=[];for(var t=v(this.stepValue),i=0;i<=this.steps;i++)this.yLabels.push(C(this.templateString,{value:(this.min+i*this.stepValue).toFixed(t)}));this.yLabelWidth=this.display&&this.showLabels?W(this.ctx,this.font,this.yLabels):0},addXLabel:function(t){this.xLabels.push(t),this.valuesCount++,this.fit()},removeXLabel:function(){this.xLabels.shift(),this.valuesCount--,this.fit()},fit:function(){this.startPoint=this.display?this.fontSize:0,this.endPoint=this.display?this.height-1.5*this.fontSize-5:this.height,this.startPoint+=this.padding,this.endPoint-=this.padding;var t,i=this.endPoint-this.startPoint;for(this.calculateYRange(i),this.buildYLabels(),this.calculateXLabelRotation();i>this.endPoint-this.startPoint;)i=this.endPoint-this.startPoint,t=this.yLabelWidth,this.calculateYRange(i),this.buildYLabels(),tthis.yLabelWidth+10?e/2:this.yLabelWidth+10,this.xLabelRotation=0,this.display){var n,o=W(this.ctx,this.font,this.xLabels);this.xLabelWidth=o;for(var a=Math.floor(this.calculateX(1)-this.calculateX(0))-6;this.xLabelWidth>a&&0===this.xLabelRotation||this.xLabelWidth>a&&this.xLabelRotation<=90&&this.xLabelRotation>0;)n=Math.cos(x(this.xLabelRotation)),t=n*e,i=n*s,t+this.fontSize/2>this.yLabelWidth+8&&(this.xScalePaddingLeft=t+this.fontSize/2),this.xScalePaddingRight=this.fontSize/2,this.xLabelRotation++,this.xLabelWidth=n*o;this.xLabelRotation>0&&(this.endPoint-=Math.sin(x(this.xLabelRotation))*o+3)}else this.xLabelWidth=0,this.xScalePaddingRight=this.padding,this.xScalePaddingLeft=this.padding},calculateYRange:c,drawingArea:function(){return this.startPoint-this.endPoint},calculateY:function(t){var i=this.drawingArea()/(this.min-this.max);return this.endPoint-i*(t-this.min)},calculateX:function(t){var i=(this.xLabelRotation>0,this.width-(this.xScalePaddingLeft+this.xScalePaddingRight)),e=i/(this.valuesCount-(this.offsetGridLines?0:1)),s=e*t+this.xScalePaddingLeft;return this.offsetGridLines&&(s+=e/2),Math.round(s)},update:function(t){s.extend(this,t),this.fit()},draw:function(){var t=this.ctx,i=(this.endPoint-this.startPoint)/this.steps,e=Math.round(this.xScalePaddingLeft);this.display&&(t.fillStyle=this.textColor,t.font=this.font,n(this.yLabels,function(n,o){var a=this.endPoint-i*o,h=Math.round(a);t.textAlign="right",t.textBaseline="middle",this.showLabels&&t.fillText(n,e-10,a),t.beginPath(),o>0?(t.lineWidth=this.gridLineWidth,t.strokeStyle=this.gridLineColor):(t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor),h+=s.aliasPixel(t.lineWidth),t.moveTo(e,h),t.lineTo(this.width,h),t.stroke(),t.closePath(),t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor,t.beginPath(),t.moveTo(e-5,h),t.lineTo(e,h),t.stroke(),t.closePath()},this),n(this.xLabels,function(i,e){var s=this.calculateX(e)+S(this.lineWidth),n=this.calculateX(e-(this.offsetGridLines?.5:0))+S(this.lineWidth),o=this.xLabelRotation>0;t.beginPath(),e>0?(t.lineWidth=this.gridLineWidth,t.strokeStyle=this.gridLineColor):(t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor),t.moveTo(n,this.endPoint),t.lineTo(n,this.startPoint-3),t.stroke(),t.closePath(),t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor,t.beginPath(),t.moveTo(n,this.endPoint),t.lineTo(n,this.endPoint+5),t.stroke(),t.closePath(),t.save(),t.translate(s,o?this.endPoint+12:this.endPoint+8),t.rotate(-1*x(this.xLabelRotation)),t.font=this.font,t.textAlign=o?"right":"center",t.textBaseline=o?"middle":"top",t.fillText(i,0,0),t.restore()},this))}}),e.RadialScale=e.Element.extend({initialize:function(){this.size=m([this.height,this.width]),this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2},calculateCenterOffset:function(t){var i=this.drawingArea/(this.max-this.min);return(t-this.min)*i},update:function(){this.lineArc?this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2:this.setScaleSize(),this.buildYLabels()},buildYLabels:function(){this.yLabels=[];for(var t=v(this.stepValue),i=0;i<=this.steps;i++)this.yLabels.push(C(this.templateString,{value:(this.min+i*this.stepValue).toFixed(t)}))},getCircumference:function(){return 2*Math.PI/this.valuesCount},setScaleSize:function(){var t,i,e,s,n,o,a,h,l,r,c,u,d=m([this.height/2-this.pointLabelFontSize-5,this.width/2]),p=this.width,g=0;for(this.ctx.font=M(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),i=0;ip&&(p=t.x+s,n=i),t.x-sp&&(p=t.x+e,n=i):i>this.valuesCount/2&&t.x-e0){var s,n=e*(this.drawingArea/this.steps),o=this.yCenter-n;if(this.lineWidth>0)if(t.strokeStyle=this.lineColor,t.lineWidth=this.lineWidth,this.lineArc)t.beginPath(),t.arc(this.xCenter,this.yCenter,n,0,2*Math.PI),t.closePath(),t.stroke();else{t.beginPath();for(var a=0;a=0;i--){if(this.angleLineWidth>0){var e=this.getPointPosition(i,this.calculateCenterOffset(this.max));t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(e.x,e.y),t.stroke(),t.closePath()}var s=this.getPointPosition(i,this.calculateCenterOffset(this.max)+5);t.font=M(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),t.fillStyle=this.pointLabelFontColor;var o=this.labels.length,a=this.labels.length/2,h=a/2,l=h>i||i>o-h,r=i===h||i===o-h;t.textAlign=0===i?"center":i===a?"center":a>i?"left":"right",t.textBaseline=r?"middle":l?"bottom":"top",t.fillText(this.labels[i],s.x,s.y)}}}}}),s.addEvent(window,"resize",function(){var t;return function(){clearTimeout(t),t=setTimeout(function(){n(e.instances,function(t){t.options.responsive&&t.resize(t.render,!0)})},50)}}()),p?define(function(){return e}):"object"==typeof module&&module.exports&&(module.exports=e),t.Chart=e,e.noConflict=function(){return t.Chart=i,e}}).call(this),function(){"use strict";var t=this,i=t.Chart,e=i.helpers,s={scaleBeginAtZero:!0,scaleShowGridLines:!0,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,barShowStroke:!0,barStrokeWidth:2,barValueSpacing:5,barDatasetSpacing:1,legendTemplate:'
                            <% for (var i=0; i
                          • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
                          • <%}%>
                          '};i.Type.extend({name:"Bar",defaults:s,initialize:function(t){var s=this.options;this.ScaleClass=i.Scale.extend({offsetGridLines:!0,calculateBarX:function(t,i,e){var n=this.calculateBaseWidth(),o=this.calculateX(e)-n/2,a=this.calculateBarWidth(t);return o+a*i+i*s.barDatasetSpacing+a/2},calculateBaseWidth:function(){return this.calculateX(1)-this.calculateX(0)-2*s.barValueSpacing},calculateBarWidth:function(t){var i=this.calculateBaseWidth()-(t-1)*s.barDatasetSpacing;return i/t}}),this.datasets=[],this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getBarsAtEvent(t):[];this.eachBars(function(t){t.restore(["fillColor","strokeColor"])}),e.each(i,function(t){t.fillColor=t.highlightFill,t.strokeColor=t.highlightStroke}),this.showTooltip(i)}),this.BarClass=i.Rectangle.extend({strokeWidth:this.options.barStrokeWidth,showStroke:this.options.barShowStroke,ctx:this.chart.ctx}),e.each(t.datasets,function(i){var s={label:i.label||null,fillColor:i.fillColor,strokeColor:i.strokeColor,bars:[]};this.datasets.push(s),e.each(i.data,function(e,n){s.bars.push(new this.BarClass({value:e,label:t.labels[n],datasetLabel:i.label,strokeColor:i.strokeColor,fillColor:i.fillColor,highlightFill:i.highlightFill||i.fillColor,highlightStroke:i.highlightStroke||i.strokeColor}))},this)},this),this.buildScale(t.labels),this.BarClass.prototype.base=this.scale.endPoint,this.eachBars(function(t,i,s){e.extend(t,{width:this.scale.calculateBarWidth(this.datasets.length),x:this.scale.calculateBarX(this.datasets.length,s,i),y:this.scale.endPoint}),t.save()},this),this.render()},update:function(){this.scale.update(),e.each(this.activeElements,function(t){t.restore(["fillColor","strokeColor"])}),this.eachBars(function(t){t.save()}),this.render()},eachBars:function(t){e.each(this.datasets,function(i,s){e.each(i.bars,t,this,s)},this)},getBarsAtEvent:function(t){for(var i,s=[],n=e.getRelativePosition(t),o=function(t){s.push(t.bars[i])},a=0;a<% for (var i=0; i
                        • <%if(segments[i].label){%><%=segments[i].label%><%}%>
                        • <%}%>'}; + i.Type.extend({name:"Doughnut",defaults:s,initialize:function(t){this.segments=[],this.outerRadius=(e.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,this.SegmentArc=i.Arc.extend({ctx:this.chart.ctx,x:this.chart.width/2,y:this.chart.height/2}),this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getSegmentsAtEvent(t):[];e.each(this.segments,function(t){t.restore(["fillColor"])}),e.each(i,function(t){t.fillColor=t.highlightColor}),this.showTooltip(i)}),this.calculateTotal(t),e.each(t,function(t,i){this.addData(t,i,!0)},this),this.render()},getSegmentsAtEvent:function(t){var i=[],s=e.getRelativePosition(t);return e.each(this.segments,function(t){t.inRange(s.x,s.y)&&i.push(t)},this),i},addData:function(t,i,e){var s=i||this.segments.length;this.segments.splice(s,0,new this.SegmentArc({value:t.value,outerRadius:this.options.animateScale?0:this.outerRadius,innerRadius:this.options.animateScale?0:this.outerRadius/100*this.options.percentageInnerCutout,fillColor:t.color,highlightColor:t.highlight||t.color,showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,startAngle:1.5*Math.PI,circumference:this.options.animateRotate?0:this.calculateCircumference(t.value),label:t.label})),e||(this.reflow(),this.update())},calculateCircumference:function(t){return 2*Math.PI*(t/this.total)},calculateTotal:function(t){this.total=0,e.each(t,function(t){this.total+=t.value},this)},update:function(){this.calculateTotal(this.segments),e.each(this.activeElements,function(t){t.restore(["fillColor"])}),e.each(this.segments,function(t){t.save()}),this.render()},removeData:function(t){var i=e.isNumber(t)?t:this.segments.length-1;this.segments.splice(i,1),this.reflow(),this.update()},reflow:function(){e.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.outerRadius=(e.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,e.each(this.segments,function(t){t.update({outerRadius:this.outerRadius,innerRadius:this.outerRadius/100*this.options.percentageInnerCutout})},this)},draw:function(t){var i=t?t:1;this.clear(),e.each(this.segments,function(t,e){t.transition({circumference:this.calculateCircumference(t.value),outerRadius:this.outerRadius,innerRadius:this.outerRadius/100*this.options.percentageInnerCutout},i),t.endAngle=t.startAngle+t.circumference,t.draw(),0===e&&(t.startAngle=1.5*Math.PI),e<% for (var i=0; i
                        • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
                        • <%}%>'};i.Type.extend({name:"Line",defaults:s,initialize:function(t){this.PointClass=i.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx,inRange:function(t){return Math.pow(t-this.x,2)0&&ithis.scale.endPoint?t.controlPoints.outer.y=this.scale.endPoint:t.controlPoints.outer.ythis.scale.endPoint?t.controlPoints.inner.y=this.scale.endPoint:t.controlPoints.inner.y0&&(s.lineTo(h[h.length-1].x,this.scale.endPoint),s.lineTo(h[0].x,this.scale.endPoint),s.fillStyle=t.fillColor,s.closePath(),s.fill()),e.each(h,function(t){t.draw()})},this)}})}.call(this),function(){"use strict";var t=this,i=t.Chart,e=i.helpers,s={scaleShowLabelBackdrop:!0,scaleBackdropColor:"rgba(255,255,255,0.75)",scaleBeginAtZero:!0,scaleBackdropPaddingY:2,scaleBackdropPaddingX:2,scaleShowLine:!0,segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:!0,animateScale:!1,legendTemplate:'
                            <% for (var i=0; i
                          • <%if(segments[i].label){%><%=segments[i].label%><%}%>
                          • <%}%>
                          '};i.Type.extend({name:"PolarArea",defaults:s,initialize:function(t){this.segments=[],this.SegmentArc=i.Arc.extend({showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,ctx:this.chart.ctx,innerRadius:0,x:this.chart.width/2,y:this.chart.height/2}),this.scale=new i.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,lineArc:!0,width:this.chart.width,height:this.chart.height,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,valuesCount:t.length}),this.updateScaleRange(t),this.scale.update(),e.each(t,function(t,i){this.addData(t,i,!0)},this),this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getSegmentsAtEvent(t):[];e.each(this.segments,function(t){t.restore(["fillColor"])}),e.each(i,function(t){t.fillColor=t.highlightColor}),this.showTooltip(i)}),this.render()},getSegmentsAtEvent:function(t){var i=[],s=e.getRelativePosition(t);return e.each(this.segments,function(t){t.inRange(s.x,s.y)&&i.push(t)},this),i},addData:function(t,i,e){var s=i||this.segments.length;this.segments.splice(s,0,new this.SegmentArc({fillColor:t.color,highlightColor:t.highlight||t.color,label:t.label,value:t.value,outerRadius:this.options.animateScale?0:this.scale.calculateCenterOffset(t.value),circumference:this.options.animateRotate?0:this.scale.getCircumference(),startAngle:1.5*Math.PI})),e||(this.reflow(),this.update())},removeData:function(t){var i=e.isNumber(t)?t:this.segments.length-1;this.segments.splice(i,1),this.reflow(),this.update()},calculateTotal:function(t){this.total=0,e.each(t,function(t){this.total+=t.value},this),this.scale.valuesCount=this.segments.length},updateScaleRange:function(t){var i=[];e.each(t,function(t){i.push(t.value)});var s=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:e.calculateScaleRange(i,e.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);e.extend(this.scale,s,{size:e.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2})},update:function(){this.calculateTotal(this.segments),e.each(this.segments,function(t){t.save()}),this.render()},reflow:function(){e.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.updateScaleRange(this.segments),this.scale.update(),e.extend(this.scale,{xCenter:this.chart.width/2,yCenter:this.chart.height/2}),e.each(this.segments,function(t){t.update({outerRadius:this.scale.calculateCenterOffset(t.value)})},this)},draw:function(t){var i=t||1;this.clear(),e.each(this.segments,function(t,e){t.transition({circumference:this.scale.getCircumference(),outerRadius:this.scale.calculateCenterOffset(t.value)},i),t.endAngle=t.startAngle+t.circumference,0===e&&(t.startAngle=1.5*Math.PI),e<% for (var i=0; i
                        • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
                        • <%}%>'},initialize:function(t){this.PointClass=i.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx}),this.datasets=[],this.buildScale(t),this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getPointsAtEvent(t):[];this.eachPoints(function(t){t.restore(["fillColor","strokeColor"])}),e.each(i,function(t){t.fillColor=t.highlightFill,t.strokeColor=t.highlightStroke}),this.showTooltip(i)}),e.each(t.datasets,function(i){var s={label:i.label||null,fillColor:i.fillColor,strokeColor:i.strokeColor,pointColor:i.pointColor,pointStrokeColor:i.pointStrokeColor,points:[]};this.datasets.push(s),e.each(i.data,function(e,n){var o;this.scale.animation||(o=this.scale.getPointPosition(n,this.scale.calculateCenterOffset(e))),s.points.push(new this.PointClass({value:e,label:t.labels[n],datasetLabel:i.label,x:this.options.animation?this.scale.xCenter:o.x,y:this.options.animation?this.scale.yCenter:o.y,strokeColor:i.pointStrokeColor,fillColor:i.pointColor,highlightFill:i.pointHighlightFill||i.pointColor,highlightStroke:i.pointHighlightStroke||i.pointStrokeColor}))},this)},this),this.render()},eachPoints:function(t){e.each(this.datasets,function(i){e.each(i.points,t,this)},this)},getPointsAtEvent:function(t){var i=e.getRelativePosition(t),s=e.getAngleFromPoint({x:this.scale.xCenter,y:this.scale.yCenter},i),n=2*Math.PI/this.scale.valuesCount,o=Math.round((s.angle-1.5*Math.PI)/n),a=[];return(o>=this.scale.valuesCount||0>o)&&(o=0),s.distance<=this.scale.drawingArea&&e.each(this.datasets,function(t){a.push(t.points[o])}),a},buildScale:function(t){this.scale=new i.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,angleLineColor:this.options.angleLineColor,angleLineWidth:this.options.angleShowLineOut?this.options.angleLineWidth:0,pointLabelFontColor:this.options.pointLabelFontColor,pointLabelFontSize:this.options.pointLabelFontSize,pointLabelFontFamily:this.options.pointLabelFontFamily,pointLabelFontStyle:this.options.pointLabelFontStyle,height:this.chart.height,width:this.chart.width,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,labels:t.labels,valuesCount:t.datasets[0].data.length}),this.scale.setScaleSize(),this.updateScaleRange(t.datasets),this.scale.buildYLabels()},updateScaleRange:function(t){var i=function(){var i=[];return e.each(t,function(t){t.data?i=i.concat(t.data):e.each(t.points,function(t){i.push(t.value)})}),i}(),s=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:e.calculateScaleRange(i,e.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);e.extend(this.scale,s)},addData:function(t,i){this.scale.valuesCount++,e.each(t,function(t,e){var s=this.scale.getPointPosition(this.scale.valuesCount,this.scale.calculateCenterOffset(t));this.datasets[e].points.push(new this.PointClass({value:t,label:i,x:s.x,y:s.y,strokeColor:this.datasets[e].pointStrokeColor,fillColor:this.datasets[e].pointColor}))},this),this.scale.labels.push(i),this.reflow(),this.update()},removeData:function(){this.scale.valuesCount--,this.scale.labels.shift(),e.each(this.datasets,function(t){t.points.shift()},this),this.reflow(),this.update()},update:function(){this.eachPoints(function(t){t.save()}),this.reflow(),this.render()},reflow:function(){e.extend(this.scale,{width:this.chart.width,height:this.chart.height,size:e.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2}),this.updateScaleRange(this.datasets),this.scale.setScaleSize(),this.scale.buildYLabels()},draw:function(t){var i=t||1,s=this.chart.ctx;this.clear(),this.scale.draw(),e.each(this.datasets,function(t){e.each(t.points,function(t,e){t.hasValue()&&t.transition(this.scale.getPointPosition(e,this.scale.calculateCenterOffset(t.value)),i)},this),s.lineWidth=this.options.datasetStrokeWidth,s.strokeStyle=t.strokeColor,s.beginPath(),e.each(t.points,function(t,i){0===i?s.moveTo(t.x,t.y):s.lineTo(t.x,t.y)},this),s.closePath(),s.stroke(),s.fillStyle=t.fillColor,s.fill(),e.each(t.points,function(t){t.hasValue()&&t.draw()})},this)}})}.call(this); diff --git a/novel-admin/src/main/resources/static/js/plugins/chosen/chosen.jquery.js b/novel-admin/src/main/resources/static/js/plugins/chosen/chosen.jquery.js new file mode 100644 index 0000000..e7181e9 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/chosen/chosen.jquery.js @@ -0,0 +1,1211 @@ +/*! + Chosen, a Select Box Enhancer for jQuery and Prototype + by Patrick Filler for Harvest, http://getharvest.com + + Version 1.1.0 + Full source at https://github.com/harvesthq/chosen + Copyright (c) 2011 Harvest http://getharvest.com + + MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md + This file is generated by `grunt build`, do not edit it by hand. + */ + +(function() { + var $, AbstractChosen, Chosen, SelectParser, _ref, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; + + SelectParser = (function() { + function SelectParser() { + this.options_index = 0; + this.parsed = []; + } + + SelectParser.prototype.add_node = function(child) { + if (child.nodeName.toUpperCase() === "OPTGROUP") { + return this.add_group(child); + } else { + return this.add_option(child); + } + }; + + SelectParser.prototype.add_group = function(group) { + var group_position, option, _i, _len, _ref, _results; + group_position = this.parsed.length; + this.parsed.push({ + array_index: group_position, + group: true, + label: this.escapeExpression(group.label), + children: 0, + disabled: group.disabled + }); + _ref = group.childNodes; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + option = _ref[_i]; + _results.push(this.add_option(option, group_position, group.disabled)); + } + return _results; + }; + + SelectParser.prototype.add_option = function(option, group_position, group_disabled) { + if (option.nodeName.toUpperCase() === "OPTION") { + if (option.text !== "") { + if (group_position != null) { + this.parsed[group_position].children += 1; + } + this.parsed.push({ + array_index: this.parsed.length, + options_index: this.options_index, + value: option.value, + text: option.text, + html: option.innerHTML, + selected: option.selected, + disabled: group_disabled === true ? group_disabled : option.disabled, + group_array_index: group_position, + classes: option.className, + style: option.style.cssText + }); + } else { + this.parsed.push({ + array_index: this.parsed.length, + options_index: this.options_index, + empty: true + }); + } + return this.options_index += 1; + } + }; + + SelectParser.prototype.escapeExpression = function(text) { + var map, unsafe_chars; + if ((text == null) || text === false) { + return ""; + } + if (!/[\&\<\>\"\'\`]/.test(text)) { + return text; + } + map = { + "<": "<", + ">": ">", + '"': """, + "'": "'", + "`": "`" + }; + unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g; + return text.replace(unsafe_chars, function(chr) { + return map[chr] || "&"; + }); + }; + + return SelectParser; + + })(); + + SelectParser.select_to_array = function(select) { + var child, parser, _i, _len, _ref; + parser = new SelectParser(); + _ref = select.childNodes; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + child = _ref[_i]; + parser.add_node(child); + } + return parser.parsed; + }; + + AbstractChosen = (function() { + function AbstractChosen(form_field, options) { + this.form_field = form_field; + this.options = options != null ? options : {}; + if (!AbstractChosen.browser_is_supported()) { + return; + } + this.is_multiple = this.form_field.multiple; + this.set_default_text(); + this.set_default_values(); + this.setup(); + this.set_up_html(); + this.register_observers(); + } + + AbstractChosen.prototype.set_default_values = function() { + var _this = this; + this.click_test_action = function(evt) { + return _this.test_active_click(evt); + }; + this.activate_action = function(evt) { + return _this.activate_field(evt); + }; + this.active_field = false; + this.mouse_on_container = false; + this.results_showing = false; + this.result_highlighted = null; + this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false; + this.disable_search_threshold = this.options.disable_search_threshold || 0; + this.disable_search = this.options.disable_search || false; + this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true; + this.group_search = this.options.group_search != null ? this.options.group_search : true; + this.search_contains = this.options.search_contains || false; + this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true; + this.max_selected_options = this.options.max_selected_options || Infinity; + this.inherit_select_classes = this.options.inherit_select_classes || false; + this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true; + return this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true; + }; + + AbstractChosen.prototype.set_default_text = function() { + if (this.form_field.getAttribute("data-placeholder")) { + this.default_text = this.form_field.getAttribute("data-placeholder"); + } else if (this.is_multiple) { + this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text; + } else { + this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text; + } + return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text; + }; + + AbstractChosen.prototype.mouse_enter = function() { + return this.mouse_on_container = true; + }; + + AbstractChosen.prototype.mouse_leave = function() { + return this.mouse_on_container = false; + }; + + AbstractChosen.prototype.input_focus = function(evt) { + var _this = this; + if (this.is_multiple) { + if (!this.active_field) { + return setTimeout((function() { + return _this.container_mousedown(); + }), 50); + } + } else { + if (!this.active_field) { + return this.activate_field(); + } + } + }; + + AbstractChosen.prototype.input_blur = function(evt) { + var _this = this; + if (!this.mouse_on_container) { + this.active_field = false; + return setTimeout((function() { + return _this.blur_test(); + }), 100); + } + }; + + AbstractChosen.prototype.results_option_build = function(options) { + var content, data, _i, _len, _ref; + content = ''; + _ref = this.results_data; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + data = _ref[_i]; + if (data.group) { + content += this.result_add_group(data); + } else { + content += this.result_add_option(data); + } + if (options != null ? options.first : void 0) { + if (data.selected && this.is_multiple) { + this.choice_build(data); + } else if (data.selected && !this.is_multiple) { + this.single_set_selected_text(data.text); + } + } + } + return content; + }; + + AbstractChosen.prototype.result_add_option = function(option) { + var classes, option_el; + if (!option.search_match) { + return ''; + } + if (!this.include_option_in_results(option)) { + return ''; + } + classes = []; + if (!option.disabled && !(option.selected && this.is_multiple)) { + classes.push("active-result"); + } + if (option.disabled && !(option.selected && this.is_multiple)) { + classes.push("disabled-result"); + } + if (option.selected) { + classes.push("result-selected"); + } + if (option.group_array_index != null) { + classes.push("group-option"); + } + if (option.classes !== "") { + classes.push(option.classes); + } + option_el = document.createElement("li"); + option_el.className = classes.join(" "); + option_el.style.cssText = option.style; + option_el.setAttribute("data-option-array-index", option.array_index); + option_el.innerHTML = option.search_text; + return this.outerHTML(option_el); + }; + + AbstractChosen.prototype.result_add_group = function(group) { + var group_el; + if (!(group.search_match || group.group_match)) { + return ''; + } + if (!(group.active_options > 0)) { + return ''; + } + group_el = document.createElement("li"); + group_el.className = "group-result"; + group_el.innerHTML = group.search_text; + return this.outerHTML(group_el); + }; + + AbstractChosen.prototype.results_update_field = function() { + this.set_default_text(); + if (!this.is_multiple) { + this.results_reset_cleanup(); + } + this.result_clear_highlight(); + this.results_build(); + if (this.results_showing) { + return this.winnow_results(); + } + }; + + AbstractChosen.prototype.reset_single_select_options = function() { + var result, _i, _len, _ref, _results; + _ref = this.results_data; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + result = _ref[_i]; + if (result.selected) { + _results.push(result.selected = false); + } else { + _results.push(void 0); + } + } + return _results; + }; + + AbstractChosen.prototype.results_toggle = function() { + if (this.results_showing) { + return this.results_hide(); + } else { + return this.results_show(); + } + }; + + AbstractChosen.prototype.results_search = function(evt) { + if (this.results_showing) { + return this.winnow_results(); + } else { + return this.results_show(); + } + }; + + AbstractChosen.prototype.winnow_results = function() { + var escapedSearchText, option, regex, regexAnchor, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref; + this.no_results_clear(); + results = 0; + searchText = this.get_search_text(); + escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + regexAnchor = this.search_contains ? "" : "^"; + regex = new RegExp(regexAnchor + escapedSearchText, 'i'); + zregex = new RegExp(escapedSearchText, 'i'); + _ref = this.results_data; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + option = _ref[_i]; + option.search_match = false; + results_group = null; + if (this.include_option_in_results(option)) { + if (option.group) { + option.group_match = false; + option.active_options = 0; + } + if ((option.group_array_index != null) && this.results_data[option.group_array_index]) { + results_group = this.results_data[option.group_array_index]; + if (results_group.active_options === 0 && results_group.search_match) { + results += 1; + } + results_group.active_options += 1; + } + if (!(option.group && !this.group_search)) { + option.search_text = option.group ? option.label : option.html; + option.search_match = this.search_string_match(option.search_text, regex); + if (option.search_match && !option.group) { + results += 1; + } + if (option.search_match) { + if (searchText.length) { + startpos = option.search_text.search(zregex); + text = option.search_text.substr(0, startpos + searchText.length) + '

                          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 Uv<#O47|Qg(vkM#zJ<7NL4>BARxBvhE literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/p_big3.jpg b/novel-admin/src/main/resources/static/img/p_big3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a89eb8291d5cb7d9f37ec4f275deab911c9e28e GIT binary patch literal 521275 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¥}>uauIoY!`8n(7niSl_m2d zUKsjhrhhtWli%)zD$jLb36UAD?4o%&(($)3V3$9{n#J64STLF{zZ*4I(sgj!sX zBg)CVeLpe(P2E-;518es3dp$6XuETCy0Srh$2)FAg_e8%4W$LSEe+%sYN z?h}tWL~R3&0R#v!l}Gm#ei&Y0dd_AyL1bM=Km7U6_f)_1pcseZs)hlz?k@+z7vz9f ztnbsjeWeGxankrH00stlhSr>&a;*st*5alR*<9euHBZy(OAk{nicW8$SiX#258X@G zB+xM*HE~F>c-d2>J3*nlN7vG=G}35e4*f=4HHyi=K;!I^TwTuSR%dxrmGav^P>})e zKalXn*{g4FcdHo)fg!5tOBHj>8w-)7BPJ5ji0ehKa$$V5WQj4t!!uSIofsv=Nqi5wLdOTv5= zHWA^pC?E5S$I}FQ8|nW)6m%b4T2y^ zZtMNpIipR?hS}R(5AWMK3b3340X$OMhqN7P&@xkDva^rLKoi3?PhFbOl(2Z_qFHoN zsGhoN0-WQH6yFx%6W#<(*xPfJe#XPr(AiW9dda4WdUNd8U`kcD8K}}*RUuAVjR*vv zo(1F;P+HJSSLK@I5|c2Ke*P$P+KcCh$6Iv07UdLpYWTsW6}g2JB}4`AAF2x7k z?j8O~5Fxs&htSHj+FGLFTE1R@vj=$Wvu?&bywoFgUo4O&rUz~a6%0{ zC+oki{!GPaZdo?f+ECnE85D9FXz)m~#r1m@^`-@k-BV|rIZ{6e6qI<#`a5VW&ODOj z|M@eAx&(!5{hM~}n^#44yO+aB(PfC>c$WB?h1pSL*Mx(e0 zs_|_z#bVA}I+dDGKv9gPu%F86`8C2E&0}e9uArc5?J41DHSsPk+1Es~zSzL(?!j@T zYW>`&*HRI)JS67_cceEmTzgwcfdalVDqVlZ+KRaXG71N*E+@>6>F)cu+D*-HrM(rm zq*&51USxwFL?Q{2b%;Et`tk}ls=@jyryBse#v1ua>+MWQnsfA3v-5zzQ{(wt!7=W| zEHPVAsn;%pe*HoCzX(l&^QyS+=wx6`7^?cBTii4~>EWmq$7uOp)vT@zX$ z?fRHBk5sH8pc6ln81YbPLI0Yb4?&#j zT>{rruJIw5Kg95i!fj`&EDZmzSY$$$B}+I)BmQX66?C>x$JA^gDR-KCPvA5&ePuR zQD3?RMuk|PrR8mKol9PHay_*D8#Z+7rU}DN@!-|5gabu^qK78iC4%#clv*Xrb3t70 z(npi9dgn+bB-?YO!#-5ta}1rHBz&l{by)FeDUmhWZ}3(}KiiZo7j0{Um&hsaRJ%}g zWa3KsLqED}E>mt&F0s}eXU~Ej;YEMZErxna5Hd}Bpc=_C51c@f3oI%isD#`0K{4qz zpnIq~b54DBS2!vC3%->aVw%)m5V+!6I*Xc%kddN*&ffX^5#r;tzbrYe3@rjJ|8>Tn z0hqR6fuoJ-Sg#)!cqeo3-do3QkRp2LlJ58L$Sq`^*C^^uz0am_hEWqT=7^8e8wm>k zodfROtY!FGY7(-Ve1%Bw%}Ni)H=I$jw4_0Ce`|?>j|Z99JyFZuvSSrCx2%dP9$8a7 zo>-scaW&Z?iQvuzf;TS0&uY!Cz|7fZE}b>1UzNOktmW$O1$W|EvbWt<=k-pZWqXQG z`2qD)Xi)%Hm%mc58wOufq#W^_lrdbSlnvdD3;b`-)rLBe7Xl03Jy*3@yqT%z``M)5 zwlPAmhto*FCB!YxEd2*b`ZWE^?^nN?Uhmb*f3&v7MVO^LmOM|djD`%OK=}u!$7av3 zG1b3}Rl?Q{G9cRI7}wSp6@b@?x1&NeEoU|%{Sg}G_-07V{cfQ{a{l$ zzYK5%NrSv`|2?$T3J%QGvp?(iiV3B2C+k5MPOWx_{s#=Pm z+gHKi`D|0=B13`(B^n_HntvN<&xo;;m9tJ$bR?g#mAPlSrh|4~B8jKyG4y)S?&dPT z>3(xYWh-^?`0l=<3U+K-oj$E!OmBq{z^=t4x*E&4SS1+sXzc8#bBMu+V6-0cmx|vQ z)~JZa#v9lq+Pq#2$U`3_uIFrxQp>A0d$~%L(@LHd=4`_Kfh-UlaGyDkry5XsHCsx6NRPImcv6k^_-$A_-L=@$RqA4M6~8 zg6yBZlx>iL-|)DZ@HB+&yM)SF;s*AW+@c^&U!&F;dvxbBmZJHEX`!CIo$s?R)6;yz zMpjOFBNp;Kf5fx%F;YsRoyR8P;iY9CYa)ZK4!4|O(VCN^3yTqEM}KXf*mw)FLnn)> z8@KihR-saPd4n*N_^r6?*Rb5y8d>6ikHf%>z;z zh4x!Pt6Q(RikBRx=?GmgZAP*c1*$I6vS$~Y`t(CmwEARwP3FAT(xs0Ckc4i}y=hnH zYc(DoKfZbezf-Svw!um9SZi}F!R1VoXo$>z<2<~v_xmSz9MF?qhKb`(SzF7wEP9$i zHr;Oker?Q{>?hE+u9qsW{#;(`D32gi(?zGTo8oRuL;|^}7@}Y{M~q^sp{&JD z`ahL|k=Fl#Oc@}H(qr97_?{Ibss>*-!Kf&dNH_%4sm5GDh~(Ym*ikgrQmD=FsIP;u3$F*K*H8L)D^Hau7E# zJBsY?Vz^yR&qdCKu97Nxs=y%IPXI}L2axz;1|HO2wI?n2$2@XXf$EG+kpA?%{&Fws z(#Z;Yu=P24)kfaRrW>8%5DJ7_oRX3C1q9cM~&1*^V_1?RXg>Ij2YdNjkGUmM_W0fKU2KRfMo_ zq_g#()5Uop-W7Wi+Vlbx14Gqp;Hz71SPd1w6%fighfekgbiAaAYGiD4C}Mb~q72!z zCHn+=3_ms|bo&4)nZ4q$FvX>fi_R&@)6Vw|pBLU^jXqrq;S932wi~TB8Nq~#Q^8KT zB{|JD$UaZ}yvV}?=);gzx5!I3CH%~U&5r0%;(Snx&NEGW_q?W+gQWttcZG1%QBJ+t z+&8wVDpjtj@2qnvtD+gJufbwP; zkPrPkG}OAyPBExY4}_80lqL&D8`4I)utp{8zC~T_v7YMv>o?(chufPo-_k_gTbF1h zDL(Z%I-A$VAMC508H(}f5lmgm(CqYmPFhtlCr%ePdX;62^AHTmvM7-CC7Oy{rQ><5 zlrK*wuz7Z3l2uI)BqT=mxmsQa+f7ivP7(nhxlUU>}UO@ybV7X zq+jTj+kX^#zPsG57I0ucWHWVNkcbWA_hZ=?o9KQm}?x&luB02^QBWHF_K*q;Uny&l@3_Ur5Ii=~F# zV)j(=TBZO%?^c|uUNeLVx4pYw5XZU)4tmBcWu8@vuvL-&XmUs{cDssXGmW`?D}sSR zWvnPbLwwUv1qf@7Ri%o<^(($hx_DXWM2c%039EVKB?m-R_fF`kCBSx+jGL#gt>LEj zZ=b&lW~S9oyBoh_)J^1WR6dh3N;0gDP!e8MiEu<3le^fva?o~Bn)&VQ{kQ7Ed<+e9Z_bTME ziI!G5Wi{PC2r{$QUz)#T=J(?MWY~)@V)TSE$oAgmn69RmgZ~HTXokZBJc)|*XExum z@dV%r@^iP?S!#Tx8k;!1bW~k+J)-1^oECK6)u?d`&7ipY7m+91aIXHqt>MK7zl-+3 zFRmJCJQSn545F!;9e1uiGvGVllQMcbJy!YIo&Wz5sYVE=QmzVQ}9KQO*17vWujv&uc;)zbje;bdOv}RFXHYN?7 zS*9>p;}FzaM;O3j_1k#P_UhC*QyCe)vgl zdtZh7-Gkk5!fify&?o^+M>esTQ&qlQUtpf209rVb&+fX`yPINSKys8UFTW92@DolK?M){D!9i5KP!ch%vMm?lP zR#l%Gv`$a$7h$dlyZJUjGH4NH7WiEMqVsJeMZFokYCIM=ik(T9UGWg>zk%xJi8fhV zv=0I;Oj$J?I{!wh|hs7!mM=^9k46% zab%3a?Q6WdbM~DHl|ugg(di-5j4yqP_Wps(-KNG1JIu)X^xtKo%93dftcbFEb$|0- zMO51zsDr~^XauUE+or%&^*9ftIRbrR?rb(S4V=rU!I9;8JHIi3Be;FwV$GJ8^V)>9 zm4Jy_8dW^6^t0=m28Yl;8h6?%7Z zZbmIuyZN>fb_{sxE52=NNvb^sCE(OvmEa+=axrF3Eqfpib=ywHY#M?8`poYtI6btqml5sT<-eZ z-v;xRpQG;z$oazNpZ5rLBHPz;(|NAIY=?udT>J{F8OONXdpuZsdrW6BqwwW8jvqgs z=p|ysX!%+sHKuMyt)pOJ(LTq`_~||U5-%qT=0_f-^(l&qw{z_#GKGGb2U0voQmPl& z4Y@|9>!;gQuc$11AH;rRUp@#uL@p}k&L^7 zr$){^MGRb>-OtN$t^qm22;Yo;p$w4f2h;1>O^_tC_x8cin7pTIq6;yYt6{AG2vq&{ z-@T!;V~-p5N>gQErEyOK#!ZR@b>gY*J!3V~^-ohoAPJ6@LHf%-&=3HrAN1355-z@9 zRRv0;2WV)Q;clMojD~`g*dmh-&~-a*jbp5KixDL-EG;ig%|AySIBGFZ9?Wq5=M8ZQ`8=0rr2I&i|%{>35m=0IkK(J60CAX z(6Jq>M?Ar`a_pDoEA0&STqL1O0D?CVr1Q6UAQ~SFojeY#WMpjhl*G&c8!xx|fRe-S zQ7)rymDAj6`E%)~g1+H1CVCW0Q#o=jS~zMC%n}gi0vD#z^1d~@N`0Ma?krV?fe-cZ z|628VUS)mNr}ZEAwBTsj=J@>) zo~3D?hD`^%%&J!)#I33JZrsm<-?P<7)9TxvcGmGT`@oxNY?>|sFG#7y_GR$*v!ITq z<%R7BAvhT4EW)e~HR-$`$WvDz^bTV?1-#F^BY=IX!$tT>hOa;J(q}hdK}*SAng#e_ z{@7{YwK7{Df|OoLPa6TB`GPN;?c{vV74-Wbhz0d!GEwqvcbo!xm&zIXJ*1Cx%>oy} z@K88Iul<4&B`~kAMA;44MZA}737!ZFVKYn?kSVe$6FsFYQ07zI^z2%_%)4hO(S@z@ z^y)&dvJeClJUQyzFEMOu>Xv!+KTtV~qd1kx@1ZmFwDW3&`gwa6(MTZRG_ZI$(S+Wj zucZ>1S0r*~Tlp?}edn<}2*gLTVf`f~K^ZuSTB$v-fRtXZ`u5mhPleitkqYsl?#%{^ zN>e*Y(W5lA-TK_ zoW7C+rOy-PJ4bPikQpLPJn_I6rSWI^ioJNl{)+R))QlCQGTh?Jb0@01#VeM`iIB7* zqwGPa2bwE{>bi0}4u1wsVEUx7U8hT!H$?&T(tuHHyu$tKlpi!cr#mJVfqbcL*PNQH zBtEDzKyY?%WzsbHoG$E_fm5+gvCxH&O?d6}sEH>}o;fno%N|&TKT|w4U)&|#OLOHS zGN>gpSW=QBYW(#+?Xn%6g$C0T>bk|_t45C zSEF@Njm&^IRs!+Eg6IPz?HJ6Z5`ty=cB)1?0sQdyWBDlKQ(xM$$R$|FrS)cm_O%BA zX|u@Px8}*KR?$I;WC$!$wYHXG)Mqjb+)S50(SiCdj18QI;M3sg zu>*DaEuk6{zQ`s^H{94> zPyUKlqJT!g-LJp{f~iQ;+^$>_gx__mZ!IOV&YJUCwk*oC8fbouDAJFvEX=jn0ze=p zeCZ6<6PDF840=#4^4-gPYGI^E&R734ymoKstF90b-zyG(1<=AqDp_=>E)#bUP+#mgftk2ejNA?oc9X+wca1y<(;zP#8$<_4l!BdfC)tP1yY9>eI+H#rc{d zZ@@c??F=Cb6ln3d@NmJC88K=52Zxv8GQx@VQl>XWDj)IMt}e#5l*d^((5eP=WTk5h z(|T}={6JIvu%gK*x3&vDV>=ECY-{_*X(&PC)gP&9@_eW`kzeCU7Yr6BwsjX{*|3hk`%EQv{z?Ff!^O;`j$9I|1Q>AM8Ue% z{KacEF)cdkjnB-W=hOeDr=lD27ZM#Dnt>@goFI@9+^|CW$Tfhh1!Np*j4sODd_@^> zXLJ?yQnzql!n2*tD3g*nbrX@a;(xGHqM1N`T?hXO> zQ#pP3WGC%ZU{HuWo*q375WaPup|X}(G-77{&NGL`qKEk%J<6Of|9X^<_sd%^n;iX) z#=eVB5KJ8zhp4sdU5nska)M-{3H&H|zKENu^2^sEu+1#Tf-FRrwB^Jwz{1hjnD zy5j=lDYKJ%g!31Np@r=)9RW0!{(F<}?=r1`6n$g?kug;xaJU}9P;X|-(j4JJFiK8T zk$9ACVY*`4n()K!q@l!s1+Oe3Q#QtZd^NmNKm5v#J@Cr7pBfT=d?;q}cj#^K5#(BK zW2heMZCX$9fhS5l{Jak{=bHXN_VYqcGH?bw*|MT3BKMPOjnO0*TOvJVX$PF$OMzmE z0iwG9ffTg*xwx`zgUw9`Jq{vGmV3|; zKUgTb%V`*n9krs*E)VThCKVYwxW=-flV(o*p0f$(m&LCsbH->zsEe=RmXT&R)@|() zzI`^2u_MTTN|#W;R~ioA33|m+BAkrgJ3~MH^pfO4L&xVQdcjqP++QMm|Dh(f68lQp zoQB1SI@*wr34~ywl~Co}&8ma*?HZSj8t?EW4*bZ5^nK@Q-8tO2ym8H!H5Qvr%?ts~ zz@~{x%8IfoDJ>Dp4gqJuAjYtRynsJ{Z|g}J4=!x-8@^52Y@bq;h@J+a2G!pwZosJK z%?jxnis-(62zf-sz9--4(q0kdp5{v{CccU^O6$0-&J^}XL?(}dA)%mwa~E)Fi`NZ_^^WzlZPTPILe6ZrvC?t zHgLUHY%g5|#>!!xjpjX@t`16qehoAKK->z`FJsm1jVM06^bh#enbB`DJH7ZF@`Ce4 zG$6mR*jfOI<6KrF!y2Jphl6I8Le~&So51XNo-?_q2u|MZGMxc&@~N= zOpE2qRLWe@6t7=?dHBvPJ7M# z_%&^oP;F262bPF=k1kjx!C}0ZZM&&aZFdo5#J&7?CI6fNE0;+01HQE_n?&$wKyI0@ z?O_kZ!=T~BD{~{2|8A*b^ePvl&ELb#Gp1d2QL+!|^!N!2Ij;Q<)wVhD1Yj}zpaQp4>2wGg(2y;CDuYzzcL_Mg;zcoap| zGSxmTO3W(&Mn(L}mhLMoTS228o)?-F

                          ' + option.search_text.substr(startpos + searchText.length); + option.search_text = text.substr(0, startpos) + '' + text.substr(startpos); + } + if (results_group != null) { + results_group.group_match = true; + } + } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) { + option.search_match = true; + } + } + } + } + this.result_clear_highlight(); + if (results < 1 && searchText.length) { + this.update_results_content(""); + return this.no_results(searchText); + } else { + this.update_results_content(this.results_option_build()); + return this.winnow_results_set_highlight(); + } + }; + + AbstractChosen.prototype.search_string_match = function(search_string, regex) { + var part, parts, _i, _len; + if (regex.test(search_string)) { + return true; + } else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) { + parts = search_string.replace(/\[|\]/g, "").split(" "); + if (parts.length) { + for (_i = 0, _len = parts.length; _i < _len; _i++) { + part = parts[_i]; + if (regex.test(part)) { + return true; + } + } + } + } + }; + + AbstractChosen.prototype.choices_count = function() { + var option, _i, _len, _ref; + if (this.selected_option_count != null) { + return this.selected_option_count; + } + this.selected_option_count = 0; + _ref = this.form_field.options; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + option = _ref[_i]; + if (option.selected) { + this.selected_option_count += 1; + } + } + return this.selected_option_count; + }; + + AbstractChosen.prototype.choices_click = function(evt) { + evt.preventDefault(); + if (!(this.results_showing || this.is_disabled)) { + return this.results_show(); + } + }; + + AbstractChosen.prototype.keyup_checker = function(evt) { + var stroke, _ref; + stroke = (_ref = evt.which) != null ? _ref : evt.keyCode; + this.search_field_scale(); + switch (stroke) { + case 8: + if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) { + return this.keydown_backstroke(); + } else if (!this.pending_backstroke) { + this.result_clear_highlight(); + return this.results_search(); + } + break; + case 13: + evt.preventDefault(); + if (this.results_showing) { + return this.result_select(evt); + } + break; + case 27: + if (this.results_showing) { + this.results_hide(); + } + return true; + case 9: + case 38: + case 40: + case 16: + case 91: + case 17: + break; + default: + return this.results_search(); + } + }; + + AbstractChosen.prototype.clipboard_event_checker = function(evt) { + var _this = this; + return setTimeout((function() { + return _this.results_search(); + }), 50); + }; + + AbstractChosen.prototype.container_width = function() { + if (this.options.width != null) { + return this.options.width; + } else { + return "" + this.form_field.offsetWidth + "px"; + } + }; + + AbstractChosen.prototype.include_option_in_results = function(option) { + if (this.is_multiple && (!this.display_selected_options && option.selected)) { + return false; + } + if (!this.display_disabled_options && option.disabled) { + return false; + } + if (option.empty) { + return false; + } + return true; + }; + + AbstractChosen.prototype.search_results_touchstart = function(evt) { + this.touch_started = true; + return this.search_results_mouseover(evt); + }; + + AbstractChosen.prototype.search_results_touchmove = function(evt) { + this.touch_started = false; + return this.search_results_mouseout(evt); + }; + + AbstractChosen.prototype.search_results_touchend = function(evt) { + if (this.touch_started) { + return this.search_results_mouseup(evt); + } + }; + + AbstractChosen.prototype.outerHTML = function(element) { + var tmp; + if (element.outerHTML) { + return element.outerHTML; + } + tmp = document.createElement("div"); + tmp.appendChild(element); + return tmp.innerHTML; + }; + + AbstractChosen.browser_is_supported = function() { + if (window.navigator.appName === "Microsoft Internet Explorer") { + return document.documentMode >= 8; + } + if (/iP(od|hone)/i.test(window.navigator.userAgent)) { + return false; + } + if (/Android/i.test(window.navigator.userAgent)) { + if (/Mobile/i.test(window.navigator.userAgent)) { + return false; + } + } + return true; + }; + + AbstractChosen.default_multiple_text = "Select Some Options"; + + AbstractChosen.default_single_text = "Select an Option"; + + AbstractChosen.default_no_result_text = "No results match"; + + return AbstractChosen; + + })(); + + $ = jQuery; + + $.fn.extend({ + chosen: function(options) { + if (!AbstractChosen.browser_is_supported()) { + return this; + } + return this.each(function(input_field) { + var $this, chosen; + $this = $(this); + chosen = $this.data('chosen'); + if (options === 'destroy' && chosen) { + chosen.destroy(); + } else if (!chosen) { + $this.data('chosen', new Chosen(this, options)); + } + }); + } + }); + + Chosen = (function(_super) { + __extends(Chosen, _super); + + function Chosen() { + _ref = Chosen.__super__.constructor.apply(this, arguments); + return _ref; + } + + Chosen.prototype.setup = function() { + this.form_field_jq = $(this.form_field); + this.current_selectedIndex = this.form_field.selectedIndex; + return this.is_rtl = this.form_field_jq.hasClass("chosen-rtl"); + }; + + Chosen.prototype.set_up_html = function() { + var container_classes, container_props; + container_classes = ["chosen-container"]; + container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single")); + if (this.inherit_select_classes && this.form_field.className) { + container_classes.push(this.form_field.className); + } + if (this.is_rtl) { + container_classes.push("chosen-rtl"); + } + container_props = { + 'class': container_classes.join(' '), + 'style': "width: " + (this.container_width()) + ";", + 'title': this.form_field.title + }; + if (this.form_field.id.length) { + container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen"; + } + this.container = $("
                          ", container_props); + if (this.is_multiple) { + this.container.html('
                            '); + } else { + this.container.html('' + this.default_text + '
                              '); + } + this.form_field_jq.hide().after(this.container); + this.dropdown = this.container.find('div.chosen-drop').first(); + this.search_field = this.container.find('input').first(); + this.search_results = this.container.find('ul.chosen-results').first(); + this.search_field_scale(); + this.search_no_results = this.container.find('li.no-results').first(); + if (this.is_multiple) { + this.search_choices = this.container.find('ul.chosen-choices').first(); + this.search_container = this.container.find('li.search-field').first(); + } else { + this.search_container = this.container.find('div.chosen-search').first(); + this.selected_item = this.container.find('.chosen-single').first(); + } + this.results_build(); + this.set_tab_index(); + this.set_label_behavior(); + return this.form_field_jq.trigger("chosen:ready", { + chosen: this + }); + }; + + Chosen.prototype.register_observers = function() { + var _this = this; + this.container.bind('mousedown.chosen', function(evt) { + _this.container_mousedown(evt); + }); + this.container.bind('mouseup.chosen', function(evt) { + _this.container_mouseup(evt); + }); + this.container.bind('mouseenter.chosen', function(evt) { + _this.mouse_enter(evt); + }); + this.container.bind('mouseleave.chosen', function(evt) { + _this.mouse_leave(evt); + }); + this.search_results.bind('mouseup.chosen', function(evt) { + _this.search_results_mouseup(evt); + }); + this.search_results.bind('mouseover.chosen', function(evt) { + _this.search_results_mouseover(evt); + }); + this.search_results.bind('mouseout.chosen', function(evt) { + _this.search_results_mouseout(evt); + }); + this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) { + _this.search_results_mousewheel(evt); + }); + this.search_results.bind('touchstart.chosen', function(evt) { + _this.search_results_touchstart(evt); + }); + this.search_results.bind('touchmove.chosen', function(evt) { + _this.search_results_touchmove(evt); + }); + this.search_results.bind('touchend.chosen', function(evt) { + _this.search_results_touchend(evt); + }); + this.form_field_jq.bind("chosen:updated.chosen", function(evt) { + _this.results_update_field(evt); + }); + this.form_field_jq.bind("chosen:activate.chosen", function(evt) { + _this.activate_field(evt); + }); + this.form_field_jq.bind("chosen:open.chosen", function(evt) { + _this.container_mousedown(evt); + }); + this.form_field_jq.bind("chosen:close.chosen", function(evt) { + _this.input_blur(evt); + }); + this.search_field.bind('blur.chosen', function(evt) { + _this.input_blur(evt); + }); + this.search_field.bind('keyup.chosen', function(evt) { + _this.keyup_checker(evt); + }); + this.search_field.bind('keydown.chosen', function(evt) { + _this.keydown_checker(evt); + }); + this.search_field.bind('focus.chosen', function(evt) { + _this.input_focus(evt); + }); + this.search_field.bind('cut.chosen', function(evt) { + _this.clipboard_event_checker(evt); + }); + this.search_field.bind('paste.chosen', function(evt) { + _this.clipboard_event_checker(evt); + }); + if (this.is_multiple) { + return this.search_choices.bind('click.chosen', function(evt) { + _this.choices_click(evt); + }); + } else { + return this.container.bind('click.chosen', function(evt) { + evt.preventDefault(); + }); + } + }; + + Chosen.prototype.destroy = function() { + $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action); + if (this.search_field[0].tabIndex) { + this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex; + } + this.container.remove(); + this.form_field_jq.removeData('chosen'); + return this.form_field_jq.show(); + }; + + Chosen.prototype.search_field_disabled = function() { + this.is_disabled = this.form_field_jq[0].disabled; + if (this.is_disabled) { + this.container.addClass('chosen-disabled'); + this.search_field[0].disabled = true; + if (!this.is_multiple) { + this.selected_item.unbind("focus.chosen", this.activate_action); + } + return this.close_field(); + } else { + this.container.removeClass('chosen-disabled'); + this.search_field[0].disabled = false; + if (!this.is_multiple) { + return this.selected_item.bind("focus.chosen", this.activate_action); + } + } + }; + + Chosen.prototype.container_mousedown = function(evt) { + if (!this.is_disabled) { + if (evt && evt.type === "mousedown" && !this.results_showing) { + evt.preventDefault(); + } + if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) { + if (!this.active_field) { + if (this.is_multiple) { + this.search_field.val(""); + } + $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action); + this.results_show(); + } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) { + evt.preventDefault(); + this.results_toggle(); + } + return this.activate_field(); + } + } + }; + + Chosen.prototype.container_mouseup = function(evt) { + if (evt.target.nodeName === "ABBR" && !this.is_disabled) { + return this.results_reset(evt); + } + }; + + Chosen.prototype.search_results_mousewheel = function(evt) { + var delta; + if (evt.originalEvent) { + delta = -evt.originalEvent.wheelDelta || evt.originalEvent.detail; + } + if (delta != null) { + evt.preventDefault(); + if (evt.type === 'DOMMouseScroll') { + delta = delta * 40; + } + return this.search_results.scrollTop(delta + this.search_results.scrollTop()); + } + }; + + Chosen.prototype.blur_test = function(evt) { + if (!this.active_field && this.container.hasClass("chosen-container-active")) { + return this.close_field(); + } + }; + + Chosen.prototype.close_field = function() { + $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action); + this.active_field = false; + this.results_hide(); + this.container.removeClass("chosen-container-active"); + this.clear_backstroke(); + this.show_search_field_default(); + return this.search_field_scale(); + }; + + Chosen.prototype.activate_field = function() { + this.container.addClass("chosen-container-active"); + this.active_field = true; + this.search_field.val(this.search_field.val()); + return this.search_field.focus(); + }; + + Chosen.prototype.test_active_click = function(evt) { + var active_container; + active_container = $(evt.target).closest('.chosen-container'); + if (active_container.length && this.container[0] === active_container[0]) { + return this.active_field = true; + } else { + return this.close_field(); + } + }; + + Chosen.prototype.results_build = function() { + this.parsing = true; + this.selected_option_count = null; + this.results_data = SelectParser.select_to_array(this.form_field); + if (this.is_multiple) { + this.search_choices.find("li.search-choice").remove(); + } else if (!this.is_multiple) { + this.single_set_selected_text(); + if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) { + this.search_field[0].readOnly = true; + this.container.addClass("chosen-container-single-nosearch"); + } else { + this.search_field[0].readOnly = false; + this.container.removeClass("chosen-container-single-nosearch"); + } + } + this.update_results_content(this.results_option_build({ + first: true + })); + this.search_field_disabled(); + this.show_search_field_default(); + this.search_field_scale(); + return this.parsing = false; + }; + + Chosen.prototype.result_do_highlight = function(el) { + var high_bottom, high_top, maxHeight, visible_bottom, visible_top; + if (el.length) { + this.result_clear_highlight(); + this.result_highlight = el; + this.result_highlight.addClass("highlighted"); + maxHeight = parseInt(this.search_results.css("maxHeight"), 10); + visible_top = this.search_results.scrollTop(); + visible_bottom = maxHeight + visible_top; + high_top = this.result_highlight.position().top + this.search_results.scrollTop(); + high_bottom = high_top + this.result_highlight.outerHeight(); + if (high_bottom >= visible_bottom) { + return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0); + } else if (high_top < visible_top) { + return this.search_results.scrollTop(high_top); + } + } + }; + + Chosen.prototype.result_clear_highlight = function() { + if (this.result_highlight) { + this.result_highlight.removeClass("highlighted"); + } + return this.result_highlight = null; + }; + + Chosen.prototype.results_show = function() { + if (this.is_multiple && this.max_selected_options <= this.choices_count()) { + this.form_field_jq.trigger("chosen:maxselected", { + chosen: this + }); + return false; + } + this.container.addClass("chosen-with-drop"); + this.results_showing = true; + this.search_field.focus(); + this.search_field.val(this.search_field.val()); + this.winnow_results(); + return this.form_field_jq.trigger("chosen:showing_dropdown", { + chosen: this + }); + }; + + Chosen.prototype.update_results_content = function(content) { + return this.search_results.html(content); + }; + + Chosen.prototype.results_hide = function() { + if (this.results_showing) { + this.result_clear_highlight(); + this.container.removeClass("chosen-with-drop"); + this.form_field_jq.trigger("chosen:hiding_dropdown", { + chosen: this + }); + } + return this.results_showing = false; + }; + + Chosen.prototype.set_tab_index = function(el) { + var ti; + if (this.form_field.tabIndex) { + ti = this.form_field.tabIndex; + this.form_field.tabIndex = -1; + return this.search_field[0].tabIndex = ti; + } + }; + + Chosen.prototype.set_label_behavior = function() { + var _this = this; + this.form_field_label = this.form_field_jq.parents("label"); + if (!this.form_field_label.length && this.form_field.id.length) { + this.form_field_label = $("label[for='" + this.form_field.id + "']"); + } + if (this.form_field_label.length > 0) { + return this.form_field_label.bind('click.chosen', function(evt) { + if (_this.is_multiple) { + return _this.container_mousedown(evt); + } else { + return _this.activate_field(); + } + }); + } + }; + + Chosen.prototype.show_search_field_default = function() { + if (this.is_multiple && this.choices_count() < 1 && !this.active_field) { + this.search_field.val(this.default_text); + return this.search_field.addClass("default"); + } else { + this.search_field.val(""); + return this.search_field.removeClass("default"); + } + }; + + Chosen.prototype.search_results_mouseup = function(evt) { + var target; + target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first(); + if (target.length) { + this.result_highlight = target; + this.result_select(evt); + return this.search_field.focus(); + } + }; + + Chosen.prototype.search_results_mouseover = function(evt) { + var target; + target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first(); + if (target) { + return this.result_do_highlight(target); + } + }; + + Chosen.prototype.search_results_mouseout = function(evt) { + if ($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) { + return this.result_clear_highlight(); + } + }; + + Chosen.prototype.choice_build = function(item) { + var choice, close_link, + _this = this; + choice = $('
                            • ', { + "class": "search-choice" + }).html("" + item.html + ""); + if (item.disabled) { + choice.addClass('search-choice-disabled'); + } else { + close_link = $('', { + "class": 'search-choice-close', + 'data-option-array-index': item.array_index + }); + close_link.bind('click.chosen', function(evt) { + return _this.choice_destroy_link_click(evt); + }); + choice.append(close_link); + } + return this.search_container.before(choice); + }; + + Chosen.prototype.choice_destroy_link_click = function(evt) { + evt.preventDefault(); + evt.stopPropagation(); + if (!this.is_disabled) { + return this.choice_destroy($(evt.target)); + } + }; + + Chosen.prototype.choice_destroy = function(link) { + if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) { + this.show_search_field_default(); + if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) { + this.results_hide(); + } + link.parents('li').first().remove(); + return this.search_field_scale(); + } + }; + + Chosen.prototype.results_reset = function() { + this.reset_single_select_options(); + this.form_field.options[0].selected = true; + this.single_set_selected_text(); + this.show_search_field_default(); + this.results_reset_cleanup(); + this.form_field_jq.trigger("change"); + if (this.active_field) { + return this.results_hide(); + } + }; + + Chosen.prototype.results_reset_cleanup = function() { + this.current_selectedIndex = this.form_field.selectedIndex; + return this.selected_item.find("abbr").remove(); + }; + + Chosen.prototype.result_select = function(evt) { + var high, item; + if (this.result_highlight) { + high = this.result_highlight; + this.result_clear_highlight(); + if (this.is_multiple && this.max_selected_options <= this.choices_count()) { + this.form_field_jq.trigger("chosen:maxselected", { + chosen: this + }); + return false; + } + if (this.is_multiple) { + high.removeClass("active-result"); + } else { + this.reset_single_select_options(); + } + item = this.results_data[high[0].getAttribute("data-option-array-index")]; + item.selected = true; + this.form_field.options[item.options_index].selected = true; + this.selected_option_count = null; + if (this.is_multiple) { + this.choice_build(item); + } else { + this.single_set_selected_text(item.text); + } + if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) { + this.results_hide(); + } + this.search_field.val(""); + if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) { + this.form_field_jq.trigger("change", { + 'selected': this.form_field.options[item.options_index].value + }); + } + this.current_selectedIndex = this.form_field.selectedIndex; + return this.search_field_scale(); + } + }; + + Chosen.prototype.single_set_selected_text = function(text) { + if (text == null) { + text = this.default_text; + } + if (text === this.default_text) { + this.selected_item.addClass("chosen-default"); + } else { + this.single_deselect_control_build(); + this.selected_item.removeClass("chosen-default"); + } + return this.selected_item.find("span").text(text); + }; + + Chosen.prototype.result_deselect = function(pos) { + var result_data; + result_data = this.results_data[pos]; + if (!this.form_field.options[result_data.options_index].disabled) { + result_data.selected = false; + this.form_field.options[result_data.options_index].selected = false; + this.selected_option_count = null; + this.result_clear_highlight(); + if (this.results_showing) { + this.winnow_results(); + } + this.form_field_jq.trigger("change", { + deselected: this.form_field.options[result_data.options_index].value + }); + this.search_field_scale(); + return true; + } else { + return false; + } + }; + + Chosen.prototype.single_deselect_control_build = function() { + if (!this.allow_single_deselect) { + return; + } + if (!this.selected_item.find("abbr").length) { + this.selected_item.find("span").first().after(""); + } + return this.selected_item.addClass("chosen-single-with-deselect"); + }; + + Chosen.prototype.get_search_text = function() { + if (this.search_field.val() === this.default_text) { + return ""; + } else { + return $('
                              ').text($.trim(this.search_field.val())).html(); + } + }; + + Chosen.prototype.winnow_results_set_highlight = function() { + var do_high, selected_results; + selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : []; + do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first(); + if (do_high != null) { + return this.result_do_highlight(do_high); + } + }; + + Chosen.prototype.no_results = function(terms) { + var no_results_html; + no_results_html = $('
                            • ' + this.results_none_found + ' ""
                            • '); + no_results_html.find("span").first().html(terms); + this.search_results.append(no_results_html); + return this.form_field_jq.trigger("chosen:no_results", { + chosen: this + }); + }; + + Chosen.prototype.no_results_clear = function() { + return this.search_results.find(".no-results").remove(); + }; + + Chosen.prototype.keydown_arrow = function() { + var next_sib; + if (this.results_showing && this.result_highlight) { + next_sib = this.result_highlight.nextAll("li.active-result").first(); + if (next_sib) { + return this.result_do_highlight(next_sib); + } + } else { + return this.results_show(); + } + }; + + Chosen.prototype.keyup_arrow = function() { + var prev_sibs; + if (!this.results_showing && !this.is_multiple) { + return this.results_show(); + } else if (this.result_highlight) { + prev_sibs = this.result_highlight.prevAll("li.active-result"); + if (prev_sibs.length) { + return this.result_do_highlight(prev_sibs.first()); + } else { + if (this.choices_count() > 0) { + this.results_hide(); + } + return this.result_clear_highlight(); + } + } + }; + + Chosen.prototype.keydown_backstroke = function() { + var next_available_destroy; + if (this.pending_backstroke) { + this.choice_destroy(this.pending_backstroke.find("a").first()); + return this.clear_backstroke(); + } else { + next_available_destroy = this.search_container.siblings("li.search-choice").last(); + if (next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) { + this.pending_backstroke = next_available_destroy; + if (this.single_backstroke_delete) { + return this.keydown_backstroke(); + } else { + return this.pending_backstroke.addClass("search-choice-focus"); + } + } + } + }; + + Chosen.prototype.clear_backstroke = function() { + if (this.pending_backstroke) { + this.pending_backstroke.removeClass("search-choice-focus"); + } + return this.pending_backstroke = null; + }; + + Chosen.prototype.keydown_checker = function(evt) { + var stroke, _ref1; + stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode; + this.search_field_scale(); + if (stroke !== 8 && this.pending_backstroke) { + this.clear_backstroke(); + } + switch (stroke) { + case 8: + this.backstroke_length = this.search_field.val().length; + break; + case 9: + if (this.results_showing && !this.is_multiple) { + this.result_select(evt); + } + this.mouse_on_container = false; + break; + case 13: + evt.preventDefault(); + break; + case 38: + evt.preventDefault(); + this.keyup_arrow(); + break; + case 40: + evt.preventDefault(); + this.keydown_arrow(); + break; + } + }; + + Chosen.prototype.search_field_scale = function() { + var div, f_width, h, style, style_block, styles, w, _i, _len; + if (this.is_multiple) { + h = 0; + w = 0; + style_block = "position:absolute; left: -1000px; top: -1000px; display:none;"; + styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing']; + for (_i = 0, _len = styles.length; _i < _len; _i++) { + style = styles[_i]; + style_block += style + ":" + this.search_field.css(style) + ";"; + } + div = $('
                              ', { + 'style': style_block + }); + div.text(this.search_field.val()); + $('body').append(div); + w = div.width() + 25; + div.remove(); + f_width = this.container.outerWidth(); + if (w > f_width - 10) { + w = f_width - 10; + } + return this.search_field.css({ + 'width': w + 'px' + }); + } + }; + + return Chosen; + + })(AbstractChosen); + +}).call(this); diff --git a/novel-admin/src/main/resources/static/js/plugins/clipboard/clipboard.min.js b/novel-admin/src/main/resources/static/js/plugins/clipboard/clipboard.min.js new file mode 100644 index 0000000..6788dec --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/clipboard/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v1.6.0 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Clipboard=e()}}(function(){var e,t,n;return function e(t,n,o){function i(a,c){if(!n[a]){if(!t[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var s=n[a]={exports:{}};t[a][0].call(s.exports,function(e){var n=t[a][1][e];return i(n?n:e)},s,s.exports,e,t,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function e(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function e(){var t=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function e(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function e(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function e(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function e(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function e(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function e(){this.removeFake()}},{key:"action",set:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function e(){return this._action}},{key:"target",set:function e(t){if(void 0!==t){if(!t||"object"!==("undefined"==typeof t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function e(){return this._target}}]),e}();e.exports=c})},{select:5}],8:[function(t,n,o){!function(i,r){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof o)r(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(e,t,n,o){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var u=i(t),s=i(n),f=i(o),d=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText}},{key:"listenClick",value:function e(t){var n=this;this.listener=(0,f.default)(t,"click",function(e){return n.onClick(e)})}},{key:"onClick",value:function e(t){var n=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new u.default({action:this.action(n),target:this.target(n),text:this.text(n),trigger:n,emitter:this})}},{key:"defaultAction",value:function e(t){return l("action",t)}},{key:"defaultTarget",value:function e(t){var n=l("target",t);if(n)return document.querySelector(n)}},{key:"defaultText",value:function e(t){return l("text",t)}},{key:"destroy",value:function e(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof t?[t]:t,o=!!document.queryCommandSupported;return n.forEach(function(e){o=o&&!!document.queryCommandSupported(e)}),o}}]),t}(s.default);e.exports=h})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/clockpicker/clockpicker.js b/novel-admin/src/main/resources/static/js/plugins/clockpicker/clockpicker.js new file mode 100644 index 0000000..fb1b5a0 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/clockpicker/clockpicker.js @@ -0,0 +1,729 @@ +/*! + * ClockPicker v{package.version} (http://weareoutman.github.io/clockpicker/) + * Copyright 2014 Wang Shenwei. + * Licensed under MIT (https://github.com/weareoutman/clockpicker/blob/gh-pages/LICENSE) + */ + +;(function(){ + var $ = window.jQuery, + $win = $(window), + $doc = $(document), + $body; + + // Can I use inline svg ? + var svgNS = 'http://www.w3.org/2000/svg', + svgSupported = 'SVGAngle' in window && (function(){ + var supported, + el = document.createElement('div'); + el.innerHTML = ''; + supported = (el.firstChild && el.firstChild.namespaceURI) == svgNS; + el.innerHTML = ''; + return supported; + })(); + + // Can I use transition ? + var transitionSupported = (function(){ + var style = document.createElement('div').style; + return 'transition' in style || + 'WebkitTransition' in style || + 'MozTransition' in style || + 'msTransition' in style || + 'OTransition' in style; + })(); + + // Listen touch events in touch screen device, instead of mouse events in desktop. + var touchSupported = 'ontouchstart' in window, + mousedownEvent = 'mousedown' + ( touchSupported ? ' touchstart' : ''), + mousemoveEvent = 'mousemove.clockpicker' + ( touchSupported ? ' touchmove.clockpicker' : ''), + mouseupEvent = 'mouseup.clockpicker' + ( touchSupported ? ' touchend.clockpicker' : ''); + + // Vibrate the device if supported + var vibrate = navigator.vibrate ? 'vibrate' : navigator.webkitVibrate ? 'webkitVibrate' : null; + + function createSvgElement(name) { + return document.createElementNS(svgNS, name); + } + + function leadingZero(num) { + return (num < 10 ? '0' : '') + num; + } + + // Get a unique id + var idCounter = 0; + function uniqueId(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; + } + + // Clock size + var dialRadius = 100, + outerRadius = 80, + // innerRadius = 80 on 12 hour clock + innerRadius = 54, + tickRadius = 13, + diameter = dialRadius * 2, + duration = transitionSupported ? 350 : 1; + + // Popover template + var tpl = [ + '
                              ', + '
                              ', + '
                              ', + '', + ' : ', + '', + '', + '
                              ', + '
                              ', + '
                              ', + '
                              ', + '
                              ', + '
                              ', + '
                              ', + '', + '', + '
                              ', + '
                              ' + ].join(''); + + // ClockPicker + function ClockPicker(element, options) { + var popover = $(tpl), + plate = popover.find('.clockpicker-plate'), + hoursView = popover.find('.clockpicker-hours'), + minutesView = popover.find('.clockpicker-minutes'), + amPmBlock = popover.find('.clockpicker-am-pm-block'), + isInput = element.prop('tagName') === 'INPUT', + input = isInput ? element : element.find('input'), + addon = element.find('.input-group-addon'), + self = this, + timer; + + this.id = uniqueId('cp'); + this.element = element; + this.options = options; + this.isAppended = false; + this.isShown = false; + this.currentView = 'hours'; + this.isInput = isInput; + this.input = input; + this.addon = addon; + this.popover = popover; + this.plate = plate; + this.hoursView = hoursView; + this.minutesView = minutesView; + this.amPmBlock = amPmBlock; + this.spanHours = popover.find('.clockpicker-span-hours'); + this.spanMinutes = popover.find('.clockpicker-span-minutes'); + this.spanAmPm = popover.find('.clockpicker-span-am-pm'); + this.amOrPm = "PM"; + + // Setup for for 12 hour clock if option is selected + if (options.twelvehour) { + + var amPmButtonsTemplate = ['
                              ', + '', + '', + '
                              '].join(''); + + var amPmButtons = $(amPmButtonsTemplate); + //amPmButtons.appendTo(plate); + + ////Not working b/c they are not shown when this runs + //$('clockpicker-am-button') + // .on("click", function() { + // self.amOrPm = "AM"; + // $('.clockpicker-span-am-pm').empty().append('AM'); + // }); + // + //$('clockpicker-pm-button') + // .on("click", function() { + // self.amOrPm = "PM"; + // $('.clockpicker-span-am-pm').empty().append('PM'); + // }); + + $('') + .on("click", function() { + self.amOrPm = "AM"; + $('.clockpicker-span-am-pm').empty().append('AM'); + }).appendTo(this.amPmBlock); + + + $('') + .on("click", function() { + self.amOrPm = 'PM'; + $('.clockpicker-span-am-pm').empty().append('PM'); + }).appendTo(this.amPmBlock); + + } + + if (! options.autoclose) { + // If autoclose is not setted, append a button + $('') + .click($.proxy(this.done, this)) + .appendTo(popover); + } + + // Placement and arrow align - make sure they make sense. + if ((options.placement === 'top' || options.placement === 'bottom') && (options.align === 'top' || options.align === 'bottom')) options.align = 'left'; + if ((options.placement === 'left' || options.placement === 'right') && (options.align === 'left' || options.align === 'right')) options.align = 'top'; + + popover.addClass(options.placement); + popover.addClass('clockpicker-align-' + options.align); + + this.spanHours.click($.proxy(this.toggleView, this, 'hours')); + this.spanMinutes.click($.proxy(this.toggleView, this, 'minutes')); + + // Show or toggle + input.on('focus.clockpicker click.clockpicker', $.proxy(this.show, this)); + addon.on('click.clockpicker', $.proxy(this.toggle, this)); + + // Build ticks + var tickTpl = $('
                              '), + i, tick, radian, radius; + + // Hours view + if (options.twelvehour) { + for (i = 1; i < 13; i += 1) { + tick = tickTpl.clone(); + radian = i / 6 * Math.PI; + radius = outerRadius; + tick.css('font-size', '120%'); + tick.css({ + left: dialRadius + Math.sin(radian) * radius - tickRadius, + top: dialRadius - Math.cos(radian) * radius - tickRadius + }); + tick.html(i === 0 ? '00' : i); + hoursView.append(tick); + tick.on(mousedownEvent, mousedown); + } + } else { + for (i = 0; i < 24; i += 1) { + tick = tickTpl.clone(); + radian = i / 6 * Math.PI; + var inner = i > 0 && i < 13; + radius = inner ? innerRadius : outerRadius; + tick.css({ + left: dialRadius + Math.sin(radian) * radius - tickRadius, + top: dialRadius - Math.cos(radian) * radius - tickRadius + }); + if (inner) { + tick.css('font-size', '120%'); + } + tick.html(i === 0 ? '00' : i); + hoursView.append(tick); + tick.on(mousedownEvent, mousedown); + } + } + + // Minutes view + for (i = 0; i < 60; i += 5) { + tick = tickTpl.clone(); + radian = i / 30 * Math.PI; + tick.css({ + left: dialRadius + Math.sin(radian) * outerRadius - tickRadius, + top: dialRadius - Math.cos(radian) * outerRadius - tickRadius + }); + tick.css('font-size', '120%'); + tick.html(leadingZero(i)); + minutesView.append(tick); + tick.on(mousedownEvent, mousedown); + } + + // Clicking on minutes view space + plate.on(mousedownEvent, function(e){ + if ($(e.target).closest('.clockpicker-tick').length === 0) { + mousedown(e, true); + } + }); + + // Mousedown or touchstart + function mousedown(e, space) { + var offset = plate.offset(), + isTouch = /^touch/.test(e.type), + x0 = offset.left + dialRadius, + y0 = offset.top + dialRadius, + dx = (isTouch ? e.originalEvent.touches[0] : e).pageX - x0, + dy = (isTouch ? e.originalEvent.touches[0] : e).pageY - y0, + z = Math.sqrt(dx * dx + dy * dy), + moved = false; + + // When clicking on minutes view space, check the mouse position + if (space && (z < outerRadius - tickRadius || z > outerRadius + tickRadius)) { + return; + } + e.preventDefault(); + + // Set cursor style of body after 200ms + var movingTimer = setTimeout(function(){ + $body.addClass('clockpicker-moving'); + }, 200); + + // Place the canvas to top + if (svgSupported) { + plate.append(self.canvas); + } + + // Clock + self.setHand(dx, dy, ! space, true); + + // Mousemove on document + $doc.off(mousemoveEvent).on(mousemoveEvent, function(e){ + e.preventDefault(); + var isTouch = /^touch/.test(e.type), + x = (isTouch ? e.originalEvent.touches[0] : e).pageX - x0, + y = (isTouch ? e.originalEvent.touches[0] : e).pageY - y0; + if (! moved && x === dx && y === dy) { + // Clicking in chrome on windows will trigger a mousemove event + return; + } + moved = true; + self.setHand(x, y, false, true); + }); + + // Mouseup on document + $doc.off(mouseupEvent).on(mouseupEvent, function(e){ + $doc.off(mouseupEvent); + e.preventDefault(); + var isTouch = /^touch/.test(e.type), + x = (isTouch ? e.originalEvent.changedTouches[0] : e).pageX - x0, + y = (isTouch ? e.originalEvent.changedTouches[0] : e).pageY - y0; + if ((space || moved) && x === dx && y === dy) { + self.setHand(x, y); + } + if (self.currentView === 'hours') { + self.toggleView('minutes', duration / 2); + } else { + if (options.autoclose) { + self.minutesView.addClass('clockpicker-dial-out'); + setTimeout(function(){ + self.done(); + }, duration / 2); + } + } + plate.prepend(canvas); + + // Reset cursor style of body + clearTimeout(movingTimer); + $body.removeClass('clockpicker-moving'); + + // Unbind mousemove event + $doc.off(mousemoveEvent); + }); + } + + if (svgSupported) { + // Draw clock hands and others + var canvas = popover.find('.clockpicker-canvas'), + svg = createSvgElement('svg'); + svg.setAttribute('class', 'clockpicker-svg'); + svg.setAttribute('width', diameter); + svg.setAttribute('height', diameter); + var g = createSvgElement('g'); + g.setAttribute('transform', 'translate(' + dialRadius + ',' + dialRadius + ')'); + var bearing = createSvgElement('circle'); + bearing.setAttribute('class', 'clockpicker-canvas-bearing'); + bearing.setAttribute('cx', 0); + bearing.setAttribute('cy', 0); + bearing.setAttribute('r', 2); + var hand = createSvgElement('line'); + hand.setAttribute('x1', 0); + hand.setAttribute('y1', 0); + var bg = createSvgElement('circle'); + bg.setAttribute('class', 'clockpicker-canvas-bg'); + bg.setAttribute('r', tickRadius); + var fg = createSvgElement('circle'); + fg.setAttribute('class', 'clockpicker-canvas-fg'); + fg.setAttribute('r', 3.5); + g.appendChild(hand); + g.appendChild(bg); + g.appendChild(fg); + g.appendChild(bearing); + svg.appendChild(g); + canvas.append(svg); + + this.hand = hand; + this.bg = bg; + this.fg = fg; + this.bearing = bearing; + this.g = g; + this.canvas = canvas; + } + + raiseCallback(this.options.init); + } + + function raiseCallback(callbackFunction) { + if (callbackFunction && typeof callbackFunction === "function") { + callbackFunction(); + } + } + + // Default options + ClockPicker.DEFAULTS = { + 'default': '', // default time, 'now' or '13:14' e.g. + fromnow: 0, // set default time to * milliseconds from now (using with default = 'now') + placement: 'bottom', // clock popover placement + align: 'left', // popover arrow align + donetext: '完成', // done button text + autoclose: false, // auto close when minute is selected + twelvehour: false, // change to 12 hour AM/PM clock from 24 hour + vibrate: true // vibrate the device when dragging clock hand + }; + + // Show or hide popover + ClockPicker.prototype.toggle = function(){ + this[this.isShown ? 'hide' : 'show'](); + }; + + // Set popover position + ClockPicker.prototype.locate = function(){ + var element = this.element, + popover = this.popover, + offset = element.offset(), + width = element.outerWidth(), + height = element.outerHeight(), + placement = this.options.placement, + align = this.options.align, + styles = {}, + self = this; + + popover.show(); + + // Place the popover + switch (placement) { + case 'bottom': + styles.top = offset.top + height; + break; + case 'right': + styles.left = offset.left + width; + break; + case 'top': + styles.top = offset.top - popover.outerHeight(); + break; + case 'left': + styles.left = offset.left - popover.outerWidth(); + break; + } + + // Align the popover arrow + switch (align) { + case 'left': + styles.left = offset.left; + break; + case 'right': + styles.left = offset.left + width - popover.outerWidth(); + break; + case 'top': + styles.top = offset.top; + break; + case 'bottom': + styles.top = offset.top + height - popover.outerHeight(); + break; + } + + popover.css(styles); + }; + + // Show popover + ClockPicker.prototype.show = function(e){ + // Not show again + if (this.isShown) { + return; + } + + raiseCallback(this.options.beforeShow); + + var self = this; + + // Initialize + if (! this.isAppended) { + // Append popover to body + $body = $(document.body).append(this.popover); + + // Reset position when resize + $win.on('resize.clockpicker' + this.id, function(){ + if (self.isShown) { + self.locate(); + } + }); + + this.isAppended = true; + } + + // Get the time + var value = ((this.input.prop('value') || this.options['default'] || '') + '').split(':'); + if (value[0] === 'now') { + var now = new Date(+ new Date() + this.options.fromnow); + value = [ + now.getHours(), + now.getMinutes() + ]; + } + this.hours = + value[0] || 0; + this.minutes = + value[1] || 0; + this.spanHours.html(leadingZero(this.hours)); + this.spanMinutes.html(leadingZero(this.minutes)); + + // Toggle to hours view + this.toggleView('hours'); + + // Set position + this.locate(); + + this.isShown = true; + + // Hide when clicking or tabbing on any element except the clock, input and addon + $doc.on('click.clockpicker.' + this.id + ' focusin.clockpicker.' + this.id, function(e){ + var target = $(e.target); + if (target.closest(self.popover).length === 0 && + target.closest(self.addon).length === 0 && + target.closest(self.input).length === 0) { + self.hide(); + } + }); + + // Hide when ESC is pressed + $doc.on('keyup.clockpicker.' + this.id, function(e){ + if (e.keyCode === 27) { + self.hide(); + } + }); + + raiseCallback(this.options.afterShow); + }; + + // Hide popover + ClockPicker.prototype.hide = function(){ + raiseCallback(this.options.beforeHide); + + this.isShown = false; + + // Unbinding events on document + $doc.off('click.clockpicker.' + this.id + ' focusin.clockpicker.' + this.id); + $doc.off('keyup.clockpicker.' + this.id); + + this.popover.hide(); + + raiseCallback(this.options.afterHide); + }; + + // Toggle to hours or minutes view + ClockPicker.prototype.toggleView = function(view, delay){ + var raiseAfterHourSelect = false; + if (view === 'minutes' && $(this.hoursView).css("visibility") === "visible") { + raiseCallback(this.options.beforeHourSelect); + raiseAfterHourSelect = true; + } + var isHours = view === 'hours', + nextView = isHours ? this.hoursView : this.minutesView, + hideView = isHours ? this.minutesView : this.hoursView; + + this.currentView = view; + + this.spanHours.toggleClass('text-primary', isHours); + this.spanMinutes.toggleClass('text-primary', ! isHours); + + // Let's make transitions + hideView.addClass('clockpicker-dial-out'); + nextView.css('visibility', 'visible').removeClass('clockpicker-dial-out'); + + // Reset clock hand + this.resetClock(delay); + + // After transitions ended + clearTimeout(this.toggleViewTimer); + this.toggleViewTimer = setTimeout(function(){ + hideView.css('visibility', 'hidden'); + }, duration); + + if (raiseAfterHourSelect) { + raiseCallback(this.options.afterHourSelect); + } + }; + + // Reset clock hand + ClockPicker.prototype.resetClock = function(delay){ + var view = this.currentView, + value = this[view], + isHours = view === 'hours', + unit = Math.PI / (isHours ? 6 : 30), + radian = value * unit, + radius = isHours && value > 0 && value < 13 ? innerRadius : outerRadius, + x = Math.sin(radian) * radius, + y = - Math.cos(radian) * radius, + self = this; + if (svgSupported && delay) { + self.canvas.addClass('clockpicker-canvas-out'); + setTimeout(function(){ + self.canvas.removeClass('clockpicker-canvas-out'); + self.setHand(x, y); + }, delay); + } else { + this.setHand(x, y); + } + }; + + // Set clock hand to (x, y) + ClockPicker.prototype.setHand = function(x, y, roundBy5, dragging){ + var radian = Math.atan2(x, - y), + isHours = this.currentView === 'hours', + unit = Math.PI / (isHours || roundBy5 ? 6 : 30), + z = Math.sqrt(x * x + y * y), + options = this.options, + inner = isHours && z < (outerRadius + innerRadius) / 2, + radius = inner ? innerRadius : outerRadius, + value; + + if (options.twelvehour) { + radius = outerRadius; + } + + // Radian should in range [0, 2PI] + if (radian < 0) { + radian = Math.PI * 2 + radian; + } + + // Get the round value + value = Math.round(radian / unit); + + // Get the round radian + radian = value * unit; + + // Correct the hours or minutes + if (options.twelvehour) { + if (isHours) { + if (value === 0) { + value = 12; + } + } else { + if (roundBy5) { + value *= 5; + } + if (value === 60) { + value = 0; + } + } + } else { + if (isHours) { + if (value === 12) { + value = 0; + } + value = inner ? (value === 0 ? 12 : value) : value === 0 ? 0 : value + 12; + } else { + if (roundBy5) { + value *= 5; + } + if (value === 60) { + value = 0; + } + } + } + + // Once hours or minutes changed, vibrate the device + if (this[this.currentView] !== value) { + if (vibrate && this.options.vibrate) { + // Do not vibrate too frequently + if (! this.vibrateTimer) { + navigator[vibrate](10); + this.vibrateTimer = setTimeout($.proxy(function(){ + this.vibrateTimer = null; + }, this), 100); + } + } + } + + this[this.currentView] = value; + this[isHours ? 'spanHours' : 'spanMinutes'].html(leadingZero(value)); + + // If svg is not supported, just add an active class to the tick + if (! svgSupported) { + this[isHours ? 'hoursView' : 'minutesView'].find('.clockpicker-tick').each(function(){ + var tick = $(this); + tick.toggleClass('active', value === + tick.html()); + }); + return; + } + + // Place clock hand at the top when dragging + if (dragging || (! isHours && value % 5)) { + this.g.insertBefore(this.hand, this.bearing); + this.g.insertBefore(this.bg, this.fg); + this.bg.setAttribute('class', 'clockpicker-canvas-bg clockpicker-canvas-bg-trans'); + } else { + // Or place it at the bottom + this.g.insertBefore(this.hand, this.bg); + this.g.insertBefore(this.fg, this.bg); + this.bg.setAttribute('class', 'clockpicker-canvas-bg'); + } + + // Set clock hand and others' position + var cx = Math.sin(radian) * radius, + cy = - Math.cos(radian) * radius; + this.hand.setAttribute('x2', cx); + this.hand.setAttribute('y2', cy); + this.bg.setAttribute('cx', cx); + this.bg.setAttribute('cy', cy); + this.fg.setAttribute('cx', cx); + this.fg.setAttribute('cy', cy); + }; + + // Hours and minutes are selected + ClockPicker.prototype.done = function() { + raiseCallback(this.options.beforeDone); + this.hide(); + var last = this.input.prop('value'), + value = leadingZero(this.hours) + ':' + leadingZero(this.minutes); + if (this.options.twelvehour) { + value = value + this.amOrPm; + } + + this.input.prop('value', value); + if (value !== last) { + this.input.triggerHandler('change'); + if (! this.isInput) { + this.element.trigger('change'); + } + } + + if (this.options.autoclose) { + this.input.trigger('blur'); + } + + raiseCallback(this.options.afterDone); + }; + + // Remove clockpicker from input + ClockPicker.prototype.remove = function() { + this.element.removeData('clockpicker'); + this.input.off('focus.clockpicker click.clockpicker'); + this.addon.off('click.clockpicker'); + if (this.isShown) { + this.hide(); + } + if (this.isAppended) { + $win.off('resize.clockpicker' + this.id); + this.popover.remove(); + } + }; + + // Extends $.fn.clockpicker + $.fn.clockpicker = function(option){ + var args = Array.prototype.slice.call(arguments, 1); + return this.each(function(){ + var $this = $(this), + data = $this.data('clockpicker'); + if (! data) { + var options = $.extend({}, ClockPicker.DEFAULTS, $this.data(), typeof option == 'object' && option); + $this.data('clockpicker', new ClockPicker($this, options)); + } else { + // Manual operatsions. show, hide, remove, e.g. + if (typeof data[option] === 'function') { + data[option].apply(data, args); + } + } + }); + }; +}()); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/codemirror.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/codemirror.js new file mode 100644 index 0000000..4f8a23b --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/codemirror.js @@ -0,0 +1,7830 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +// This is CodeMirror (http://codemirror.net), a code editor +// implemented in JavaScript on top of the browser's DOM. +// +// You can find some technical background for some of the code below +// at http://marijnhaverbeke.nl/blog/#cm-internals . + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + module.exports = mod(); + else if (typeof define == "function" && define.amd) // AMD + return define([], mod); + else // Plain browser env + this.CodeMirror = mod(); +})(function() { + "use strict"; + + // BROWSER SNIFFING + + // Kludges for bugs and behavior differences that can't be feature + // detected are enabled based on userAgent etc sniffing. + + var gecko = /gecko\/\d/i.test(navigator.userAgent); + // ie_uptoN means Internet Explorer version N or lower + var ie_upto10 = /MSIE \d/.test(navigator.userAgent); + var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent); + var ie = ie_upto10 || ie_11up; + var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : ie_11up[1]); + var webkit = /WebKit\//.test(navigator.userAgent); + var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(navigator.userAgent); + var chrome = /Chrome\//.test(navigator.userAgent); + var presto = /Opera\//.test(navigator.userAgent); + var safari = /Apple Computer/.test(navigator.vendor); + var khtml = /KHTML\//.test(navigator.userAgent); + var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent); + var phantom = /PhantomJS/.test(navigator.userAgent); + + var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent); + // This is woefully incomplete. Suggestions for alternative methods welcome. + var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent); + var mac = ios || /Mac/.test(navigator.platform); + var windows = /win/i.test(navigator.platform); + + var presto_version = presto && navigator.userAgent.match(/Version\/(\d*\.\d*)/); + if (presto_version) presto_version = Number(presto_version[1]); + if (presto_version && presto_version >= 15) { presto = false; webkit = true; } + // Some browsers use the wrong event properties to signal cmd/ctrl on OS X + var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11)); + var captureRightClick = gecko || (ie && ie_version >= 9); + + // Optimize some code when these features are not used. + var sawReadOnlySpans = false, sawCollapsedSpans = false; + + // EDITOR CONSTRUCTOR + + // A CodeMirror instance represents an editor. This is the object + // that user code is usually dealing with. + + function CodeMirror(place, options) { + if (!(this instanceof CodeMirror)) return new CodeMirror(place, options); + + this.options = options = options ? copyObj(options) : {}; + // Determine effective options based on given values and defaults. + copyObj(defaults, options, false); + setGuttersForLineNumbers(options); + + var doc = options.value; + if (typeof doc == "string") doc = new Doc(doc, options.mode); + this.doc = doc; + + var display = this.display = new Display(place, doc); + display.wrapper.CodeMirror = this; + updateGutters(this); + themeChanged(this); + if (options.lineWrapping) + this.display.wrapper.className += " CodeMirror-wrap"; + if (options.autofocus && !mobile) focusInput(this); + + this.state = { + keyMaps: [], // stores maps added by addKeyMap + overlays: [], // highlighting overlays, as added by addOverlay + modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info + overwrite: false, focused: false, + suppressEdits: false, // used to disable editing during key handlers when in readOnly mode + pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in readInput + draggingText: false, + highlight: new Delayed() // stores highlight worker timeout + }; + + // Override magic textarea content restore that IE sometimes does + // on our hidden textarea on reload + if (ie && ie_version < 11) setTimeout(bind(resetInput, this, true), 20); + + registerEventHandlers(this); + ensureGlobalHandlers(); + + startOperation(this); + this.curOp.forceUpdate = true; + attachDoc(this, doc); + + if ((options.autofocus && !mobile) || activeElt() == display.input) + setTimeout(bind(onFocus, this), 20); + else + onBlur(this); + + for (var opt in optionHandlers) if (optionHandlers.hasOwnProperty(opt)) + optionHandlers[opt](this, options[opt], Init); + maybeUpdateLineNumberWidth(this); + for (var i = 0; i < initHooks.length; ++i) initHooks[i](this); + endOperation(this); + } + + // DISPLAY CONSTRUCTOR + + // The display handles the DOM integration, both for input reading + // and content drawing. It holds references to DOM nodes and + // display-related state. + + function Display(place, doc) { + var d = this; + + // The semihidden textarea that is focused when the editor is + // focused, and receives input. + var input = d.input = elt("textarea", null, null, "position: absolute; padding: 0; width: 1px; height: 1em; outline: none"); + // The textarea is kept positioned near the cursor to prevent the + // fact that it'll be scrolled into view on input from scrolling + // our fake cursor out of view. On webkit, when wrap=off, paste is + // very slow. So make the area wide instead. + if (webkit) input.style.width = "1000px"; + else input.setAttribute("wrap", "off"); + // If border: 0; -- iOS fails to open keyboard (issue #1287) + if (ios) input.style.border = "1px solid black"; + input.setAttribute("autocorrect", "off"); input.setAttribute("autocapitalize", "off"); input.setAttribute("spellcheck", "false"); + + // Wraps and hides input textarea + d.inputDiv = elt("div", [input], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); + // The fake scrollbar elements. + d.scrollbarH = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); + d.scrollbarV = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"); + // Covers bottom-right square when both scrollbars are present. + d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); + // Covers bottom of gutter when coverGutterNextToScrollbar is on + // and h scrollbar is present. + d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler"); + // Will contain the actual code, positioned to cover the viewport. + d.lineDiv = elt("div", null, "CodeMirror-code"); + // Elements are added to these to represent selection and cursors. + d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); + d.cursorDiv = elt("div", null, "CodeMirror-cursors"); + // A visibility: hidden element used to find the size of things. + d.measure = elt("div", null, "CodeMirror-measure"); + // When lines outside of the viewport are measured, they are drawn in this. + d.lineMeasure = elt("div", null, "CodeMirror-measure"); + // Wraps everything that needs to exist inside the vertically-padded coordinate system + d.lineSpace = elt("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv], + null, "position: relative; outline: none"); + // Moved around its parent to cover visible view. + d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative"); + // Set to the height of the document, allowing scrolling. + d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); + // Behavior of elts with overflow: auto and padding is + // inconsistent across browsers. This is used to ensure the + // scrollable area is big enough. + d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerCutOff + "px; width: 1px;"); + // Will contain the gutters, if any. + d.gutters = elt("div", null, "CodeMirror-gutters"); + d.lineGutter = null; + // Actual scrollable element. + d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll"); + d.scroller.setAttribute("tabIndex", "-1"); + // The element in which the editor lives. + d.wrapper = elt("div", [d.inputDiv, d.scrollbarH, d.scrollbarV, + d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); + + // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported) + if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } + // Needed to hide big blue blinking cursor on Mobile Safari + if (ios) input.style.width = "0px"; + if (!webkit) d.scroller.draggable = true; + // Needed to handle Tab key in KHTML + if (khtml) { d.inputDiv.style.height = "1px"; d.inputDiv.style.position = "absolute"; } + // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). + if (ie && ie_version < 8) d.scrollbarH.style.minHeight = d.scrollbarV.style.minWidth = "18px"; + + if (place.appendChild) place.appendChild(d.wrapper); + else place(d.wrapper); + + // Current rendered range (may be bigger than the view window). + d.viewFrom = d.viewTo = doc.first; + // Information about the rendered lines. + d.view = []; + // Holds info about a single rendered line when it was rendered + // for measurement, while not in view. + d.externalMeasured = null; + // Empty space (in pixels) above the view + d.viewOffset = 0; + d.lastSizeC = 0; + d.updateLineNumbers = null; + + // Used to only resize the line number gutter when necessary (when + // the amount of lines crosses a boundary that makes its width change) + d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; + // See readInput and resetInput + d.prevInput = ""; + // Set to true when a non-horizontal-scrolling line widget is + // added. As an optimization, line widget aligning is skipped when + // this is false. + d.alignWidgets = false; + // Flag that indicates whether we expect input to appear real soon + // now (after some event like 'keypress' or 'input') and are + // polling intensively. + d.pollingFast = false; + // Self-resetting timeout for the poller + d.poll = new Delayed(); + + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + + // Tracks when resetInput has punted to just putting a short + // string into the textarea instead of the full selection. + d.inaccurateSelection = false; + + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + d.maxLine = null; + d.maxLineLength = 0; + d.maxLineChanged = false; + + // Used for measuring wheel scrolling granularity + d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; + + // True when shift is held down. + d.shift = false; + + // Used to track whether anything happened since the context menu + // was opened. + d.selForContextMenu = null; + } + + // STATE UPDATES + + // Used to get the editor into a consistent state again when options change. + + function loadMode(cm) { + cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption); + resetModeState(cm); + } + + function resetModeState(cm) { + cm.doc.iter(function(line) { + if (line.stateAfter) line.stateAfter = null; + if (line.styles) line.styles = null; + }); + cm.doc.frontier = cm.doc.first; + startWorker(cm, 100); + cm.state.modeGen++; + if (cm.curOp) regChange(cm); + } + + function wrappingChanged(cm) { + if (cm.options.lineWrapping) { + addClass(cm.display.wrapper, "CodeMirror-wrap"); + cm.display.sizer.style.minWidth = ""; + } else { + rmClass(cm.display.wrapper, "CodeMirror-wrap"); + findMaxLine(cm); + } + estimateLineHeights(cm); + regChange(cm); + clearCaches(cm); + setTimeout(function(){updateScrollbars(cm);}, 100); + } + + // Returns a function that estimates the height of a line, to use as + // first approximation until the line becomes visible (and is thus + // properly measurable). + function estimateHeight(cm) { + var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; + var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); + return function(line) { + if (lineIsHidden(cm.doc, line)) return 0; + + var widgetsHeight = 0; + if (line.widgets) for (var i = 0; i < line.widgets.length; i++) { + if (line.widgets[i].height) widgetsHeight += line.widgets[i].height; + } + + if (wrapping) + return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th; + else + return widgetsHeight + th; + }; + } + + function estimateLineHeights(cm) { + var doc = cm.doc, est = estimateHeight(cm); + doc.iter(function(line) { + var estHeight = est(line); + if (estHeight != line.height) updateLineHeight(line, estHeight); + }); + } + + function keyMapChanged(cm) { + var map = keyMap[cm.options.keyMap], style = map.style; + cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-keymap-\S+/g, "") + + (style ? " cm-keymap-" + style : ""); + } + + function themeChanged(cm) { + cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + + cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + clearCaches(cm); + } + + function guttersChanged(cm) { + updateGutters(cm); + regChange(cm); + setTimeout(function(){alignHorizontally(cm);}, 20); + } + + // Rebuild the gutter elements, ensure the margin to the left of the + // code matches their width. + function updateGutters(cm) { + var gutters = cm.display.gutters, specs = cm.options.gutters; + removeChildren(gutters); + for (var i = 0; i < specs.length; ++i) { + var gutterClass = specs[i]; + var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass)); + if (gutterClass == "CodeMirror-linenumbers") { + cm.display.lineGutter = gElt; + gElt.style.width = (cm.display.lineNumWidth || 1) + "px"; + } + } + gutters.style.display = i ? "" : "none"; + updateGutterSpace(cm); + } + + function updateGutterSpace(cm) { + var width = cm.display.gutters.offsetWidth; + cm.display.sizer.style.marginLeft = width + "px"; + cm.display.scrollbarH.style.left = cm.options.fixedGutter ? width + "px" : 0; + } + + // Compute the character length of a line, taking into account + // collapsed ranges (see markText) that might hide parts, and join + // other lines onto it. + function lineLength(line) { + if (line.height == 0) return 0; + var len = line.text.length, merged, cur = line; + while (merged = collapsedSpanAtStart(cur)) { + var found = merged.find(0, true); + cur = found.from.line; + len += found.from.ch - found.to.ch; + } + cur = line; + while (merged = collapsedSpanAtEnd(cur)) { + var found = merged.find(0, true); + len -= cur.text.length - found.from.ch; + cur = found.to.line; + len += cur.text.length - found.to.ch; + } + return len; + } + + // Find the longest line in the document. + function findMaxLine(cm) { + var d = cm.display, doc = cm.doc; + d.maxLine = getLine(doc, doc.first); + d.maxLineLength = lineLength(d.maxLine); + d.maxLineChanged = true; + doc.iter(function(line) { + var len = lineLength(line); + if (len > d.maxLineLength) { + d.maxLineLength = len; + d.maxLine = line; + } + }); + } + + // Make sure the gutters options contains the element + // "CodeMirror-linenumbers" when the lineNumbers option is true. + function setGuttersForLineNumbers(options) { + var found = indexOf(options.gutters, "CodeMirror-linenumbers"); + if (found == -1 && options.lineNumbers) { + options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]); + } else if (found > -1 && !options.lineNumbers) { + options.gutters = options.gutters.slice(0); + options.gutters.splice(found, 1); + } + } + + // SCROLLBARS + + function hScrollbarTakesSpace(cm) { + return cm.display.scroller.clientHeight - cm.display.wrapper.clientHeight < scrollerCutOff - 3; + } + + // Prepare DOM reads needed to update the scrollbars. Done in one + // shot to minimize update/measure roundtrips. + function measureForScrollbars(cm) { + var scroll = cm.display.scroller; + return { + clientHeight: scroll.clientHeight, + barHeight: cm.display.scrollbarV.clientHeight, + scrollWidth: scroll.scrollWidth, clientWidth: scroll.clientWidth, + hScrollbarTakesSpace: hScrollbarTakesSpace(cm), + barWidth: cm.display.scrollbarH.clientWidth, + docHeight: Math.round(cm.doc.height + paddingVert(cm.display)) + }; + } + + // Re-synchronize the fake scrollbars with the actual size of the + // content. + function updateScrollbars(cm, measure) { + if (!measure) measure = measureForScrollbars(cm); + var d = cm.display, sWidth = scrollbarWidth(d.measure); + var scrollHeight = measure.docHeight + scrollerCutOff; + var needsH = measure.scrollWidth > measure.clientWidth; + if (needsH && measure.scrollWidth <= measure.clientWidth + 1 && + sWidth > 0 && !measure.hScrollbarTakesSpace) + needsH = false; // (Issue #2562) + var needsV = scrollHeight > measure.clientHeight; + + if (needsV) { + d.scrollbarV.style.display = "block"; + d.scrollbarV.style.bottom = needsH ? sWidth + "px" : "0"; + // A bug in IE8 can cause this value to be negative, so guard it. + d.scrollbarV.firstChild.style.height = + Math.max(0, scrollHeight - measure.clientHeight + (measure.barHeight || d.scrollbarV.clientHeight)) + "px"; + } else { + d.scrollbarV.style.display = ""; + d.scrollbarV.firstChild.style.height = "0"; + } + if (needsH) { + d.scrollbarH.style.display = "block"; + d.scrollbarH.style.right = needsV ? sWidth + "px" : "0"; + d.scrollbarH.firstChild.style.width = + (measure.scrollWidth - measure.clientWidth + (measure.barWidth || d.scrollbarH.clientWidth)) + "px"; + } else { + d.scrollbarH.style.display = ""; + d.scrollbarH.firstChild.style.width = "0"; + } + if (needsH && needsV) { + d.scrollbarFiller.style.display = "block"; + d.scrollbarFiller.style.height = d.scrollbarFiller.style.width = sWidth + "px"; + } else d.scrollbarFiller.style.display = ""; + if (needsH && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) { + d.gutterFiller.style.display = "block"; + d.gutterFiller.style.height = sWidth + "px"; + d.gutterFiller.style.width = d.gutters.offsetWidth + "px"; + } else d.gutterFiller.style.display = ""; + + if (!cm.state.checkedOverlayScrollbar && measure.clientHeight > 0) { + if (sWidth === 0) { + var w = mac && !mac_geMountainLion ? "12px" : "18px"; + d.scrollbarV.style.minWidth = d.scrollbarH.style.minHeight = w; + var barMouseDown = function(e) { + if (e_target(e) != d.scrollbarV && e_target(e) != d.scrollbarH) + operation(cm, onMouseDown)(e); + }; + on(d.scrollbarV, "mousedown", barMouseDown); + on(d.scrollbarH, "mousedown", barMouseDown); + } + cm.state.checkedOverlayScrollbar = true; + } + } + + // Compute the lines that are visible in a given viewport (defaults + // the the current scroll position). viewport may contain top, + // height, and ensure (see op.scrollToPos) properties. + function visibleLines(display, doc, viewport) { + var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop; + top = Math.floor(top - paddingTop(display)); + var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight; + + var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom); + // Ensure is a {from: {line, ch}, to: {line, ch}} object, and + // forces those lines into the viewport (if possible). + if (viewport && viewport.ensure) { + var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line; + if (ensureFrom < from) + return {from: ensureFrom, + to: lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight)}; + if (Math.min(ensureTo, doc.lastLine()) >= to) + return {from: lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight), + to: ensureTo}; + } + return {from: from, to: Math.max(to, from + 1)}; + } + + // LINE NUMBERS + + // Re-align line numbers and gutter marks to compensate for + // horizontal scrolling. + function alignHorizontally(cm) { + var display = cm.display, view = display.view; + if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return; + var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; + var gutterW = display.gutters.offsetWidth, left = comp + "px"; + for (var i = 0; i < view.length; i++) if (!view[i].hidden) { + if (cm.options.fixedGutter && view[i].gutter) + view[i].gutter.style.left = left; + var align = view[i].alignable; + if (align) for (var j = 0; j < align.length; j++) + align[j].style.left = left; + } + if (cm.options.fixedGutter) + display.gutters.style.left = (comp + gutterW) + "px"; + } + + // Used to ensure that the line number gutter is still the right + // size for the current document size. Returns true when an update + // is needed. + function maybeUpdateLineNumberWidth(cm) { + if (!cm.options.lineNumbers) return false; + var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; + if (last.length != display.lineNumChars) { + var test = display.measure.appendChild(elt("div", [elt("div", last)], + "CodeMirror-linenumber CodeMirror-gutter-elt")); + var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; + display.lineGutter.style.width = ""; + display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding); + display.lineNumWidth = display.lineNumInnerWidth + padding; + display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; + display.lineGutter.style.width = display.lineNumWidth + "px"; + updateGutterSpace(cm); + return true; + } + return false; + } + + function lineNumberFor(options, i) { + return String(options.lineNumberFormatter(i + options.firstLineNumber)); + } + + // Computes display.scroller.scrollLeft + display.gutters.offsetWidth, + // but using getBoundingClientRect to get a sub-pixel-accurate + // result. + function compensateForHScroll(display) { + return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left; + } + + // DISPLAY DRAWING + + function DisplayUpdate(cm, viewport, force) { + var display = cm.display; + + this.viewport = viewport; + // Store some values that we'll need later (but don't want to force a relayout for) + this.visible = visibleLines(display, cm.doc, viewport); + this.editorIsHidden = !display.wrapper.offsetWidth; + this.wrapperHeight = display.wrapper.clientHeight; + this.oldViewFrom = display.viewFrom; this.oldViewTo = display.viewTo; + this.oldScrollerWidth = display.scroller.clientWidth; + this.force = force; + this.dims = getDimensions(cm); + } + + // Does the actual updating of the line display. Bails out + // (returning false) when there is nothing to be done and forced is + // false. + function updateDisplayIfNeeded(cm, update) { + var display = cm.display, doc = cm.doc; + if (update.editorIsHidden) { + resetView(cm); + return false; + } + + // Bail out if the visible area is already rendered and nothing changed. + if (!update.force && + update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) && + countDirtyView(cm) == 0) + return false; + + if (maybeUpdateLineNumberWidth(cm)) { + resetView(cm); + update.dims = getDimensions(cm); + } + + // Compute a suitable new viewport (from & to) + var end = doc.first + doc.size; + var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first); + var to = Math.min(end, update.visible.to + cm.options.viewportMargin); + if (display.viewFrom < from && from - display.viewFrom < 20) from = Math.max(doc.first, display.viewFrom); + if (display.viewTo > to && display.viewTo - to < 20) to = Math.min(end, display.viewTo); + if (sawCollapsedSpans) { + from = visualLineNo(cm.doc, from); + to = visualLineEndNo(cm.doc, to); + } + + var different = from != display.viewFrom || to != display.viewTo || + display.lastSizeC != update.wrapperHeight; + adjustView(cm, from, to); + + display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom)); + // Position the mover div to align with the current scroll position + cm.display.mover.style.top = display.viewOffset + "px"; + + var toUpdate = countDirtyView(cm); + if (!different && toUpdate == 0 && !update.force && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo)) + return false; + + // For big changes, we hide the enclosing element during the + // update, since that speeds up the operations on most browsers. + var focused = activeElt(); + if (toUpdate > 4) display.lineDiv.style.display = "none"; + patchDisplay(cm, display.updateLineNumbers, update.dims); + if (toUpdate > 4) display.lineDiv.style.display = ""; + // There might have been a widget with a focused element that got + // hidden or updated, if so re-focus it. + if (focused && activeElt() != focused && focused.offsetHeight) focused.focus(); + + // Prevent selection and cursors from interfering with the scroll + // width. + removeChildren(display.cursorDiv); + removeChildren(display.selectionDiv); + + if (different) { + display.lastSizeC = update.wrapperHeight; + startWorker(cm, 400); + } + + display.updateLineNumbers = null; + + return true; + } + + function postUpdateDisplay(cm, update) { + var force = update.force, viewport = update.viewport; + for (var first = true;; first = false) { + if (first && cm.options.lineWrapping && update.oldScrollerWidth != cm.display.scroller.clientWidth) { + force = true; + } else { + force = false; + // Clip forced viewport to actual scrollable area. + if (viewport && viewport.top != null) + viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - scrollerCutOff - + cm.display.scroller.clientHeight, viewport.top)}; + // Updated line heights might result in the drawn area not + // actually covering the viewport. Keep looping until it does. + update.visible = visibleLines(cm.display, cm.doc, viewport); + if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) + break; + } + if (!updateDisplayIfNeeded(cm, update)) break; + updateHeightsInViewport(cm); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + setDocumentHeight(cm, barMeasure); + updateScrollbars(cm, barMeasure); + } + + signalLater(cm, "update", cm); + if (cm.display.viewFrom != update.oldViewFrom || cm.display.viewTo != update.oldViewTo) + signalLater(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo); + } + + function updateDisplaySimple(cm, viewport) { + var update = new DisplayUpdate(cm, viewport); + if (updateDisplayIfNeeded(cm, update)) { + updateHeightsInViewport(cm); + postUpdateDisplay(cm, update); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + setDocumentHeight(cm, barMeasure); + updateScrollbars(cm, barMeasure); + } + } + + function setDocumentHeight(cm, measure) { + cm.display.sizer.style.minHeight = cm.display.heightForcer.style.top = measure.docHeight + "px"; + cm.display.gutters.style.height = Math.max(measure.docHeight, measure.clientHeight - scrollerCutOff) + "px"; + } + + function checkForWebkitWidthBug(cm, measure) { + // Work around Webkit bug where it sometimes reserves space for a + // non-existing phantom scrollbar in the scroller (Issue #2420) + if (cm.display.sizer.offsetWidth + cm.display.gutters.offsetWidth < cm.display.scroller.clientWidth - 1) { + cm.display.sizer.style.minHeight = cm.display.heightForcer.style.top = "0px"; + cm.display.gutters.style.height = measure.docHeight + "px"; + } + } + + // Read the actual heights of the rendered lines, and update their + // stored heights to match. + function updateHeightsInViewport(cm) { + var display = cm.display; + var prevBottom = display.lineDiv.offsetTop; + for (var i = 0; i < display.view.length; i++) { + var cur = display.view[i], height; + if (cur.hidden) continue; + if (ie && ie_version < 8) { + var bot = cur.node.offsetTop + cur.node.offsetHeight; + height = bot - prevBottom; + prevBottom = bot; + } else { + var box = cur.node.getBoundingClientRect(); + height = box.bottom - box.top; + } + var diff = cur.line.height - height; + if (height < 2) height = textHeight(display); + if (diff > .001 || diff < -.001) { + updateLineHeight(cur.line, height); + updateWidgetHeight(cur.line); + if (cur.rest) for (var j = 0; j < cur.rest.length; j++) + updateWidgetHeight(cur.rest[j]); + } + } + } + + // Read and store the height of line widgets associated with the + // given line. + function updateWidgetHeight(line) { + if (line.widgets) for (var i = 0; i < line.widgets.length; ++i) + line.widgets[i].height = line.widgets[i].node.offsetHeight; + } + + // Do a bulk-read of the DOM positions and sizes needed to draw the + // view, so that we don't interleave reading and writing to the DOM. + function getDimensions(cm) { + var d = cm.display, left = {}, width = {}; + var gutterLeft = d.gutters.clientLeft; + for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { + left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft; + width[cm.options.gutters[i]] = n.clientWidth; + } + return {fixedPos: compensateForHScroll(d), + gutterTotalWidth: d.gutters.offsetWidth, + gutterLeft: left, + gutterWidth: width, + wrapperWidth: d.wrapper.clientWidth}; + } + + // Sync the actual display DOM structure with display.view, removing + // nodes for lines that are no longer in view, and creating the ones + // that are not there yet, and updating the ones that are out of + // date. + function patchDisplay(cm, updateNumbersFrom, dims) { + var display = cm.display, lineNumbers = cm.options.lineNumbers; + var container = display.lineDiv, cur = container.firstChild; + + function rm(node) { + var next = node.nextSibling; + // Works around a throw-scroll bug in OS X Webkit + if (webkit && mac && cm.display.currentWheelTarget == node) + node.style.display = "none"; + else + node.parentNode.removeChild(node); + return next; + } + + var view = display.view, lineN = display.viewFrom; + // Loop over the elements in the view, syncing cur (the DOM nodes + // in display.lineDiv) with the view as we go. + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (lineView.hidden) { + } else if (!lineView.node) { // Not drawn yet + var node = buildLineElement(cm, lineView, lineN, dims); + container.insertBefore(node, cur); + } else { // Already drawn + while (cur != lineView.node) cur = rm(cur); + var updateNumber = lineNumbers && updateNumbersFrom != null && + updateNumbersFrom <= lineN && lineView.lineNumber; + if (lineView.changes) { + if (indexOf(lineView.changes, "gutter") > -1) updateNumber = false; + updateLineForChanges(cm, lineView, lineN, dims); + } + if (updateNumber) { + removeChildren(lineView.lineNumber); + lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN))); + } + cur = lineView.node.nextSibling; + } + lineN += lineView.size; + } + while (cur) cur = rm(cur); + } + + // When an aspect of a line changes, a string is added to + // lineView.changes. This updates the relevant part of the line's + // DOM structure. + function updateLineForChanges(cm, lineView, lineN, dims) { + for (var j = 0; j < lineView.changes.length; j++) { + var type = lineView.changes[j]; + if (type == "text") updateLineText(cm, lineView); + else if (type == "gutter") updateLineGutter(cm, lineView, lineN, dims); + else if (type == "class") updateLineClasses(lineView); + else if (type == "widget") updateLineWidgets(lineView, dims); + } + lineView.changes = null; + } + + // Lines with gutter elements, widgets or a background class need to + // be wrapped, and have the extra elements added to the wrapper div + function ensureLineWrapped(lineView) { + if (lineView.node == lineView.text) { + lineView.node = elt("div", null, null, "position: relative"); + if (lineView.text.parentNode) + lineView.text.parentNode.replaceChild(lineView.node, lineView.text); + lineView.node.appendChild(lineView.text); + if (ie && ie_version < 8) lineView.node.style.zIndex = 2; + } + return lineView.node; + } + + function updateLineBackground(lineView) { + var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass; + if (cls) cls += " CodeMirror-linebackground"; + if (lineView.background) { + if (cls) lineView.background.className = cls; + else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; } + } else if (cls) { + var wrap = ensureLineWrapped(lineView); + lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild); + } + } + + // Wrapper around buildLineContent which will reuse the structure + // in display.externalMeasured when possible. + function getLineContent(cm, lineView) { + var ext = cm.display.externalMeasured; + if (ext && ext.line == lineView.line) { + cm.display.externalMeasured = null; + lineView.measure = ext.measure; + return ext.built; + } + return buildLineContent(cm, lineView); + } + + // Redraw the line's text. Interacts with the background and text + // classes because the mode may output tokens that influence these + // classes. + function updateLineText(cm, lineView) { + var cls = lineView.text.className; + var built = getLineContent(cm, lineView); + if (lineView.text == lineView.node) lineView.node = built.pre; + lineView.text.parentNode.replaceChild(built.pre, lineView.text); + lineView.text = built.pre; + if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) { + lineView.bgClass = built.bgClass; + lineView.textClass = built.textClass; + updateLineClasses(lineView); + } else if (cls) { + lineView.text.className = cls; + } + } + + function updateLineClasses(lineView) { + updateLineBackground(lineView); + if (lineView.line.wrapClass) + ensureLineWrapped(lineView).className = lineView.line.wrapClass; + else if (lineView.node != lineView.text) + lineView.node.className = ""; + var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass; + lineView.text.className = textClass || ""; + } + + function updateLineGutter(cm, lineView, lineN, dims) { + if (lineView.gutter) { + lineView.node.removeChild(lineView.gutter); + lineView.gutter = null; + } + var markers = lineView.line.gutterMarkers; + if (cm.options.lineNumbers || markers) { + var wrap = ensureLineWrapped(lineView); + var gutterWrap = lineView.gutter = + wrap.insertBefore(elt("div", null, "CodeMirror-gutter-wrapper", "position: absolute; left: " + + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px"), + lineView.text); + if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) + lineView.lineNumber = gutterWrap.appendChild( + elt("div", lineNumberFor(cm.options, lineN), + "CodeMirror-linenumber CodeMirror-gutter-elt", + "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: " + + cm.display.lineNumInnerWidth + "px")); + if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) { + var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id]; + if (found) + gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " + + dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px")); + } + } + } + + function updateLineWidgets(lineView, dims) { + if (lineView.alignable) lineView.alignable = null; + for (var node = lineView.node.firstChild, next; node; node = next) { + var next = node.nextSibling; + if (node.className == "CodeMirror-linewidget") + lineView.node.removeChild(node); + } + insertLineWidgets(lineView, dims); + } + + // Build a line's DOM representation from scratch + function buildLineElement(cm, lineView, lineN, dims) { + var built = getLineContent(cm, lineView); + lineView.text = lineView.node = built.pre; + if (built.bgClass) lineView.bgClass = built.bgClass; + if (built.textClass) lineView.textClass = built.textClass; + + updateLineClasses(lineView); + updateLineGutter(cm, lineView, lineN, dims); + insertLineWidgets(lineView, dims); + return lineView.node; + } + + // A lineView may contain multiple logical lines (when merged by + // collapsed spans). The widgets for all of them need to be drawn. + function insertLineWidgets(lineView, dims) { + insertLineWidgetsFor(lineView.line, lineView, dims, true); + if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++) + insertLineWidgetsFor(lineView.rest[i], lineView, dims, false); + } + + function insertLineWidgetsFor(line, lineView, dims, allowAbove) { + if (!line.widgets) return; + var wrap = ensureLineWrapped(lineView); + for (var i = 0, ws = line.widgets; i < ws.length; ++i) { + var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget"); + if (!widget.handleMouseEvents) node.ignoreEvents = true; + positionLineWidget(widget, node, lineView, dims); + if (allowAbove && widget.above) + wrap.insertBefore(node, lineView.gutter || lineView.text); + else + wrap.appendChild(node); + signalLater(widget, "redraw"); + } + } + + function positionLineWidget(widget, node, lineView, dims) { + if (widget.noHScroll) { + (lineView.alignable || (lineView.alignable = [])).push(node); + var width = dims.wrapperWidth; + node.style.left = dims.fixedPos + "px"; + if (!widget.coverGutter) { + width -= dims.gutterTotalWidth; + node.style.paddingLeft = dims.gutterTotalWidth + "px"; + } + node.style.width = width + "px"; + } + if (widget.coverGutter) { + node.style.zIndex = 5; + node.style.position = "relative"; + if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px"; + } + } + + // POSITION OBJECT + + // A Pos instance represents a position within the text. + var Pos = CodeMirror.Pos = function(line, ch) { + if (!(this instanceof Pos)) return new Pos(line, ch); + this.line = line; this.ch = ch; + }; + + // Compare two positions, return 0 if they are the same, a negative + // number when a is less, and a positive number otherwise. + var cmp = CodeMirror.cmpPos = function(a, b) { return a.line - b.line || a.ch - b.ch; }; + + function copyPos(x) {return Pos(x.line, x.ch);} + function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; } + function minPos(a, b) { return cmp(a, b) < 0 ? a : b; } + + // SELECTION / CURSOR + + // Selection objects are immutable. A new one is created every time + // the selection changes. A selection is one or more non-overlapping + // (and non-touching) ranges, sorted, and an integer that indicates + // which one is the primary selection (the one that's scrolled into + // view, that getCursor returns, etc). + function Selection(ranges, primIndex) { + this.ranges = ranges; + this.primIndex = primIndex; + } + + Selection.prototype = { + primary: function() { return this.ranges[this.primIndex]; }, + equals: function(other) { + if (other == this) return true; + if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) return false; + for (var i = 0; i < this.ranges.length; i++) { + var here = this.ranges[i], there = other.ranges[i]; + if (cmp(here.anchor, there.anchor) != 0 || cmp(here.head, there.head) != 0) return false; + } + return true; + }, + deepCopy: function() { + for (var out = [], i = 0; i < this.ranges.length; i++) + out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); + return new Selection(out, this.primIndex); + }, + somethingSelected: function() { + for (var i = 0; i < this.ranges.length; i++) + if (!this.ranges[i].empty()) return true; + return false; + }, + contains: function(pos, end) { + if (!end) end = pos; + for (var i = 0; i < this.ranges.length; i++) { + var range = this.ranges[i]; + if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0) + return i; + } + return -1; + } + }; + + function Range(anchor, head) { + this.anchor = anchor; this.head = head; + } + + Range.prototype = { + from: function() { return minPos(this.anchor, this.head); }, + to: function() { return maxPos(this.anchor, this.head); }, + empty: function() { + return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch; + } + }; + + // Take an unsorted, potentially overlapping set of ranges, and + // build a selection out of it. 'Consumes' ranges array (modifying + // it). + function normalizeSelection(ranges, primIndex) { + var prim = ranges[primIndex]; + ranges.sort(function(a, b) { return cmp(a.from(), b.from()); }); + primIndex = indexOf(ranges, prim); + for (var i = 1; i < ranges.length; i++) { + var cur = ranges[i], prev = ranges[i - 1]; + if (cmp(prev.to(), cur.from()) >= 0) { + var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to()); + var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head; + if (i <= primIndex) --primIndex; + ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to)); + } + } + return new Selection(ranges, primIndex); + } + + function simpleSelection(anchor, head) { + return new Selection([new Range(anchor, head || anchor)], 0); + } + + // Most of the external API clips given positions to make sure they + // actually exist within the document. + function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));} + function clipPos(doc, pos) { + if (pos.line < doc.first) return Pos(doc.first, 0); + var last = doc.first + doc.size - 1; + if (pos.line > last) return Pos(last, getLine(doc, last).text.length); + return clipToLen(pos, getLine(doc, pos.line).text.length); + } + function clipToLen(pos, linelen) { + var ch = pos.ch; + if (ch == null || ch > linelen) return Pos(pos.line, linelen); + else if (ch < 0) return Pos(pos.line, 0); + else return pos; + } + function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;} + function clipPosArray(doc, array) { + for (var out = [], i = 0; i < array.length; i++) out[i] = clipPos(doc, array[i]); + return out; + } + + // SELECTION UPDATES + + // The 'scroll' parameter given to many of these indicated whether + // the new cursor position should be scrolled into view after + // modifying the selection. + + // If shift is held or the extend flag is set, extends a range to + // include a given position (and optionally a second position). + // Otherwise, simply returns the range between the given positions. + // Used for cursor motion and such. + function extendRange(doc, range, head, other) { + if (doc.cm && doc.cm.display.shift || doc.extend) { + var anchor = range.anchor; + if (other) { + var posBefore = cmp(head, anchor) < 0; + if (posBefore != (cmp(other, anchor) < 0)) { + anchor = head; + head = other; + } else if (posBefore != (cmp(head, other) < 0)) { + head = other; + } + } + return new Range(anchor, head); + } else { + return new Range(other || head, head); + } + } + + // Extend the primary selection range, discard the rest. + function extendSelection(doc, head, other, options) { + setSelection(doc, new Selection([extendRange(doc, doc.sel.primary(), head, other)], 0), options); + } + + // Extend all selections (pos is an array of selections with length + // equal the number of selections) + function extendSelections(doc, heads, options) { + for (var out = [], i = 0; i < doc.sel.ranges.length; i++) + out[i] = extendRange(doc, doc.sel.ranges[i], heads[i], null); + var newSel = normalizeSelection(out, doc.sel.primIndex); + setSelection(doc, newSel, options); + } + + // Updates a single range in the selection. + function replaceOneSelection(doc, i, range, options) { + var ranges = doc.sel.ranges.slice(0); + ranges[i] = range; + setSelection(doc, normalizeSelection(ranges, doc.sel.primIndex), options); + } + + // Reset the selection to a single range. + function setSimpleSelection(doc, anchor, head, options) { + setSelection(doc, simpleSelection(anchor, head), options); + } + + // Give beforeSelectionChange handlers a change to influence a + // selection update. + function filterSelectionChange(doc, sel) { + var obj = { + ranges: sel.ranges, + update: function(ranges) { + this.ranges = []; + for (var i = 0; i < ranges.length; i++) + this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor), + clipPos(doc, ranges[i].head)); + } + }; + signal(doc, "beforeSelectionChange", doc, obj); + if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj); + if (obj.ranges != sel.ranges) return normalizeSelection(obj.ranges, obj.ranges.length - 1); + else return sel; + } + + function setSelectionReplaceHistory(doc, sel, options) { + var done = doc.history.done, last = lst(done); + if (last && last.ranges) { + done[done.length - 1] = sel; + setSelectionNoUndo(doc, sel, options); + } else { + setSelection(doc, sel, options); + } + } + + // Set a new selection. + function setSelection(doc, sel, options) { + setSelectionNoUndo(doc, sel, options); + addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options); + } + + function setSelectionNoUndo(doc, sel, options) { + if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) + sel = filterSelectionChange(doc, sel); + + var bias = options && options.bias || + (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1); + setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true)); + + if (!(options && options.scroll === false) && doc.cm) + ensureCursorVisible(doc.cm); + } + + function setSelectionInner(doc, sel) { + if (sel.equals(doc.sel)) return; + + doc.sel = sel; + + if (doc.cm) { + doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true; + signalCursorActivity(doc.cm); + } + signalLater(doc, "cursorActivity", doc); + } + + // Verify that the selection does not partially select any atomic + // marked ranges. + function reCheckSelection(doc) { + setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false), sel_dontScroll); + } + + // Return a selection that does not partially select any atomic + // ranges. + function skipAtomicInSelection(doc, sel, bias, mayClear) { + var out; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + var newAnchor = skipAtomic(doc, range.anchor, bias, mayClear); + var newHead = skipAtomic(doc, range.head, bias, mayClear); + if (out || newAnchor != range.anchor || newHead != range.head) { + if (!out) out = sel.ranges.slice(0, i); + out[i] = new Range(newAnchor, newHead); + } + } + return out ? normalizeSelection(out, sel.primIndex) : sel; + } + + // Ensure a given position is not inside an atomic range. + function skipAtomic(doc, pos, bias, mayClear) { + var flipped = false, curPos = pos; + var dir = bias || 1; + doc.cantEdit = false; + search: for (;;) { + var line = getLine(doc, curPos.line); + if (line.markedSpans) { + for (var i = 0; i < line.markedSpans.length; ++i) { + var sp = line.markedSpans[i], m = sp.marker; + if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) && + (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) { + if (mayClear) { + signal(m, "beforeCursorEnter"); + if (m.explicitlyCleared) { + if (!line.markedSpans) break; + else {--i; continue;} + } + } + if (!m.atomic) continue; + var newPos = m.find(dir < 0 ? -1 : 1); + if (cmp(newPos, curPos) == 0) { + newPos.ch += dir; + if (newPos.ch < 0) { + if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1)); + else newPos = null; + } else if (newPos.ch > line.text.length) { + if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0); + else newPos = null; + } + if (!newPos) { + if (flipped) { + // Driven in a corner -- no valid cursor position found at all + // -- try again *with* clearing, if we didn't already + if (!mayClear) return skipAtomic(doc, pos, bias, true); + // Otherwise, turn off editing until further notice, and return the start of the doc + doc.cantEdit = true; + return Pos(doc.first, 0); + } + flipped = true; newPos = pos; dir = -dir; + } + } + curPos = newPos; + continue search; + } + } + } + return curPos; + } + } + + // SELECTION DRAWING + + // Redraw the selection and/or cursor + function drawSelection(cm) { + var display = cm.display, doc = cm.doc, result = {}; + var curFragment = result.cursors = document.createDocumentFragment(); + var selFragment = result.selection = document.createDocumentFragment(); + + for (var i = 0; i < doc.sel.ranges.length; i++) { + var range = doc.sel.ranges[i]; + var collapsed = range.empty(); + if (collapsed || cm.options.showCursorWhenSelecting) + drawSelectionCursor(cm, range, curFragment); + if (!collapsed) + drawSelectionRange(cm, range, selFragment); + } + + // Move the hidden textarea near the cursor to prevent scrolling artifacts + if (cm.options.moveInputWithCursor) { + var headPos = cursorCoords(cm, doc.sel.primary().head, "div"); + var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect(); + result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10, + headPos.top + lineOff.top - wrapOff.top)); + result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10, + headPos.left + lineOff.left - wrapOff.left)); + } + + return result; + } + + function showSelection(cm, drawn) { + removeChildrenAndAdd(cm.display.cursorDiv, drawn.cursors); + removeChildrenAndAdd(cm.display.selectionDiv, drawn.selection); + if (drawn.teTop != null) { + cm.display.inputDiv.style.top = drawn.teTop + "px"; + cm.display.inputDiv.style.left = drawn.teLeft + "px"; + } + } + + function updateSelection(cm) { + showSelection(cm, drawSelection(cm)); + } + + // Draws a cursor for the given range + function drawSelectionCursor(cm, range, output) { + var pos = cursorCoords(cm, range.head, "div", null, null, !cm.options.singleCursorHeightPerLine); + + var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor")); + cursor.style.left = pos.left + "px"; + cursor.style.top = pos.top + "px"; + cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; + + if (pos.other) { + // Secondary cursor, shown when on a 'jump' in bi-directional text + var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor")); + otherCursor.style.display = ""; + otherCursor.style.left = pos.other.left + "px"; + otherCursor.style.top = pos.other.top + "px"; + otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; + } + } + + // Draws the given range as a highlighted selection + function drawSelectionRange(cm, range, output) { + var display = cm.display, doc = cm.doc; + var fragment = document.createDocumentFragment(); + var padding = paddingH(cm.display), leftSide = padding.left, rightSide = display.lineSpace.offsetWidth - padding.right; + + function add(left, top, width, bottom) { + if (top < 0) top = 0; + top = Math.round(top); + bottom = Math.round(bottom); + fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left + + "px; top: " + top + "px; width: " + (width == null ? rightSide - left : width) + + "px; height: " + (bottom - top) + "px")); + } + + function drawForLine(line, fromArg, toArg) { + var lineObj = getLine(doc, line); + var lineLen = lineObj.text.length; + var start, end; + function coords(ch, bias) { + return charCoords(cm, Pos(line, ch), "div", lineObj, bias); + } + + iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) { + var leftPos = coords(from, "left"), rightPos, left, right; + if (from == to) { + rightPos = leftPos; + left = right = leftPos.left; + } else { + rightPos = coords(to - 1, "right"); + if (dir == "rtl") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; } + left = leftPos.left; + right = rightPos.right; + } + if (fromArg == null && from == 0) left = leftSide; + if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part + add(left, leftPos.top, null, leftPos.bottom); + left = leftSide; + if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top); + } + if (toArg == null && to == lineLen) right = rightSide; + if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left) + start = leftPos; + if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right) + end = rightPos; + if (left < leftSide + 1) left = leftSide; + add(left, rightPos.top, right - left, rightPos.bottom); + }); + return {start: start, end: end}; + } + + var sFrom = range.from(), sTo = range.to(); + if (sFrom.line == sTo.line) { + drawForLine(sFrom.line, sFrom.ch, sTo.ch); + } else { + var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line); + var singleVLine = visualLine(fromLine) == visualLine(toLine); + var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end; + var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start; + if (singleVLine) { + if (leftEnd.top < rightStart.top - 2) { + add(leftEnd.right, leftEnd.top, null, leftEnd.bottom); + add(leftSide, rightStart.top, rightStart.left, rightStart.bottom); + } else { + add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom); + } + } + if (leftEnd.bottom < rightStart.top) + add(leftSide, leftEnd.bottom, null, rightStart.top); + } + + output.appendChild(fragment); + } + + // Cursor-blinking + function restartBlink(cm) { + if (!cm.state.focused) return; + var display = cm.display; + clearInterval(display.blinker); + var on = true; + display.cursorDiv.style.visibility = ""; + if (cm.options.cursorBlinkRate > 0) + display.blinker = setInterval(function() { + display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; + }, cm.options.cursorBlinkRate); + else if (cm.options.cursorBlinkRate < 0) + display.cursorDiv.style.visibility = "hidden"; + } + + // HIGHLIGHT WORKER + + function startWorker(cm, time) { + if (cm.doc.mode.startState && cm.doc.frontier < cm.display.viewTo) + cm.state.highlight.set(time, bind(highlightWorker, cm)); + } + + function highlightWorker(cm) { + var doc = cm.doc; + if (doc.frontier < doc.first) doc.frontier = doc.first; + if (doc.frontier >= cm.display.viewTo) return; + var end = +new Date + cm.options.workTime; + var state = copyState(doc.mode, getStateBefore(cm, doc.frontier)); + var changedLines = []; + + doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function(line) { + if (doc.frontier >= cm.display.viewFrom) { // Visible + var oldStyles = line.styles; + var highlighted = highlightLine(cm, line, state, true); + line.styles = highlighted.styles; + var oldCls = line.styleClasses, newCls = highlighted.classes; + if (newCls) line.styleClasses = newCls; + else if (oldCls) line.styleClasses = null; + var ischange = !oldStyles || oldStyles.length != line.styles.length || + oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass); + for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i]; + if (ischange) changedLines.push(doc.frontier); + line.stateAfter = copyState(doc.mode, state); + } else { + processLine(cm, line.text, state); + line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null; + } + ++doc.frontier; + if (+new Date > end) { + startWorker(cm, cm.options.workDelay); + return true; + } + }); + if (changedLines.length) runInOp(cm, function() { + for (var i = 0; i < changedLines.length; i++) + regLineChange(cm, changedLines[i], "text"); + }); + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(cm, n, precise) { + var minindent, minline, doc = cm.doc; + var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100); + for (var search = n; search > lim; --search) { + if (search <= doc.first) return doc.first; + var line = getLine(doc, search - 1); + if (line.stateAfter && (!precise || search <= doc.frontier)) return search; + var indented = countColumn(line.text, null, cm.options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline; + } + + function getStateBefore(cm, n, precise) { + var doc = cm.doc, display = cm.display; + if (!doc.mode.startState) return true; + var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter; + if (!state) state = startState(doc.mode); + else state = copyState(doc.mode, state); + doc.iter(pos, n, function(line) { + processLine(cm, line.text, state); + var save = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo; + line.stateAfter = save ? copyState(doc.mode, state) : null; + ++pos; + }); + if (precise) doc.frontier = pos; + return state; + } + + // POSITION MEASUREMENT + + function paddingTop(display) {return display.lineSpace.offsetTop;} + function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;} + function paddingH(display) { + if (display.cachedPaddingH) return display.cachedPaddingH; + var e = removeChildrenAndAdd(display.measure, elt("pre", "x")); + var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle; + var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)}; + if (!isNaN(data.left) && !isNaN(data.right)) display.cachedPaddingH = data; + return data; + } + + // Ensure the lineView.wrapping.heights array is populated. This is + // an array of bottom offsets for the lines that make up a drawn + // line. When lineWrapping is on, there might be more than one + // height. + function ensureLineHeights(cm, lineView, rect) { + var wrapping = cm.options.lineWrapping; + var curWidth = wrapping && cm.display.scroller.clientWidth; + if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) { + var heights = lineView.measure.heights = []; + if (wrapping) { + lineView.measure.width = curWidth; + var rects = lineView.text.firstChild.getClientRects(); + for (var i = 0; i < rects.length - 1; i++) { + var cur = rects[i], next = rects[i + 1]; + if (Math.abs(cur.bottom - next.bottom) > 2) + heights.push((cur.bottom + next.top) / 2 - rect.top); + } + } + heights.push(rect.bottom - rect.top); + } + } + + // Find a line map (mapping character offsets to text nodes) and a + // measurement cache for the given line number. (A line view might + // contain multiple lines when collapsed ranges are present.) + function mapFromLineView(lineView, line, lineN) { + if (lineView.line == line) + return {map: lineView.measure.map, cache: lineView.measure.cache}; + for (var i = 0; i < lineView.rest.length; i++) + if (lineView.rest[i] == line) + return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]}; + for (var i = 0; i < lineView.rest.length; i++) + if (lineNo(lineView.rest[i]) > lineN) + return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i], before: true}; + } + + // Render a line into the hidden node display.externalMeasured. Used + // when measurement is needed for a line that's not in the viewport. + function updateExternalMeasurement(cm, line) { + line = visualLine(line); + var lineN = lineNo(line); + var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN); + view.lineN = lineN; + var built = view.built = buildLineContent(cm, view); + view.text = built.pre; + removeChildrenAndAdd(cm.display.lineMeasure, built.pre); + return view; + } + + // Get a {top, bottom, left, right} box (in line-local coordinates) + // for a given character. + function measureChar(cm, line, ch, bias) { + return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias); + } + + // Find a line view that corresponds to the given line number. + function findViewForLine(cm, lineN) { + if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo) + return cm.display.view[findViewIndex(cm, lineN)]; + var ext = cm.display.externalMeasured; + if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size) + return ext; + } + + // Measurement can be split in two steps, the set-up work that + // applies to the whole line, and the measurement of the actual + // character. Functions like coordsChar, that need to do a lot of + // measurements in a row, can thus ensure that the set-up work is + // only done once. + function prepareMeasureForLine(cm, line) { + var lineN = lineNo(line); + var view = findViewForLine(cm, lineN); + if (view && !view.text) + view = null; + else if (view && view.changes) + updateLineForChanges(cm, view, lineN, getDimensions(cm)); + if (!view) + view = updateExternalMeasurement(cm, line); + + var info = mapFromLineView(view, line, lineN); + return { + line: line, view: view, rect: null, + map: info.map, cache: info.cache, before: info.before, + hasHeights: false + }; + } + + // Given a prepared measurement object, measures the position of an + // actual character (or fetches it from the cache). + function measureCharPrepared(cm, prepared, ch, bias, varHeight) { + if (prepared.before) ch = -1; + var key = ch + (bias || ""), found; + if (prepared.cache.hasOwnProperty(key)) { + found = prepared.cache[key]; + } else { + if (!prepared.rect) + prepared.rect = prepared.view.text.getBoundingClientRect(); + if (!prepared.hasHeights) { + ensureLineHeights(cm, prepared.view, prepared.rect); + prepared.hasHeights = true; + } + found = measureCharInner(cm, prepared, ch, bias); + if (!found.bogus) prepared.cache[key] = found; + } + return {left: found.left, right: found.right, + top: varHeight ? found.rtop : found.top, + bottom: varHeight ? found.rbottom : found.bottom}; + } + + var nullRect = {left: 0, right: 0, top: 0, bottom: 0}; + + function measureCharInner(cm, prepared, ch, bias) { + var map = prepared.map; + + var node, start, end, collapse; + // First, search the line map for the text node corresponding to, + // or closest to, the target character. + for (var i = 0; i < map.length; i += 3) { + var mStart = map[i], mEnd = map[i + 1]; + if (ch < mStart) { + start = 0; end = 1; + collapse = "left"; + } else if (ch < mEnd) { + start = ch - mStart; + end = start + 1; + } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) { + end = mEnd - mStart; + start = end - 1; + if (ch >= mEnd) collapse = "right"; + } + if (start != null) { + node = map[i + 2]; + if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right")) + collapse = bias; + if (bias == "left" && start == 0) + while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) { + node = map[(i -= 3) + 2]; + collapse = "left"; + } + if (bias == "right" && start == mEnd - mStart) + while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) { + node = map[(i += 3) + 2]; + collapse = "right"; + } + break; + } + } + + var rect; + if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates. + for (var i = 0; i < 4; i++) { // Retry a maximum of 4 times when nonsense rectangles are returned + while (start && isExtendingChar(prepared.line.text.charAt(mStart + start))) --start; + while (mStart + end < mEnd && isExtendingChar(prepared.line.text.charAt(mStart + end))) ++end; + if (ie && ie_version < 9 && start == 0 && end == mEnd - mStart) { + rect = node.parentNode.getBoundingClientRect(); + } else if (ie && cm.options.lineWrapping) { + var rects = range(node, start, end).getClientRects(); + if (rects.length) + rect = rects[bias == "right" ? rects.length - 1 : 0]; + else + rect = nullRect; + } else { + rect = range(node, start, end).getBoundingClientRect() || nullRect; + } + if (rect.left || rect.right || start == 0) break; + end = start; + start = start - 1; + collapse = "right"; + } + if (ie && ie_version < 11) rect = maybeUpdateRectForZooming(cm.display.measure, rect); + } else { // If it is a widget, simply get the box for the whole widget. + if (start > 0) collapse = bias = "right"; + var rects; + if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1) + rect = rects[bias == "right" ? rects.length - 1 : 0]; + else + rect = node.getBoundingClientRect(); + } + if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) { + var rSpan = node.parentNode.getClientRects()[0]; + if (rSpan) + rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; + else + rect = nullRect; + } + + var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top; + var mid = (rtop + rbot) / 2; + var heights = prepared.view.measure.heights; + for (var i = 0; i < heights.length - 1; i++) + if (mid < heights[i]) break; + var top = i ? heights[i - 1] : 0, bot = heights[i]; + var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left, + right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left, + top: top, bottom: bot}; + if (!rect.left && !rect.right) result.bogus = true; + if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; } + + return result; + } + + // Work around problem with bounding client rects on ranges being + // returned incorrectly when zoomed on IE10 and below. + function maybeUpdateRectForZooming(measure, rect) { + if (!window.screen || screen.logicalXDPI == null || + screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure)) + return rect; + var scaleX = screen.logicalXDPI / screen.deviceXDPI; + var scaleY = screen.logicalYDPI / screen.deviceYDPI; + return {left: rect.left * scaleX, right: rect.right * scaleX, + top: rect.top * scaleY, bottom: rect.bottom * scaleY}; + } + + function clearLineMeasurementCacheFor(lineView) { + if (lineView.measure) { + lineView.measure.cache = {}; + lineView.measure.heights = null; + if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++) + lineView.measure.caches[i] = {}; + } + } + + function clearLineMeasurementCache(cm) { + cm.display.externalMeasure = null; + removeChildren(cm.display.lineMeasure); + for (var i = 0; i < cm.display.view.length; i++) + clearLineMeasurementCacheFor(cm.display.view[i]); + } + + function clearCaches(cm) { + clearLineMeasurementCache(cm); + cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null; + if (!cm.options.lineWrapping) cm.display.maxLineChanged = true; + cm.display.lineNumChars = null; + } + + function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; } + function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; } + + // Converts a {top, bottom, left, right} box from line-local + // coordinates into another coordinate system. Context may be one of + // "line", "div" (display.lineDiv), "local"/null (editor), or "page". + function intoCoordSystem(cm, lineObj, rect, context) { + if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) { + var size = widgetHeight(lineObj.widgets[i]); + rect.top += size; rect.bottom += size; + } + if (context == "line") return rect; + if (!context) context = "local"; + var yOff = heightAtLine(lineObj); + if (context == "local") yOff += paddingTop(cm.display); + else yOff -= cm.display.viewOffset; + if (context == "page" || context == "window") { + var lOff = cm.display.lineSpace.getBoundingClientRect(); + yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); + var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); + rect.left += xOff; rect.right += xOff; + } + rect.top += yOff; rect.bottom += yOff; + return rect; + } + + // Coverts a box from "div" coords to another coordinate system. + // Context may be "window", "page", "div", or "local"/null. + function fromCoordSystem(cm, coords, context) { + if (context == "div") return coords; + var left = coords.left, top = coords.top; + // First move into "page" coordinate system + if (context == "page") { + left -= pageScrollX(); + top -= pageScrollY(); + } else if (context == "local" || !context) { + var localBox = cm.display.sizer.getBoundingClientRect(); + left += localBox.left; + top += localBox.top; + } + + var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect(); + return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}; + } + + function charCoords(cm, pos, context, lineObj, bias) { + if (!lineObj) lineObj = getLine(cm.doc, pos.line); + return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context); + } + + // Returns a box for a given cursor position, which may have an + // 'other' property containing the position of the secondary cursor + // on a bidi boundary. + function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) { + lineObj = lineObj || getLine(cm.doc, pos.line); + if (!preparedMeasure) preparedMeasure = prepareMeasureForLine(cm, lineObj); + function get(ch, right) { + var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight); + if (right) m.left = m.right; else m.right = m.left; + return intoCoordSystem(cm, lineObj, m, context); + } + function getBidi(ch, partPos) { + var part = order[partPos], right = part.level % 2; + if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) { + part = order[--partPos]; + ch = bidiRight(part) - (part.level % 2 ? 0 : 1); + right = true; + } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) { + part = order[++partPos]; + ch = bidiLeft(part) - part.level % 2; + right = false; + } + if (right && ch == part.to && ch > part.from) return get(ch - 1); + return get(ch, right); + } + var order = getOrder(lineObj), ch = pos.ch; + if (!order) return get(ch); + var partPos = getBidiPartAt(order, ch); + var val = getBidi(ch, partPos); + if (bidiOther != null) val.other = getBidi(ch, bidiOther); + return val; + } + + // Used to cheaply estimate the coordinates for a position. Used for + // intermediate scroll updates. + function estimateCoords(cm, pos) { + var left = 0, pos = clipPos(cm.doc, pos); + if (!cm.options.lineWrapping) left = charWidth(cm.display) * pos.ch; + var lineObj = getLine(cm.doc, pos.line); + var top = heightAtLine(lineObj) + paddingTop(cm.display); + return {left: left, right: left, top: top, bottom: top + lineObj.height}; + } + + // Positions returned by coordsChar contain some extra information. + // xRel is the relative x position of the input coordinates compared + // to the found position (so xRel > 0 means the coordinates are to + // the right of the character position, for example). When outside + // is true, that means the coordinates lie outside the line's + // vertical range. + function PosWithInfo(line, ch, outside, xRel) { + var pos = Pos(line, ch); + pos.xRel = xRel; + if (outside) pos.outside = true; + return pos; + } + + // Compute the character position closest to the given coordinates. + // Input must be lineSpace-local ("div" coordinate system). + function coordsChar(cm, x, y) { + var doc = cm.doc; + y += cm.display.viewOffset; + if (y < 0) return PosWithInfo(doc.first, 0, true, -1); + var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1; + if (lineN > last) + return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1); + if (x < 0) x = 0; + + var lineObj = getLine(doc, lineN); + for (;;) { + var found = coordsCharInner(cm, lineObj, lineN, x, y); + var merged = collapsedSpanAtEnd(lineObj); + var mergedPos = merged && merged.find(0, true); + if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0)) + lineN = lineNo(lineObj = mergedPos.to.line); + else + return found; + } + } + + function coordsCharInner(cm, lineObj, lineNo, x, y) { + var innerOff = y - heightAtLine(lineObj); + var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth; + var preparedMeasure = prepareMeasureForLine(cm, lineObj); + + function getX(ch) { + var sp = cursorCoords(cm, Pos(lineNo, ch), "line", lineObj, preparedMeasure); + wrongLine = true; + if (innerOff > sp.bottom) return sp.left - adjust; + else if (innerOff < sp.top) return sp.left + adjust; + else wrongLine = false; + return sp.left; + } + + var bidi = getOrder(lineObj), dist = lineObj.text.length; + var from = lineLeft(lineObj), to = lineRight(lineObj); + var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine; + + if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1); + // Do a binary search between these bounds. + for (;;) { + if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) { + var ch = x < fromX || x - fromX <= toX - x ? from : to; + var xDiff = x - (ch == from ? fromX : toX); + while (isExtendingChar(lineObj.text.charAt(ch))) ++ch; + var pos = PosWithInfo(lineNo, ch, ch == from ? fromOutside : toOutside, + xDiff < -1 ? -1 : xDiff > 1 ? 1 : 0); + return pos; + } + var step = Math.ceil(dist / 2), middle = from + step; + if (bidi) { + middle = from; + for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1); + } + var middleX = getX(middle); + if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;} + else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;} + } + } + + var measureText; + // Compute the default text height. + function textHeight(display) { + if (display.cachedTextHeight != null) return display.cachedTextHeight; + if (measureText == null) { + measureText = elt("pre"); + // Measure a bunch of lines, for browsers that compute + // fractional heights. + for (var i = 0; i < 49; ++i) { + measureText.appendChild(document.createTextNode("x")); + measureText.appendChild(elt("br")); + } + measureText.appendChild(document.createTextNode("x")); + } + removeChildrenAndAdd(display.measure, measureText); + var height = measureText.offsetHeight / 50; + if (height > 3) display.cachedTextHeight = height; + removeChildren(display.measure); + return height || 1; + } + + // Compute the default character width. + function charWidth(display) { + if (display.cachedCharWidth != null) return display.cachedCharWidth; + var anchor = elt("span", "xxxxxxxxxx"); + var pre = elt("pre", [anchor]); + removeChildrenAndAdd(display.measure, pre); + var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10; + if (width > 2) display.cachedCharWidth = width; + return width || 10; + } + + // OPERATIONS + + // Operations are used to wrap a series of changes to the editor + // state in such a way that each change won't have to update the + // cursor and display (which would be awkward, slow, and + // error-prone). Instead, display updates are batched and then all + // combined and executed at once. + + var operationGroup = null; + + var nextOpId = 0; + // Start a new operation. + function startOperation(cm) { + cm.curOp = { + cm: cm, + viewChanged: false, // Flag that indicates that lines might need to be redrawn + startHeight: cm.doc.height, // Used to detect need to update scrollbar + forceUpdate: false, // Used to force a redraw + updateInput: null, // Whether to reset the input textarea + typing: false, // Whether this reset should be careful to leave existing text (for compositing) + changeObjs: null, // Accumulated changes, for firing change events + cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on + cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already + selectionChanged: false, // Whether the selection needs to be redrawn + updateMaxLine: false, // Set when the widest line needs to be determined anew + scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet + scrollToPos: null, // Used to scroll to a specific position + id: ++nextOpId // Unique ID + }; + if (operationGroup) { + operationGroup.ops.push(cm.curOp); + } else { + cm.curOp.ownsGroup = operationGroup = { + ops: [cm.curOp], + delayedCallbacks: [] + }; + } + } + + function fireCallbacksForOps(group) { + // Calls delayed callbacks and cursorActivity handlers until no + // new ones appear + var callbacks = group.delayedCallbacks, i = 0; + do { + for (; i < callbacks.length; i++) + callbacks[i](); + for (var j = 0; j < group.ops.length; j++) { + var op = group.ops[j]; + if (op.cursorActivityHandlers) + while (op.cursorActivityCalled < op.cursorActivityHandlers.length) + op.cursorActivityHandlers[op.cursorActivityCalled++](op.cm); + } + } while (i < callbacks.length); + } + + // Finish an operation, updating the display and signalling delayed events + function endOperation(cm) { + var op = cm.curOp, group = op.ownsGroup; + if (!group) return; + + try { fireCallbacksForOps(group); } + finally { + operationGroup = null; + for (var i = 0; i < group.ops.length; i++) + group.ops[i].cm.curOp = null; + endOperations(group); + } + } + + // The DOM updates done when an operation finishes are batched so + // that the minimum number of relayouts are required. + function endOperations(group) { + var ops = group.ops; + for (var i = 0; i < ops.length; i++) // Read DOM + endOperation_R1(ops[i]); + for (var i = 0; i < ops.length; i++) // Write DOM (maybe) + endOperation_W1(ops[i]); + for (var i = 0; i < ops.length; i++) // Read DOM + endOperation_R2(ops[i]); + for (var i = 0; i < ops.length; i++) // Write DOM (maybe) + endOperation_W2(ops[i]); + for (var i = 0; i < ops.length; i++) // Read DOM + endOperation_finish(ops[i]); + } + + function endOperation_R1(op) { + var cm = op.cm, display = cm.display; + if (op.updateMaxLine) findMaxLine(cm); + + op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null || + op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom || + op.scrollToPos.to.line >= display.viewTo) || + display.maxLineChanged && cm.options.lineWrapping; + op.update = op.mustUpdate && + new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate); + } + + function endOperation_W1(op) { + op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update); + } + + function endOperation_R2(op) { + var cm = op.cm, display = cm.display; + if (op.updatedDisplay) updateHeightsInViewport(cm); + + op.barMeasure = measureForScrollbars(cm); + + // If the max line changed since it was last measured, measure it, + // and ensure the document's width matches it. + // updateDisplay_W2 will use these properties to do the actual resizing + if (display.maxLineChanged && !cm.options.lineWrapping) { + op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3; + op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo + + scrollerCutOff - display.scroller.clientWidth); + } + + if (op.updatedDisplay || op.selectionChanged) + op.newSelectionNodes = drawSelection(cm); + } + + function endOperation_W2(op) { + var cm = op.cm; + + if (op.adjustWidthTo != null) { + cm.display.sizer.style.minWidth = op.adjustWidthTo + "px"; + if (op.maxScrollLeft < cm.doc.scrollLeft) + setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); + cm.display.maxLineChanged = false; + } + + if (op.newSelectionNodes) + showSelection(cm, op.newSelectionNodes); + if (op.updatedDisplay) + setDocumentHeight(cm, op.barMeasure); + if (op.updatedDisplay || op.startHeight != cm.doc.height) + updateScrollbars(cm, op.barMeasure); + + if (op.selectionChanged) restartBlink(cm); + + if (cm.state.focused && op.updateInput) + resetInput(cm, op.typing); + } + + function endOperation_finish(op) { + var cm = op.cm, display = cm.display, doc = cm.doc; + + if (op.adjustWidthTo != null && Math.abs(op.barMeasure.scrollWidth - cm.display.scroller.scrollWidth) > 1) + updateScrollbars(cm); + + if (op.updatedDisplay) postUpdateDisplay(cm, op.update); + + // Abort mouse wheel delta measurement, when scrolling explicitly + if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos)) + display.wheelStartX = display.wheelStartY = null; + + // Propagate the scroll position to the actual DOM scroller + if (op.scrollTop != null && (display.scroller.scrollTop != op.scrollTop || op.forceScroll)) { + var top = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop)); + display.scroller.scrollTop = display.scrollbarV.scrollTop = doc.scrollTop = top; + } + if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) { + var left = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, op.scrollLeft)); + display.scroller.scrollLeft = display.scrollbarH.scrollLeft = doc.scrollLeft = left; + alignHorizontally(cm); + } + // If we need to scroll a specific position into view, do so. + if (op.scrollToPos) { + var coords = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from), + clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin); + if (op.scrollToPos.isCursor && cm.state.focused) maybeScrollWindow(cm, coords); + } + + // Fire events for markers that are hidden/unidden by editing or + // undoing + var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; + if (hidden) for (var i = 0; i < hidden.length; ++i) + if (!hidden[i].lines.length) signal(hidden[i], "hide"); + if (unhidden) for (var i = 0; i < unhidden.length; ++i) + if (unhidden[i].lines.length) signal(unhidden[i], "unhide"); + + if (display.wrapper.offsetHeight) + doc.scrollTop = cm.display.scroller.scrollTop; + + // Apply workaround for two webkit bugs + if (op.updatedDisplay && webkit) { + if (cm.options.lineWrapping) + checkForWebkitWidthBug(cm, op.barMeasure); // (Issue #2420) + if (op.barMeasure.scrollWidth > op.barMeasure.clientWidth && + op.barMeasure.scrollWidth < op.barMeasure.clientWidth + 1 && + !hScrollbarTakesSpace(cm)) + updateScrollbars(cm); // (Issue #2562) + } + + // Fire change events, and delayed event handlers + if (op.changeObjs) + signal(cm, "changes", cm, op.changeObjs); + } + + // Run the given function in an operation + function runInOp(cm, f) { + if (cm.curOp) return f(); + startOperation(cm); + try { return f(); } + finally { endOperation(cm); } + } + // Wraps a function in an operation. Returns the wrapped function. + function operation(cm, f) { + return function() { + if (cm.curOp) return f.apply(cm, arguments); + startOperation(cm); + try { return f.apply(cm, arguments); } + finally { endOperation(cm); } + }; + } + // Used to add methods to editor and doc instances, wrapping them in + // operations. + function methodOp(f) { + return function() { + if (this.curOp) return f.apply(this, arguments); + startOperation(this); + try { return f.apply(this, arguments); } + finally { endOperation(this); } + }; + } + function docMethodOp(f) { + return function() { + var cm = this.cm; + if (!cm || cm.curOp) return f.apply(this, arguments); + startOperation(cm); + try { return f.apply(this, arguments); } + finally { endOperation(cm); } + }; + } + + // VIEW TRACKING + + // These objects are used to represent the visible (currently drawn) + // part of the document. A LineView may correspond to multiple + // logical lines, if those are connected by collapsed ranges. + function LineView(doc, line, lineN) { + // The starting line + this.line = line; + // Continuing lines, if any + this.rest = visualLineContinued(line); + // Number of logical lines in this visual line + this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1; + this.node = this.text = null; + this.hidden = lineIsHidden(doc, line); + } + + // Create a range of LineView objects for the given lines. + function buildViewArray(cm, from, to) { + var array = [], nextPos; + for (var pos = from; pos < to; pos = nextPos) { + var view = new LineView(cm.doc, getLine(cm.doc, pos), pos); + nextPos = pos + view.size; + array.push(view); + } + return array; + } + + // Updates the display.view data structure for a given change to the + // document. From and to are in pre-change coordinates. Lendiff is + // the amount of lines added or subtracted by the change. This is + // used for changes that span multiple lines, or change the way + // lines are divided into visual lines. regLineChange (below) + // registers single-line changes. + function regChange(cm, from, to, lendiff) { + if (from == null) from = cm.doc.first; + if (to == null) to = cm.doc.first + cm.doc.size; + if (!lendiff) lendiff = 0; + + var display = cm.display; + if (lendiff && to < display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers > from)) + display.updateLineNumbers = from; + + cm.curOp.viewChanged = true; + + if (from >= display.viewTo) { // Change after + if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) + resetView(cm); + } else if (to <= display.viewFrom) { // Change before + if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) { + resetView(cm); + } else { + display.viewFrom += lendiff; + display.viewTo += lendiff; + } + } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap + resetView(cm); + } else if (from <= display.viewFrom) { // Top overlap + var cut = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cut) { + display.view = display.view.slice(cut.index); + display.viewFrom = cut.lineN; + display.viewTo += lendiff; + } else { + resetView(cm); + } + } else if (to >= display.viewTo) { // Bottom overlap + var cut = viewCuttingPoint(cm, from, from, -1); + if (cut) { + display.view = display.view.slice(0, cut.index); + display.viewTo = cut.lineN; + } else { + resetView(cm); + } + } else { // Gap in the middle + var cutTop = viewCuttingPoint(cm, from, from, -1); + var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cutTop && cutBot) { + display.view = display.view.slice(0, cutTop.index) + .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN)) + .concat(display.view.slice(cutBot.index)); + display.viewTo += lendiff; + } else { + resetView(cm); + } + } + + var ext = display.externalMeasured; + if (ext) { + if (to < ext.lineN) + ext.lineN += lendiff; + else if (from < ext.lineN + ext.size) + display.externalMeasured = null; + } + } + + // Register a change to a single line. Type must be one of "text", + // "gutter", "class", "widget" + function regLineChange(cm, line, type) { + cm.curOp.viewChanged = true; + var display = cm.display, ext = cm.display.externalMeasured; + if (ext && line >= ext.lineN && line < ext.lineN + ext.size) + display.externalMeasured = null; + + if (line < display.viewFrom || line >= display.viewTo) return; + var lineView = display.view[findViewIndex(cm, line)]; + if (lineView.node == null) return; + var arr = lineView.changes || (lineView.changes = []); + if (indexOf(arr, type) == -1) arr.push(type); + } + + // Clear the view. + function resetView(cm) { + cm.display.viewFrom = cm.display.viewTo = cm.doc.first; + cm.display.view = []; + cm.display.viewOffset = 0; + } + + // Find the view element corresponding to a given line. Return null + // when the line isn't visible. + function findViewIndex(cm, n) { + if (n >= cm.display.viewTo) return null; + n -= cm.display.viewFrom; + if (n < 0) return null; + var view = cm.display.view; + for (var i = 0; i < view.length; i++) { + n -= view[i].size; + if (n < 0) return i; + } + } + + function viewCuttingPoint(cm, oldN, newN, dir) { + var index = findViewIndex(cm, oldN), diff, view = cm.display.view; + if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size) + return {index: index, lineN: newN}; + for (var i = 0, n = cm.display.viewFrom; i < index; i++) + n += view[i].size; + if (n != oldN) { + if (dir > 0) { + if (index == view.length - 1) return null; + diff = (n + view[index].size) - oldN; + index++; + } else { + diff = n - oldN; + } + oldN += diff; newN += diff; + } + while (visualLineNo(cm.doc, newN) != newN) { + if (index == (dir < 0 ? 0 : view.length - 1)) return null; + newN += dir * view[index - (dir < 0 ? 1 : 0)].size; + index += dir; + } + return {index: index, lineN: newN}; + } + + // Force the view to cover a given range, adding empty view element + // or clipping off existing ones as needed. + function adjustView(cm, from, to) { + var display = cm.display, view = display.view; + if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) { + display.view = buildViewArray(cm, from, to); + display.viewFrom = from; + } else { + if (display.viewFrom > from) + display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); + else if (display.viewFrom < from) + display.view = display.view.slice(findViewIndex(cm, from)); + display.viewFrom = from; + if (display.viewTo < to) + display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); + else if (display.viewTo > to) + display.view = display.view.slice(0, findViewIndex(cm, to)); + } + display.viewTo = to; + } + + // Count the number of lines in the view whose DOM representation is + // out of date (or nonexistent). + function countDirtyView(cm) { + var view = cm.display.view, dirty = 0; + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (!lineView.hidden && (!lineView.node || lineView.changes)) ++dirty; + } + return dirty; + } + + // INPUT HANDLING + + // Poll for input changes, using the normal rate of polling. This + // runs as long as the editor is focused. + function slowPoll(cm) { + if (cm.display.pollingFast) return; + cm.display.poll.set(cm.options.pollInterval, function() { + readInput(cm); + if (cm.state.focused) slowPoll(cm); + }); + } + + // When an event has just come in that is likely to add or change + // something in the input textarea, we poll faster, to ensure that + // the change appears on the screen quickly. + function fastPoll(cm) { + var missed = false; + cm.display.pollingFast = true; + function p() { + var changed = readInput(cm); + if (!changed && !missed) {missed = true; cm.display.poll.set(60, p);} + else {cm.display.pollingFast = false; slowPoll(cm);} + } + cm.display.poll.set(20, p); + } + + // This will be set to an array of strings when copying, so that, + // when pasting, we know what kind of selections the copied text + // was made out of. + var lastCopied = null; + + // Read input from the textarea, and update the document to match. + // When something is selected, it is present in the textarea, and + // selected (unless it is huge, in which case a placeholder is + // used). When nothing is selected, the cursor sits after previously + // seen text (can be empty), which is stored in prevInput (we must + // not reset the textarea when typing, because that breaks IME). + function readInput(cm) { + var input = cm.display.input, prevInput = cm.display.prevInput, doc = cm.doc; + // Since this is called a *lot*, try to bail out as cheaply as + // possible when it is clear that nothing happened. hasSelection + // will be the case when there is a lot of text in the textarea, + // in which case reading its value would be expensive. + if (!cm.state.focused || (hasSelection(input) && !prevInput) || isReadOnly(cm) || cm.options.disableInput) + return false; + // See paste handler for more on the fakedLastChar kludge + if (cm.state.pasteIncoming && cm.state.fakedLastChar) { + input.value = input.value.substring(0, input.value.length - 1); + cm.state.fakedLastChar = false; + } + var text = input.value; + // If nothing changed, bail. + if (text == prevInput && !cm.somethingSelected()) return false; + // Work around nonsensical selection resetting in IE9/10, and + // inexplicable appearance of private area unicode characters on + // some key combos in Mac (#2689). + if (ie && ie_version >= 9 && cm.display.inputHasSelection === text || + mac && /[\uf700-\uf7ff]/.test(text)) { + resetInput(cm); + return false; + } + + var withOp = !cm.curOp; + if (withOp) startOperation(cm); + cm.display.shift = false; + + if (text.charCodeAt(0) == 0x200b && doc.sel == cm.display.selForContextMenu && !prevInput) + prevInput = "\u200b"; + // Find the part of the input that is actually new + var same = 0, l = Math.min(prevInput.length, text.length); + while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same; + var inserted = text.slice(same), textLines = splitLines(inserted); + + // When pasing N lines into N selections, insert one line per selection + var multiPaste = null; + if (cm.state.pasteIncoming && doc.sel.ranges.length > 1) { + if (lastCopied && lastCopied.join("\n") == inserted) + multiPaste = doc.sel.ranges.length % lastCopied.length == 0 && map(lastCopied, splitLines); + else if (textLines.length == doc.sel.ranges.length) + multiPaste = map(textLines, function(l) { return [l]; }); + } + + // Normal behavior is to insert the new text into every selection + for (var i = doc.sel.ranges.length - 1; i >= 0; i--) { + var range = doc.sel.ranges[i]; + var from = range.from(), to = range.to(); + // Handle deletion + if (same < prevInput.length) + from = Pos(from.line, from.ch - (prevInput.length - same)); + // Handle overwrite + else if (cm.state.overwrite && range.empty() && !cm.state.pasteIncoming) + to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); + var updateInput = cm.curOp.updateInput; + var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines, + origin: cm.state.pasteIncoming ? "paste" : cm.state.cutIncoming ? "cut" : "+input"}; + makeChange(cm.doc, changeEvent); + signalLater(cm, "inputRead", cm, changeEvent); + // When an 'electric' character is inserted, immediately trigger a reindent + if (inserted && !cm.state.pasteIncoming && cm.options.electricChars && + cm.options.smartIndent && range.head.ch < 100 && + (!i || doc.sel.ranges[i - 1].head.line != range.head.line)) { + var mode = cm.getModeAt(range.head); + var end = changeEnd(changeEvent); + if (mode.electricChars) { + for (var j = 0; j < mode.electricChars.length; j++) + if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) { + indentLine(cm, end.line, "smart"); + break; + } + } else if (mode.electricInput) { + if (mode.electricInput.test(getLine(doc, end.line).text.slice(0, end.ch))) + indentLine(cm, end.line, "smart"); + } + } + } + ensureCursorVisible(cm); + cm.curOp.updateInput = updateInput; + cm.curOp.typing = true; + + // Don't leave long text in the textarea, since it makes further polling slow + if (text.length > 1000 || text.indexOf("\n") > -1) input.value = cm.display.prevInput = ""; + else cm.display.prevInput = text; + if (withOp) endOperation(cm); + cm.state.pasteIncoming = cm.state.cutIncoming = false; + return true; + } + + // Reset the input to correspond to the selection (or to be empty, + // when not typing and nothing is selected) + function resetInput(cm, typing) { + var minimal, selected, doc = cm.doc; + if (cm.somethingSelected()) { + cm.display.prevInput = ""; + var range = doc.sel.primary(); + minimal = hasCopyEvent && + (range.to().line - range.from().line > 100 || (selected = cm.getSelection()).length > 1000); + var content = minimal ? "-" : selected || cm.getSelection(); + cm.display.input.value = content; + if (cm.state.focused) selectInput(cm.display.input); + if (ie && ie_version >= 9) cm.display.inputHasSelection = content; + } else if (!typing) { + cm.display.prevInput = cm.display.input.value = ""; + if (ie && ie_version >= 9) cm.display.inputHasSelection = null; + } + cm.display.inaccurateSelection = minimal; + } + + function focusInput(cm) { + if (cm.options.readOnly != "nocursor" && (!mobile || activeElt() != cm.display.input)) + cm.display.input.focus(); + } + + function ensureFocus(cm) { + if (!cm.state.focused) { focusInput(cm); onFocus(cm); } + } + + function isReadOnly(cm) { + return cm.options.readOnly || cm.doc.cantEdit; + } + + // EVENT HANDLERS + + // Attach the necessary event handlers when initializing the editor + function registerEventHandlers(cm) { + var d = cm.display; + on(d.scroller, "mousedown", operation(cm, onMouseDown)); + // Older IE's will not fire a second mousedown for a double click + if (ie && ie_version < 11) + on(d.scroller, "dblclick", operation(cm, function(e) { + if (signalDOMEvent(cm, e)) return; + var pos = posFromMouse(cm, e); + if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return; + e_preventDefault(e); + var word = cm.findWordAt(pos); + extendSelection(cm.doc, word.anchor, word.head); + })); + else + on(d.scroller, "dblclick", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); }); + // Prevent normal selection in the editor (we handle our own) + on(d.lineSpace, "selectstart", function(e) { + if (!eventInWidget(d, e)) e_preventDefault(e); + }); + // Some browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for these browsers. + if (!captureRightClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);}); + + // Sync scrolling between fake scrollbars and real scrollable + // area, ensure viewport is updated when scrolling. + on(d.scroller, "scroll", function() { + if (d.scroller.clientHeight) { + setScrollTop(cm, d.scroller.scrollTop); + setScrollLeft(cm, d.scroller.scrollLeft, true); + signal(cm, "scroll", cm); + } + }); + on(d.scrollbarV, "scroll", function() { + if (d.scroller.clientHeight) setScrollTop(cm, d.scrollbarV.scrollTop); + }); + on(d.scrollbarH, "scroll", function() { + if (d.scroller.clientHeight) setScrollLeft(cm, d.scrollbarH.scrollLeft); + }); + + // Listen to wheel events in order to try and update the viewport on time. + on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);}); + on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);}); + + // Prevent clicks in the scrollbars from killing focus + function reFocus() { if (cm.state.focused) setTimeout(bind(focusInput, cm), 0); } + on(d.scrollbarH, "mousedown", reFocus); + on(d.scrollbarV, "mousedown", reFocus); + // Prevent wrapper from ever scrolling + on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); + + on(d.input, "keyup", function(e) { onKeyUp.call(cm, e); }); + on(d.input, "input", function() { + if (ie && ie_version >= 9 && cm.display.inputHasSelection) cm.display.inputHasSelection = null; + fastPoll(cm); + }); + on(d.input, "keydown", operation(cm, onKeyDown)); + on(d.input, "keypress", operation(cm, onKeyPress)); + on(d.input, "focus", bind(onFocus, cm)); + on(d.input, "blur", bind(onBlur, cm)); + + function drag_(e) { + if (!signalDOMEvent(cm, e)) e_stop(e); + } + if (cm.options.dragDrop) { + on(d.scroller, "dragstart", function(e){onDragStart(cm, e);}); + on(d.scroller, "dragenter", drag_); + on(d.scroller, "dragover", drag_); + on(d.scroller, "drop", operation(cm, onDrop)); + } + on(d.scroller, "paste", function(e) { + if (eventInWidget(d, e)) return; + cm.state.pasteIncoming = true; + focusInput(cm); + fastPoll(cm); + }); + on(d.input, "paste", function() { + // Workaround for webkit bug https://bugs.webkit.org/show_bug.cgi?id=90206 + // Add a char to the end of textarea before paste occur so that + // selection doesn't span to the end of textarea. + if (webkit && !cm.state.fakedLastChar && !(new Date - cm.state.lastMiddleDown < 200)) { + var start = d.input.selectionStart, end = d.input.selectionEnd; + d.input.value += "$"; + // The selection end needs to be set before the start, otherwise there + // can be an intermediate non-empty selection between the two, which + // can override the middle-click paste buffer on linux and cause the + // wrong thing to get pasted. + d.input.selectionEnd = end; + d.input.selectionStart = start; + cm.state.fakedLastChar = true; + } + cm.state.pasteIncoming = true; + fastPoll(cm); + }); + + function prepareCopyCut(e) { + if (cm.somethingSelected()) { + lastCopied = cm.getSelections(); + if (d.inaccurateSelection) { + d.prevInput = ""; + d.inaccurateSelection = false; + d.input.value = lastCopied.join("\n"); + selectInput(d.input); + } + } else { + var text = [], ranges = []; + for (var i = 0; i < cm.doc.sel.ranges.length; i++) { + var line = cm.doc.sel.ranges[i].head.line; + var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)}; + ranges.push(lineRange); + text.push(cm.getRange(lineRange.anchor, lineRange.head)); + } + if (e.type == "cut") { + cm.setSelections(ranges, null, sel_dontScroll); + } else { + d.prevInput = ""; + d.input.value = text.join("\n"); + selectInput(d.input); + } + lastCopied = text; + } + if (e.type == "cut") cm.state.cutIncoming = true; + } + on(d.input, "cut", prepareCopyCut); + on(d.input, "copy", prepareCopyCut); + + // Needed to handle Tab key in KHTML + if (khtml) on(d.sizer, "mouseup", function() { + if (activeElt() == d.input) d.input.blur(); + focusInput(cm); + }); + } + + // Called when the window resizes + function onResize(cm) { + // Might be a text scaling operation, clear size caches. + var d = cm.display; + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + cm.setSize(); + } + + // MOUSE EVENTS + + // Return true when the given mouse event happened in a widget + function eventInWidget(display, e) { + for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { + if (!n || n.ignoreEvents || n.parentNode == display.sizer && n != display.mover) return true; + } + } + + // Given a mouse event, find the corresponding position. If liberal + // is false, it checks whether a gutter or scrollbar was clicked, + // and returns null if it was. forRect is used by rectangular + // selections, and tries to estimate a character position even for + // coordinates beyond the right of the text. + function posFromMouse(cm, e, liberal, forRect) { + var display = cm.display; + if (!liberal) { + var target = e_target(e); + if (target == display.scrollbarH || target == display.scrollbarV || + target == display.scrollbarFiller || target == display.gutterFiller) return null; + } + var x, y, space = display.lineSpace.getBoundingClientRect(); + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { x = e.clientX - space.left; y = e.clientY - space.top; } + catch (e) { return null; } + var coords = coordsChar(cm, x, y), line; + if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) { + var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length; + coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff)); + } + return coords; + } + + // A mouse down can be a single click, double click, triple click, + // start of selection drag, start of text drag, new cursor + // (ctrl-click), rectangle drag (alt-drag), or xwin + // middle-click-paste. Or it might be a click on something we should + // not interfere with, such as a scrollbar or widget. + function onMouseDown(e) { + if (signalDOMEvent(this, e)) return; + var cm = this, display = cm.display; + display.shift = e.shiftKey; + + if (eventInWidget(display, e)) { + if (!webkit) { + // Briefly turn off draggability, to allow widgets to do + // normal dragging things. + display.scroller.draggable = false; + setTimeout(function(){display.scroller.draggable = true;}, 100); + } + return; + } + if (clickInGutter(cm, e)) return; + var start = posFromMouse(cm, e); + window.focus(); + + switch (e_button(e)) { + case 1: + if (start) + leftButtonDown(cm, e, start); + else if (e_target(e) == display.scroller) + e_preventDefault(e); + break; + case 2: + if (webkit) cm.state.lastMiddleDown = +new Date; + if (start) extendSelection(cm.doc, start); + setTimeout(bind(focusInput, cm), 20); + e_preventDefault(e); + break; + case 3: + if (captureRightClick) onContextMenu(cm, e); + break; + } + } + + var lastClick, lastDoubleClick; + function leftButtonDown(cm, e, start) { + setTimeout(bind(ensureFocus, cm), 0); + + var now = +new Date, type; + if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) { + type = "triple"; + } else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) { + type = "double"; + lastDoubleClick = {time: now, pos: start}; + } else { + type = "single"; + lastClick = {time: now, pos: start}; + } + + var sel = cm.doc.sel, modifier = mac ? e.metaKey : e.ctrlKey; + if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) && + type == "single" && sel.contains(start) > -1 && sel.somethingSelected()) + leftButtonStartDrag(cm, e, start, modifier); + else + leftButtonSelect(cm, e, start, type, modifier); + } + + // Start a text drag. When it ends, see if any dragging actually + // happen, and treat as a click if it didn't. + function leftButtonStartDrag(cm, e, start, modifier) { + var display = cm.display; + var dragEnd = operation(cm, function(e2) { + if (webkit) display.scroller.draggable = false; + cm.state.draggingText = false; + off(document, "mouseup", dragEnd); + off(display.scroller, "drop", dragEnd); + if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) { + e_preventDefault(e2); + if (!modifier) + extendSelection(cm.doc, start); + focusInput(cm); + // Work around unexplainable focus problem in IE9 (#2127) + if (ie && ie_version == 9) + setTimeout(function() {document.body.focus(); focusInput(cm);}, 20); + } + }); + // Let the drag handler handle this. + if (webkit) display.scroller.draggable = true; + cm.state.draggingText = dragEnd; + // IE's approach to draggable + if (display.scroller.dragDrop) display.scroller.dragDrop(); + on(document, "mouseup", dragEnd); + on(display.scroller, "drop", dragEnd); + } + + // Normal selection, as opposed to text dragging. + function leftButtonSelect(cm, e, start, type, addNew) { + var display = cm.display, doc = cm.doc; + e_preventDefault(e); + + var ourRange, ourIndex, startSel = doc.sel; + if (addNew && !e.shiftKey) { + ourIndex = doc.sel.contains(start); + if (ourIndex > -1) + ourRange = doc.sel.ranges[ourIndex]; + else + ourRange = new Range(start, start); + } else { + ourRange = doc.sel.primary(); + } + + if (e.altKey) { + type = "rect"; + if (!addNew) ourRange = new Range(start, start); + start = posFromMouse(cm, e, true, true); + ourIndex = -1; + } else if (type == "double") { + var word = cm.findWordAt(start); + if (cm.display.shift || doc.extend) + ourRange = extendRange(doc, ourRange, word.anchor, word.head); + else + ourRange = word; + } else if (type == "triple") { + var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0))); + if (cm.display.shift || doc.extend) + ourRange = extendRange(doc, ourRange, line.anchor, line.head); + else + ourRange = line; + } else { + ourRange = extendRange(doc, ourRange, start); + } + + if (!addNew) { + ourIndex = 0; + setSelection(doc, new Selection([ourRange], 0), sel_mouse); + startSel = doc.sel; + } else if (ourIndex > -1) { + replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); + } else { + ourIndex = doc.sel.ranges.length; + setSelection(doc, normalizeSelection(doc.sel.ranges.concat([ourRange]), ourIndex), + {scroll: false, origin: "*mouse"}); + } + + var lastPos = start; + function extendTo(pos) { + if (cmp(lastPos, pos) == 0) return; + lastPos = pos; + + if (type == "rect") { + var ranges = [], tabSize = cm.options.tabSize; + var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); + var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); + var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol); + for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); + line <= end; line++) { + var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize); + if (left == right) + ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); + else if (text.length > leftPos) + ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); + } + if (!ranges.length) ranges.push(new Range(start, start)); + setSelection(doc, normalizeSelection(startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), + {origin: "*mouse", scroll: false}); + cm.scrollIntoView(pos); + } else { + var oldRange = ourRange; + var anchor = oldRange.anchor, head = pos; + if (type != "single") { + if (type == "double") + var range = cm.findWordAt(pos); + else + var range = new Range(Pos(pos.line, 0), clipPos(doc, Pos(pos.line + 1, 0))); + if (cmp(range.anchor, anchor) > 0) { + head = range.head; + anchor = minPos(oldRange.from(), range.anchor); + } else { + head = range.anchor; + anchor = maxPos(oldRange.to(), range.head); + } + } + var ranges = startSel.ranges.slice(0); + ranges[ourIndex] = new Range(clipPos(doc, anchor), head); + setSelection(doc, normalizeSelection(ranges, ourIndex), sel_mouse); + } + } + + var editorSize = display.wrapper.getBoundingClientRect(); + // Used to ensure timeout re-tries don't fire when another extend + // happened in the meantime (clearTimeout isn't reliable -- at + // least on Chrome, the timeouts still happen even when cleared, + // if the clear happens after their scheduled firing time). + var counter = 0; + + function extend(e) { + var curCount = ++counter; + var cur = posFromMouse(cm, e, true, type == "rect"); + if (!cur) return; + if (cmp(cur, lastPos) != 0) { + ensureFocus(cm); + extendTo(cur); + var visible = visibleLines(display, doc); + if (cur.line >= visible.to || cur.line < visible.from) + setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150); + } else { + var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; + if (outside) setTimeout(operation(cm, function() { + if (counter != curCount) return; + display.scroller.scrollTop += outside; + extend(e); + }), 50); + } + } + + function done(e) { + counter = Infinity; + e_preventDefault(e); + focusInput(cm); + off(document, "mousemove", move); + off(document, "mouseup", up); + doc.history.lastSelOrigin = null; + } + + var move = operation(cm, function(e) { + if (!e_button(e)) done(e); + else extend(e); + }); + var up = operation(cm, done); + on(document, "mousemove", move); + on(document, "mouseup", up); + } + + // Determines whether an event happened in the gutter, and fires the + // handlers for the corresponding event. + function gutterEvent(cm, e, type, prevent, signalfn) { + try { var mX = e.clientX, mY = e.clientY; } + catch(e) { return false; } + if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) return false; + if (prevent) e_preventDefault(e); + + var display = cm.display; + var lineBox = display.lineDiv.getBoundingClientRect(); + + if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e); + mY -= lineBox.top - display.viewOffset; + + for (var i = 0; i < cm.options.gutters.length; ++i) { + var g = display.gutters.childNodes[i]; + if (g && g.getBoundingClientRect().right >= mX) { + var line = lineAtHeight(cm.doc, mY); + var gutter = cm.options.gutters[i]; + signalfn(cm, type, cm, line, gutter, e); + return e_defaultPrevented(e); + } + } + } + + function clickInGutter(cm, e) { + return gutterEvent(cm, e, "gutterClick", true, signalLater); + } + + // Kludge to work around strange IE behavior where it'll sometimes + // re-fire a series of drag-related events right after the drop (#1551) + var lastDrop = 0; + + function onDrop(e) { + var cm = this; + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) + return; + e_preventDefault(e); + if (ie) lastDrop = +new Date; + var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; + if (!pos || isReadOnly(cm)) return; + // Might be a file drop, in which case we simply extract the text + // and insert it. + if (files && files.length && window.FileReader && window.File) { + var n = files.length, text = Array(n), read = 0; + var loadFile = function(file, i) { + var reader = new FileReader; + reader.onload = operation(cm, function() { + text[i] = reader.result; + if (++read == n) { + pos = clipPos(cm.doc, pos); + var change = {from: pos, to: pos, text: splitLines(text.join("\n")), origin: "paste"}; + makeChange(cm.doc, change); + setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change))); + } + }); + reader.readAsText(file); + }; + for (var i = 0; i < n; ++i) loadFile(files[i], i); + } else { // Normal drop + // Don't do a replace if the drop happened inside of the selected text. + if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) { + cm.state.draggingText(e); + // Ensure the editor is re-focused + setTimeout(bind(focusInput, cm), 20); + return; + } + try { + var text = e.dataTransfer.getData("Text"); + if (text) { + if (cm.state.draggingText && !(mac ? e.metaKey : e.ctrlKey)) + var selected = cm.listSelections(); + setSelectionNoUndo(cm.doc, simpleSelection(pos, pos)); + if (selected) for (var i = 0; i < selected.length; ++i) + replaceRange(cm.doc, "", selected[i].anchor, selected[i].head, "drag"); + cm.replaceSelection(text, "around", "paste"); + focusInput(cm); + } + } + catch(e){} + } + } + + function onDragStart(cm, e) { + if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; } + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return; + + e.dataTransfer.setData("Text", cm.getSelection()); + + // Use dummy image instead of default browsers image. + // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. + if (e.dataTransfer.setDragImage && !safari) { + var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); + img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + if (presto) { + img.width = img.height = 1; + cm.display.wrapper.appendChild(img); + // Force a relayout, or Opera won't use our image for some obscure reason + img._top = img.offsetTop; + } + e.dataTransfer.setDragImage(img, 0, 0); + if (presto) img.parentNode.removeChild(img); + } + } + + // SCROLL EVENTS + + // Sync the scrollable area and scrollbars, ensure the viewport + // covers the visible area. + function setScrollTop(cm, val) { + if (Math.abs(cm.doc.scrollTop - val) < 2) return; + cm.doc.scrollTop = val; + if (!gecko) updateDisplaySimple(cm, {top: val}); + if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val; + if (cm.display.scrollbarV.scrollTop != val) cm.display.scrollbarV.scrollTop = val; + if (gecko) updateDisplaySimple(cm); + startWorker(cm, 100); + } + // Sync scroller and scrollbar, ensure the gutter elements are + // aligned. + function setScrollLeft(cm, val, isScroller) { + if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return; + val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth); + cm.doc.scrollLeft = val; + alignHorizontally(cm); + if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val; + if (cm.display.scrollbarH.scrollLeft != val) cm.display.scrollbarH.scrollLeft = val; + } + + // Since the delta values reported on mouse wheel events are + // unstandardized between browsers and even browser versions, and + // generally horribly unpredictable, this code starts by measuring + // the scroll effect that the first few mouse wheel events have, + // and, from that, detects the way it can convert deltas to pixel + // offsets afterwards. + // + // The reason we want to know the amount a wheel event will scroll + // is that it gives us a chance to update the display before the + // actual scrolling happens, reducing flickering. + + var wheelSamples = 0, wheelPixelsPerUnit = null; + // Fill in a browser-detected starting value on browsers where we + // know one. These don't have to be accurate -- the result of them + // being wrong would just be a slight flicker on the first wheel + // scroll (if it is large enough). + if (ie) wheelPixelsPerUnit = -.53; + else if (gecko) wheelPixelsPerUnit = 15; + else if (chrome) wheelPixelsPerUnit = -.7; + else if (safari) wheelPixelsPerUnit = -1/3; + + function onScrollWheel(cm, e) { + var dx = e.wheelDeltaX, dy = e.wheelDeltaY; + if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail; + if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail; + else if (dy == null) dy = e.wheelDelta; + + var display = cm.display, scroll = display.scroller; + // Quit if there's nothing to scroll here + if (!(dx && scroll.scrollWidth > scroll.clientWidth || + dy && scroll.scrollHeight > scroll.clientHeight)) return; + + // Webkit browsers on OS X abort momentum scrolls when the target + // of the scroll event is removed from the scrollable element. + // This hack (see related code in patchDisplay) makes sure the + // element is kept around. + if (dy && mac && webkit) { + outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) { + for (var i = 0; i < view.length; i++) { + if (view[i].node == cur) { + cm.display.currentWheelTarget = cur; + break outer; + } + } + } + } + + // On some browsers, horizontal scrolling will cause redraws to + // happen before the gutter has been realigned, causing it to + // wriggle around in a most unseemly way. When we have an + // estimated pixels/delta value, we just handle horizontal + // scrolling entirely here. It'll be slightly off from native, but + // better than glitching out. + if (dx && !gecko && !presto && wheelPixelsPerUnit != null) { + if (dy) + setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight))); + setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth))); + e_preventDefault(e); + display.wheelStartX = null; // Abort measurement, if in progress + return; + } + + // 'Project' the visible viewport to cover the area that is being + // scrolled into view (if we know enough to estimate it). + if (dy && wheelPixelsPerUnit != null) { + var pixels = dy * wheelPixelsPerUnit; + var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; + if (pixels < 0) top = Math.max(0, top + pixels - 50); + else bot = Math.min(cm.doc.height, bot + pixels + 50); + updateDisplaySimple(cm, {top: top, bottom: bot}); + } + + if (wheelSamples < 20) { + if (display.wheelStartX == null) { + display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; + display.wheelDX = dx; display.wheelDY = dy; + setTimeout(function() { + if (display.wheelStartX == null) return; + var movedX = scroll.scrollLeft - display.wheelStartX; + var movedY = scroll.scrollTop - display.wheelStartY; + var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || + (movedX && display.wheelDX && movedX / display.wheelDX); + display.wheelStartX = display.wheelStartY = null; + if (!sample) return; + wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); + ++wheelSamples; + }, 200); + } else { + display.wheelDX += dx; display.wheelDY += dy; + } + } + } + + // KEY EVENTS + + // Run a handler that was bound to a key. + function doHandleBinding(cm, bound, dropShift) { + if (typeof bound == "string") { + bound = commands[bound]; + if (!bound) return false; + } + // Ensure previous input has been read, so that the handler sees a + // consistent view of the document + if (cm.display.pollingFast && readInput(cm)) cm.display.pollingFast = false; + var prevShift = cm.display.shift, done = false; + try { + if (isReadOnly(cm)) cm.state.suppressEdits = true; + if (dropShift) cm.display.shift = false; + done = bound(cm) != Pass; + } finally { + cm.display.shift = prevShift; + cm.state.suppressEdits = false; + } + return done; + } + + // Collect the currently active keymaps. + function allKeyMaps(cm) { + var maps = cm.state.keyMaps.slice(0); + if (cm.options.extraKeys) maps.push(cm.options.extraKeys); + maps.push(cm.options.keyMap); + return maps; + } + + var maybeTransition; + // Handle a key from the keydown event. + function handleKeyBinding(cm, e) { + // Handle automatic keymap transitions + var startMap = getKeyMap(cm.options.keyMap), next = startMap.auto; + clearTimeout(maybeTransition); + if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() { + if (getKeyMap(cm.options.keyMap) == startMap) { + cm.options.keyMap = (next.call ? next.call(null, cm) : next); + keyMapChanged(cm); + } + }, 50); + + var name = keyName(e, true), handled = false; + if (!name) return false; + var keymaps = allKeyMaps(cm); + + if (e.shiftKey) { + // First try to resolve full name (including 'Shift-'). Failing + // that, see if there is a cursor-motion command (starting with + // 'go') bound to the keyname without 'Shift-'. + handled = lookupKey("Shift-" + name, keymaps, function(b) {return doHandleBinding(cm, b, true);}) + || lookupKey(name, keymaps, function(b) { + if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion) + return doHandleBinding(cm, b); + }); + } else { + handled = lookupKey(name, keymaps, function(b) { return doHandleBinding(cm, b); }); + } + + if (handled) { + e_preventDefault(e); + restartBlink(cm); + signalLater(cm, "keyHandled", cm, name, e); + } + return handled; + } + + // Handle a key from the keypress event + function handleCharBinding(cm, e, ch) { + var handled = lookupKey("'" + ch + "'", allKeyMaps(cm), + function(b) { return doHandleBinding(cm, b, true); }); + if (handled) { + e_preventDefault(e); + restartBlink(cm); + signalLater(cm, "keyHandled", cm, "'" + ch + "'", e); + } + return handled; + } + + var lastStoppedKey = null; + function onKeyDown(e) { + var cm = this; + ensureFocus(cm); + if (signalDOMEvent(cm, e)) return; + // IE does strange things with escape. + if (ie && ie_version < 11 && e.keyCode == 27) e.returnValue = false; + var code = e.keyCode; + cm.display.shift = code == 16 || e.shiftKey; + var handled = handleKeyBinding(cm, e); + if (presto) { + lastStoppedKey = handled ? code : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) + cm.replaceSelection("", null, "cut"); + } + + // Turn mouse into crosshair when Alt is held on Mac. + if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className)) + showCrossHair(cm); + } + + function showCrossHair(cm) { + var lineDiv = cm.display.lineDiv; + addClass(lineDiv, "CodeMirror-crosshair"); + + function up(e) { + if (e.keyCode == 18 || !e.altKey) { + rmClass(lineDiv, "CodeMirror-crosshair"); + off(document, "keyup", up); + off(document, "mouseover", up); + } + } + on(document, "keyup", up); + on(document, "mouseover", up); + } + + function onKeyUp(e) { + if (e.keyCode == 16) this.doc.sel.shift = false; + signalDOMEvent(this, e); + } + + function onKeyPress(e) { + var cm = this; + if (signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) return; + var keyCode = e.keyCode, charCode = e.charCode; + if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;} + if (((presto && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(cm, e)) return; + var ch = String.fromCharCode(charCode == null ? keyCode : charCode); + if (handleCharBinding(cm, e, ch)) return; + if (ie && ie_version >= 9) cm.display.inputHasSelection = null; + fastPoll(cm); + } + + // FOCUS/BLUR EVENTS + + function onFocus(cm) { + if (cm.options.readOnly == "nocursor") return; + if (!cm.state.focused) { + signal(cm, "focus", cm); + cm.state.focused = true; + addClass(cm.display.wrapper, "CodeMirror-focused"); + // The prevInput test prevents this from firing when a context + // menu is closed (since the resetInput would kill the + // select-all detection hack) + if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) { + resetInput(cm); + if (webkit) setTimeout(bind(resetInput, cm, true), 0); // Issue #1730 + } + } + slowPoll(cm); + restartBlink(cm); + } + function onBlur(cm) { + if (cm.state.focused) { + signal(cm, "blur", cm); + cm.state.focused = false; + rmClass(cm.display.wrapper, "CodeMirror-focused"); + } + clearInterval(cm.display.blinker); + setTimeout(function() {if (!cm.state.focused) cm.display.shift = false;}, 150); + } + + // CONTEXT MENU HANDLING + + // To make the context menu work, we need to briefly unhide the + // textarea (making it as unobtrusive as possible) to let the + // right-click take effect on it. + function onContextMenu(cm, e) { + if (signalDOMEvent(cm, e, "contextmenu")) return; + var display = cm.display; + if (eventInWidget(display, e) || contextMenuInGutter(cm, e)) return; + + var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; + if (!pos || presto) return; // Opera is difficult. + + // Reset the current text selection only if the click is done outside of the selection + // and 'resetSelectionOnContextMenu' option is true. + var reset = cm.options.resetSelectionOnContextMenu; + if (reset && cm.doc.sel.contains(pos) == -1) + operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); + + var oldCSS = display.input.style.cssText; + display.inputDiv.style.position = "absolute"; + display.input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) + + "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: " + + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + + "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; + if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712) + focusInput(cm); + if (webkit) window.scrollTo(null, oldScrollY); + resetInput(cm); + // Adds "Select all" to context menu in FF + if (!cm.somethingSelected()) display.input.value = display.prevInput = " "; + display.selForContextMenu = cm.doc.sel; + clearTimeout(display.detectingSelectAll); + + // Select-all will be greyed out if there's nothing to select, so + // this adds a zero-width space so that we can later check whether + // it got selected. + function prepareSelectAllHack() { + if (display.input.selectionStart != null) { + var selected = cm.somethingSelected(); + var extval = display.input.value = "\u200b" + (selected ? display.input.value : ""); + display.prevInput = selected ? "" : "\u200b"; + display.input.selectionStart = 1; display.input.selectionEnd = extval.length; + // Re-set this, in case some other handler touched the + // selection in the meantime. + display.selForContextMenu = cm.doc.sel; + } + } + function rehide() { + display.inputDiv.style.position = "relative"; + display.input.style.cssText = oldCSS; + if (ie && ie_version < 9) display.scrollbarV.scrollTop = display.scroller.scrollTop = scrollPos; + slowPoll(cm); + + // Try to detect the user choosing select-all + if (display.input.selectionStart != null) { + if (!ie || (ie && ie_version < 9)) prepareSelectAllHack(); + var i = 0, poll = function() { + if (display.selForContextMenu == cm.doc.sel && display.input.selectionStart == 0) + operation(cm, commands.selectAll)(cm); + else if (i++ < 10) display.detectingSelectAll = setTimeout(poll, 500); + else resetInput(cm); + }; + display.detectingSelectAll = setTimeout(poll, 200); + } + } + + if (ie && ie_version >= 9) prepareSelectAllHack(); + if (captureRightClick) { + e_stop(e); + var mouseup = function() { + off(window, "mouseup", mouseup); + setTimeout(rehide, 20); + }; + on(window, "mouseup", mouseup); + } else { + setTimeout(rehide, 50); + } + } + + function contextMenuInGutter(cm, e) { + if (!hasHandler(cm, "gutterContextMenu")) return false; + return gutterEvent(cm, e, "gutterContextMenu", false, signal); + } + + // UPDATING + + // Compute the position of the end of a change (its 'to' property + // refers to the pre-change end). + var changeEnd = CodeMirror.changeEnd = function(change) { + if (!change.text) return change.to; + return Pos(change.from.line + change.text.length - 1, + lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)); + }; + + // Adjust a position to refer to the post-change position of the + // same text, or the end of the change if the change covers it. + function adjustForChange(pos, change) { + if (cmp(pos, change.from) < 0) return pos; + if (cmp(pos, change.to) <= 0) return changeEnd(change); + + var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; + if (pos.line == change.to.line) ch += changeEnd(change).ch - change.to.ch; + return Pos(line, ch); + } + + function computeSelAfterChange(doc, change) { + var out = []; + for (var i = 0; i < doc.sel.ranges.length; i++) { + var range = doc.sel.ranges[i]; + out.push(new Range(adjustForChange(range.anchor, change), + adjustForChange(range.head, change))); + } + return normalizeSelection(out, doc.sel.primIndex); + } + + function offsetPos(pos, old, nw) { + if (pos.line == old.line) + return Pos(nw.line, pos.ch - old.ch + nw.ch); + else + return Pos(nw.line + (pos.line - old.line), pos.ch); + } + + // Used by replaceSelections to allow moving the selection to the + // start or around the replaced test. Hint may be "start" or "around". + function computeReplacedSel(doc, changes, hint) { + var out = []; + var oldPrev = Pos(doc.first, 0), newPrev = oldPrev; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + var from = offsetPos(change.from, oldPrev, newPrev); + var to = offsetPos(changeEnd(change), oldPrev, newPrev); + oldPrev = change.to; + newPrev = to; + if (hint == "around") { + var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0; + out[i] = new Range(inv ? to : from, inv ? from : to); + } else { + out[i] = new Range(from, from); + } + } + return new Selection(out, doc.sel.primIndex); + } + + // Allow "beforeChange" event handlers to influence a change + function filterChange(doc, change, update) { + var obj = { + canceled: false, + from: change.from, + to: change.to, + text: change.text, + origin: change.origin, + cancel: function() { this.canceled = true; } + }; + if (update) obj.update = function(from, to, text, origin) { + if (from) this.from = clipPos(doc, from); + if (to) this.to = clipPos(doc, to); + if (text) this.text = text; + if (origin !== undefined) this.origin = origin; + }; + signal(doc, "beforeChange", doc, obj); + if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj); + + if (obj.canceled) return null; + return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}; + } + + // Apply a change to a document, and add it to the document's + // history, and propagating it to all linked documents. + function makeChange(doc, change, ignoreReadOnly) { + if (doc.cm) { + if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly); + if (doc.cm.state.suppressEdits) return; + } + + if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { + change = filterChange(doc, change, true); + if (!change) return; + } + + // Possibly split or suppress the update based on the presence + // of read-only spans in its range. + var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); + if (split) { + for (var i = split.length - 1; i >= 0; --i) + makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text}); + } else { + makeChangeInner(doc, change); + } + } + + function makeChangeInner(doc, change) { + if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) return; + var selAfter = computeSelAfterChange(doc, change); + addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); + + makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); + var rebased = []; + + linkedDocs(doc, function(doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); + }); + } + + // Revert a change stored in a document's history. + function makeChangeFromHistory(doc, type, allowSelectionOnly) { + if (doc.cm && doc.cm.state.suppressEdits) return; + + var hist = doc.history, event, selAfter = doc.sel; + var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done; + + // Verify that there is a useable event (so that ctrl-z won't + // needlessly clear selection events) + for (var i = 0; i < source.length; i++) { + event = source[i]; + if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges) + break; + } + if (i == source.length) return; + hist.lastOrigin = hist.lastSelOrigin = null; + + for (;;) { + event = source.pop(); + if (event.ranges) { + pushSelectionToHistory(event, dest); + if (allowSelectionOnly && !event.equals(doc.sel)) { + setSelection(doc, event, {clearRedo: false}); + return; + } + selAfter = event; + } + else break; + } + + // Build up a reverse change object to add to the opposite history + // stack (redo when undoing, and vice versa). + var antiChanges = []; + pushSelectionToHistory(selAfter, dest); + dest.push({changes: antiChanges, generation: hist.generation}); + hist.generation = event.generation || ++hist.maxGeneration; + + var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange"); + + for (var i = event.changes.length - 1; i >= 0; --i) { + var change = event.changes[i]; + change.origin = type; + if (filter && !filterChange(doc, change, false)) { + source.length = 0; + return; + } + + antiChanges.push(historyChangeFromChange(doc, change)); + + var after = i ? computeSelAfterChange(doc, change) : lst(source); + makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); + if (!i && doc.cm) doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); + var rebased = []; + + // Propagate to the linked documents + linkedDocs(doc, function(doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); + }); + } + } + + // Sub-views need their line numbers shifted when text is added + // above or below them in the parent document. + function shiftDoc(doc, distance) { + if (distance == 0) return; + doc.first += distance; + doc.sel = new Selection(map(doc.sel.ranges, function(range) { + return new Range(Pos(range.anchor.line + distance, range.anchor.ch), + Pos(range.head.line + distance, range.head.ch)); + }), doc.sel.primIndex); + if (doc.cm) { + regChange(doc.cm, doc.first, doc.first - distance, distance); + for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++) + regLineChange(doc.cm, l, "gutter"); + } + } + + // More lower-level change function, handling only a single document + // (not linked ones). + function makeChangeSingleDoc(doc, change, selAfter, spans) { + if (doc.cm && !doc.cm.curOp) + return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans); + + if (change.to.line < doc.first) { + shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); + return; + } + if (change.from.line > doc.lastLine()) return; + + // Clip the change to the size of this doc + if (change.from.line < doc.first) { + var shift = change.text.length - 1 - (doc.first - change.from.line); + shiftDoc(doc, shift); + change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), + text: [lst(change.text)], origin: change.origin}; + } + var last = doc.lastLine(); + if (change.to.line > last) { + change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), + text: [change.text[0]], origin: change.origin}; + } + + change.removed = getBetween(doc, change.from, change.to); + + if (!selAfter) selAfter = computeSelAfterChange(doc, change); + if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans); + else updateDoc(doc, change, spans); + setSelectionNoUndo(doc, selAfter, sel_dontScroll); + } + + // Handle the interaction of a change to a document with the editor + // that this document is part of. + function makeChangeSingleDocInEditor(cm, change, spans) { + var doc = cm.doc, display = cm.display, from = change.from, to = change.to; + + var recomputeMaxLength = false, checkWidthStart = from.line; + if (!cm.options.lineWrapping) { + checkWidthStart = lineNo(visualLine(getLine(doc, from.line))); + doc.iter(checkWidthStart, to.line + 1, function(line) { + if (line == display.maxLine) { + recomputeMaxLength = true; + return true; + } + }); + } + + if (doc.sel.contains(change.from, change.to) > -1) + signalCursorActivity(cm); + + updateDoc(doc, change, spans, estimateHeight(cm)); + + if (!cm.options.lineWrapping) { + doc.iter(checkWidthStart, from.line + change.text.length, function(line) { + var len = lineLength(line); + if (len > display.maxLineLength) { + display.maxLine = line; + display.maxLineLength = len; + display.maxLineChanged = true; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) cm.curOp.updateMaxLine = true; + } + + // Adjust frontier, schedule worker + doc.frontier = Math.min(doc.frontier, from.line); + startWorker(cm, 400); + + var lendiff = change.text.length - (to.line - from.line) - 1; + // Remember that these lines changed, for updating the display + if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change)) + regLineChange(cm, from.line, "text"); + else + regChange(cm, from.line, to.line + 1, lendiff); + + var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change"); + if (changeHandler || changesHandler) { + var obj = { + from: from, to: to, + text: change.text, + removed: change.removed, + origin: change.origin + }; + if (changeHandler) signalLater(cm, "change", cm, obj); + if (changesHandler) (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); + } + cm.display.selForContextMenu = null; + } + + function replaceRange(doc, code, from, to, origin) { + if (!to) to = from; + if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; } + if (typeof code == "string") code = splitLines(code); + makeChange(doc, {from: from, to: to, text: code, origin: origin}); + } + + // SCROLLING THINGS INTO VIEW + + // If an editor sits on the top or bottom of the window, partially + // scrolled out of view, this ensures that the cursor is visible. + function maybeScrollWindow(cm, coords) { + var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null; + if (coords.top + box.top < 0) doScroll = true; + else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false; + if (doScroll != null && !phantom) { + var scrollNode = elt("div", "\u200b", null, "position: absolute; top: " + + (coords.top - display.viewOffset - paddingTop(cm.display)) + "px; height: " + + (coords.bottom - coords.top + scrollerCutOff) + "px; left: " + + coords.left + "px; width: 2px;"); + cm.display.lineSpace.appendChild(scrollNode); + scrollNode.scrollIntoView(doScroll); + cm.display.lineSpace.removeChild(scrollNode); + } + } + + // Scroll a given position into view (immediately), verifying that + // it actually became visible (as line heights are accurately + // measured, the position of something may 'drift' during drawing). + function scrollPosIntoView(cm, pos, end, margin) { + if (margin == null) margin = 0; + for (var limit = 0; limit < 5; limit++) { + var changed = false, coords = cursorCoords(cm, pos); + var endCoords = !end || end == pos ? coords : cursorCoords(cm, end); + var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left), + Math.min(coords.top, endCoords.top) - margin, + Math.max(coords.left, endCoords.left), + Math.max(coords.bottom, endCoords.bottom) + margin); + var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; + if (scrollPos.scrollTop != null) { + setScrollTop(cm, scrollPos.scrollTop); + if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true; + } + if (scrollPos.scrollLeft != null) { + setScrollLeft(cm, scrollPos.scrollLeft); + if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true; + } + if (!changed) return coords; + } + } + + // Scroll a given set of coordinates into view (immediately). + function scrollIntoView(cm, x1, y1, x2, y2) { + var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2); + if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop); + if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft); + } + + // Calculate a new scroll position needed to scroll the given + // rectangle into view. Returns an object with scrollTop and + // scrollLeft properties. When these are undefined, the + // vertical/horizontal position does not need to be adjusted. + function calculateScrollPos(cm, x1, y1, x2, y2) { + var display = cm.display, snapMargin = textHeight(cm.display); + if (y1 < 0) y1 = 0; + var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop; + var screen = display.scroller.clientHeight - scrollerCutOff, result = {}; + if (y2 - y1 > screen) y2 = y1 + screen; + var docBottom = cm.doc.height + paddingVert(display); + var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin; + if (y1 < screentop) { + result.scrollTop = atTop ? 0 : y1; + } else if (y2 > screentop + screen) { + var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen); + if (newTop != screentop) result.scrollTop = newTop; + } + + var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft; + var screenw = display.scroller.clientWidth - scrollerCutOff - display.gutters.offsetWidth; + var tooWide = x2 - x1 > screenw; + if (tooWide) x2 = x1 + screenw; + if (x1 < 10) + result.scrollLeft = 0; + else if (x1 < screenleft) + result.scrollLeft = Math.max(0, x1 - (tooWide ? 0 : 10)); + else if (x2 > screenw + screenleft - 3) + result.scrollLeft = x2 + (tooWide ? 0 : 10) - screenw; + + return result; + } + + // Store a relative adjustment to the scroll position in the current + // operation (to be applied when the operation finishes). + function addToScrollPos(cm, left, top) { + if (left != null || top != null) resolveScrollToPos(cm); + if (left != null) + cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left; + if (top != null) + cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; + } + + // Make sure that at the end of the operation the current cursor is + // shown. + function ensureCursorVisible(cm) { + resolveScrollToPos(cm); + var cur = cm.getCursor(), from = cur, to = cur; + if (!cm.options.lineWrapping) { + from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur; + to = Pos(cur.line, cur.ch + 1); + } + cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin, isCursor: true}; + } + + // When an operation has its scrollToPos property set, and another + // scroll action is applied before the end of the operation, this + // 'simulates' scrolling that position into view in a cheap way, so + // that the effect of intermediate scroll commands is not ignored. + function resolveScrollToPos(cm) { + var range = cm.curOp.scrollToPos; + if (range) { + cm.curOp.scrollToPos = null; + var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to); + var sPos = calculateScrollPos(cm, Math.min(from.left, to.left), + Math.min(from.top, to.top) - range.margin, + Math.max(from.right, to.right), + Math.max(from.bottom, to.bottom) + range.margin); + cm.scrollTo(sPos.scrollLeft, sPos.scrollTop); + } + } + + // API UTILITIES + + // Indent the given line. The how parameter can be "smart", + // "add"/null, "subtract", or "prev". When aggressive is false + // (typically set to true for forced single-line indents), empty + // lines are not indented, and places where the mode returns Pass + // are left alone. + function indentLine(cm, n, how, aggressive) { + var doc = cm.doc, state; + if (how == null) how = "add"; + if (how == "smart") { + // Fall back to "prev" when the mode doesn't have an indentation + // method. + if (!doc.mode.indent) how = "prev"; + else state = getStateBefore(cm, n); + } + + var tabSize = cm.options.tabSize; + var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); + if (line.stateAfter) line.stateAfter = null; + var curSpaceString = line.text.match(/^\s*/)[0], indentation; + if (!aggressive && !/\S/.test(line.text)) { + indentation = 0; + how = "not"; + } else if (how == "smart") { + indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); + if (indentation == Pass || indentation > 150) { + if (!aggressive) return; + how = "prev"; + } + } + if (how == "prev") { + if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize); + else indentation = 0; + } else if (how == "add") { + indentation = curSpace + cm.options.indentUnit; + } else if (how == "subtract") { + indentation = curSpace - cm.options.indentUnit; + } else if (typeof how == "number") { + indentation = curSpace + how; + } + indentation = Math.max(0, indentation); + + var indentString = "", pos = 0; + if (cm.options.indentWithTabs) + for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} + if (pos < indentation) indentString += spaceStr(indentation - pos); + + if (indentString != curSpaceString) { + replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); + } else { + // Ensure that, if the cursor was in the whitespace at the start + // of the line, it is moved to the end of that space. + for (var i = 0; i < doc.sel.ranges.length; i++) { + var range = doc.sel.ranges[i]; + if (range.head.line == n && range.head.ch < curSpaceString.length) { + var pos = Pos(n, curSpaceString.length); + replaceOneSelection(doc, i, new Range(pos, pos)); + break; + } + } + } + line.stateAfter = null; + } + + // Utility for applying a change to a line by handle or number, + // returning the number and optionally registering the line as + // changed. + function changeLine(doc, handle, changeType, op) { + var no = handle, line = handle; + if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle)); + else no = lineNo(handle); + if (no == null) return null; + if (op(line, no) && doc.cm) regLineChange(doc.cm, no, changeType); + return line; + } + + // Helper for deleting text near the selection(s), used to implement + // backspace, delete, and similar functionality. + function deleteNearSelection(cm, compute) { + var ranges = cm.doc.sel.ranges, kill = []; + // Build up a set of ranges to kill first, merging overlapping + // ranges. + for (var i = 0; i < ranges.length; i++) { + var toKill = compute(ranges[i]); + while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { + var replaced = kill.pop(); + if (cmp(replaced.from, toKill.from) < 0) { + toKill.from = replaced.from; + break; + } + } + kill.push(toKill); + } + // Next, remove those actual ranges. + runInOp(cm, function() { + for (var i = kill.length - 1; i >= 0; i--) + replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); + ensureCursorVisible(cm); + }); + } + + // Used for horizontal relative motion. Dir is -1 or 1 (left or + // right), unit can be "char", "column" (like char, but doesn't + // cross line boundaries), "word" (across next word), or "group" (to + // the start of next group of word or non-word-non-whitespace + // chars). The visually param controls whether, in right-to-left + // text, direction 1 means to move towards the next index in the + // string, or towards the character to the right of the current + // position. The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosH(doc, pos, dir, unit, visually) { + var line = pos.line, ch = pos.ch, origDir = dir; + var lineObj = getLine(doc, line); + var possible = true; + function findNextLine() { + var l = line + dir; + if (l < doc.first || l >= doc.first + doc.size) return (possible = false); + line = l; + return lineObj = getLine(doc, l); + } + function moveOnce(boundToLine) { + var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true); + if (next == null) { + if (!boundToLine && findNextLine()) { + if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj); + else ch = dir < 0 ? lineObj.text.length : 0; + } else return (possible = false); + } else ch = next; + return true; + } + + if (unit == "char") moveOnce(); + else if (unit == "column") moveOnce(true); + else if (unit == "word" || unit == "group") { + var sawType = null, group = unit == "group"; + var helper = doc.cm && doc.cm.getHelper(pos, "wordChars"); + for (var first = true;; first = false) { + if (dir < 0 && !moveOnce(!first)) break; + var cur = lineObj.text.charAt(ch) || "\n"; + var type = isWordChar(cur, helper) ? "w" + : group && cur == "\n" ? "n" + : !group || /\s/.test(cur) ? null + : "p"; + if (group && !first && !type) type = "s"; + if (sawType && sawType != type) { + if (dir < 0) {dir = 1; moveOnce();} + break; + } + + if (type) sawType = type; + if (dir > 0 && !moveOnce(!first)) break; + } + } + var result = skipAtomic(doc, Pos(line, ch), origDir, true); + if (!possible) result.hitSide = true; + return result; + } + + // For relative vertical movement. Dir may be -1 or 1. Unit can be + // "page" or "line". The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosV(cm, pos, dir, unit) { + var doc = cm.doc, x = pos.left, y; + if (unit == "page") { + var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); + y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display)); + } else if (unit == "line") { + y = dir > 0 ? pos.bottom + 3 : pos.top - 3; + } + for (;;) { + var target = coordsChar(cm, x, y); + if (!target.outside) break; + if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; } + y += dir * 5; + } + return target; + } + + // EDITOR METHODS + + // The publicly visible API. Note that methodOp(f) means + // 'wrap f in an operation, performed on its `this` parameter'. + + // This is not the complete set of editor methods. Most of the + // methods defined on the Doc type are also injected into + // CodeMirror.prototype, for backwards compatibility and + // convenience. + + CodeMirror.prototype = { + constructor: CodeMirror, + focus: function(){window.focus(); focusInput(this); fastPoll(this);}, + + setOption: function(option, value) { + var options = this.options, old = options[option]; + if (options[option] == value && option != "mode") return; + options[option] = value; + if (optionHandlers.hasOwnProperty(option)) + operation(this, optionHandlers[option])(this, value, old); + }, + + getOption: function(option) {return this.options[option];}, + getDoc: function() {return this.doc;}, + + addKeyMap: function(map, bottom) { + this.state.keyMaps[bottom ? "push" : "unshift"](map); + }, + removeKeyMap: function(map) { + var maps = this.state.keyMaps; + for (var i = 0; i < maps.length; ++i) + if (maps[i] == map || (typeof maps[i] != "string" && maps[i].name == map)) { + maps.splice(i, 1); + return true; + } + }, + + addOverlay: methodOp(function(spec, options) { + var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); + if (mode.startState) throw new Error("Overlays may not be stateful."); + this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque}); + this.state.modeGen++; + regChange(this); + }), + removeOverlay: methodOp(function(spec) { + var overlays = this.state.overlays; + for (var i = 0; i < overlays.length; ++i) { + var cur = overlays[i].modeSpec; + if (cur == spec || typeof spec == "string" && cur.name == spec) { + overlays.splice(i, 1); + this.state.modeGen++; + regChange(this); + return; + } + } + }), + + indentLine: methodOp(function(n, dir, aggressive) { + if (typeof dir != "string" && typeof dir != "number") { + if (dir == null) dir = this.options.smartIndent ? "smart" : "prev"; + else dir = dir ? "add" : "subtract"; + } + if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive); + }), + indentSelection: methodOp(function(how) { + var ranges = this.doc.sel.ranges, end = -1; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (!range.empty()) { + var from = range.from(), to = range.to(); + var start = Math.max(end, from.line); + end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1; + for (var j = start; j < end; ++j) + indentLine(this, j, how); + var newRanges = this.doc.sel.ranges; + if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0) + replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); + } else if (range.head.line > end) { + indentLine(this, range.head.line, how, true); + end = range.head.line; + if (i == this.doc.sel.primIndex) ensureCursorVisible(this); + } + } + }), + + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function(pos, precise) { + var doc = this.doc; + pos = clipPos(doc, pos); + var state = getStateBefore(this, pos.line, precise), mode = this.doc.mode; + var line = getLine(doc, pos.line); + var stream = new StringStream(line.text, this.options.tabSize); + while (stream.pos < pos.ch && !stream.eol()) { + stream.start = stream.pos; + var style = readToken(mode, stream, state); + } + return {start: stream.start, + end: stream.pos, + string: stream.current(), + type: style || null, + state: state}; + }, + + getTokenTypeAt: function(pos) { + pos = clipPos(this.doc, pos); + var styles = getLineStyles(this, getLine(this.doc, pos.line)); + var before = 0, after = (styles.length - 1) / 2, ch = pos.ch; + var type; + if (ch == 0) type = styles[2]; + else for (;;) { + var mid = (before + after) >> 1; + if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid; + else if (styles[mid * 2 + 1] < ch) before = mid + 1; + else { type = styles[mid * 2 + 2]; break; } + } + var cut = type ? type.indexOf("cm-overlay ") : -1; + return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1); + }, + + getModeAt: function(pos) { + var mode = this.doc.mode; + if (!mode.innerMode) return mode; + return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode; + }, + + getHelper: function(pos, type) { + return this.getHelpers(pos, type)[0]; + }, + + getHelpers: function(pos, type) { + var found = []; + if (!helpers.hasOwnProperty(type)) return helpers; + var help = helpers[type], mode = this.getModeAt(pos); + if (typeof mode[type] == "string") { + if (help[mode[type]]) found.push(help[mode[type]]); + } else if (mode[type]) { + for (var i = 0; i < mode[type].length; i++) { + var val = help[mode[type][i]]; + if (val) found.push(val); + } + } else if (mode.helperType && help[mode.helperType]) { + found.push(help[mode.helperType]); + } else if (help[mode.name]) { + found.push(help[mode.name]); + } + for (var i = 0; i < help._global.length; i++) { + var cur = help._global[i]; + if (cur.pred(mode, this) && indexOf(found, cur.val) == -1) + found.push(cur.val); + } + return found; + }, + + getStateAfter: function(line, precise) { + var doc = this.doc; + line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); + return getStateBefore(this, line + 1, precise); + }, + + cursorCoords: function(start, mode) { + var pos, range = this.doc.sel.primary(); + if (start == null) pos = range.head; + else if (typeof start == "object") pos = clipPos(this.doc, start); + else pos = start ? range.from() : range.to(); + return cursorCoords(this, pos, mode || "page"); + }, + + charCoords: function(pos, mode) { + return charCoords(this, clipPos(this.doc, pos), mode || "page"); + }, + + coordsChar: function(coords, mode) { + coords = fromCoordSystem(this, coords, mode || "page"); + return coordsChar(this, coords.left, coords.top); + }, + + lineAtHeight: function(height, mode) { + height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top; + return lineAtHeight(this.doc, height + this.display.viewOffset); + }, + heightAtLine: function(line, mode) { + var end = false, last = this.doc.first + this.doc.size - 1; + if (line < this.doc.first) line = this.doc.first; + else if (line > last) { line = last; end = true; } + var lineObj = getLine(this.doc, line); + return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page").top + + (end ? this.doc.height - heightAtLine(lineObj) : 0); + }, + + defaultTextHeight: function() { return textHeight(this.display); }, + defaultCharWidth: function() { return charWidth(this.display); }, + + setGutterMarker: methodOp(function(line, gutterID, value) { + return changeLine(this.doc, line, "gutter", function(line) { + var markers = line.gutterMarkers || (line.gutterMarkers = {}); + markers[gutterID] = value; + if (!value && isEmpty(markers)) line.gutterMarkers = null; + return true; + }); + }), + + clearGutter: methodOp(function(gutterID) { + var cm = this, doc = cm.doc, i = doc.first; + doc.iter(function(line) { + if (line.gutterMarkers && line.gutterMarkers[gutterID]) { + line.gutterMarkers[gutterID] = null; + regLineChange(cm, i, "gutter"); + if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null; + } + ++i; + }); + }), + + addLineWidget: methodOp(function(handle, node, options) { + return addLineWidget(this, handle, node, options); + }), + + removeLineWidget: function(widget) { widget.clear(); }, + + lineInfo: function(line) { + if (typeof line == "number") { + if (!isLine(this.doc, line)) return null; + var n = line; + line = getLine(this.doc, line); + if (!line) return null; + } else { + var n = lineNo(line); + if (n == null) return null; + } + return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, + textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, + widgets: line.widgets}; + }, + + getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo};}, + + addWidget: function(pos, node, scroll, vert, horiz) { + var display = this.display; + pos = cursorCoords(this, clipPos(this.doc, pos)); + var top = pos.bottom, left = pos.left; + node.style.position = "absolute"; + display.sizer.appendChild(node); + if (vert == "over") { + top = pos.top; + } else if (vert == "above" || vert == "near") { + var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), + hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); + // Default to positioning above (if specified and possible); otherwise default to positioning below + if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) + top = pos.top - node.offsetHeight; + else if (pos.bottom + node.offsetHeight <= vspace) + top = pos.bottom; + if (left + node.offsetWidth > hspace) + left = hspace - node.offsetWidth; + } + node.style.top = top + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = display.sizer.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") left = 0; + else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2; + node.style.left = left + "px"; + } + if (scroll) + scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight); + }, + + triggerOnKeyDown: methodOp(onKeyDown), + triggerOnKeyPress: methodOp(onKeyPress), + triggerOnKeyUp: onKeyUp, + + execCommand: function(cmd) { + if (commands.hasOwnProperty(cmd)) + return commands[cmd](this); + }, + + findPosH: function(from, amount, unit, visually) { + var dir = 1; + if (amount < 0) { dir = -1; amount = -amount; } + for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { + cur = findPosH(this.doc, cur, dir, unit, visually); + if (cur.hitSide) break; + } + return cur; + }, + + moveH: methodOp(function(dir, unit) { + var cm = this; + cm.extendSelectionsBy(function(range) { + if (cm.display.shift || cm.doc.extend || range.empty()) + return findPosH(cm.doc, range.head, dir, unit, cm.options.rtlMoveVisually); + else + return dir < 0 ? range.from() : range.to(); + }, sel_move); + }), + + deleteH: methodOp(function(dir, unit) { + var sel = this.doc.sel, doc = this.doc; + if (sel.somethingSelected()) + doc.replaceSelection("", null, "+delete"); + else + deleteNearSelection(this, function(range) { + var other = findPosH(doc, range.head, dir, unit, false); + return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}; + }); + }), + + findPosV: function(from, amount, unit, goalColumn) { + var dir = 1, x = goalColumn; + if (amount < 0) { dir = -1; amount = -amount; } + for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { + var coords = cursorCoords(this, cur, "div"); + if (x == null) x = coords.left; + else coords.left = x; + cur = findPosV(this, coords, dir, unit); + if (cur.hitSide) break; + } + return cur; + }, + + moveV: methodOp(function(dir, unit) { + var cm = this, doc = this.doc, goals = []; + var collapse = !cm.display.shift && !doc.extend && doc.sel.somethingSelected(); + doc.extendSelectionsBy(function(range) { + if (collapse) + return dir < 0 ? range.from() : range.to(); + var headPos = cursorCoords(cm, range.head, "div"); + if (range.goalColumn != null) headPos.left = range.goalColumn; + goals.push(headPos.left); + var pos = findPosV(cm, headPos, dir, unit); + if (unit == "page" && range == doc.sel.primary()) + addToScrollPos(cm, null, charCoords(cm, pos, "div").top - headPos.top); + return pos; + }, sel_move); + if (goals.length) for (var i = 0; i < doc.sel.ranges.length; i++) + doc.sel.ranges[i].goalColumn = goals[i]; + }), + + // Find the word at the given position (as returned by coordsChar). + findWordAt: function(pos) { + var doc = this.doc, line = getLine(doc, pos.line).text; + var start = pos.ch, end = pos.ch; + if (line) { + var helper = this.getHelper(pos, "wordChars"); + if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end; + var startChar = line.charAt(start); + var check = isWordChar(startChar, helper) + ? function(ch) { return isWordChar(ch, helper); } + : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);} + : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);}; + while (start > 0 && check(line.charAt(start - 1))) --start; + while (end < line.length && check(line.charAt(end))) ++end; + } + return new Range(Pos(pos.line, start), Pos(pos.line, end)); + }, + + toggleOverwrite: function(value) { + if (value != null && value == this.state.overwrite) return; + if (this.state.overwrite = !this.state.overwrite) + addClass(this.display.cursorDiv, "CodeMirror-overwrite"); + else + rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); + + signal(this, "overwriteToggle", this, this.state.overwrite); + }, + hasFocus: function() { return activeElt() == this.display.input; }, + + scrollTo: methodOp(function(x, y) { + if (x != null || y != null) resolveScrollToPos(this); + if (x != null) this.curOp.scrollLeft = x; + if (y != null) this.curOp.scrollTop = y; + }), + getScrollInfo: function() { + var scroller = this.display.scroller, co = scrollerCutOff; + return {left: scroller.scrollLeft, top: scroller.scrollTop, + height: scroller.scrollHeight - co, width: scroller.scrollWidth - co, + clientHeight: scroller.clientHeight - co, clientWidth: scroller.clientWidth - co}; + }, + + scrollIntoView: methodOp(function(range, margin) { + if (range == null) { + range = {from: this.doc.sel.primary().head, to: null}; + if (margin == null) margin = this.options.cursorScrollMargin; + } else if (typeof range == "number") { + range = {from: Pos(range, 0), to: null}; + } else if (range.from == null) { + range = {from: range, to: null}; + } + if (!range.to) range.to = range.from; + range.margin = margin || 0; + + if (range.from.line != null) { + resolveScrollToPos(this); + this.curOp.scrollToPos = range; + } else { + var sPos = calculateScrollPos(this, Math.min(range.from.left, range.to.left), + Math.min(range.from.top, range.to.top) - range.margin, + Math.max(range.from.right, range.to.right), + Math.max(range.from.bottom, range.to.bottom) + range.margin); + this.scrollTo(sPos.scrollLeft, sPos.scrollTop); + } + }), + + setSize: methodOp(function(width, height) { + var cm = this; + function interpret(val) { + return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; + } + if (width != null) cm.display.wrapper.style.width = interpret(width); + if (height != null) cm.display.wrapper.style.height = interpret(height); + if (cm.options.lineWrapping) clearLineMeasurementCache(this); + var lineNo = cm.display.viewFrom; + cm.doc.iter(lineNo, cm.display.viewTo, function(line) { + if (line.widgets) for (var i = 0; i < line.widgets.length; i++) + if (line.widgets[i].noHScroll) { regLineChange(cm, lineNo, "widget"); break; } + ++lineNo; + }); + cm.curOp.forceUpdate = true; + signal(cm, "refresh", this); + }), + + operation: function(f){return runInOp(this, f);}, + + refresh: methodOp(function() { + var oldHeight = this.display.cachedTextHeight; + regChange(this); + this.curOp.forceUpdate = true; + clearCaches(this); + this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop); + updateGutterSpace(this); + if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5) + estimateLineHeights(this); + signal(this, "refresh", this); + }), + + swapDoc: methodOp(function(doc) { + var old = this.doc; + old.cm = null; + attachDoc(this, doc); + clearCaches(this); + resetInput(this); + this.scrollTo(doc.scrollLeft, doc.scrollTop); + this.curOp.forceScroll = true; + signalLater(this, "swapDoc", this, old); + return old; + }), + + getInputField: function(){return this.display.input;}, + getWrapperElement: function(){return this.display.wrapper;}, + getScrollerElement: function(){return this.display.scroller;}, + getGutterElement: function(){return this.display.gutters;} + }; + eventMixin(CodeMirror); + + // OPTION DEFAULTS + + // The default configuration options. + var defaults = CodeMirror.defaults = {}; + // Functions to run when options are changed. + var optionHandlers = CodeMirror.optionHandlers = {}; + + function option(name, deflt, handle, notOnInit) { + CodeMirror.defaults[name] = deflt; + if (handle) optionHandlers[name] = + notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle; + } + + // Passed to option handlers when there is no old value. + var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}}; + + // These two are, on init, called from the constructor because they + // have to be initialized before the editor can start at all. + option("value", "", function(cm, val) { + cm.setValue(val); + }, true); + option("mode", null, function(cm, val) { + cm.doc.modeOption = val; + loadMode(cm); + }, true); + + option("indentUnit", 2, loadMode, true); + option("indentWithTabs", false); + option("smartIndent", true); + option("tabSize", 4, function(cm) { + resetModeState(cm); + clearCaches(cm); + regChange(cm); + }, true); + option("specialChars", /[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(cm, val) { + cm.options.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g"); + cm.refresh(); + }, true); + option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true); + option("electricChars", true); + option("rtlMoveVisually", !windows); + option("wholeLineUpdateBefore", true); + + option("theme", "default", function(cm) { + themeChanged(cm); + guttersChanged(cm); + }, true); + option("keyMap", "default", keyMapChanged); + option("extraKeys", null); + + option("lineWrapping", false, wrappingChanged, true); + option("gutters", [], function(cm) { + setGuttersForLineNumbers(cm.options); + guttersChanged(cm); + }, true); + option("fixedGutter", true, function(cm, val) { + cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; + cm.refresh(); + }, true); + option("coverGutterNextToScrollbar", false, updateScrollbars, true); + option("lineNumbers", false, function(cm) { + setGuttersForLineNumbers(cm.options); + guttersChanged(cm); + }, true); + option("firstLineNumber", 1, guttersChanged, true); + option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true); + option("showCursorWhenSelecting", false, updateSelection, true); + + option("resetSelectionOnContextMenu", true); + + option("readOnly", false, function(cm, val) { + if (val == "nocursor") { + onBlur(cm); + cm.display.input.blur(); + cm.display.disabled = true; + } else { + cm.display.disabled = false; + if (!val) resetInput(cm); + } + }); + option("disableInput", false, function(cm, val) {if (!val) resetInput(cm);}, true); + option("dragDrop", true); + + option("cursorBlinkRate", 530); + option("cursorScrollMargin", 0); + option("cursorHeight", 1, updateSelection, true); + option("singleCursorHeightPerLine", true, updateSelection, true); + option("workTime", 100); + option("workDelay", 100); + option("flattenSpans", true, resetModeState, true); + option("addModeClass", false, resetModeState, true); + option("pollInterval", 100); + option("undoDepth", 200, function(cm, val){cm.doc.history.undoDepth = val;}); + option("historyEventDelay", 1250); + option("viewportMargin", 10, function(cm){cm.refresh();}, true); + option("maxHighlightLength", 10000, resetModeState, true); + option("moveInputWithCursor", true, function(cm, val) { + if (!val) cm.display.inputDiv.style.top = cm.display.inputDiv.style.left = 0; + }); + + option("tabindex", null, function(cm, val) { + cm.display.input.tabIndex = val || ""; + }); + option("autofocus", null); + + // MODE DEFINITION AND QUERYING + + // Known modes, by name and by MIME + var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + CodeMirror.defineMode = function(name, mode) { + if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name; + if (arguments.length > 2) + mode.dependencies = Array.prototype.slice.call(arguments, 2); + modes[name] = mode; + }; + + CodeMirror.defineMIME = function(mime, spec) { + mimeModes[mime] = spec; + }; + + // Given a MIME type, a {name, ...options} config object, or a name + // string, return a mode config object. + CodeMirror.resolveMode = function(spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) { + spec = mimeModes[spec]; + } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) { + var found = mimeModes[spec.name]; + if (typeof found == "string") found = {name: found}; + spec = createObj(found, spec); + spec.name = found.name; + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) { + return CodeMirror.resolveMode("application/xml"); + } + if (typeof spec == "string") return {name: spec}; + else return spec || {name: "null"}; + }; + + // Given a mode spec (anything that resolveMode accepts), find and + // initialize an actual mode object. + CodeMirror.getMode = function(options, spec) { + var spec = CodeMirror.resolveMode(spec); + var mfactory = modes[spec.name]; + if (!mfactory) return CodeMirror.getMode(options, "text/plain"); + var modeObj = mfactory(options, spec); + if (modeExtensions.hasOwnProperty(spec.name)) { + var exts = modeExtensions[spec.name]; + for (var prop in exts) { + if (!exts.hasOwnProperty(prop)) continue; + if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop]; + modeObj[prop] = exts[prop]; + } + } + modeObj.name = spec.name; + if (spec.helperType) modeObj.helperType = spec.helperType; + if (spec.modeProps) for (var prop in spec.modeProps) + modeObj[prop] = spec.modeProps[prop]; + + return modeObj; + }; + + // Minimal default mode. + CodeMirror.defineMode("null", function() { + return {token: function(stream) {stream.skipToEnd();}}; + }); + CodeMirror.defineMIME("text/plain", "null"); + + // This can be used to attach properties to mode objects from + // outside the actual mode definition. + var modeExtensions = CodeMirror.modeExtensions = {}; + CodeMirror.extendMode = function(mode, properties) { + var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); + copyObj(properties, exts); + }; + + // EXTENSIONS + + CodeMirror.defineExtension = function(name, func) { + CodeMirror.prototype[name] = func; + }; + CodeMirror.defineDocExtension = function(name, func) { + Doc.prototype[name] = func; + }; + CodeMirror.defineOption = option; + + var initHooks = []; + CodeMirror.defineInitHook = function(f) {initHooks.push(f);}; + + var helpers = CodeMirror.helpers = {}; + CodeMirror.registerHelper = function(type, name, value) { + if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {_global: []}; + helpers[type][name] = value; + }; + CodeMirror.registerGlobalHelper = function(type, name, predicate, value) { + CodeMirror.registerHelper(type, name, value); + helpers[type]._global.push({pred: predicate, val: value}); + }; + + // MODE STATE HANDLING + + // Utility functions for working with state. Exported because nested + // modes need to do this for their inner modes. + + var copyState = CodeMirror.copyState = function(mode, state) { + if (state === true) return state; + if (mode.copyState) return mode.copyState(state); + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) val = val.concat([]); + nstate[n] = val; + } + return nstate; + }; + + var startState = CodeMirror.startState = function(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true; + }; + + // Given a mode and a state (for that mode), find the inner mode and + // state at the position that the state refers to. + CodeMirror.innerMode = function(mode, state) { + while (mode.innerMode) { + var info = mode.innerMode(state); + if (!info || info.mode == mode) break; + state = info.state; + mode = info.mode; + } + return info || {mode: mode, state: state}; + }; + + // STANDARD COMMANDS + + // Commands are parameter-less actions that can be performed on an + // editor, mostly used for keybindings. + var commands = CodeMirror.commands = { + selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);}, + singleSelection: function(cm) { + cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); + }, + killLine: function(cm) { + deleteNearSelection(cm, function(range) { + if (range.empty()) { + var len = getLine(cm.doc, range.head.line).text.length; + if (range.head.ch == len && range.head.line < cm.lastLine()) + return {from: range.head, to: Pos(range.head.line + 1, 0)}; + else + return {from: range.head, to: Pos(range.head.line, len)}; + } else { + return {from: range.from(), to: range.to()}; + } + }); + }, + deleteLine: function(cm) { + deleteNearSelection(cm, function(range) { + return {from: Pos(range.from().line, 0), + to: clipPos(cm.doc, Pos(range.to().line + 1, 0))}; + }); + }, + delLineLeft: function(cm) { + deleteNearSelection(cm, function(range) { + return {from: Pos(range.from().line, 0), to: range.from()}; + }); + }, + delWrappedLineLeft: function(cm) { + deleteNearSelection(cm, function(range) { + var top = cm.charCoords(range.head, "div").top + 5; + var leftPos = cm.coordsChar({left: 0, top: top}, "div"); + return {from: leftPos, to: range.from()}; + }); + }, + delWrappedLineRight: function(cm) { + deleteNearSelection(cm, function(range) { + var top = cm.charCoords(range.head, "div").top + 5; + var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); + return {from: range.from(), to: rightPos }; + }); + }, + undo: function(cm) {cm.undo();}, + redo: function(cm) {cm.redo();}, + undoSelection: function(cm) {cm.undoSelection();}, + redoSelection: function(cm) {cm.redoSelection();}, + goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));}, + goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));}, + goLineStart: function(cm) { + cm.extendSelectionsBy(function(range) { return lineStart(cm, range.head.line); }, + {origin: "+move", bias: 1}); + }, + goLineStartSmart: function(cm) { + cm.extendSelectionsBy(function(range) { + return lineStartSmart(cm, range.head); + }, {origin: "+move", bias: 1}); + }, + goLineEnd: function(cm) { + cm.extendSelectionsBy(function(range) { return lineEnd(cm, range.head.line); }, + {origin: "+move", bias: -1}); + }, + goLineRight: function(cm) { + cm.extendSelectionsBy(function(range) { + var top = cm.charCoords(range.head, "div").top + 5; + return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); + }, sel_move); + }, + goLineLeft: function(cm) { + cm.extendSelectionsBy(function(range) { + var top = cm.charCoords(range.head, "div").top + 5; + return cm.coordsChar({left: 0, top: top}, "div"); + }, sel_move); + }, + goLineLeftSmart: function(cm) { + cm.extendSelectionsBy(function(range) { + var top = cm.charCoords(range.head, "div").top + 5; + var pos = cm.coordsChar({left: 0, top: top}, "div"); + if (pos.ch < cm.getLine(pos.line).search(/\S/)) return lineStartSmart(cm, range.head); + return pos; + }, sel_move); + }, + goLineUp: function(cm) {cm.moveV(-1, "line");}, + goLineDown: function(cm) {cm.moveV(1, "line");}, + goPageUp: function(cm) {cm.moveV(-1, "page");}, + goPageDown: function(cm) {cm.moveV(1, "page");}, + goCharLeft: function(cm) {cm.moveH(-1, "char");}, + goCharRight: function(cm) {cm.moveH(1, "char");}, + goColumnLeft: function(cm) {cm.moveH(-1, "column");}, + goColumnRight: function(cm) {cm.moveH(1, "column");}, + goWordLeft: function(cm) {cm.moveH(-1, "word");}, + goGroupRight: function(cm) {cm.moveH(1, "group");}, + goGroupLeft: function(cm) {cm.moveH(-1, "group");}, + goWordRight: function(cm) {cm.moveH(1, "word");}, + delCharBefore: function(cm) {cm.deleteH(-1, "char");}, + delCharAfter: function(cm) {cm.deleteH(1, "char");}, + delWordBefore: function(cm) {cm.deleteH(-1, "word");}, + delWordAfter: function(cm) {cm.deleteH(1, "word");}, + delGroupBefore: function(cm) {cm.deleteH(-1, "group");}, + delGroupAfter: function(cm) {cm.deleteH(1, "group");}, + indentAuto: function(cm) {cm.indentSelection("smart");}, + indentMore: function(cm) {cm.indentSelection("add");}, + indentLess: function(cm) {cm.indentSelection("subtract");}, + insertTab: function(cm) {cm.replaceSelection("\t");}, + insertSoftTab: function(cm) { + var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize; + for (var i = 0; i < ranges.length; i++) { + var pos = ranges[i].from(); + var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize); + spaces.push(new Array(tabSize - col % tabSize + 1).join(" ")); + } + cm.replaceSelections(spaces); + }, + defaultTab: function(cm) { + if (cm.somethingSelected()) cm.indentSelection("add"); + else cm.execCommand("insertTab"); + }, + transposeChars: function(cm) { + runInOp(cm, function() { + var ranges = cm.listSelections(), newSel = []; + for (var i = 0; i < ranges.length; i++) { + var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text; + if (line) { + if (cur.ch == line.length) cur = new Pos(cur.line, cur.ch - 1); + if (cur.ch > 0) { + cur = new Pos(cur.line, cur.ch + 1); + cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2), + Pos(cur.line, cur.ch - 2), cur, "+transpose"); + } else if (cur.line > cm.doc.first) { + var prev = getLine(cm.doc, cur.line - 1).text; + if (prev) + cm.replaceRange(line.charAt(0) + "\n" + prev.charAt(prev.length - 1), + Pos(cur.line - 1, prev.length - 1), Pos(cur.line, 1), "+transpose"); + } + } + newSel.push(new Range(cur, cur)); + } + cm.setSelections(newSel); + }); + }, + newlineAndIndent: function(cm) { + runInOp(cm, function() { + var len = cm.listSelections().length; + for (var i = 0; i < len; i++) { + var range = cm.listSelections()[i]; + cm.replaceRange("\n", range.anchor, range.head, "+input"); + cm.indentLine(range.from().line + 1, null, true); + ensureCursorVisible(cm); + } + }); + }, + toggleOverwrite: function(cm) {cm.toggleOverwrite();} + }; + + // STANDARD KEYMAPS + + var keyMap = CodeMirror.keyMap = {}; + keyMap.basic = { + "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", + "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", + "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore", + "Tab": "defaultTab", "Shift-Tab": "indentAuto", + "Enter": "newlineAndIndent", "Insert": "toggleOverwrite", + "Esc": "singleSelection" + }; + // Note that the save and find-related commands aren't defined by + // default. User code or addons can define them. Unknown commands + // are simply ignored. + keyMap.pcDefault = { + "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", + "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown", + "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", + "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find", + "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", + "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", + "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection", + fallthrough: "basic" + }; + keyMap.macDefault = { + "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", + "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft", + "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore", + "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find", + "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", + "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight", + "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd", + fallthrough: ["basic", "emacsy"] + }; + // Very basic readline/emacs-style bindings, which are standard on Mac. + keyMap.emacsy = { + "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", + "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", + "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", + "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars" + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + + // KEYMAP DISPATCH + + function getKeyMap(val) { + if (typeof val == "string") return keyMap[val]; + else return val; + } + + // Given an array of keymaps and a key name, call handle on any + // bindings found, until that returns a truthy value, at which point + // we consider the key handled. Implements things like binding a key + // to false stopping further handling and keymap fallthrough. + var lookupKey = CodeMirror.lookupKey = function(name, maps, handle) { + function lookup(map) { + map = getKeyMap(map); + var found = map[name]; + if (found === false) return "stop"; + if (found != null && handle(found)) return true; + if (map.nofallthrough) return "stop"; + + var fallthrough = map.fallthrough; + if (fallthrough == null) return false; + if (Object.prototype.toString.call(fallthrough) != "[object Array]") + return lookup(fallthrough); + for (var i = 0; i < fallthrough.length; ++i) { + var done = lookup(fallthrough[i]); + if (done) return done; + } + return false; + } + + for (var i = 0; i < maps.length; ++i) { + var done = lookup(maps[i]); + if (done) return done != "stop"; + } + }; + + // Modifier key presses don't count as 'real' key presses for the + // purpose of keymap fallthrough. + var isModifierKey = CodeMirror.isModifierKey = function(event) { + var name = keyNames[event.keyCode]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; + }; + + // Look up the name of a key as indicated by an event object. + var keyName = CodeMirror.keyName = function(event, noShift) { + if (presto && event.keyCode == 34 && event["char"]) return false; + var name = keyNames[event.keyCode]; + if (name == null || event.altGraphKey) return false; + if (event.altKey) name = "Alt-" + name; + if (flipCtrlCmd ? event.metaKey : event.ctrlKey) name = "Ctrl-" + name; + if (flipCtrlCmd ? event.ctrlKey : event.metaKey) name = "Cmd-" + name; + if (!noShift && event.shiftKey) name = "Shift-" + name; + return name; + }; + + // FROMTEXTAREA + + CodeMirror.fromTextArea = function(textarea, options) { + if (!options) options = {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabindex) + options.tabindex = textarea.tabindex; + if (!options.placeholder && textarea.placeholder) + options.placeholder = textarea.placeholder; + // Set autofocus to true if this textarea is focused, or if it has + // autofocus and no other element is focused. + if (options.autofocus == null) { + var hasFocus = activeElt(); + options.autofocus = hasFocus == textarea || + textarea.getAttribute("autofocus") != null && hasFocus == document.body; + } + + function save() {textarea.value = cm.getValue();} + if (textarea.form) { + on(textarea.form, "submit", save); + // Deplorable hack to make the submit method do the right thing. + if (!options.leaveSubmitMethodAlone) { + var form = textarea.form, realSubmit = form.submit; + try { + var wrappedSubmit = form.submit = function() { + save(); + form.submit = realSubmit; + form.submit(); + form.submit = wrappedSubmit; + }; + } catch(e) {} + } + } + + textarea.style.display = "none"; + var cm = CodeMirror(function(node) { + textarea.parentNode.insertBefore(node, textarea.nextSibling); + }, options); + cm.save = save; + cm.getTextArea = function() { return textarea; }; + cm.toTextArea = function() { + cm.toTextArea = isNaN; // Prevent this from being ran twice + save(); + textarea.parentNode.removeChild(cm.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + off(textarea.form, "submit", save); + if (typeof textarea.form.submit == "function") + textarea.form.submit = realSubmit; + } + }; + return cm; + }; + + // STRING STREAM + + // Fed to the mode parsers, provides helper functions to make + // parsers more succinct. + + var StringStream = CodeMirror.StringStream = function(string, tabSize) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + this.lastColumnPos = this.lastColumnValue = 0; + this.lineStart = 0; + }; + + StringStream.prototype = { + eol: function() {return this.pos >= this.string.length;}, + sol: function() {return this.pos == this.lineStart;}, + peek: function() {return this.string.charAt(this.pos) || undefined;}, + next: function() { + if (this.pos < this.string.length) + return this.string.charAt(this.pos++); + }, + eat: function(match) { + var ch = this.string.charAt(this.pos); + if (typeof match == "string") var ok = ch == match; + else var ok = ch && (match.test ? match.test(ch) : match(ch)); + if (ok) {++this.pos; return ch;} + }, + eatWhile: function(match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start; + }, + eatSpace: function() { + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; + return this.pos > start; + }, + skipToEnd: function() {this.pos = this.string.length;}, + skipTo: function(ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true;} + }, + backUp: function(n) {this.pos -= n;}, + column: function() { + if (this.lastColumnPos < this.start) { + this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); + this.lastColumnPos = this.start; + } + return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0); + }, + indentation: function() { + return countColumn(this.string, null, this.tabSize) - + (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0); + }, + match: function(pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;}; + var substr = this.string.substr(this.pos, pattern.length); + if (cased(substr) == cased(pattern)) { + if (consume !== false) this.pos += pattern.length; + return true; + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && match.index > 0) return null; + if (match && consume !== false) this.pos += match[0].length; + return match; + } + }, + current: function(){return this.string.slice(this.start, this.pos);}, + hideFirstChars: function(n, inner) { + this.lineStart += n; + try { return inner(); } + finally { this.lineStart -= n; } + } + }; + + // TEXTMARKERS + + // Created with markText and setBookmark methods. A TextMarker is a + // handle that can be used to clear or find a marked position in the + // document. Line objects hold arrays (markedSpans) containing + // {from, to, marker} object pointing to such marker objects, and + // indicating that such a marker is present on that line. Multiple + // lines may point to the same marker when it spans across lines. + // The spans will have null for their from/to properties when the + // marker continues beyond the start/end of the line. Markers have + // links back to the lines they currently touch. + + var TextMarker = CodeMirror.TextMarker = function(doc, type) { + this.lines = []; + this.type = type; + this.doc = doc; + }; + eventMixin(TextMarker); + + // Clear the marker. + TextMarker.prototype.clear = function() { + if (this.explicitlyCleared) return; + var cm = this.doc.cm, withOp = cm && !cm.curOp; + if (withOp) startOperation(cm); + if (hasHandler(this, "clear")) { + var found = this.find(); + if (found) signalLater(this, "clear", found.from, found.to); + } + var min = null, max = null; + for (var i = 0; i < this.lines.length; ++i) { + var line = this.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this); + if (cm && !this.collapsed) regLineChange(cm, lineNo(line), "text"); + else if (cm) { + if (span.to != null) max = lineNo(line); + if (span.from != null) min = lineNo(line); + } + line.markedSpans = removeMarkedSpan(line.markedSpans, span); + if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm) + updateLineHeight(line, textHeight(cm.display)); + } + if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) { + var visual = visualLine(this.lines[i]), len = lineLength(visual); + if (len > cm.display.maxLineLength) { + cm.display.maxLine = visual; + cm.display.maxLineLength = len; + cm.display.maxLineChanged = true; + } + } + + if (min != null && cm && this.collapsed) regChange(cm, min, max + 1); + this.lines.length = 0; + this.explicitlyCleared = true; + if (this.atomic && this.doc.cantEdit) { + this.doc.cantEdit = false; + if (cm) reCheckSelection(cm.doc); + } + if (cm) signalLater(cm, "markerCleared", cm, this); + if (withOp) endOperation(cm); + if (this.parent) this.parent.clear(); + }; + + // Find the position of the marker in the document. Returns a {from, + // to} object by default. Side can be passed to get a specific side + // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the + // Pos objects returned contain a line object, rather than a line + // number (used to prevent looking up the same line twice). + TextMarker.prototype.find = function(side, lineObj) { + if (side == null && this.type == "bookmark") side = 1; + var from, to; + for (var i = 0; i < this.lines.length; ++i) { + var line = this.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this); + if (span.from != null) { + from = Pos(lineObj ? line : lineNo(line), span.from); + if (side == -1) return from; + } + if (span.to != null) { + to = Pos(lineObj ? line : lineNo(line), span.to); + if (side == 1) return to; + } + } + return from && {from: from, to: to}; + }; + + // Signals that the marker's widget changed, and surrounding layout + // should be recomputed. + TextMarker.prototype.changed = function() { + var pos = this.find(-1, true), widget = this, cm = this.doc.cm; + if (!pos || !cm) return; + runInOp(cm, function() { + var line = pos.line, lineN = lineNo(pos.line); + var view = findViewForLine(cm, lineN); + if (view) { + clearLineMeasurementCacheFor(view); + cm.curOp.selectionChanged = cm.curOp.forceUpdate = true; + } + cm.curOp.updateMaxLine = true; + if (!lineIsHidden(widget.doc, line) && widget.height != null) { + var oldHeight = widget.height; + widget.height = null; + var dHeight = widgetHeight(widget) - oldHeight; + if (dHeight) + updateLineHeight(line, line.height + dHeight); + } + }); + }; + + TextMarker.prototype.attachLine = function(line) { + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) + (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); + } + this.lines.push(line); + }; + TextMarker.prototype.detachLine = function(line) { + this.lines.splice(indexOf(this.lines, line), 1); + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); + } + }; + + // Collapsed markers have unique ids, in order to be able to order + // them, which is needed for uniquely determining an outer marker + // when they overlap (they may nest, but not partially overlap). + var nextMarkerId = 0; + + // Create a marker, wire it up to the right lines, and + function markText(doc, from, to, options, type) { + // Shared markers (across linked documents) are handled separately + // (markTextShared will call out to this again, once per + // document). + if (options && options.shared) return markTextShared(doc, from, to, options, type); + // Ensure we are in an operation. + if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type); + + var marker = new TextMarker(doc, type), diff = cmp(from, to); + if (options) copyObj(options, marker, false); + // Don't connect empty markers unless clearWhenEmpty is false + if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false) + return marker; + if (marker.replacedWith) { + // Showing up as a widget implies collapsed (widget replaces text) + marker.collapsed = true; + marker.widgetNode = elt("span", [marker.replacedWith], "CodeMirror-widget"); + if (!options.handleMouseEvents) marker.widgetNode.ignoreEvents = true; + if (options.insertLeft) marker.widgetNode.insertLeft = true; + } + if (marker.collapsed) { + if (conflictingCollapsedRange(doc, from.line, from, to, marker) || + from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker)) + throw new Error("Inserting collapsed marker partially overlapping an existing one"); + sawCollapsedSpans = true; + } + + if (marker.addToHistory) + addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN); + + var curLine = from.line, cm = doc.cm, updateMaxLine; + doc.iter(curLine, to.line + 1, function(line) { + if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine) + updateMaxLine = true; + if (marker.collapsed && curLine != from.line) updateLineHeight(line, 0); + addMarkedSpan(line, new MarkedSpan(marker, + curLine == from.line ? from.ch : null, + curLine == to.line ? to.ch : null)); + ++curLine; + }); + // lineIsHidden depends on the presence of the spans, so needs a second pass + if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) { + if (lineIsHidden(doc, line)) updateLineHeight(line, 0); + }); + + if (marker.clearOnEnter) on(marker, "beforeCursorEnter", function() { marker.clear(); }); + + if (marker.readOnly) { + sawReadOnlySpans = true; + if (doc.history.done.length || doc.history.undone.length) + doc.clearHistory(); + } + if (marker.collapsed) { + marker.id = ++nextMarkerId; + marker.atomic = true; + } + if (cm) { + // Sync editor state + if (updateMaxLine) cm.curOp.updateMaxLine = true; + if (marker.collapsed) + regChange(cm, from.line, to.line + 1); + else if (marker.className || marker.title || marker.startStyle || marker.endStyle) + for (var i = from.line; i <= to.line; i++) regLineChange(cm, i, "text"); + if (marker.atomic) reCheckSelection(cm.doc); + signalLater(cm, "markerAdded", cm, marker); + } + return marker; + } + + // SHARED TEXTMARKERS + + // A shared marker spans multiple linked documents. It is + // implemented as a meta-marker-object controlling multiple normal + // markers. + var SharedTextMarker = CodeMirror.SharedTextMarker = function(markers, primary) { + this.markers = markers; + this.primary = primary; + for (var i = 0; i < markers.length; ++i) + markers[i].parent = this; + }; + eventMixin(SharedTextMarker); + + SharedTextMarker.prototype.clear = function() { + if (this.explicitlyCleared) return; + this.explicitlyCleared = true; + for (var i = 0; i < this.markers.length; ++i) + this.markers[i].clear(); + signalLater(this, "clear"); + }; + SharedTextMarker.prototype.find = function(side, lineObj) { + return this.primary.find(side, lineObj); + }; + + function markTextShared(doc, from, to, options, type) { + options = copyObj(options); + options.shared = false; + var markers = [markText(doc, from, to, options, type)], primary = markers[0]; + var widget = options.widgetNode; + linkedDocs(doc, function(doc) { + if (widget) options.widgetNode = widget.cloneNode(true); + markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); + for (var i = 0; i < doc.linked.length; ++i) + if (doc.linked[i].isParent) return; + primary = lst(markers); + }); + return new SharedTextMarker(markers, primary); + } + + function findSharedMarkers(doc) { + return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), + function(m) { return m.parent; }); + } + + function copySharedMarkers(doc, markers) { + for (var i = 0; i < markers.length; i++) { + var marker = markers[i], pos = marker.find(); + var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to); + if (cmp(mFrom, mTo)) { + var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type); + marker.markers.push(subMark); + subMark.parent = marker; + } + } + } + + function detachSharedMarkers(markers) { + for (var i = 0; i < markers.length; i++) { + var marker = markers[i], linked = [marker.primary.doc];; + linkedDocs(marker.primary.doc, function(d) { linked.push(d); }); + for (var j = 0; j < marker.markers.length; j++) { + var subMarker = marker.markers[j]; + if (indexOf(linked, subMarker.doc) == -1) { + subMarker.parent = null; + marker.markers.splice(j--, 1); + } + } + } + } + + // TEXTMARKER SPANS + + function MarkedSpan(marker, from, to) { + this.marker = marker; + this.from = from; this.to = to; + } + + // Search an array of spans for a span matching the given marker. + function getMarkedSpanFor(spans, marker) { + if (spans) for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.marker == marker) return span; + } + } + // Remove a span from an array, returning undefined if no spans are + // left (we don't store arrays for lines without spans). + function removeMarkedSpan(spans, span) { + for (var r, i = 0; i < spans.length; ++i) + if (spans[i] != span) (r || (r = [])).push(spans[i]); + return r; + } + // Add a span to a line. + function addMarkedSpan(line, span) { + line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; + span.marker.attachLine(line); + } + + // Used for the algorithm that adjusts markers for a change in the + // document. These functions cut an array of spans at a given + // character position, returning an array of remaining chunks (or + // undefined if nothing remains). + function markedSpansBefore(old, startCh, isInsert) { + if (old) for (var i = 0, nw; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); + if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) { + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh); + (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to)); + } + } + return nw; + } + function markedSpansAfter(old, endCh, isInsert) { + if (old) for (var i = 0, nw; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); + if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) { + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh); + (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh, + span.to == null ? null : span.to - endCh)); + } + } + return nw; + } + + // Given a change object, compute the new set of marker spans that + // cover the line in which the change took place. Removes spans + // entirely within the change, reconnects spans belonging to the + // same marker that appear on both sides of the change, and cuts off + // spans partially within the change. Returns an array of span + // arrays with one element for each line in (after) the change. + function stretchSpansOverChange(doc, change) { + var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; + var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; + if (!oldFirst && !oldLast) return null; + + var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0; + // Get the spans that 'stick out' on both sides + var first = markedSpansBefore(oldFirst, startCh, isInsert); + var last = markedSpansAfter(oldLast, endCh, isInsert); + + // Next, merge those two ends + var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); + if (first) { + // Fix up .to properties of first + for (var i = 0; i < first.length; ++i) { + var span = first[i]; + if (span.to == null) { + var found = getMarkedSpanFor(last, span.marker); + if (!found) span.to = startCh; + else if (sameLine) span.to = found.to == null ? null : found.to + offset; + } + } + } + if (last) { + // Fix up .from in last (or move them into first in case of sameLine) + for (var i = 0; i < last.length; ++i) { + var span = last[i]; + if (span.to != null) span.to += offset; + if (span.from == null) { + var found = getMarkedSpanFor(first, span.marker); + if (!found) { + span.from = offset; + if (sameLine) (first || (first = [])).push(span); + } + } else { + span.from += offset; + if (sameLine) (first || (first = [])).push(span); + } + } + } + // Make sure we didn't create any zero-length spans + if (first) first = clearEmptySpans(first); + if (last && last != first) last = clearEmptySpans(last); + + var newMarkers = [first]; + if (!sameLine) { + // Fill gap with whole-line-spans + var gap = change.text.length - 2, gapMarkers; + if (gap > 0 && first) + for (var i = 0; i < first.length; ++i) + if (first[i].to == null) + (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i].marker, null, null)); + for (var i = 0; i < gap; ++i) + newMarkers.push(gapMarkers); + newMarkers.push(last); + } + return newMarkers; + } + + // Remove spans that are empty and don't have a clearWhenEmpty + // option of false. + function clearEmptySpans(spans) { + for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false) + spans.splice(i--, 1); + } + if (!spans.length) return null; + return spans; + } + + // Used for un/re-doing changes from the history. Combines the + // result of computing the existing spans with the set of spans that + // existed in the history (so that deleting around a span and then + // undoing brings back the span). + function mergeOldSpans(doc, change) { + var old = getOldSpans(doc, change); + var stretched = stretchSpansOverChange(doc, change); + if (!old) return stretched; + if (!stretched) return old; + + for (var i = 0; i < old.length; ++i) { + var oldCur = old[i], stretchCur = stretched[i]; + if (oldCur && stretchCur) { + spans: for (var j = 0; j < stretchCur.length; ++j) { + var span = stretchCur[j]; + for (var k = 0; k < oldCur.length; ++k) + if (oldCur[k].marker == span.marker) continue spans; + oldCur.push(span); + } + } else if (stretchCur) { + old[i] = stretchCur; + } + } + return old; + } + + // Used to 'clip' out readOnly ranges when making a change. + function removeReadOnlyRanges(doc, from, to) { + var markers = null; + doc.iter(from.line, to.line + 1, function(line) { + if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) { + var mark = line.markedSpans[i].marker; + if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) + (markers || (markers = [])).push(mark); + } + }); + if (!markers) return null; + var parts = [{from: from, to: to}]; + for (var i = 0; i < markers.length; ++i) { + var mk = markers[i], m = mk.find(0); + for (var j = 0; j < parts.length; ++j) { + var p = parts[j]; + if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) continue; + var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to); + if (dfrom < 0 || !mk.inclusiveLeft && !dfrom) + newParts.push({from: p.from, to: m.from}); + if (dto > 0 || !mk.inclusiveRight && !dto) + newParts.push({from: m.to, to: p.to}); + parts.splice.apply(parts, newParts); + j += newParts.length - 1; + } + } + return parts; + } + + // Connect or disconnect spans from a line. + function detachMarkedSpans(line) { + var spans = line.markedSpans; + if (!spans) return; + for (var i = 0; i < spans.length; ++i) + spans[i].marker.detachLine(line); + line.markedSpans = null; + } + function attachMarkedSpans(line, spans) { + if (!spans) return; + for (var i = 0; i < spans.length; ++i) + spans[i].marker.attachLine(line); + line.markedSpans = spans; + } + + // Helpers used when computing which overlapping collapsed span + // counts as the larger one. + function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; } + function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; } + + // Returns a number indicating which of two overlapping collapsed + // spans is larger (and thus includes the other). Falls back to + // comparing ids when the spans cover exactly the same range. + function compareCollapsedMarkers(a, b) { + var lenDiff = a.lines.length - b.lines.length; + if (lenDiff != 0) return lenDiff; + var aPos = a.find(), bPos = b.find(); + var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b); + if (fromCmp) return -fromCmp; + var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b); + if (toCmp) return toCmp; + return b.id - a.id; + } + + // Find out whether a line ends or starts in a collapsed span. If + // so, return the marker for that span. + function collapsedSpanAtSide(line, start) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) for (var sp, i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (sp.marker.collapsed && (start ? sp.from : sp.to) == null && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) + found = sp.marker; + } + return found; + } + function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true); } + function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false); } + + // Test whether there exists a collapsed span that partially + // overlaps (covers the start or end, but not both) of a new span. + // Such overlap is not allowed. + function conflictingCollapsedRange(doc, lineNo, from, to, marker) { + var line = getLine(doc, lineNo); + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (!sp.marker.collapsed) continue; + var found = sp.marker.find(0); + var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker); + var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker); + if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue; + if (fromCmp <= 0 && (cmp(found.to, from) > 0 || (sp.marker.inclusiveRight && marker.inclusiveLeft)) || + fromCmp >= 0 && (cmp(found.from, to) < 0 || (sp.marker.inclusiveLeft && marker.inclusiveRight))) + return true; + } + } + + // A visual line is a line as drawn on the screen. Folding, for + // example, can cause multiple logical lines to appear on the same + // visual line. This finds the start of the visual line that the + // given line is part of (usually that is the line itself). + function visualLine(line) { + var merged; + while (merged = collapsedSpanAtStart(line)) + line = merged.find(-1, true).line; + return line; + } + + // Returns an array of logical lines that continue the visual line + // started by the argument, or undefined if there are no such lines. + function visualLineContinued(line) { + var merged, lines; + while (merged = collapsedSpanAtEnd(line)) { + line = merged.find(1, true).line; + (lines || (lines = [])).push(line); + } + return lines; + } + + // Get the line number of the start of the visual line that the + // given line number is part of. + function visualLineNo(doc, lineN) { + var line = getLine(doc, lineN), vis = visualLine(line); + if (line == vis) return lineN; + return lineNo(vis); + } + // Get the line number of the start of the next visual line after + // the given line. + function visualLineEndNo(doc, lineN) { + if (lineN > doc.lastLine()) return lineN; + var line = getLine(doc, lineN), merged; + if (!lineIsHidden(doc, line)) return lineN; + while (merged = collapsedSpanAtEnd(line)) + line = merged.find(1, true).line; + return lineNo(line) + 1; + } + + // Compute whether a line is hidden. Lines count as hidden when they + // are part of a visual line that starts with another line, or when + // they are entirely covered by collapsed, non-widget span. + function lineIsHidden(doc, line) { + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) for (var sp, i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (!sp.marker.collapsed) continue; + if (sp.from == null) return true; + if (sp.marker.widgetNode) continue; + if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) + return true; + } + } + function lineIsHiddenInner(doc, line, span) { + if (span.to == null) { + var end = span.marker.find(1, true); + return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker)); + } + if (span.marker.inclusiveRight && span.to == line.text.length) + return true; + for (var sp, i = 0; i < line.markedSpans.length; ++i) { + sp = line.markedSpans[i]; + if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to && + (sp.to == null || sp.to != span.from) && + (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && + lineIsHiddenInner(doc, line, sp)) return true; + } + } + + // LINE WIDGETS + + // Line widgets are block elements displayed above or below a line. + + var LineWidget = CodeMirror.LineWidget = function(cm, node, options) { + if (options) for (var opt in options) if (options.hasOwnProperty(opt)) + this[opt] = options[opt]; + this.cm = cm; + this.node = node; + }; + eventMixin(LineWidget); + + function adjustScrollWhenAboveVisible(cm, line, diff) { + if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop)) + addToScrollPos(cm, null, diff); + } + + LineWidget.prototype.clear = function() { + var cm = this.cm, ws = this.line.widgets, line = this.line, no = lineNo(line); + if (no == null || !ws) return; + for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1); + if (!ws.length) line.widgets = null; + var height = widgetHeight(this); + runInOp(cm, function() { + adjustScrollWhenAboveVisible(cm, line, -height); + regLineChange(cm, no, "widget"); + updateLineHeight(line, Math.max(0, line.height - height)); + }); + }; + LineWidget.prototype.changed = function() { + var oldH = this.height, cm = this.cm, line = this.line; + this.height = null; + var diff = widgetHeight(this) - oldH; + if (!diff) return; + runInOp(cm, function() { + cm.curOp.forceUpdate = true; + adjustScrollWhenAboveVisible(cm, line, diff); + updateLineHeight(line, line.height + diff); + }); + }; + + function widgetHeight(widget) { + if (widget.height != null) return widget.height; + if (!contains(document.body, widget.node)) { + var parentStyle = "position: relative;"; + if (widget.coverGutter) + parentStyle += "margin-left: -" + widget.cm.getGutterElement().offsetWidth + "px;"; + removeChildrenAndAdd(widget.cm.display.measure, elt("div", [widget.node], null, parentStyle)); + } + return widget.height = widget.node.offsetHeight; + } + + function addLineWidget(cm, handle, node, options) { + var widget = new LineWidget(cm, node, options); + if (widget.noHScroll) cm.display.alignWidgets = true; + changeLine(cm.doc, handle, "widget", function(line) { + var widgets = line.widgets || (line.widgets = []); + if (widget.insertAt == null) widgets.push(widget); + else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget); + widget.line = line; + if (!lineIsHidden(cm.doc, line)) { + var aboveVisible = heightAtLine(line) < cm.doc.scrollTop; + updateLineHeight(line, line.height + widgetHeight(widget)); + if (aboveVisible) addToScrollPos(cm, null, widget.height); + cm.curOp.forceUpdate = true; + } + return true; + }); + return widget; + } + + // LINE DATA STRUCTURE + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) { + this.text = text; + attachMarkedSpans(this, markedSpans); + this.height = estimateHeight ? estimateHeight(this) : 1; + }; + eventMixin(Line); + Line.prototype.lineNo = function() { return lineNo(this); }; + + // Change the content (text, markers) of a line. Automatically + // invalidates cached information and tries to re-estimate the + // line's height. + function updateLine(line, text, markedSpans, estimateHeight) { + line.text = text; + if (line.stateAfter) line.stateAfter = null; + if (line.styles) line.styles = null; + if (line.order != null) line.order = null; + detachMarkedSpans(line); + attachMarkedSpans(line, markedSpans); + var estHeight = estimateHeight ? estimateHeight(line) : 1; + if (estHeight != line.height) updateLineHeight(line, estHeight); + } + + // Detach a line from the document tree and its markers. + function cleanUpLine(line) { + line.parent = null; + detachMarkedSpans(line); + } + + function extractLineClasses(type, output) { + if (type) for (;;) { + var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/); + if (!lineClass) break; + type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length); + var prop = lineClass[1] ? "bgClass" : "textClass"; + if (output[prop] == null) + output[prop] = lineClass[2]; + else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop])) + output[prop] += " " + lineClass[2]; + } + return type; + } + + function callBlankLine(mode, state) { + if (mode.blankLine) return mode.blankLine(state); + if (!mode.innerMode) return; + var inner = CodeMirror.innerMode(mode, state); + if (inner.mode.blankLine) return inner.mode.blankLine(inner.state); + } + + function readToken(mode, stream, state) { + for (var i = 0; i < 10; i++) { + var style = mode.token(stream, state); + if (stream.pos > stream.start) return style; + } + throw new Error("Mode " + mode.name + " failed to advance stream."); + } + + // Run the given mode's parser over a line, calling f for each token. + function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) { + var flattenSpans = mode.flattenSpans; + if (flattenSpans == null) flattenSpans = cm.options.flattenSpans; + var curStart = 0, curStyle = null; + var stream = new StringStream(text, cm.options.tabSize), style; + if (text == "") extractLineClasses(callBlankLine(mode, state), lineClasses); + while (!stream.eol()) { + if (stream.pos > cm.options.maxHighlightLength) { + flattenSpans = false; + if (forceToEnd) processLine(cm, text, state, stream.pos); + stream.pos = text.length; + style = null; + } else { + style = extractLineClasses(readToken(mode, stream, state), lineClasses); + } + if (cm.options.addModeClass) { + var mName = CodeMirror.innerMode(mode, state).mode.name; + if (mName) style = "m-" + (style ? mName + " " + style : mName); + } + if (!flattenSpans || curStyle != style) { + if (curStart < stream.start) f(stream.start, curStyle); + curStart = stream.start; curStyle = style; + } + stream.start = stream.pos; + } + while (curStart < stream.pos) { + // Webkit seems to refuse to render text nodes longer than 57444 characters + var pos = Math.min(stream.pos, curStart + 50000); + f(pos, curStyle); + curStart = pos; + } + } + + // Compute a style array (an array starting with a mode generation + // -- for invalidation -- followed by pairs of end positions and + // style strings), which is used to highlight the tokens on the + // line. + function highlightLine(cm, line, state, forceToEnd) { + // A styles array always starts with a number identifying the + // mode/overlays that it is based on (for easy invalidation). + var st = [cm.state.modeGen], lineClasses = {}; + // Compute the base array of styles + runMode(cm, line.text, cm.doc.mode, state, function(end, style) { + st.push(end, style); + }, lineClasses, forceToEnd); + + // Run overlays, adjust style array. + for (var o = 0; o < cm.state.overlays.length; ++o) { + var overlay = cm.state.overlays[o], i = 1, at = 0; + runMode(cm, line.text, overlay.mode, true, function(end, style) { + var start = i; + // Ensure there's a token end at the current position, and that i points at it + while (at < end) { + var i_end = st[i]; + if (i_end > end) + st.splice(i, 1, end, st[i+1], i_end); + i += 2; + at = Math.min(end, i_end); + } + if (!style) return; + if (overlay.opaque) { + st.splice(start, i - start, end, "cm-overlay " + style); + i = start + 2; + } else { + for (; start < i; start += 2) { + var cur = st[start+1]; + st[start+1] = (cur ? cur + " " : "") + "cm-overlay " + style; + } + } + }, lineClasses); + } + + return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}; + } + + function getLineStyles(cm, line) { + if (!line.styles || line.styles[0] != cm.state.modeGen) { + var result = highlightLine(cm, line, line.stateAfter = getStateBefore(cm, lineNo(line))); + line.styles = result.styles; + if (result.classes) line.styleClasses = result.classes; + else if (line.styleClasses) line.styleClasses = null; + } + return line.styles; + } + + // Lightweight form of highlight -- proceed over this line and + // update state, but don't save a style array. Used for lines that + // aren't currently visible. + function processLine(cm, text, state, startAt) { + var mode = cm.doc.mode; + var stream = new StringStream(text, cm.options.tabSize); + stream.start = stream.pos = startAt || 0; + if (text == "") callBlankLine(mode, state); + while (!stream.eol() && stream.pos <= cm.options.maxHighlightLength) { + readToken(mode, stream, state); + stream.start = stream.pos; + } + } + + // Convert a style as returned by a mode (either null, or a string + // containing one or more styles) to a CSS style. This is cached, + // and also looks for line-wide styles. + var styleToClassCache = {}, styleToClassCacheWithMode = {}; + function interpretTokenStyle(style, options) { + if (!style || /^\s*$/.test(style)) return null; + var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache; + return cache[style] || + (cache[style] = style.replace(/\S+/g, "cm-$&")); + } + + // Render the DOM representation of the text of a line. Also builds + // up a 'line map', which points at the DOM nodes that represent + // specific stretches of text, and is used by the measuring code. + // The returned object contains the DOM node, this map, and + // information about line-wide styles that were set by the mode. + function buildLineContent(cm, lineView) { + // The padding-right forces the element to have a 'border', which + // is needed on Webkit to be able to get line-level bounding + // rectangles for it (in measureChar). + var content = elt("span", null, null, webkit ? "padding-right: .1px" : null); + var builder = {pre: elt("pre", [content]), content: content, col: 0, pos: 0, cm: cm}; + lineView.measure = {}; + + // Iterate over the logical lines that make up this visual line. + for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) { + var line = i ? lineView.rest[i - 1] : lineView.line, order; + builder.pos = 0; + builder.addToken = buildToken; + // Optionally wire in some hacks into the token-rendering + // algorithm, to deal with browser quirks. + if ((ie || webkit) && cm.getOption("lineWrapping")) + builder.addToken = buildTokenSplitSpaces(builder.addToken); + if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line))) + builder.addToken = buildTokenBadBidi(builder.addToken, order); + builder.map = []; + insertLineContent(line, builder, getLineStyles(cm, line)); + if (line.styleClasses) { + if (line.styleClasses.bgClass) + builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); + if (line.styleClasses.textClass) + builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); + } + + // Ensure at least a single node is present, for measuring. + if (builder.map.length == 0) + builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); + + // Store the map and a cache object for the current logical line + if (i == 0) { + lineView.measure.map = builder.map; + lineView.measure.cache = {}; + } else { + (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map); + (lineView.measure.caches || (lineView.measure.caches = [])).push({}); + } + } + + signal(cm, "renderLine", cm, lineView.line, builder.pre); + if (builder.pre.className) + builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); + return builder; + } + + function defaultSpecialCharPlaceholder(ch) { + var token = elt("span", "\u2022", "cm-invalidchar"); + token.title = "\\u" + ch.charCodeAt(0).toString(16); + return token; + } + + // Build up the DOM representation for a single token, and add it to + // the line map. Takes care to render special characters separately. + function buildToken(builder, text, style, startStyle, endStyle, title) { + if (!text) return; + var special = builder.cm.options.specialChars, mustWrap = false; + if (!special.test(text)) { + builder.col += text.length; + var content = document.createTextNode(text); + builder.map.push(builder.pos, builder.pos + text.length, content); + if (ie && ie_version < 9) mustWrap = true; + builder.pos += text.length; + } else { + var content = document.createDocumentFragment(), pos = 0; + while (true) { + special.lastIndex = pos; + var m = special.exec(text); + var skipped = m ? m.index - pos : text.length - pos; + if (skipped) { + var txt = document.createTextNode(text.slice(pos, pos + skipped)); + if (ie && ie_version < 9) content.appendChild(elt("span", [txt])); + else content.appendChild(txt); + builder.map.push(builder.pos, builder.pos + skipped, txt); + builder.col += skipped; + builder.pos += skipped; + } + if (!m) break; + pos += skipped + 1; + if (m[0] == "\t") { + var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; + var txt = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); + builder.col += tabWidth; + } else { + var txt = builder.cm.options.specialCharPlaceholder(m[0]); + if (ie && ie_version < 9) content.appendChild(elt("span", [txt])); + else content.appendChild(txt); + builder.col += 1; + } + builder.map.push(builder.pos, builder.pos + 1, txt); + builder.pos++; + } + } + if (style || startStyle || endStyle || mustWrap) { + var fullStyle = style || ""; + if (startStyle) fullStyle += startStyle; + if (endStyle) fullStyle += endStyle; + var token = elt("span", [content], fullStyle); + if (title) token.title = title; + return builder.content.appendChild(token); + } + builder.content.appendChild(content); + } + + function buildTokenSplitSpaces(inner) { + function split(old) { + var out = " "; + for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? " " : "\u00a0"; + out += " "; + return out; + } + return function(builder, text, style, startStyle, endStyle, title) { + inner(builder, text.replace(/ {3,}/g, split), style, startStyle, endStyle, title); + }; + } + + // Work around nonsense dimensions being reported for stretches of + // right-to-left text. + function buildTokenBadBidi(inner, order) { + return function(builder, text, style, startStyle, endStyle, title) { + style = style ? style + " cm-force-border" : "cm-force-border"; + var start = builder.pos, end = start + text.length; + for (;;) { + // Find the part that overlaps with the start of this text + for (var i = 0; i < order.length; i++) { + var part = order[i]; + if (part.to > start && part.from <= start) break; + } + if (part.to >= end) return inner(builder, text, style, startStyle, endStyle, title); + inner(builder, text.slice(0, part.to - start), style, startStyle, null, title); + startStyle = null; + text = text.slice(part.to - start); + start = part.to; + } + }; + } + + function buildCollapsedSpan(builder, size, marker, ignoreWidget) { + var widget = !ignoreWidget && marker.widgetNode; + if (widget) { + builder.map.push(builder.pos, builder.pos + size, widget); + builder.content.appendChild(widget); + } + builder.pos += size; + } + + // Outputs a number of spans to make up a line, taking highlighting + // and marked text into account. + function insertLineContent(line, builder, styles) { + var spans = line.markedSpans, allText = line.text, at = 0; + if (!spans) { + for (var i = 1; i < styles.length; i+=2) + builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder.cm.options)); + return; + } + + var len = allText.length, pos = 0, i = 1, text = "", style; + var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed; + for (;;) { + if (nextChange == pos) { // Update current marker set + spanStyle = spanEndStyle = spanStartStyle = title = ""; + collapsed = null; nextChange = Infinity; + var foundBookmarks = []; + for (var j = 0; j < spans.length; ++j) { + var sp = spans[j], m = sp.marker; + if (sp.from <= pos && (sp.to == null || sp.to > pos)) { + if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = ""; } + if (m.className) spanStyle += " " + m.className; + if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle; + if (m.endStyle && sp.to == nextChange) spanEndStyle += " " + m.endStyle; + if (m.title && !title) title = m.title; + if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0)) + collapsed = sp; + } else if (sp.from > pos && nextChange > sp.from) { + nextChange = sp.from; + } + if (m.type == "bookmark" && sp.from == pos && m.widgetNode) foundBookmarks.push(m); + } + if (collapsed && (collapsed.from || 0) == pos) { + buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos, + collapsed.marker, collapsed.from == null); + if (collapsed.to == null) return; + } + if (!collapsed && foundBookmarks.length) for (var j = 0; j < foundBookmarks.length; ++j) + buildCollapsedSpan(builder, 0, foundBookmarks[j]); + } + if (pos >= len) break; + + var upto = Math.min(len, nextChange); + while (true) { + if (text) { + var end = pos + text.length; + if (!collapsed) { + var tokenText = end > upto ? text.slice(0, upto - pos) : text; + builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, + spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", title); + } + if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;} + pos = end; + spanStartStyle = ""; + } + text = allText.slice(at, at = styles[i++]); + style = interpretTokenStyle(styles[i++], builder.cm.options); + } + } + } + + // DOCUMENT DATA STRUCTURE + + // By default, updates that start and end at the beginning of a line + // are treated specially, in order to make the association of line + // widgets and marker elements with the text behave more intuitive. + function isWholeLineUpdate(doc, change) { + return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" && + (!doc.cm || doc.cm.options.wholeLineUpdateBefore); + } + + // Perform a change on the document data structure. + function updateDoc(doc, change, markedSpans, estimateHeight) { + function spansFor(n) {return markedSpans ? markedSpans[n] : null;} + function update(line, text, spans) { + updateLine(line, text, spans, estimateHeight); + signalLater(line, "change", line, change); + } + + var from = change.from, to = change.to, text = change.text; + var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); + var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; + + // Adjust the line structure + if (isWholeLineUpdate(doc, change)) { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + for (var i = 0, added = []; i < text.length - 1; ++i) + added.push(new Line(text[i], spansFor(i), estimateHeight)); + update(lastLine, lastLine.text, lastSpans); + if (nlines) doc.remove(from.line, nlines); + if (added.length) doc.insert(from.line, added); + } else if (firstLine == lastLine) { + if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); + } else { + for (var added = [], i = 1; i < text.length - 1; ++i) + added.push(new Line(text[i], spansFor(i), estimateHeight)); + added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight)); + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + doc.insert(from.line + 1, added); + } + } else if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); + doc.remove(from.line + 1, nlines); + } else { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); + for (var i = 1, added = []; i < text.length - 1; ++i) + added.push(new Line(text[i], spansFor(i), estimateHeight)); + if (nlines > 1) doc.remove(from.line + 1, nlines - 1); + doc.insert(from.line + 1, added); + } + + signalLater(doc, "change", doc, change); + } + + // The document is represented as a BTree consisting of leaves, with + // chunk of lines in them, and branches, with up to ten leaves or + // other branch nodes below them. The top node is always a branch + // node, and is the document object itself (meaning it has + // additional methods and properties). + // + // All nodes have parent links. The tree is used both to go from + // line numbers to line objects, and to go from objects to numbers. + // It also indexes by height, and is used to convert between height + // and line object, and to find the total height of the document. + // + // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html + + function LeafChunk(lines) { + this.lines = lines; + this.parent = null; + for (var i = 0, height = 0; i < lines.length; ++i) { + lines[i].parent = this; + height += lines[i].height; + } + this.height = height; + } + + LeafChunk.prototype = { + chunkSize: function() { return this.lines.length; }, + // Remove the n lines at offset 'at'. + removeInner: function(at, n) { + for (var i = at, e = at + n; i < e; ++i) { + var line = this.lines[i]; + this.height -= line.height; + cleanUpLine(line); + signalLater(line, "delete"); + } + this.lines.splice(at, n); + }, + // Helper used to collapse a small branch into a single leaf. + collapse: function(lines) { + lines.push.apply(lines, this.lines); + }, + // Insert the given array of lines at offset 'at', count them as + // having the given height. + insertInner: function(at, lines, height) { + this.height += height; + this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); + for (var i = 0; i < lines.length; ++i) lines[i].parent = this; + }, + // Used to iterate over a part of the tree. + iterN: function(at, n, op) { + for (var e = at + n; at < e; ++at) + if (op(this.lines[at])) return true; + } + }; + + function BranchChunk(children) { + this.children = children; + var size = 0, height = 0; + for (var i = 0; i < children.length; ++i) { + var ch = children[i]; + size += ch.chunkSize(); height += ch.height; + ch.parent = this; + } + this.size = size; + this.height = height; + this.parent = null; + } + + BranchChunk.prototype = { + chunkSize: function() { return this.size; }, + removeInner: function(at, n) { + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), oldHeight = child.height; + child.removeInner(at, rm); + this.height -= oldHeight - child.height; + if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } + if ((n -= rm) == 0) break; + at = 0; + } else at -= sz; + } + // If the result is smaller than 25 lines, ensure that it is a + // single leaf node. + if (this.size - n < 25 && + (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + this.children[0].parent = this; + } + }, + collapse: function(lines) { + for (var i = 0; i < this.children.length; ++i) this.children[i].collapse(lines); + }, + insertInner: function(at, lines, height) { + this.size += lines.length; + this.height += height; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at <= sz) { + child.insertInner(at, lines, height); + if (child.lines && child.lines.length > 50) { + while (child.lines.length > 50) { + var spilled = child.lines.splice(child.lines.length - 25, 25); + var newleaf = new LeafChunk(spilled); + child.height -= newleaf.height; + this.children.splice(i + 1, 0, newleaf); + newleaf.parent = this; + } + this.maybeSpill(); + } + break; + } + at -= sz; + } + }, + // When a node has grown, check whether it should be split. + maybeSpill: function() { + if (this.children.length <= 10) return; + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10); + me.parent.maybeSpill(); + }, + iterN: function(at, n, op) { + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) return true; + if ((n -= used) == 0) break; + at = 0; + } else at -= sz; + } + } + }; + + var nextDocId = 0; + var Doc = CodeMirror.Doc = function(text, mode, firstLine) { + if (!(this instanceof Doc)) return new Doc(text, mode, firstLine); + if (firstLine == null) firstLine = 0; + + BranchChunk.call(this, [new LeafChunk([new Line("", null)])]); + this.first = firstLine; + this.scrollTop = this.scrollLeft = 0; + this.cantEdit = false; + this.cleanGeneration = 1; + this.frontier = firstLine; + var start = Pos(firstLine, 0); + this.sel = simpleSelection(start); + this.history = new History(null); + this.id = ++nextDocId; + this.modeOption = mode; + + if (typeof text == "string") text = splitLines(text); + updateDoc(this, {from: start, to: start, text: text}); + setSelection(this, simpleSelection(start), sel_dontScroll); + }; + + Doc.prototype = createObj(BranchChunk.prototype, { + constructor: Doc, + // Iterate over the document. Supports two forms -- with only one + // argument, it calls that for each line in the document. With + // three, it iterates over the range given by the first two (with + // the second being non-inclusive). + iter: function(from, to, op) { + if (op) this.iterN(from - this.first, to - from, op); + else this.iterN(this.first, this.first + this.size, from); + }, + + // Non-public interface for adding and removing lines. + insert: function(at, lines) { + var height = 0; + for (var i = 0; i < lines.length; ++i) height += lines[i].height; + this.insertInner(at - this.first, lines, height); + }, + remove: function(at, n) { this.removeInner(at - this.first, n); }, + + // From here, the methods are part of the public interface. Most + // are also available from CodeMirror (editor) instances. + + getValue: function(lineSep) { + var lines = getLines(this, this.first, this.first + this.size); + if (lineSep === false) return lines; + return lines.join(lineSep || "\n"); + }, + setValue: docMethodOp(function(code) { + var top = Pos(this.first, 0), last = this.first + this.size - 1; + makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), + text: splitLines(code), origin: "setValue"}, true); + setSelection(this, simpleSelection(top)); + }), + replaceRange: function(code, from, to, origin) { + from = clipPos(this, from); + to = to ? clipPos(this, to) : from; + replaceRange(this, code, from, to, origin); + }, + getRange: function(from, to, lineSep) { + var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); + if (lineSep === false) return lines; + return lines.join(lineSep || "\n"); + }, + + getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;}, + + getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);}, + getLineNumber: function(line) {return lineNo(line);}, + + getLineHandleVisualStart: function(line) { + if (typeof line == "number") line = getLine(this, line); + return visualLine(line); + }, + + lineCount: function() {return this.size;}, + firstLine: function() {return this.first;}, + lastLine: function() {return this.first + this.size - 1;}, + + clipPos: function(pos) {return clipPos(this, pos);}, + + getCursor: function(start) { + var range = this.sel.primary(), pos; + if (start == null || start == "head") pos = range.head; + else if (start == "anchor") pos = range.anchor; + else if (start == "end" || start == "to" || start === false) pos = range.to(); + else pos = range.from(); + return pos; + }, + listSelections: function() { return this.sel.ranges; }, + somethingSelected: function() {return this.sel.somethingSelected();}, + + setCursor: docMethodOp(function(line, ch, options) { + setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options); + }), + setSelection: docMethodOp(function(anchor, head, options) { + setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options); + }), + extendSelection: docMethodOp(function(head, other, options) { + extendSelection(this, clipPos(this, head), other && clipPos(this, other), options); + }), + extendSelections: docMethodOp(function(heads, options) { + extendSelections(this, clipPosArray(this, heads, options)); + }), + extendSelectionsBy: docMethodOp(function(f, options) { + extendSelections(this, map(this.sel.ranges, f), options); + }), + setSelections: docMethodOp(function(ranges, primary, options) { + if (!ranges.length) return; + for (var i = 0, out = []; i < ranges.length; i++) + out[i] = new Range(clipPos(this, ranges[i].anchor), + clipPos(this, ranges[i].head)); + if (primary == null) primary = Math.min(ranges.length - 1, this.sel.primIndex); + setSelection(this, normalizeSelection(out, primary), options); + }), + addSelection: docMethodOp(function(anchor, head, options) { + var ranges = this.sel.ranges.slice(0); + ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor))); + setSelection(this, normalizeSelection(ranges, ranges.length - 1), options); + }), + + getSelection: function(lineSep) { + var ranges = this.sel.ranges, lines; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this, ranges[i].from(), ranges[i].to()); + lines = lines ? lines.concat(sel) : sel; + } + if (lineSep === false) return lines; + else return lines.join(lineSep || "\n"); + }, + getSelections: function(lineSep) { + var parts = [], ranges = this.sel.ranges; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this, ranges[i].from(), ranges[i].to()); + if (lineSep !== false) sel = sel.join(lineSep || "\n"); + parts[i] = sel; + } + return parts; + }, + replaceSelection: function(code, collapse, origin) { + var dup = []; + for (var i = 0; i < this.sel.ranges.length; i++) + dup[i] = code; + this.replaceSelections(dup, collapse, origin || "+input"); + }, + replaceSelections: docMethodOp(function(code, collapse, origin) { + var changes = [], sel = this.sel; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + changes[i] = {from: range.from(), to: range.to(), text: splitLines(code[i]), origin: origin}; + } + var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse); + for (var i = changes.length - 1; i >= 0; i--) + makeChange(this, changes[i]); + if (newSel) setSelectionReplaceHistory(this, newSel); + else if (this.cm) ensureCursorVisible(this.cm); + }), + undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}), + redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}), + undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}), + redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}), + + setExtending: function(val) {this.extend = val;}, + getExtending: function() {return this.extend;}, + + historySize: function() { + var hist = this.history, done = 0, undone = 0; + for (var i = 0; i < hist.done.length; i++) if (!hist.done[i].ranges) ++done; + for (var i = 0; i < hist.undone.length; i++) if (!hist.undone[i].ranges) ++undone; + return {undo: done, redo: undone}; + }, + clearHistory: function() {this.history = new History(this.history.maxGeneration);}, + + markClean: function() { + this.cleanGeneration = this.changeGeneration(true); + }, + changeGeneration: function(forceSplit) { + if (forceSplit) + this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; + return this.history.generation; + }, + isClean: function (gen) { + return this.history.generation == (gen || this.cleanGeneration); + }, + + getHistory: function() { + return {done: copyHistoryArray(this.history.done), + undone: copyHistoryArray(this.history.undone)}; + }, + setHistory: function(histData) { + var hist = this.history = new History(this.history.maxGeneration); + hist.done = copyHistoryArray(histData.done.slice(0), null, true); + hist.undone = copyHistoryArray(histData.undone.slice(0), null, true); + }, + + addLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, "class", function(line) { + var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : "wrapClass"; + if (!line[prop]) line[prop] = cls; + else if (new RegExp("(?:^|\\s)" + cls + "(?:$|\\s)").test(line[prop])) return false; + else line[prop] += " " + cls; + return true; + }); + }), + removeLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, "class", function(line) { + var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : "wrapClass"; + var cur = line[prop]; + if (!cur) return false; + else if (cls == null) line[prop] = null; + else { + var found = cur.match(new RegExp("(?:^|\\s+)" + cls + "(?:$|\\s+)")); + if (!found) return false; + var end = found.index + found[0].length; + line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null; + } + return true; + }); + }), + + markText: function(from, to, options) { + return markText(this, clipPos(this, from), clipPos(this, to), options, "range"); + }, + setBookmark: function(pos, options) { + var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), + insertLeft: options && options.insertLeft, + clearWhenEmpty: false, shared: options && options.shared}; + pos = clipPos(this, pos); + return markText(this, pos, pos, realOpts, "bookmark"); + }, + findMarksAt: function(pos) { + pos = clipPos(this, pos); + var markers = [], spans = getLine(this, pos.line).markedSpans; + if (spans) for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if ((span.from == null || span.from <= pos.ch) && + (span.to == null || span.to >= pos.ch)) + markers.push(span.marker.parent || span.marker); + } + return markers; + }, + findMarks: function(from, to, filter) { + from = clipPos(this, from); to = clipPos(this, to); + var found = [], lineNo = from.line; + this.iter(from.line, to.line + 1, function(line) { + var spans = line.markedSpans; + if (spans) for (var i = 0; i < spans.length; i++) { + var span = spans[i]; + if (!(lineNo == from.line && from.ch > span.to || + span.from == null && lineNo != from.line|| + lineNo == to.line && span.from > to.ch) && + (!filter || filter(span.marker))) + found.push(span.marker.parent || span.marker); + } + ++lineNo; + }); + return found; + }, + getAllMarks: function() { + var markers = []; + this.iter(function(line) { + var sps = line.markedSpans; + if (sps) for (var i = 0; i < sps.length; ++i) + if (sps[i].from != null) markers.push(sps[i].marker); + }); + return markers; + }, + + posFromIndex: function(off) { + var ch, lineNo = this.first; + this.iter(function(line) { + var sz = line.text.length + 1; + if (sz > off) { ch = off; return true; } + off -= sz; + ++lineNo; + }); + return clipPos(this, Pos(lineNo, ch)); + }, + indexFromPos: function (coords) { + coords = clipPos(this, coords); + var index = coords.ch; + if (coords.line < this.first || coords.ch < 0) return 0; + this.iter(this.first, coords.line, function (line) { + index += line.text.length + 1; + }); + return index; + }, + + copy: function(copyHistory) { + var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first); + doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; + doc.sel = this.sel; + doc.extend = false; + if (copyHistory) { + doc.history.undoDepth = this.history.undoDepth; + doc.setHistory(this.getHistory()); + } + return doc; + }, + + linkedDoc: function(options) { + if (!options) options = {}; + var from = this.first, to = this.first + this.size; + if (options.from != null && options.from > from) from = options.from; + if (options.to != null && options.to < to) to = options.to; + var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from); + if (options.sharedHist) copy.history = this.history; + (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); + copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; + copySharedMarkers(copy, findSharedMarkers(this)); + return copy; + }, + unlinkDoc: function(other) { + if (other instanceof CodeMirror) other = other.doc; + if (this.linked) for (var i = 0; i < this.linked.length; ++i) { + var link = this.linked[i]; + if (link.doc != other) continue; + this.linked.splice(i, 1); + other.unlinkDoc(this); + detachSharedMarkers(findSharedMarkers(this)); + break; + } + // If the histories were shared, split them again + if (other.history == this.history) { + var splitIds = [other.id]; + linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true); + other.history = new History(null); + other.history.done = copyHistoryArray(this.history.done, splitIds); + other.history.undone = copyHistoryArray(this.history.undone, splitIds); + } + }, + iterLinkedDocs: function(f) {linkedDocs(this, f);}, + + getMode: function() {return this.mode;}, + getEditor: function() {return this.cm;} + }); + + // Public alias. + Doc.prototype.eachLine = Doc.prototype.iter; + + // Set up methods on CodeMirror's prototype to redirect to the editor's document. + var dontDelegate = "iter insert remove copy getEditor".split(" "); + for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) + CodeMirror.prototype[prop] = (function(method) { + return function() {return method.apply(this.doc, arguments);}; + })(Doc.prototype[prop]); + + eventMixin(Doc); + + // Call f for all linked documents. + function linkedDocs(doc, f, sharedHistOnly) { + function propagate(doc, skip, sharedHist) { + if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) { + var rel = doc.linked[i]; + if (rel.doc == skip) continue; + var shared = sharedHist && rel.sharedHist; + if (sharedHistOnly && !shared) continue; + f(rel.doc, shared); + propagate(rel.doc, doc, shared); + } + } + propagate(doc, null, true); + } + + // Attach a document to an editor. + function attachDoc(cm, doc) { + if (doc.cm) throw new Error("This document is already in use."); + cm.doc = doc; + doc.cm = cm; + estimateLineHeights(cm); + loadMode(cm); + if (!cm.options.lineWrapping) findMaxLine(cm); + cm.options.mode = doc.modeOption; + regChange(cm); + } + + // LINE UTILITIES + + // Find the line object corresponding to the given line number. + function getLine(doc, n) { + n -= doc.first; + if (n < 0 || n >= doc.size) throw new Error("There is no line " + (n + doc.first) + " in the document."); + for (var chunk = doc; !chunk.lines;) { + for (var i = 0;; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; break; } + n -= sz; + } + } + return chunk.lines[n]; + } + + // Get the part of a document between two positions, as an array of + // strings. + function getBetween(doc, start, end) { + var out = [], n = start.line; + doc.iter(start.line, end.line + 1, function(line) { + var text = line.text; + if (n == end.line) text = text.slice(0, end.ch); + if (n == start.line) text = text.slice(start.ch); + out.push(text); + ++n; + }); + return out; + } + // Get the lines between from and to, as array of strings. + function getLines(doc, from, to) { + var out = []; + doc.iter(from, to, function(line) { out.push(line.text); }); + return out; + } + + // Update the height of a line, propagating the height change + // upwards to parent nodes. + function updateLineHeight(line, height) { + var diff = height - line.height; + if (diff) for (var n = line; n; n = n.parent) n.height += diff; + } + + // Given a line object, find its line number by walking up through + // its parent links. + function lineNo(line) { + if (line.parent == null) return null; + var cur = line.parent, no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0;; ++i) { + if (chunk.children[i] == cur) break; + no += chunk.children[i].chunkSize(); + } + } + return no + cur.first; + } + + // Find the line at the given vertical position, using the height + // information in the document tree. + function lineAtHeight(chunk, h) { + var n = chunk.first; + outer: do { + for (var i = 0; i < chunk.children.length; ++i) { + var child = chunk.children[i], ch = child.height; + if (h < ch) { chunk = child; continue outer; } + h -= ch; + n += child.chunkSize(); + } + return n; + } while (!chunk.lines); + for (var i = 0; i < chunk.lines.length; ++i) { + var line = chunk.lines[i], lh = line.height; + if (h < lh) break; + h -= lh; + } + return n + i; + } + + + // Find the height above the given line. + function heightAtLine(lineObj) { + lineObj = visualLine(lineObj); + + var h = 0, chunk = lineObj.parent; + for (var i = 0; i < chunk.lines.length; ++i) { + var line = chunk.lines[i]; + if (line == lineObj) break; + else h += line.height; + } + for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { + for (var i = 0; i < p.children.length; ++i) { + var cur = p.children[i]; + if (cur == chunk) break; + else h += cur.height; + } + } + return h; + } + + // Get the bidi ordering for the given line (and cache it). Returns + // false for lines that are fully left-to-right, and an array of + // BidiSpan objects otherwise. + function getOrder(line) { + var order = line.order; + if (order == null) order = line.order = bidiOrdering(line.text); + return order; + } + + // HISTORY + + function History(startGen) { + // Arrays of change events and selections. Doing something adds an + // event to done and clears undo. Undoing moves events from done + // to undone, redoing moves them in the other direction. + this.done = []; this.undone = []; + this.undoDepth = Infinity; + // Used to track when changes can be merged into a single undo + // event + this.lastModTime = this.lastSelTime = 0; + this.lastOp = this.lastSelOp = null; + this.lastOrigin = this.lastSelOrigin = null; + // Used by the isClean() method + this.generation = this.maxGeneration = startGen || 1; + } + + // Create a history change event from an updateDoc-style change + // object. + function historyChangeFromChange(doc, change) { + var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; + attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); + linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true); + return histChange; + } + + // Pop all selection events off the end of a history array. Stop at + // a change event. + function clearSelectionEvents(array) { + while (array.length) { + var last = lst(array); + if (last.ranges) array.pop(); + else break; + } + } + + // Find the top change event in the history. Pop off selection + // events that are in the way. + function lastChangeEvent(hist, force) { + if (force) { + clearSelectionEvents(hist.done); + return lst(hist.done); + } else if (hist.done.length && !lst(hist.done).ranges) { + return lst(hist.done); + } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) { + hist.done.pop(); + return lst(hist.done); + } + } + + // Register a change in the history. Merges changes that are within + // a single operation, ore are close together with an origin that + // allows merging (starting with "+") into a single event. + function addChangeToHistory(doc, change, selAfter, opId) { + var hist = doc.history; + hist.undone.length = 0; + var time = +new Date, cur; + + if ((hist.lastOp == opId || + hist.lastOrigin == change.origin && change.origin && + ((change.origin.charAt(0) == "+" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) || + change.origin.charAt(0) == "*")) && + (cur = lastChangeEvent(hist, hist.lastOp == opId))) { + // Merge this change into the last event + var last = lst(cur.changes); + if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) { + // Optimized case for simple insertion -- don't want to add + // new changesets for every character typed + last.to = changeEnd(change); + } else { + // Add new sub-event + cur.changes.push(historyChangeFromChange(doc, change)); + } + } else { + // Can not be merged, start a new event. + var before = lst(hist.done); + if (!before || !before.ranges) + pushSelectionToHistory(doc.sel, hist.done); + cur = {changes: [historyChangeFromChange(doc, change)], + generation: hist.generation}; + hist.done.push(cur); + while (hist.done.length > hist.undoDepth) { + hist.done.shift(); + if (!hist.done[0].ranges) hist.done.shift(); + } + } + hist.done.push(selAfter); + hist.generation = ++hist.maxGeneration; + hist.lastModTime = hist.lastSelTime = time; + hist.lastOp = hist.lastSelOp = opId; + hist.lastOrigin = hist.lastSelOrigin = change.origin; + + if (!last) signal(doc, "historyAdded"); + } + + function selectionEventCanBeMerged(doc, origin, prev, sel) { + var ch = origin.charAt(0); + return ch == "*" || + ch == "+" && + prev.ranges.length == sel.ranges.length && + prev.somethingSelected() == sel.somethingSelected() && + new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500); + } + + // Called whenever the selection changes, sets the new selection as + // the pending selection in the history, and pushes the old pending + // selection into the 'done' array when it was significantly + // different (in number of selected ranges, emptiness, or time). + function addSelectionToHistory(doc, sel, opId, options) { + var hist = doc.history, origin = options && options.origin; + + // A new event is started when the previous origin does not match + // the current, or the origins don't allow matching. Origins + // starting with * are always merged, those starting with + are + // merged when similar and close together in time. + if (opId == hist.lastSelOp || + (origin && hist.lastSelOrigin == origin && + (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin || + selectionEventCanBeMerged(doc, origin, lst(hist.done), sel)))) + hist.done[hist.done.length - 1] = sel; + else + pushSelectionToHistory(sel, hist.done); + + hist.lastSelTime = +new Date; + hist.lastSelOrigin = origin; + hist.lastSelOp = opId; + if (options && options.clearRedo !== false) + clearSelectionEvents(hist.undone); + } + + function pushSelectionToHistory(sel, dest) { + var top = lst(dest); + if (!(top && top.ranges && top.equals(sel))) + dest.push(sel); + } + + // Used to store marked span information in the history. + function attachLocalSpans(doc, change, from, to) { + var existing = change["spans_" + doc.id], n = 0; + doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) { + if (line.markedSpans) + (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; + ++n; + }); + } + + // When un/re-doing restores text containing marked spans, those + // that have been explicitly cleared should not be restored. + function removeClearedSpans(spans) { + if (!spans) return null; + for (var i = 0, out; i < spans.length; ++i) { + if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); } + else if (out) out.push(spans[i]); + } + return !out ? spans : out.length ? out : null; + } + + // Retrieve and filter the old marked spans stored in a change event. + function getOldSpans(doc, change) { + var found = change["spans_" + doc.id]; + if (!found) return null; + for (var i = 0, nw = []; i < change.text.length; ++i) + nw.push(removeClearedSpans(found[i])); + return nw; + } + + // Used both to provide a JSON-safe object in .getHistory, and, when + // detaching a document, to split the history in two + function copyHistoryArray(events, newGroup, instantiateSel) { + for (var i = 0, copy = []; i < events.length; ++i) { + var event = events[i]; + if (event.ranges) { + copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event); + continue; + } + var changes = event.changes, newChanges = []; + copy.push({changes: newChanges}); + for (var j = 0; j < changes.length; ++j) { + var change = changes[j], m; + newChanges.push({from: change.from, to: change.to, text: change.text}); + if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) { + if (indexOf(newGroup, Number(m[1])) > -1) { + lst(newChanges)[prop] = change[prop]; + delete change[prop]; + } + } + } + } + return copy; + } + + // Rebasing/resetting history to deal with externally-sourced changes + + function rebaseHistSelSingle(pos, from, to, diff) { + if (to < pos.line) { + pos.line += diff; + } else if (from < pos.line) { + pos.line = from; + pos.ch = 0; + } + } + + // Tries to rebase an array of history events given a change in the + // document. If the change touches the same lines as the event, the + // event, and everything 'behind' it, is discarded. If the change is + // before the event, the event's positions are updated. Uses a + // copy-on-write scheme for the positions, to avoid having to + // reallocate them all on every rebase, but also avoid problems with + // shared position objects being unsafely updated. + function rebaseHistArray(array, from, to, diff) { + for (var i = 0; i < array.length; ++i) { + var sub = array[i], ok = true; + if (sub.ranges) { + if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; } + for (var j = 0; j < sub.ranges.length; j++) { + rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff); + rebaseHistSelSingle(sub.ranges[j].head, from, to, diff); + } + continue; + } + for (var j = 0; j < sub.changes.length; ++j) { + var cur = sub.changes[j]; + if (to < cur.from.line) { + cur.from = Pos(cur.from.line + diff, cur.from.ch); + cur.to = Pos(cur.to.line + diff, cur.to.ch); + } else if (from <= cur.to.line) { + ok = false; + break; + } + } + if (!ok) { + array.splice(0, i + 1); + i = 0; + } + } + } + + function rebaseHist(hist, change) { + var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; + rebaseHistArray(hist.done, from, to, diff); + rebaseHistArray(hist.undone, from, to, diff); + } + + // EVENT UTILITIES + + // Due to the fact that we still support jurassic IE versions, some + // compatibility wrappers are needed. + + var e_preventDefault = CodeMirror.e_preventDefault = function(e) { + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + }; + var e_stopPropagation = CodeMirror.e_stopPropagation = function(e) { + if (e.stopPropagation) e.stopPropagation(); + else e.cancelBubble = true; + }; + function e_defaultPrevented(e) { + return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false; + } + var e_stop = CodeMirror.e_stop = function(e) {e_preventDefault(e); e_stopPropagation(e);}; + + function e_target(e) {return e.target || e.srcElement;} + function e_button(e) { + var b = e.which; + if (b == null) { + if (e.button & 1) b = 1; + else if (e.button & 2) b = 3; + else if (e.button & 4) b = 2; + } + if (mac && e.ctrlKey && b == 1) b = 3; + return b; + } + + // EVENT HANDLING + + // Lightweight event framework. on/off also work on DOM nodes, + // registering native DOM handlers. + + var on = CodeMirror.on = function(emitter, type, f) { + if (emitter.addEventListener) + emitter.addEventListener(type, f, false); + else if (emitter.attachEvent) + emitter.attachEvent("on" + type, f); + else { + var map = emitter._handlers || (emitter._handlers = {}); + var arr = map[type] || (map[type] = []); + arr.push(f); + } + }; + + var off = CodeMirror.off = function(emitter, type, f) { + if (emitter.removeEventListener) + emitter.removeEventListener(type, f, false); + else if (emitter.detachEvent) + emitter.detachEvent("on" + type, f); + else { + var arr = emitter._handlers && emitter._handlers[type]; + if (!arr) return; + for (var i = 0; i < arr.length; ++i) + if (arr[i] == f) { arr.splice(i, 1); break; } + } + }; + + var signal = CodeMirror.signal = function(emitter, type /*, values...*/) { + var arr = emitter._handlers && emitter._handlers[type]; + if (!arr) return; + var args = Array.prototype.slice.call(arguments, 2); + for (var i = 0; i < arr.length; ++i) arr[i].apply(null, args); + }; + + var orphanDelayedCallbacks = null; + + // Often, we want to signal events at a point where we are in the + // middle of some work, but don't want the handler to start calling + // other methods on the editor, which might be in an inconsistent + // state or simply not expect any other events to happen. + // signalLater looks whether there are any handlers, and schedules + // them to be executed when the last operation ends, or, if no + // operation is active, when a timeout fires. + function signalLater(emitter, type /*, values...*/) { + var arr = emitter._handlers && emitter._handlers[type]; + if (!arr) return; + var args = Array.prototype.slice.call(arguments, 2), list; + if (operationGroup) { + list = operationGroup.delayedCallbacks; + } else if (orphanDelayedCallbacks) { + list = orphanDelayedCallbacks; + } else { + list = orphanDelayedCallbacks = []; + setTimeout(fireOrphanDelayed, 0); + } + function bnd(f) {return function(){f.apply(null, args);};}; + for (var i = 0; i < arr.length; ++i) + list.push(bnd(arr[i])); + } + + function fireOrphanDelayed() { + var delayed = orphanDelayedCallbacks; + orphanDelayedCallbacks = null; + for (var i = 0; i < delayed.length; ++i) delayed[i](); + } + + // The DOM events that CodeMirror handles can be overridden by + // registering a (non-DOM) handler on the editor for the event name, + // and preventDefault-ing the event in that handler. + function signalDOMEvent(cm, e, override) { + signal(cm, override || e.type, cm, e); + return e_defaultPrevented(e) || e.codemirrorIgnore; + } + + function signalCursorActivity(cm) { + var arr = cm._handlers && cm._handlers.cursorActivity; + if (!arr) return; + var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []); + for (var i = 0; i < arr.length; ++i) if (indexOf(set, arr[i]) == -1) + set.push(arr[i]); + } + + function hasHandler(emitter, type) { + var arr = emitter._handlers && emitter._handlers[type]; + return arr && arr.length > 0; + } + + // Add on and off methods to a constructor's prototype, to make + // registering events on such objects more convenient. + function eventMixin(ctor) { + ctor.prototype.on = function(type, f) {on(this, type, f);}; + ctor.prototype.off = function(type, f) {off(this, type, f);}; + } + + // MISC UTILITIES + + // Number of pixels added to scroller and sizer to hide scrollbar + var scrollerCutOff = 30; + + // Returned or thrown by various protocols to signal 'I'm not + // handling this'. + var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}}; + + // Reused option objects for setSelection & friends + var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"}; + + function Delayed() {this.id = null;} + Delayed.prototype.set = function(ms, f) { + clearTimeout(this.id); + this.id = setTimeout(f, ms); + }; + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + var countColumn = CodeMirror.countColumn = function(string, end, tabSize, startIndex, startValue) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) end = string.length; + } + for (var i = startIndex || 0, n = startValue || 0;;) { + var nextTab = string.indexOf("\t", i); + if (nextTab < 0 || nextTab >= end) + return n + (end - i); + n += nextTab - i; + n += tabSize - (n % tabSize); + i = nextTab + 1; + } + }; + + // The inverse of countColumn -- find the offset that corresponds to + // a particular column. + function findColumn(string, goal, tabSize) { + for (var pos = 0, col = 0;;) { + var nextTab = string.indexOf("\t", pos); + if (nextTab == -1) nextTab = string.length; + var skipped = nextTab - pos; + if (nextTab == string.length || col + skipped >= goal) + return pos + Math.min(skipped, goal - col); + col += nextTab - pos; + col += tabSize - (col % tabSize); + pos = nextTab + 1; + if (col >= goal) return pos; + } + } + + var spaceStrs = [""]; + function spaceStr(n) { + while (spaceStrs.length <= n) + spaceStrs.push(lst(spaceStrs) + " "); + return spaceStrs[n]; + } + + function lst(arr) { return arr[arr.length-1]; } + + var selectInput = function(node) { node.select(); }; + if (ios) // Mobile Safari apparently has a bug where select() is broken. + selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; + else if (ie) // Suppress mysterious IE10 errors + selectInput = function(node) { try { node.select(); } catch(_e) {} }; + + function indexOf(array, elt) { + for (var i = 0; i < array.length; ++i) + if (array[i] == elt) return i; + return -1; + } + if ([].indexOf) indexOf = function(array, elt) { return array.indexOf(elt); }; + function map(array, f) { + var out = []; + for (var i = 0; i < array.length; i++) out[i] = f(array[i], i); + return out; + } + if ([].map) map = function(array, f) { return array.map(f); }; + + function createObj(base, props) { + var inst; + if (Object.create) { + inst = Object.create(base); + } else { + var ctor = function() {}; + ctor.prototype = base; + inst = new ctor(); + } + if (props) copyObj(props, inst); + return inst; + }; + + function copyObj(obj, target, overwrite) { + if (!target) target = {}; + for (var prop in obj) + if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop))) + target[prop] = obj[prop]; + return target; + } + + function bind(f) { + var args = Array.prototype.slice.call(arguments, 1); + return function(){return f.apply(null, args);}; + } + + var nonASCIISingleCaseWordChar = /[\u00df\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; + var isWordCharBasic = CodeMirror.isWordChar = function(ch) { + return /\w/.test(ch) || ch > "\x80" && + (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)); + }; + function isWordChar(ch, helper) { + if (!helper) return isWordCharBasic(ch); + if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) return true; + return helper.test(ch); + } + + function isEmpty(obj) { + for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false; + return true; + } + + // Extending unicode characters. A series of a non-extending char + + // any number of extending chars is treated as a single unit as far + // as editing and measuring is concerned. This is not fully correct, + // since some scripts/fonts/browsers also treat other configurations + // of code points as a group. + var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/; + function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); } + + // DOM UTILITIES + + function elt(tag, content, className, style) { + var e = document.createElement(tag); + if (className) e.className = className; + if (style) e.style.cssText = style; + if (typeof content == "string") e.appendChild(document.createTextNode(content)); + else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]); + return e; + } + + var range; + if (document.createRange) range = function(node, start, end) { + var r = document.createRange(); + r.setEnd(node, end); + r.setStart(node, start); + return r; + }; + else range = function(node, start, end) { + var r = document.body.createTextRange(); + r.moveToElementText(node.parentNode); + r.collapse(true); + r.moveEnd("character", end); + r.moveStart("character", start); + return r; + }; + + function removeChildren(e) { + for (var count = e.childNodes.length; count > 0; --count) + e.removeChild(e.firstChild); + return e; + } + + function removeChildrenAndAdd(parent, e) { + return removeChildren(parent).appendChild(e); + } + + function contains(parent, child) { + if (parent.contains) + return parent.contains(child); + while (child = child.parentNode) + if (child == parent) return true; + } + + function activeElt() { return document.activeElement; } + // Older versions of IE throws unspecified error when touching + // document.activeElement in some cases (during loading, in iframe) + if (ie && ie_version < 11) activeElt = function() { + try { return document.activeElement; } + catch(e) { return document.body; } + }; + + function classTest(cls) { return new RegExp("\\b" + cls + "\\b\\s*"); } + function rmClass(node, cls) { + var test = classTest(cls); + if (test.test(node.className)) node.className = node.className.replace(test, ""); + } + function addClass(node, cls) { + if (!classTest(cls).test(node.className)) node.className += " " + cls; + } + function joinClasses(a, b) { + var as = a.split(" "); + for (var i = 0; i < as.length; i++) + if (as[i] && !classTest(as[i]).test(b)) b += " " + as[i]; + return b; + } + + // WINDOW-WIDE EVENTS + + // These must be handled carefully, because naively registering a + // handler for each editor will cause the editors to never be + // garbage collected. + + function forEachCodeMirror(f) { + if (!document.body.getElementsByClassName) return; + var byClass = document.body.getElementsByClassName("CodeMirror"); + for (var i = 0; i < byClass.length; i++) { + var cm = byClass[i].CodeMirror; + if (cm) f(cm); + } + } + + var globalsRegistered = false; + function ensureGlobalHandlers() { + if (globalsRegistered) return; + registerGlobalHandlers(); + globalsRegistered = true; + } + function registerGlobalHandlers() { + // When the window resizes, we need to refresh active editors. + var resizeTimer; + on(window, "resize", function() { + if (resizeTimer == null) resizeTimer = setTimeout(function() { + resizeTimer = null; + knownScrollbarWidth = null; + forEachCodeMirror(onResize); + }, 100); + }); + // When the window loses focus, we want to show the editor as blurred + on(window, "blur", function() { + forEachCodeMirror(onBlur); + }); + } + + // FEATURE DETECTION + + // Detect drag-and-drop + var dragAndDrop = function() { + // There is *some* kind of drag-and-drop support in IE6-8, but I + // couldn't get it to work yet. + if (ie && ie_version < 9) return false; + var div = elt('div'); + return "draggable" in div || "dragDrop" in div; + }(); + + var knownScrollbarWidth; + function scrollbarWidth(measure) { + if (knownScrollbarWidth != null) return knownScrollbarWidth; + var test = elt("div", null, null, "width: 50px; height: 50px; overflow-x: scroll"); + removeChildrenAndAdd(measure, test); + if (test.offsetWidth) + knownScrollbarWidth = test.offsetHeight - test.clientHeight; + return knownScrollbarWidth || 0; + } + + var zwspSupported; + function zeroWidthElement(measure) { + if (zwspSupported == null) { + var test = elt("span", "\u200b"); + removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); + if (measure.firstChild.offsetHeight != 0) + zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); + } + if (zwspSupported) return elt("span", "\u200b"); + else return elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); + } + + // Feature-detect IE's crummy client rect reporting for bidi text + var badBidiRects; + function hasBadBidiRects(measure) { + if (badBidiRects != null) return badBidiRects; + var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA")); + var r0 = range(txt, 0, 1).getBoundingClientRect(); + if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780) + var r1 = range(txt, 1, 2).getBoundingClientRect(); + return badBidiRects = (r1.right - r0.right < 3); + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLines = CodeMirror.splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) { + var pos = 0, result = [], l = string.length; + while (pos <= l) { + var nl = string.indexOf("\n", pos); + if (nl == -1) nl = string.length; + var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); + var rt = line.indexOf("\r"); + if (rt != -1) { + result.push(line.slice(0, rt)); + pos += rt + 1; + } else { + result.push(line); + pos = nl + 1; + } + } + return result; + } : function(string){return string.split(/\r\n?|\n/);}; + + var hasSelection = window.getSelection ? function(te) { + try { return te.selectionStart != te.selectionEnd; } + catch(e) { return false; } + } : function(te) { + try {var range = te.ownerDocument.selection.createRange();} + catch(e) {} + if (!range || range.parentElement() != te) return false; + return range.compareEndPoints("StartToEnd", range) != 0; + }; + + var hasCopyEvent = (function() { + var e = elt("div"); + if ("oncopy" in e) return true; + e.setAttribute("oncopy", "return;"); + return typeof e.oncopy == "function"; + })(); + + var badZoomedRects = null; + function hasBadZoomedRects(measure) { + if (badZoomedRects != null) return badZoomedRects; + var node = removeChildrenAndAdd(measure, elt("span", "x")); + var normal = node.getBoundingClientRect(); + var fromRange = range(node, 0, 1).getBoundingClientRect(); + return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1; + } + + // KEY NAMES + + var keyNames = {3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", + 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", + 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", + 46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod", 107: "=", 109: "-", 127: "Delete", + 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", + 221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete", + 63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"}; + CodeMirror.keyNames = keyNames; + (function() { + // Number keys + for (var i = 0; i < 10; i++) keyNames[i + 48] = keyNames[i + 96] = String(i); + // Alphabetic keys + for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i); + // Function keys + for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i; + })(); + + // BIDI HELPERS + + function iterateBidiSections(order, from, to, f) { + if (!order) return f(from, to, "ltr"); + var found = false; + for (var i = 0; i < order.length; ++i) { + var part = order[i]; + if (part.from < to && part.to > from || from == to && part.to == from) { + f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr"); + found = true; + } + } + if (!found) f(from, to, "ltr"); + } + + function bidiLeft(part) { return part.level % 2 ? part.to : part.from; } + function bidiRight(part) { return part.level % 2 ? part.from : part.to; } + + function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; } + function lineRight(line) { + var order = getOrder(line); + if (!order) return line.text.length; + return bidiRight(lst(order)); + } + + function lineStart(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLine(line); + if (visual != line) lineN = lineNo(visual); + var order = getOrder(visual); + var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual); + return Pos(lineN, ch); + } + function lineEnd(cm, lineN) { + var merged, line = getLine(cm.doc, lineN); + while (merged = collapsedSpanAtEnd(line)) { + line = merged.find(1, true).line; + lineN = null; + } + var order = getOrder(line); + var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line); + return Pos(lineN == null ? lineNo(line) : lineN, ch); + } + function lineStartSmart(cm, pos) { + var start = lineStart(cm, pos.line); + var line = getLine(cm.doc, start.line); + var order = getOrder(line); + if (!order || order[0].level == 0) { + var firstNonWS = Math.max(0, line.text.search(/\S/)); + var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; + return Pos(start.line, inWS ? 0 : firstNonWS); + } + return start; + } + + function compareBidiLevel(order, a, b) { + var linedir = order[0].level; + if (a == linedir) return true; + if (b == linedir) return false; + return a < b; + } + var bidiOther; + function getBidiPartAt(order, pos) { + bidiOther = null; + for (var i = 0, found; i < order.length; ++i) { + var cur = order[i]; + if (cur.from < pos && cur.to > pos) return i; + if ((cur.from == pos || cur.to == pos)) { + if (found == null) { + found = i; + } else if (compareBidiLevel(order, cur.level, order[found].level)) { + if (cur.from != cur.to) bidiOther = found; + return i; + } else { + if (cur.from != cur.to) bidiOther = i; + return found; + } + } + } + return found; + } + + function moveInLine(line, pos, dir, byUnit) { + if (!byUnit) return pos + dir; + do pos += dir; + while (pos > 0 && isExtendingChar(line.text.charAt(pos))); + return pos; + } + + // This is needed in order to move 'visually' through bi-directional + // text -- i.e., pressing left should make the cursor go left, even + // when in RTL text. The tricky part is the 'jumps', where RTL and + // LTR text touch each other. This often requires the cursor offset + // to move more than one unit, in order to visually move one unit. + function moveVisually(line, start, dir, byUnit) { + var bidi = getOrder(line); + if (!bidi) return moveLogically(line, start, dir, byUnit); + var pos = getBidiPartAt(bidi, start), part = bidi[pos]; + var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit); + + for (;;) { + if (target > part.from && target < part.to) return target; + if (target == part.from || target == part.to) { + if (getBidiPartAt(bidi, target) == pos) return target; + part = bidi[pos += dir]; + return (dir > 0) == part.level % 2 ? part.to : part.from; + } else { + part = bidi[pos += dir]; + if (!part) return null; + if ((dir > 0) == part.level % 2) + target = moveInLine(line, part.to, -1, byUnit); + else + target = moveInLine(line, part.from, 1, byUnit); + } + } + } + + function moveLogically(line, start, dir, byUnit) { + var target = start + dir; + if (byUnit) while (target > 0 && isExtendingChar(line.text.charAt(target))) target += dir; + return target < 0 || target > line.text.length ? null : target; + } + + // Bidirectional ordering algorithm + // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm + // that this (partially) implements. + + // One-char codes used for character types: + // L (L): Left-to-Right + // R (R): Right-to-Left + // r (AL): Right-to-Left Arabic + // 1 (EN): European Number + // + (ES): European Number Separator + // % (ET): European Number Terminator + // n (AN): Arabic Number + // , (CS): Common Number Separator + // m (NSM): Non-Spacing Mark + // b (BN): Boundary Neutral + // s (B): Paragraph Separator + // t (S): Segment Separator + // w (WS): Whitespace + // N (ON): Other Neutrals + + // Returns null if characters are ordered as they appear + // (left-to-right), or an array of sections ({from, to, level} + // objects) in the order in which they occur visually. + var bidiOrdering = (function() { + // Character types for codepoints 0 to 0xff + var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"; + // Character types for codepoints 0x600 to 0x6ff + var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm"; + function charType(code) { + if (code <= 0xf7) return lowTypes.charAt(code); + else if (0x590 <= code && code <= 0x5f4) return "R"; + else if (0x600 <= code && code <= 0x6ed) return arabicTypes.charAt(code - 0x600); + else if (0x6ee <= code && code <= 0x8ac) return "r"; + else if (0x2000 <= code && code <= 0x200b) return "w"; + else if (code == 0x200c) return "b"; + else return "L"; + } + + var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; + var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; + // Browsers seem to always treat the boundaries of block elements as being L. + var outerType = "L"; + + function BidiSpan(level, from, to) { + this.level = level; + this.from = from; this.to = to; + } + + return function(str) { + if (!bidiRE.test(str)) return false; + var len = str.length, types = []; + for (var i = 0, type; i < len; ++i) + types.push(type = charType(str.charCodeAt(i))); + + // W1. Examine each non-spacing mark (NSM) in the level run, and + // change the type of the NSM to the type of the previous + // character. If the NSM is at the start of the level run, it will + // get the type of sor. + for (var i = 0, prev = outerType; i < len; ++i) { + var type = types[i]; + if (type == "m") types[i] = prev; + else prev = type; + } + + // W2. Search backwards from each instance of a European number + // until the first strong type (R, L, AL, or sor) is found. If an + // AL is found, change the type of the European number to Arabic + // number. + // W3. Change all ALs to R. + for (var i = 0, cur = outerType; i < len; ++i) { + var type = types[i]; + if (type == "1" && cur == "r") types[i] = "n"; + else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; } + } + + // W4. A single European separator between two European numbers + // changes to a European number. A single common separator between + // two numbers of the same type changes to that type. + for (var i = 1, prev = types[0]; i < len - 1; ++i) { + var type = types[i]; + if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1"; + else if (type == "," && prev == types[i+1] && + (prev == "1" || prev == "n")) types[i] = prev; + prev = type; + } + + // W5. A sequence of European terminators adjacent to European + // numbers changes to all European numbers. + // W6. Otherwise, separators and terminators change to Other + // Neutral. + for (var i = 0; i < len; ++i) { + var type = types[i]; + if (type == ",") types[i] = "N"; + else if (type == "%") { + for (var end = i + 1; end < len && types[end] == "%"; ++end) {} + var replace = (i && types[i-1] == "!") || (end < len && types[end] == "1") ? "1" : "N"; + for (var j = i; j < end; ++j) types[j] = replace; + i = end - 1; + } + } + + // W7. Search backwards from each instance of a European number + // until the first strong type (R, L, or sor) is found. If an L is + // found, then change the type of the European number to L. + for (var i = 0, cur = outerType; i < len; ++i) { + var type = types[i]; + if (cur == "L" && type == "1") types[i] = "L"; + else if (isStrong.test(type)) cur = type; + } + + // N1. A sequence of neutrals takes the direction of the + // surrounding strong text if the text on both sides has the same + // direction. European and Arabic numbers act as if they were R in + // terms of their influence on neutrals. Start-of-level-run (sor) + // and end-of-level-run (eor) are used at level run boundaries. + // N2. Any remaining neutrals take the embedding direction. + for (var i = 0; i < len; ++i) { + if (isNeutral.test(types[i])) { + for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {} + var before = (i ? types[i-1] : outerType) == "L"; + var after = (end < len ? types[end] : outerType) == "L"; + var replace = before || after ? "L" : "R"; + for (var j = i; j < end; ++j) types[j] = replace; + i = end - 1; + } + } + + // Here we depart from the documented algorithm, in order to avoid + // building up an actual levels array. Since there are only three + // levels (0, 1, 2) in an implementation that doesn't take + // explicit embedding into account, we can build up the order on + // the fly, without following the level-based algorithm. + var order = [], m; + for (var i = 0; i < len;) { + if (countsAsLeft.test(types[i])) { + var start = i; + for (++i; i < len && countsAsLeft.test(types[i]); ++i) {} + order.push(new BidiSpan(0, start, i)); + } else { + var pos = i, at = order.length; + for (++i; i < len && types[i] != "L"; ++i) {} + for (var j = pos; j < i;) { + if (countsAsNum.test(types[j])) { + if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j)); + var nstart = j; + for (++j; j < i && countsAsNum.test(types[j]); ++j) {} + order.splice(at, 0, new BidiSpan(2, nstart, j)); + pos = j; + } else ++j; + } + if (pos < i) order.splice(at, 0, new BidiSpan(1, pos, i)); + } + } + if (order[0].level == 1 && (m = str.match(/^\s+/))) { + order[0].from = m[0].length; + order.unshift(new BidiSpan(0, 0, m[0].length)); + } + if (lst(order).level == 1 && (m = str.match(/\s+$/))) { + lst(order).to -= m[0].length; + order.push(new BidiSpan(0, len - m[0].length, len)); + } + if (order[0].level != lst(order).level) + order.push(new BidiSpan(order[0].level, len, len)); + + return order; + }; + })(); + + // THE END + + CodeMirror.version = "4.7.0"; + + return CodeMirror; +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/apl/apl.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/apl/apl.js new file mode 100644 index 0000000..4357bed --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/apl/apl.js @@ -0,0 +1,175 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("apl", function() { + var builtInOps = { + ".": "innerProduct", + "\\": "scan", + "/": "reduce", + "⌿": "reduce1Axis", + "⍀": "scan1Axis", + "¨": "each", + "⍣": "power" + }; + var builtInFuncs = { + "+": ["conjugate", "add"], + "−": ["negate", "subtract"], + "×": ["signOf", "multiply"], + "÷": ["reciprocal", "divide"], + "⌈": ["ceiling", "greaterOf"], + "⌊": ["floor", "lesserOf"], + "∣": ["absolute", "residue"], + "⍳": ["indexGenerate", "indexOf"], + "?": ["roll", "deal"], + "⋆": ["exponentiate", "toThePowerOf"], + "⍟": ["naturalLog", "logToTheBase"], + "○": ["piTimes", "circularFuncs"], + "!": ["factorial", "binomial"], + "⌹": ["matrixInverse", "matrixDivide"], + "<": [null, "lessThan"], + "≤": [null, "lessThanOrEqual"], + "=": [null, "equals"], + ">": [null, "greaterThan"], + "≥": [null, "greaterThanOrEqual"], + "≠": [null, "notEqual"], + "≡": ["depth", "match"], + "≢": [null, "notMatch"], + "∈": ["enlist", "membership"], + "⍷": [null, "find"], + "∪": ["unique", "union"], + "∩": [null, "intersection"], + "∼": ["not", "without"], + "∨": [null, "or"], + "∧": [null, "and"], + "⍱": [null, "nor"], + "⍲": [null, "nand"], + "⍴": ["shapeOf", "reshape"], + ",": ["ravel", "catenate"], + "⍪": [null, "firstAxisCatenate"], + "⌽": ["reverse", "rotate"], + "⊖": ["axis1Reverse", "axis1Rotate"], + "⍉": ["transpose", null], + "↑": ["first", "take"], + "↓": [null, "drop"], + "⊂": ["enclose", "partitionWithAxis"], + "⊃": ["diclose", "pick"], + "⌷": [null, "index"], + "⍋": ["gradeUp", null], + "⍒": ["gradeDown", null], + "⊤": ["encode", null], + "⊥": ["decode", null], + "⍕": ["format", "formatByExample"], + "⍎": ["execute", null], + "⊣": ["stop", "left"], + "⊢": ["pass", "right"] + }; + + var isOperator = /[\.\/⌿⍀¨⍣]/; + var isNiladic = /⍬/; + var isFunction = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/; + var isArrow = /←/; + var isComment = /[⍝#].*$/; + + var stringEater = function(type) { + var prev; + prev = false; + return function(c) { + prev = c; + if (c === type) { + return prev === "\\"; + } + return true; + }; + }; + return { + startState: function() { + return { + prev: false, + func: false, + op: false, + string: false, + escape: false + }; + }, + token: function(stream, state) { + var ch, funcName, word; + if (stream.eatSpace()) { + return null; + } + ch = stream.next(); + if (ch === '"' || ch === "'") { + stream.eatWhile(stringEater(ch)); + stream.next(); + state.prev = true; + return "string"; + } + if (/[\[{\(]/.test(ch)) { + state.prev = false; + return null; + } + if (/[\]}\)]/.test(ch)) { + state.prev = true; + return null; + } + if (isNiladic.test(ch)) { + state.prev = false; + return "niladic"; + } + if (/[¯\d]/.test(ch)) { + if (state.func) { + state.func = false; + state.prev = false; + } else { + state.prev = true; + } + stream.eatWhile(/[\w\.]/); + return "number"; + } + if (isOperator.test(ch)) { + return "operator apl-" + builtInOps[ch]; + } + if (isArrow.test(ch)) { + return "apl-arrow"; + } + if (isFunction.test(ch)) { + funcName = "apl-"; + if (builtInFuncs[ch] != null) { + if (state.prev) { + funcName += builtInFuncs[ch][1]; + } else { + funcName += builtInFuncs[ch][0]; + } + } + state.func = true; + state.prev = false; + return "function " + funcName; + } + if (isComment.test(ch)) { + stream.skipToEnd(); + return "comment"; + } + if (ch === "∘" && stream.peek() === ".") { + stream.next(); + return "function jot-dot"; + } + stream.eatWhile(/[\w\$_]/); + word = stream.current(); + state.prev = true; + return "keyword"; + } + }; +}); + +CodeMirror.defineMIME("text/apl", "apl"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/apl/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/apl/index.html new file mode 100644 index 0000000..53dda6b --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/apl/index.html @@ -0,0 +1,72 @@ + + +CodeMirror: APL mode + + + + + + + + +
                              + +
                              +

                              APL mode

                              +
                              + + + +

                              Simple mode that tries to handle APL as well as it can.

                              +

                              It attempts to label functions/operators based upon + monadic/dyadic usage (but this is far from fully fleshed out). + This means there are meaningful classnames so hover states can + have popups etc.

                              + +

                              MIME types defined: text/apl (APL code)

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/asterisk/asterisk.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/asterisk/asterisk.js new file mode 100644 index 0000000..a1ead11 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/asterisk/asterisk.js @@ -0,0 +1,198 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/* + * ===================================================================================== + * + * Filename: mode/asterisk/asterisk.js + * + * Description: CodeMirror mode for Asterisk dialplan + * + * Created: 05/17/2012 09:20:25 PM + * Revision: none + * + * Author: Stas Kobzar (stas@modulis.ca), + * Company: Modulis.ca Inc. + * + * ===================================================================================== + */ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("asterisk", function() { + var atoms = ["exten", "same", "include","ignorepat","switch"], + dpcmd = ["#include","#exec"], + apps = [ + "addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi", + "alarmreceiver","amd","answer","authenticate","background","backgrounddetect", + "bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent", + "changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge", + "congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge", + "dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility", + "datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa", + "dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy", + "externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif", + "goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete", + "ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus", + "jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme", + "meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete", + "minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode", + "mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish", + "originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce", + "parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones", + "privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten", + "readfile","receivefax","receivefax","receivefax","record","removequeuemember", + "resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun", + "saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax", + "sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags", + "setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel", + "slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground", + "speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound", + "speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor", + "stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec", + "trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate", + "vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring", + "waitforsilence","waitmusiconhold","waituntil","while","zapateller" + ]; + + function basicToken(stream,state){ + var cur = ''; + var ch = ''; + ch = stream.next(); + // comment + if(ch == ";") { + stream.skipToEnd(); + return "comment"; + } + // context + if(ch == '[') { + stream.skipTo(']'); + stream.eat(']'); + return "header"; + } + // string + if(ch == '"') { + stream.skipTo('"'); + return "string"; + } + if(ch == "'") { + stream.skipTo("'"); + return "string-2"; + } + // dialplan commands + if(ch == '#') { + stream.eatWhile(/\w/); + cur = stream.current(); + if(dpcmd.indexOf(cur) !== -1) { + stream.skipToEnd(); + return "strong"; + } + } + // application args + if(ch == '$'){ + var ch1 = stream.peek(); + if(ch1 == '{'){ + stream.skipTo('}'); + stream.eat('}'); + return "variable-3"; + } + } + // extension + stream.eatWhile(/\w/); + cur = stream.current(); + if(atoms.indexOf(cur) !== -1) { + state.extenStart = true; + switch(cur) { + case 'same': state.extenSame = true; break; + case 'include': + case 'switch': + case 'ignorepat': + state.extenInclude = true;break; + default:break; + } + return "atom"; + } + } + + return { + startState: function() { + return { + extenStart: false, + extenSame: false, + extenInclude: false, + extenExten: false, + extenPriority: false, + extenApplication: false + }; + }, + token: function(stream, state) { + + var cur = ''; + var ch = ''; + if(stream.eatSpace()) return null; + // extension started + if(state.extenStart){ + stream.eatWhile(/[^\s]/); + cur = stream.current(); + if(/^=>?$/.test(cur)){ + state.extenExten = true; + state.extenStart = false; + return "strong"; + } else { + state.extenStart = false; + stream.skipToEnd(); + return "error"; + } + } else if(state.extenExten) { + // set exten and priority + state.extenExten = false; + state.extenPriority = true; + stream.eatWhile(/[^,]/); + if(state.extenInclude) { + stream.skipToEnd(); + state.extenPriority = false; + state.extenInclude = false; + } + if(state.extenSame) { + state.extenPriority = false; + state.extenSame = false; + state.extenApplication = true; + } + return "tag"; + } else if(state.extenPriority) { + state.extenPriority = false; + state.extenApplication = true; + ch = stream.next(); // get comma + if(state.extenSame) return null; + stream.eatWhile(/[^,]/); + return "number"; + } else if(state.extenApplication) { + stream.eatWhile(/,/); + cur = stream.current(); + if(cur === ',') return null; + stream.eatWhile(/\w/); + cur = stream.current().toLowerCase(); + state.extenApplication = false; + if(apps.indexOf(cur) !== -1){ + return "def strong"; + } + } else{ + return basicToken(stream,state); + } + + return null; + } + }; +}); + +CodeMirror.defineMIME("text/x-asterisk", "asterisk"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/asterisk/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/asterisk/index.html new file mode 100644 index 0000000..257bd39 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/asterisk/index.html @@ -0,0 +1,154 @@ + + +CodeMirror: Asterisk dialplan mode + + + + + + + + + +
                              +

                              Asterisk dialplan mode

                              +
                              + + +

                              MIME types defined: text/x-asterisk.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/clike.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/clike.js new file mode 100644 index 0000000..b04b22b --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/clike.js @@ -0,0 +1,489 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("clike", function(config, parserConfig) { + var indentUnit = config.indentUnit, + statementIndentUnit = parserConfig.statementIndentUnit || indentUnit, + dontAlignCalls = parserConfig.dontAlignCalls, + keywords = parserConfig.keywords || {}, + builtin = parserConfig.builtin || {}, + blockKeywords = parserConfig.blockKeywords || {}, + atoms = parserConfig.atoms || {}, + hooks = parserConfig.hooks || {}, + multiLineStrings = parserConfig.multiLineStrings, + indentStatements = parserConfig.indentStatements !== false; + var isOperatorChar = /[+\-*&%=<>!?|\/]/; + + var curPunc; + + function tokenBase(stream, state) { + var ch = stream.next(); + if (hooks[ch]) { + var result = hooks[ch](stream, state); + if (result !== false) return result; + } + if (ch == '"' || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + curPunc = ch; + return null; + } + if (/\d/.test(ch)) { + stream.eatWhile(/[\w\.]/); + return "number"; + } + if (ch == "/") { + if (stream.eat("*")) { + state.tokenize = tokenComment; + return tokenComment(stream, state); + } + if (stream.eat("/")) { + stream.skipToEnd(); + return "comment"; + } + } + if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return "operator"; + } + stream.eatWhile(/[\w\$_\xa1-\uffff]/); + var cur = stream.current(); + if (keywords.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "keyword"; + } + if (builtin.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "builtin"; + } + if (atoms.propertyIsEnumerable(cur)) return "atom"; + return "variable"; + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) {end = true; break;} + escaped = !escaped && next == "\\"; + } + if (end || !(escaped || multiLineStrings)) + state.tokenize = null; + return "string"; + }; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = null; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function Context(indented, column, type, align, prev) { + this.indented = indented; + this.column = column; + this.type = type; + this.align = align; + this.prev = prev; + } + function pushContext(state, col, type) { + var indent = state.indented; + if (state.context && state.context.type == "statement") + indent = state.context.indented; + return state.context = new Context(indent, col, type, null, state.context); + } + function popContext(state) { + var t = state.context.type; + if (t == ")" || t == "]" || t == "}") + state.indented = state.context.indented; + return state.context = state.context.prev; + } + + // Interface + + return { + startState: function(basecolumn) { + return { + tokenize: null, + context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), + indented: 0, + startOfLine: true + }; + }, + + token: function(stream, state) { + var ctx = state.context; + if (stream.sol()) { + if (ctx.align == null) ctx.align = false; + state.indented = stream.indentation(); + state.startOfLine = true; + } + if (stream.eatSpace()) return null; + curPunc = null; + var style = (state.tokenize || tokenBase)(stream, state); + if (style == "comment" || style == "meta") return style; + if (ctx.align == null) ctx.align = true; + + if ((curPunc == ";" || curPunc == ":" || curPunc == ",") && ctx.type == "statement") popContext(state); + else if (curPunc == "{") pushContext(state, stream.column(), "}"); + else if (curPunc == "[") pushContext(state, stream.column(), "]"); + else if (curPunc == "(") pushContext(state, stream.column(), ")"); + else if (curPunc == "}") { + while (ctx.type == "statement") ctx = popContext(state); + if (ctx.type == "}") ctx = popContext(state); + while (ctx.type == "statement") ctx = popContext(state); + } + else if (curPunc == ctx.type) popContext(state); + else if (indentStatements && + (((ctx.type == "}" || ctx.type == "top") && curPunc != ';') || + (ctx.type == "statement" && curPunc == "newstatement"))) + pushContext(state, stream.column(), "statement"); + state.startOfLine = false; + return style; + }, + + indent: function(state, textAfter) { + if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass; + var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); + if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev; + var closing = firstChar == ctx.type; + if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit); + else if (ctx.align && (!dontAlignCalls || ctx.type != ")")) return ctx.column + (closing ? 0 : 1); + else if (ctx.type == ")" && !closing) return ctx.indented + statementIndentUnit; + else return ctx.indented + (closing ? 0 : indentUnit); + }, + + electricChars: "{}", + blockCommentStart: "/*", + blockCommentEnd: "*/", + lineComment: "//", + fold: "brace" + }; +}); + + function words(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + var cKeywords = "auto if break int case long char register continue return default short do sizeof " + + "double static else struct entry switch extern typedef float union for unsigned " + + "goto while enum void const signed volatile"; + + function cppHook(stream, state) { + if (!state.startOfLine) return false; + for (;;) { + if (stream.skipTo("\\")) { + stream.next(); + if (stream.eol()) { + state.tokenize = cppHook; + break; + } + } else { + stream.skipToEnd(); + state.tokenize = null; + break; + } + } + return "meta"; + } + + function cpp11StringHook(stream, state) { + stream.backUp(1); + // Raw strings. + if (stream.match(/(R|u8R|uR|UR|LR)/)) { + var match = stream.match(/"([^\s\\()]{0,16})\(/); + if (!match) { + return false; + } + state.cpp11RawStringDelim = match[1]; + state.tokenize = tokenRawString; + return tokenRawString(stream, state); + } + // Unicode strings/chars. + if (stream.match(/(u8|u|U|L)/)) { + if (stream.match(/["']/, /* eat */ false)) { + return "string"; + } + return false; + } + // Ignore this hook. + stream.next(); + return false; + } + + // C#-style strings where "" escapes a quote. + function tokenAtString(stream, state) { + var next; + while ((next = stream.next()) != null) { + if (next == '"' && !stream.eat('"')) { + state.tokenize = null; + break; + } + } + return "string"; + } + + // C++11 raw string literal is "( anything )", where + // can be a string up to 16 characters long. + function tokenRawString(stream, state) { + // Escape characters that have special regex meanings. + var delim = state.cpp11RawStringDelim.replace(/[^\w\s]/g, '\\$&'); + var match = stream.match(new RegExp(".*?\\)" + delim + '"')); + if (match) + state.tokenize = null; + else + stream.skipToEnd(); + return "string"; + } + + function def(mimes, mode) { + if (typeof mimes == "string") mimes = [mimes]; + var words = []; + function add(obj) { + if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop)) + words.push(prop); + } + add(mode.keywords); + add(mode.builtin); + add(mode.atoms); + if (words.length) { + mode.helperType = mimes[0]; + CodeMirror.registerHelper("hintWords", mimes[0], words); + } + + for (var i = 0; i < mimes.length; ++i) + CodeMirror.defineMIME(mimes[i], mode); + } + + def(["text/x-csrc", "text/x-c", "text/x-chdr"], { + name: "clike", + keywords: words(cKeywords), + blockKeywords: words("case do else for if switch while struct"), + atoms: words("null"), + hooks: {"#": cppHook}, + modeProps: {fold: ["brace", "include"]} + }); + + def(["text/x-c++src", "text/x-c++hdr"], { + name: "clike", + keywords: words(cKeywords + " asm dynamic_cast namespace reinterpret_cast try bool explicit new " + + "static_cast typeid catch operator template typename class friend private " + + "this using const_cast inline public throw virtual delete mutable protected " + + "wchar_t alignas alignof constexpr decltype nullptr noexcept thread_local final " + + "static_assert override"), + blockKeywords: words("catch class do else finally for if struct switch try while"), + atoms: words("true false null"), + hooks: { + "#": cppHook, + "u": cpp11StringHook, + "U": cpp11StringHook, + "L": cpp11StringHook, + "R": cpp11StringHook + }, + modeProps: {fold: ["brace", "include"]} + }); + + def("text/x-java", { + name: "clike", + keywords: words("abstract assert boolean break byte case catch char class const continue default " + + "do double else enum extends final finally float for goto if implements import " + + "instanceof int interface long native new package private protected public " + + "return short static strictfp super switch synchronized this throw throws transient " + + "try void volatile while"), + blockKeywords: words("catch class do else finally for if switch try while"), + atoms: words("true false null"), + hooks: { + "@": function(stream) { + stream.eatWhile(/[\w\$_]/); + return "meta"; + } + }, + modeProps: {fold: ["brace", "import"]} + }); + + def("text/x-csharp", { + name: "clike", + keywords: words("abstract as base break case catch checked class const continue" + + " default delegate do else enum event explicit extern finally fixed for" + + " foreach goto if implicit in interface internal is lock namespace new" + + " operator out override params private protected public readonly ref return sealed" + + " sizeof stackalloc static struct switch this throw try typeof unchecked" + + " unsafe using virtual void volatile while add alias ascending descending dynamic from get" + + " global group into join let orderby partial remove select set value var yield"), + blockKeywords: words("catch class do else finally for foreach if struct switch try while"), + builtin: words("Boolean Byte Char DateTime DateTimeOffset Decimal Double" + + " Guid Int16 Int32 Int64 Object SByte Single String TimeSpan UInt16 UInt32" + + " UInt64 bool byte char decimal double short int long object" + + " sbyte float string ushort uint ulong"), + atoms: words("true false null"), + hooks: { + "@": function(stream, state) { + if (stream.eat('"')) { + state.tokenize = tokenAtString; + return tokenAtString(stream, state); + } + stream.eatWhile(/[\w\$_]/); + return "meta"; + } + } + }); + + function tokenTripleString(stream, state) { + var escaped = false; + while (!stream.eol()) { + if (!escaped && stream.match('"""')) { + state.tokenize = null; + break; + } + escaped = stream.next() != "\\" && !escaped; + } + return "string"; + } + + def("text/x-scala", { + name: "clike", + keywords: words( + + /* scala */ + "abstract case catch class def do else extends false final finally for forSome if " + + "implicit import lazy match new null object override package private protected return " + + "sealed super this throw trait try trye type val var while with yield _ : = => <- <: " + + "<% >: # @ " + + + /* package scala */ + "assert assume require print println printf readLine readBoolean readByte readShort " + + "readChar readInt readLong readFloat readDouble " + + + "AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either " + + "Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable " + + "Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering " + + "Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder " + + "StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector :: #:: " + + + /* package java.lang */ + "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " + + "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " + + "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " + + "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void" + ), + multiLineStrings: true, + blockKeywords: words("catch class do else finally for forSome if match switch try while"), + atoms: words("true false null"), + indentStatements: false, + hooks: { + "@": function(stream) { + stream.eatWhile(/[\w\$_]/); + return "meta"; + }, + '"': function(stream, state) { + if (!stream.match('""')) return false; + state.tokenize = tokenTripleString; + return state.tokenize(stream, state); + } + } + }); + + def(["x-shader/x-vertex", "x-shader/x-fragment"], { + name: "clike", + keywords: words("float int bool void " + + "vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 " + + "mat2 mat3 mat4 " + + "sampler1D sampler2D sampler3D samplerCube " + + "sampler1DShadow sampler2DShadow " + + "const attribute uniform varying " + + "break continue discard return " + + "for while do if else struct " + + "in out inout"), + blockKeywords: words("for while do if else struct"), + builtin: words("radians degrees sin cos tan asin acos atan " + + "pow exp log exp2 sqrt inversesqrt " + + "abs sign floor ceil fract mod min max clamp mix step smoothstep " + + "length distance dot cross normalize ftransform faceforward " + + "reflect refract matrixCompMult " + + "lessThan lessThanEqual greaterThan greaterThanEqual " + + "equal notEqual any all not " + + "texture1D texture1DProj texture1DLod texture1DProjLod " + + "texture2D texture2DProj texture2DLod texture2DProjLod " + + "texture3D texture3DProj texture3DLod texture3DProjLod " + + "textureCube textureCubeLod " + + "shadow1D shadow2D shadow1DProj shadow2DProj " + + "shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod " + + "dFdx dFdy fwidth " + + "noise1 noise2 noise3 noise4"), + atoms: words("true false " + + "gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex " + + "gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 " + + "gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 " + + "gl_FogCoord gl_PointCoord " + + "gl_Position gl_PointSize gl_ClipVertex " + + "gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor " + + "gl_TexCoord gl_FogFragCoord " + + "gl_FragCoord gl_FrontFacing " + + "gl_FragData gl_FragDepth " + + "gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix " + + "gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse " + + "gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse " + + "gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose " + + "gl_ProjectionMatrixInverseTranspose " + + "gl_ModelViewProjectionMatrixInverseTranspose " + + "gl_TextureMatrixInverseTranspose " + + "gl_NormalScale gl_DepthRange gl_ClipPlane " + + "gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel " + + "gl_FrontLightModelProduct gl_BackLightModelProduct " + + "gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ " + + "gl_FogParameters " + + "gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords " + + "gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats " + + "gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits " + + "gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits " + + "gl_MaxDrawBuffers"), + hooks: {"#": cppHook}, + modeProps: {fold: ["brace", "include"]} + }); + + def("text/x-nesc", { + name: "clike", + keywords: words(cKeywords + "as atomic async call command component components configuration event generic " + + "implementation includes interface module new norace nx_struct nx_union post provides " + + "signal task uses abstract extends"), + blockKeywords: words("case do else for if switch while struct"), + atoms: words("null"), + hooks: {"#": cppHook}, + modeProps: {fold: ["brace", "include"]} + }); + + def("text/x-objectivec", { + name: "clike", + keywords: words(cKeywords + "inline restrict _Bool _Complex _Imaginery BOOL Class bycopy byref id IMP in " + + "inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"), + atoms: words("YES NO NULL NILL ON OFF"), + hooks: { + "@": function(stream) { + stream.eatWhile(/[\w\$]/); + return "keyword"; + }, + "#": cppHook + }, + modeProps: {fold: "brace"} + }); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/index.html new file mode 100644 index 0000000..60ab99d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/index.html @@ -0,0 +1,251 @@ + + +CodeMirror: C-like mode + + + + + + + + + + + + +
                              +

                              C-like mode

                              + +
                              + +

                              C++ example

                              + +
                              + +

                              Objective-C example

                              + +
                              + +

                              Java example

                              + +
                              + +

                              Scala example

                              + +
                              + + + +

                              Simple mode that tries to handle C-like languages as well as it + can. Takes two configuration parameters: keywords, an + object whose property names are the keywords in the language, + and useCPP, which determines whether C preprocessor + directives are recognized.

                              + +

                              MIME types defined: text/x-csrc + (C), text/x-c++src (C++), text/x-java + (Java), text/x-csharp (C#), + text/x-objectivec (Objective-C), + text/x-scala (Scala), text/x-vertex + and x-shader/x-fragment (shader programs).

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/scala.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/scala.html new file mode 100644 index 0000000..6c1a01e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clike/scala.html @@ -0,0 +1,767 @@ + + +CodeMirror: Scala mode + + + + + + + + + + +
                              +

                              Scala mode

                              +
                              + +
                              + + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clojure/clojure.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clojure/clojure.js new file mode 100644 index 0000000..c334de7 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clojure/clojure.js @@ -0,0 +1,243 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/** + * Author: Hans Engel + * Branched from CodeMirror's Scheme mode (by Koh Zi Han, based on implementation by Koh Zi Chun) + */ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("clojure", function (options) { + var BUILTIN = "builtin", COMMENT = "comment", STRING = "string", CHARACTER = "string-2", + ATOM = "atom", NUMBER = "number", BRACKET = "bracket", KEYWORD = "keyword", VAR = "variable"; + var INDENT_WORD_SKIP = options.indentUnit || 2; + var NORMAL_INDENT_UNIT = options.indentUnit || 2; + + function makeKeywords(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + var atoms = makeKeywords("true false nil"); + + var keywords = makeKeywords( + "defn defn- def def- defonce defmulti defmethod defmacro defstruct deftype defprotocol defrecord defproject deftest slice defalias defhinted defmacro- defn-memo defnk defnk defonce- defunbound defunbound- defvar defvar- let letfn do case cond condp for loop recur when when-not when-let when-first if if-let if-not . .. -> ->> doto and or dosync doseq dotimes dorun doall load import unimport ns in-ns refer try catch finally throw with-open with-local-vars binding gen-class gen-and-load-class gen-and-save-class handler-case handle"); + + var builtins = makeKeywords( + "* *' *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *compiler-options* *data-readers* *e *err* *file* *flush-on-newline* *fn-loader* *in* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *unchecked-math* *use-context-classloader* *verbose-defrecords* *warn-on-reflection* + +' - -' -> ->> ->ArrayChunk ->Vec ->VecNode ->VecSeq -cache-protocol-fn -reset-methods .. / < <= = == > >= EMPTY-NODE accessor aclone add-classpath add-watch agent agent-error agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint biginteger binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* bound? butlast byte byte-array bytes case cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec dec' decimal? declare default-data-readers definline definterface defmacro defmethod defmulti defn defn- defonce defprotocol defrecord defstruct deftype delay delay? deliver denominator deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq error-handler error-mode eval even? every-pred every? ex-data ex-info extend extend-protocol extend-type extenders extends? false? ffirst file-seq filter filterv find find-keyword find-ns find-protocol-impl find-protocol-method find-var first flatten float float-array float? floats flush fn fn? fnext fnil for force format frequencies future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator group-by hash hash-combine hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc inc' init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt keep keep-indexed key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map-indexed map? mapcat mapv max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod munge name namespace namespace-munge neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext nthrest num number? numerator object-array odd? or parents partial partition partition-all partition-by pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-dup print-method print-simple print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int rand-nth range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string realized? reduce reduce-kv reductions ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure reify release-pending-sends rem remove remove-all-methods remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest restart-agent resultset-seq reverse reversible? rseq rsubseq satisfies? second select-keys send send-off seq seq? seque sequence sequential? set set-error-handler! set-error-mode! set-validator! set? short short-array shorts shuffle shutdown-agents slurp some some-fn sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-symbol? spit split-at split-with str string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync take take-last take-nth take-while test the-ns thread-bound? time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-add-int unchecked-byte unchecked-char unchecked-dec unchecked-dec-int unchecked-divide-int unchecked-double unchecked-float unchecked-inc unchecked-inc-int unchecked-int unchecked-long unchecked-multiply unchecked-multiply-int unchecked-negate unchecked-negate-int unchecked-remainder-int unchecked-short unchecked-subtract unchecked-subtract-int underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector-of vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision with-redefs with-redefs-fn xml-seq zero? zipmap *default-data-reader-fn* as-> cond-> cond->> reduced reduced? send-via set-agent-send-executor! set-agent-send-off-executor! some-> some->>"); + + var indentKeys = makeKeywords( + // Built-ins + "ns fn def defn defmethod bound-fn if if-not case condp when while when-not when-first do future comment doto locking proxy with-open with-precision reify deftype defrecord defprotocol extend extend-protocol extend-type try catch " + + + // Binding forms + "let letfn binding loop for doseq dotimes when-let if-let " + + + // Data structures + "defstruct struct-map assoc " + + + // clojure.test + "testing deftest " + + + // contrib + "handler-case handle dotrace deftrace"); + + var tests = { + digit: /\d/, + digit_or_colon: /[\d:]/, + hex: /[0-9a-f]/i, + sign: /[+-]/, + exponent: /e/i, + keyword_char: /[^\s\(\[\;\)\]]/, + symbol: /[\w*+!\-\._?:<>\/\xa1-\uffff]/ + }; + + function stateStack(indent, type, prev) { // represents a state stack object + this.indent = indent; + this.type = type; + this.prev = prev; + } + + function pushStack(state, indent, type) { + state.indentStack = new stateStack(indent, type, state.indentStack); + } + + function popStack(state) { + state.indentStack = state.indentStack.prev; + } + + function isNumber(ch, stream){ + // hex + if ( ch === '0' && stream.eat(/x/i) ) { + stream.eatWhile(tests.hex); + return true; + } + + // leading sign + if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) { + stream.eat(tests.sign); + ch = stream.next(); + } + + if ( tests.digit.test(ch) ) { + stream.eat(ch); + stream.eatWhile(tests.digit); + + if ( '.' == stream.peek() ) { + stream.eat('.'); + stream.eatWhile(tests.digit); + } + + if ( stream.eat(tests.exponent) ) { + stream.eat(tests.sign); + stream.eatWhile(tests.digit); + } + + return true; + } + + return false; + } + + // Eat character that starts after backslash \ + function eatCharacter(stream) { + var first = stream.next(); + // Read special literals: backspace, newline, space, return. + // Just read all lowercase letters. + if (first && first.match(/[a-z]/) && stream.match(/[a-z]+/, true)) { + return; + } + // Read unicode character: \u1000 \uA0a1 + if (first === "u") { + stream.match(/[0-9a-z]{4}/i, true); + } + } + + return { + startState: function () { + return { + indentStack: null, + indentation: 0, + mode: false + }; + }, + + token: function (stream, state) { + if (state.indentStack == null && stream.sol()) { + // update indentation, but only if indentStack is empty + state.indentation = stream.indentation(); + } + + // skip spaces + if (stream.eatSpace()) { + return null; + } + var returnType = null; + + switch(state.mode){ + case "string": // multi-line string parsing mode + var next, escaped = false; + while ((next = stream.next()) != null) { + if (next == "\"" && !escaped) { + + state.mode = false; + break; + } + escaped = !escaped && next == "\\"; + } + returnType = STRING; // continue on in string mode + break; + default: // default parsing mode + var ch = stream.next(); + + if (ch == "\"") { + state.mode = "string"; + returnType = STRING; + } else if (ch == "\\") { + eatCharacter(stream); + returnType = CHARACTER; + } else if (ch == "'" && !( tests.digit_or_colon.test(stream.peek()) )) { + returnType = ATOM; + } else if (ch == ";") { // comment + stream.skipToEnd(); // rest of the line is a comment + returnType = COMMENT; + } else if (isNumber(ch,stream)){ + returnType = NUMBER; + } else if (ch == "(" || ch == "[" || ch == "{" ) { + var keyWord = '', indentTemp = stream.column(), letter; + /** + Either + (indent-word .. + (non-indent-word .. + (;something else, bracket, etc. + */ + + if (ch == "(") while ((letter = stream.eat(tests.keyword_char)) != null) { + keyWord += letter; + } + + if (keyWord.length > 0 && (indentKeys.propertyIsEnumerable(keyWord) || + /^(?:def|with)/.test(keyWord))) { // indent-word + pushStack(state, indentTemp + INDENT_WORD_SKIP, ch); + } else { // non-indent word + // we continue eating the spaces + stream.eatSpace(); + if (stream.eol() || stream.peek() == ";") { + // nothing significant after + // we restart indentation the user defined spaces after + pushStack(state, indentTemp + NORMAL_INDENT_UNIT, ch); + } else { + pushStack(state, indentTemp + stream.current().length, ch); // else we match + } + } + stream.backUp(stream.current().length - 1); // undo all the eating + + returnType = BRACKET; + } else if (ch == ")" || ch == "]" || ch == "}") { + returnType = BRACKET; + if (state.indentStack != null && state.indentStack.type == (ch == ")" ? "(" : (ch == "]" ? "[" :"{"))) { + popStack(state); + } + } else if ( ch == ":" ) { + stream.eatWhile(tests.symbol); + return ATOM; + } else { + stream.eatWhile(tests.symbol); + + if (keywords && keywords.propertyIsEnumerable(stream.current())) { + returnType = KEYWORD; + } else if (builtins && builtins.propertyIsEnumerable(stream.current())) { + returnType = BUILTIN; + } else if (atoms && atoms.propertyIsEnumerable(stream.current())) { + returnType = ATOM; + } else { + returnType = VAR; + } + } + } + + return returnType; + }, + + indent: function (state) { + if (state.indentStack == null) return state.indentation; + return state.indentStack.indent; + }, + + lineComment: ";;" + }; +}); + +CodeMirror.defineMIME("text/x-clojure", "clojure"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clojure/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clojure/index.html new file mode 100644 index 0000000..3ecf4c4 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/clojure/index.html @@ -0,0 +1,88 @@ + + +CodeMirror: Clojure mode + + + + + + + + + +
                              +

                              Clojure mode

                              +
                              + + +

                              MIME types defined: text/x-clojure.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cobol/cobol.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cobol/cobol.js new file mode 100644 index 0000000..897022b --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cobol/cobol.js @@ -0,0 +1,255 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/** + * Author: Gautam Mehta + * Branched from CodeMirror's Scheme mode + */ +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("cobol", function () { + var BUILTIN = "builtin", COMMENT = "comment", STRING = "string", + ATOM = "atom", NUMBER = "number", KEYWORD = "keyword", MODTAG = "header", + COBOLLINENUM = "def", PERIOD = "link"; + function makeKeywords(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + var atoms = makeKeywords("TRUE FALSE ZEROES ZEROS ZERO SPACES SPACE LOW-VALUE LOW-VALUES "); + var keywords = makeKeywords( + "ACCEPT ACCESS ACQUIRE ADD ADDRESS " + + "ADVANCING AFTER ALIAS ALL ALPHABET " + + "ALPHABETIC ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED " + + "ALSO ALTER ALTERNATE AND ANY " + + "ARE AREA AREAS ARITHMETIC ASCENDING " + + "ASSIGN AT ATTRIBUTE AUTHOR AUTO " + + "AUTO-SKIP AUTOMATIC B-AND B-EXOR B-LESS " + + "B-NOT B-OR BACKGROUND-COLOR BACKGROUND-COLOUR BEEP " + + "BEFORE BELL BINARY BIT BITS " + + "BLANK BLINK BLOCK BOOLEAN BOTTOM " + + "BY CALL CANCEL CD CF " + + "CH CHARACTER CHARACTERS CLASS CLOCK-UNITS " + + "CLOSE COBOL CODE CODE-SET COL " + + "COLLATING COLUMN COMMA COMMIT COMMITMENT " + + "COMMON COMMUNICATION COMP COMP-0 COMP-1 " + + "COMP-2 COMP-3 COMP-4 COMP-5 COMP-6 " + + "COMP-7 COMP-8 COMP-9 COMPUTATIONAL COMPUTATIONAL-0 " + + "COMPUTATIONAL-1 COMPUTATIONAL-2 COMPUTATIONAL-3 COMPUTATIONAL-4 COMPUTATIONAL-5 " + + "COMPUTATIONAL-6 COMPUTATIONAL-7 COMPUTATIONAL-8 COMPUTATIONAL-9 COMPUTE " + + "CONFIGURATION CONNECT CONSOLE CONTAINED CONTAINS " + + "CONTENT CONTINUE CONTROL CONTROL-AREA CONTROLS " + + "CONVERTING COPY CORR CORRESPONDING COUNT " + + "CRT CRT-UNDER CURRENCY CURRENT CURSOR " + + "DATA DATE DATE-COMPILED DATE-WRITTEN DAY " + + "DAY-OF-WEEK DB DB-ACCESS-CONTROL-KEY DB-DATA-NAME DB-EXCEPTION " + + "DB-FORMAT-NAME DB-RECORD-NAME DB-SET-NAME DB-STATUS DBCS " + + "DBCS-EDITED DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE " + + "DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING " + + "DECIMAL-POINT DECLARATIVES DEFAULT DELETE DELIMITED " + + "DELIMITER DEPENDING DESCENDING DESCRIBED DESTINATION " + + "DETAIL DISABLE DISCONNECT DISPLAY DISPLAY-1 " + + "DISPLAY-2 DISPLAY-3 DISPLAY-4 DISPLAY-5 DISPLAY-6 " + + "DISPLAY-7 DISPLAY-8 DISPLAY-9 DIVIDE DIVISION " + + "DOWN DROP DUPLICATE DUPLICATES DYNAMIC " + + "EBCDIC EGI EJECT ELSE EMI " + + "EMPTY EMPTY-CHECK ENABLE END END. END-ACCEPT END-ACCEPT. " + + "END-ADD END-CALL END-COMPUTE END-DELETE END-DISPLAY " + + "END-DIVIDE END-EVALUATE END-IF END-INVOKE END-MULTIPLY " + + "END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN " + + "END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT " + + "END-UNSTRING END-WRITE END-XML ENTER ENTRY " + + "ENVIRONMENT EOP EQUAL EQUALS ERASE " + + "ERROR ESI EVALUATE EVERY EXCEEDS " + + "EXCEPTION EXCLUSIVE EXIT EXTEND EXTERNAL " + + "EXTERNALLY-DESCRIBED-KEY FD FETCH FILE FILE-CONTROL " + + "FILE-STREAM FILES FILLER FINAL FIND " + + "FINISH FIRST FOOTING FOR FOREGROUND-COLOR " + + "FOREGROUND-COLOUR FORMAT FREE FROM FULL " + + "FUNCTION GENERATE GET GIVING GLOBAL " + + "GO GOBACK GREATER GROUP HEADING " + + "HIGH-VALUE HIGH-VALUES HIGHLIGHT I-O I-O-CONTROL " + + "ID IDENTIFICATION IF IN INDEX " + + "INDEX-1 INDEX-2 INDEX-3 INDEX-4 INDEX-5 " + + "INDEX-6 INDEX-7 INDEX-8 INDEX-9 INDEXED " + + "INDIC INDICATE INDICATOR INDICATORS INITIAL " + + "INITIALIZE INITIATE INPUT INPUT-OUTPUT INSPECT " + + "INSTALLATION INTO INVALID INVOKE IS " + + "JUST JUSTIFIED KANJI KEEP KEY " + + "LABEL LAST LD LEADING LEFT " + + "LEFT-JUSTIFY LENGTH LENGTH-CHECK LESS LIBRARY " + + "LIKE LIMIT LIMITS LINAGE LINAGE-COUNTER " + + "LINE LINE-COUNTER LINES LINKAGE LOCAL-STORAGE " + + "LOCALE LOCALLY LOCK " + + "MEMBER MEMORY MERGE MESSAGE METACLASS " + + "MODE MODIFIED MODIFY MODULES MOVE " + + "MULTIPLE MULTIPLY NATIONAL NATIVE NEGATIVE " + + "NEXT NO NO-ECHO NONE NOT " + + "NULL NULL-KEY-MAP NULL-MAP NULLS NUMBER " + + "NUMERIC NUMERIC-EDITED OBJECT OBJECT-COMPUTER OCCURS " + + "OF OFF OMITTED ON ONLY " + + "OPEN OPTIONAL OR ORDER ORGANIZATION " + + "OTHER OUTPUT OVERFLOW OWNER PACKED-DECIMAL " + + "PADDING PAGE PAGE-COUNTER PARSE PERFORM " + + "PF PH PIC PICTURE PLUS " + + "POINTER POSITION POSITIVE PREFIX PRESENT " + + "PRINTING PRIOR PROCEDURE PROCEDURE-POINTER PROCEDURES " + + "PROCEED PROCESS PROCESSING PROGRAM PROGRAM-ID " + + "PROMPT PROTECTED PURGE QUEUE QUOTE " + + "QUOTES RANDOM RD READ READY " + + "REALM RECEIVE RECONNECT RECORD RECORD-NAME " + + "RECORDS RECURSIVE REDEFINES REEL REFERENCE " + + "REFERENCE-MONITOR REFERENCES RELATION RELATIVE RELEASE " + + "REMAINDER REMOVAL RENAMES REPEATED REPLACE " + + "REPLACING REPORT REPORTING REPORTS REPOSITORY " + + "REQUIRED RERUN RESERVE RESET RETAINING " + + "RETRIEVAL RETURN RETURN-CODE RETURNING REVERSE-VIDEO " + + "REVERSED REWIND REWRITE RF RH " + + "RIGHT RIGHT-JUSTIFY ROLLBACK ROLLING ROUNDED " + + "RUN SAME SCREEN SD SEARCH " + + "SECTION SECURE SECURITY SEGMENT SEGMENT-LIMIT " + + "SELECT SEND SENTENCE SEPARATE SEQUENCE " + + "SEQUENTIAL SET SHARED SIGN SIZE " + + "SKIP1 SKIP2 SKIP3 SORT SORT-MERGE " + + "SORT-RETURN SOURCE SOURCE-COMPUTER SPACE-FILL " + + "SPECIAL-NAMES STANDARD STANDARD-1 STANDARD-2 " + + "START STARTING STATUS STOP STORE " + + "STRING SUB-QUEUE-1 SUB-QUEUE-2 SUB-QUEUE-3 SUB-SCHEMA " + + "SUBFILE SUBSTITUTE SUBTRACT SUM SUPPRESS " + + "SYMBOLIC SYNC SYNCHRONIZED SYSIN SYSOUT " + + "TABLE TALLYING TAPE TENANT TERMINAL " + + "TERMINATE TEST TEXT THAN THEN " + + "THROUGH THRU TIME TIMES TITLE " + + "TO TOP TRAILING TRAILING-SIGN TRANSACTION " + + "TYPE TYPEDEF UNDERLINE UNEQUAL UNIT " + + "UNSTRING UNTIL UP UPDATE UPON " + + "USAGE USAGE-MODE USE USING VALID " + + "VALIDATE VALUE VALUES VARYING VLR " + + "WAIT WHEN WHEN-COMPILED WITH WITHIN " + + "WORDS WORKING-STORAGE WRITE XML XML-CODE " + + "XML-EVENT XML-NTEXT XML-TEXT ZERO ZERO-FILL " ); + + var builtins = makeKeywords("- * ** / + < <= = > >= "); + var tests = { + digit: /\d/, + digit_or_colon: /[\d:]/, + hex: /[0-9a-f]/i, + sign: /[+-]/, + exponent: /e/i, + keyword_char: /[^\s\(\[\;\)\]]/, + symbol: /[\w*+\-]/ + }; + function isNumber(ch, stream){ + // hex + if ( ch === '0' && stream.eat(/x/i) ) { + stream.eatWhile(tests.hex); + return true; + } + // leading sign + if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) { + stream.eat(tests.sign); + ch = stream.next(); + } + if ( tests.digit.test(ch) ) { + stream.eat(ch); + stream.eatWhile(tests.digit); + if ( '.' == stream.peek()) { + stream.eat('.'); + stream.eatWhile(tests.digit); + } + if ( stream.eat(tests.exponent) ) { + stream.eat(tests.sign); + stream.eatWhile(tests.digit); + } + return true; + } + return false; + } + return { + startState: function () { + return { + indentStack: null, + indentation: 0, + mode: false + }; + }, + token: function (stream, state) { + if (state.indentStack == null && stream.sol()) { + // update indentation, but only if indentStack is empty + state.indentation = 6 ; //stream.indentation(); + } + // skip spaces + if (stream.eatSpace()) { + return null; + } + var returnType = null; + switch(state.mode){ + case "string": // multi-line string parsing mode + var next = false; + while ((next = stream.next()) != null) { + if (next == "\"" || next == "\'") { + state.mode = false; + break; + } + } + returnType = STRING; // continue on in string mode + break; + default: // default parsing mode + var ch = stream.next(); + var col = stream.column(); + if (col >= 0 && col <= 5) { + returnType = COBOLLINENUM; + } else if (col >= 72 && col <= 79) { + stream.skipToEnd(); + returnType = MODTAG; + } else if (ch == "*" && col == 6) { // comment + stream.skipToEnd(); // rest of the line is a comment + returnType = COMMENT; + } else if (ch == "\"" || ch == "\'") { + state.mode = "string"; + returnType = STRING; + } else if (ch == "'" && !( tests.digit_or_colon.test(stream.peek()) )) { + returnType = ATOM; + } else if (ch == ".") { + returnType = PERIOD; + } else if (isNumber(ch,stream)){ + returnType = NUMBER; + } else { + if (stream.current().match(tests.symbol)) { + while (col < 71) { + if (stream.eat(tests.symbol) === undefined) { + break; + } else { + col++; + } + } + } + if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) { + returnType = KEYWORD; + } else if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase())) { + returnType = BUILTIN; + } else if (atoms && atoms.propertyIsEnumerable(stream.current().toUpperCase())) { + returnType = ATOM; + } else returnType = null; + } + } + return returnType; + }, + indent: function (state) { + if (state.indentStack == null) return state.indentation; + return state.indentStack.indent; + } + }; +}); + +CodeMirror.defineMIME("text/x-cobol", "cobol"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cobol/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cobol/index.html new file mode 100644 index 0000000..a427bd8 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cobol/index.html @@ -0,0 +1,210 @@ + + +CodeMirror: COBOL mode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                              +

                              COBOL mode

                              + +

                              Select Theme Select Font Size + + + + +

                              + + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/coffeescript/coffeescript.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/coffeescript/coffeescript.js new file mode 100644 index 0000000..da0eb2d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/coffeescript/coffeescript.js @@ -0,0 +1,369 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/** + * Link to the project's GitHub page: + * https://github.com/pickhardt/coffeescript-codemirror-mode + */ +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("coffeescript", function(conf, parserConf) { + var ERRORCLASS = "error"; + + function wordRegexp(words) { + return new RegExp("^((" + words.join(")|(") + "))\\b"); + } + + var operators = /^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/; + var delimiters = /^(?:[()\[\]{},:`=;]|\.\.?\.?)/; + var identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/; + var properties = /^(@|this\.)[_A-Za-z$][_A-Za-z$0-9]*/; + + var wordOperators = wordRegexp(["and", "or", "not", + "is", "isnt", "in", + "instanceof", "typeof"]); + var indentKeywords = ["for", "while", "loop", "if", "unless", "else", + "switch", "try", "catch", "finally", "class"]; + var commonKeywords = ["break", "by", "continue", "debugger", "delete", + "do", "in", "of", "new", "return", "then", + "this", "@", "throw", "when", "until", "extends"]; + + var keywords = wordRegexp(indentKeywords.concat(commonKeywords)); + + indentKeywords = wordRegexp(indentKeywords); + + + var stringPrefixes = /^('{3}|\"{3}|['\"])/; + var regexPrefixes = /^(\/{3}|\/)/; + var commonConstants = ["Infinity", "NaN", "undefined", "null", "true", "false", "on", "off", "yes", "no"]; + var constants = wordRegexp(commonConstants); + + // Tokenizers + function tokenBase(stream, state) { + // Handle scope changes + if (stream.sol()) { + if (state.scope.align === null) state.scope.align = false; + var scopeOffset = state.scope.offset; + if (stream.eatSpace()) { + var lineOffset = stream.indentation(); + if (lineOffset > scopeOffset && state.scope.type == "coffee") { + return "indent"; + } else if (lineOffset < scopeOffset) { + return "dedent"; + } + return null; + } else { + if (scopeOffset > 0) { + dedent(stream, state); + } + } + } + if (stream.eatSpace()) { + return null; + } + + var ch = stream.peek(); + + // Handle docco title comment (single line) + if (stream.match("####")) { + stream.skipToEnd(); + return "comment"; + } + + // Handle multi line comments + if (stream.match("###")) { + state.tokenize = longComment; + return state.tokenize(stream, state); + } + + // Single line comment + if (ch === "#") { + stream.skipToEnd(); + return "comment"; + } + + // Handle number literals + if (stream.match(/^-?[0-9\.]/, false)) { + var floatLiteral = false; + // Floats + if (stream.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)) { + floatLiteral = true; + } + if (stream.match(/^-?\d+\.\d*/)) { + floatLiteral = true; + } + if (stream.match(/^-?\.\d+/)) { + floatLiteral = true; + } + + if (floatLiteral) { + // prevent from getting extra . on 1.. + if (stream.peek() == "."){ + stream.backUp(1); + } + return "number"; + } + // Integers + var intLiteral = false; + // Hex + if (stream.match(/^-?0x[0-9a-f]+/i)) { + intLiteral = true; + } + // Decimal + if (stream.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)) { + intLiteral = true; + } + // Zero by itself with no other piece of number. + if (stream.match(/^-?0(?![\dx])/i)) { + intLiteral = true; + } + if (intLiteral) { + return "number"; + } + } + + // Handle strings + if (stream.match(stringPrefixes)) { + state.tokenize = tokenFactory(stream.current(), false, "string"); + return state.tokenize(stream, state); + } + // Handle regex literals + if (stream.match(regexPrefixes)) { + if (stream.current() != "/" || stream.match(/^.*\//, false)) { // prevent highlight of division + state.tokenize = tokenFactory(stream.current(), true, "string-2"); + return state.tokenize(stream, state); + } else { + stream.backUp(1); + } + } + + // Handle operators and delimiters + if (stream.match(operators) || stream.match(wordOperators)) { + return "operator"; + } + if (stream.match(delimiters)) { + return "punctuation"; + } + + if (stream.match(constants)) { + return "atom"; + } + + if (stream.match(keywords)) { + return "keyword"; + } + + if (stream.match(identifiers)) { + return "variable"; + } + + if (stream.match(properties)) { + return "property"; + } + + // Handle non-detected items + stream.next(); + return ERRORCLASS; + } + + function tokenFactory(delimiter, singleline, outclass) { + return function(stream, state) { + while (!stream.eol()) { + stream.eatWhile(/[^'"\/\\]/); + if (stream.eat("\\")) { + stream.next(); + if (singleline && stream.eol()) { + return outclass; + } + } else if (stream.match(delimiter)) { + state.tokenize = tokenBase; + return outclass; + } else { + stream.eat(/['"\/]/); + } + } + if (singleline) { + if (parserConf.singleLineStringErrors) { + outclass = ERRORCLASS; + } else { + state.tokenize = tokenBase; + } + } + return outclass; + }; + } + + function longComment(stream, state) { + while (!stream.eol()) { + stream.eatWhile(/[^#]/); + if (stream.match("###")) { + state.tokenize = tokenBase; + break; + } + stream.eatWhile("#"); + } + return "comment"; + } + + function indent(stream, state, type) { + type = type || "coffee"; + var offset = 0, align = false, alignOffset = null; + for (var scope = state.scope; scope; scope = scope.prev) { + if (scope.type === "coffee" || scope.type == "}") { + offset = scope.offset + conf.indentUnit; + break; + } + } + if (type !== "coffee") { + align = null; + alignOffset = stream.column() + stream.current().length; + } else if (state.scope.align) { + state.scope.align = false; + } + state.scope = { + offset: offset, + type: type, + prev: state.scope, + align: align, + alignOffset: alignOffset + }; + } + + function dedent(stream, state) { + if (!state.scope.prev) return; + if (state.scope.type === "coffee") { + var _indent = stream.indentation(); + var matched = false; + for (var scope = state.scope; scope; scope = scope.prev) { + if (_indent === scope.offset) { + matched = true; + break; + } + } + if (!matched) { + return true; + } + while (state.scope.prev && state.scope.offset !== _indent) { + state.scope = state.scope.prev; + } + return false; + } else { + state.scope = state.scope.prev; + return false; + } + } + + function tokenLexer(stream, state) { + var style = state.tokenize(stream, state); + var current = stream.current(); + + // Handle "." connected identifiers + if (current === ".") { + style = state.tokenize(stream, state); + current = stream.current(); + if (/^\.[\w$]+$/.test(current)) { + return "variable"; + } else { + return ERRORCLASS; + } + } + + // Handle scope changes. + if (current === "return") { + state.dedent = true; + } + if (((current === "->" || current === "=>") && + !state.lambda && + !stream.peek()) + || style === "indent") { + indent(stream, state); + } + var delimiter_index = "[({".indexOf(current); + if (delimiter_index !== -1) { + indent(stream, state, "])}".slice(delimiter_index, delimiter_index+1)); + } + if (indentKeywords.exec(current)){ + indent(stream, state); + } + if (current == "then"){ + dedent(stream, state); + } + + + if (style === "dedent") { + if (dedent(stream, state)) { + return ERRORCLASS; + } + } + delimiter_index = "])}".indexOf(current); + if (delimiter_index !== -1) { + while (state.scope.type == "coffee" && state.scope.prev) + state.scope = state.scope.prev; + if (state.scope.type == current) + state.scope = state.scope.prev; + } + if (state.dedent && stream.eol()) { + if (state.scope.type == "coffee" && state.scope.prev) + state.scope = state.scope.prev; + state.dedent = false; + } + + return style; + } + + var external = { + startState: function(basecolumn) { + return { + tokenize: tokenBase, + scope: {offset:basecolumn || 0, type:"coffee", prev: null, align: false}, + lastToken: null, + lambda: false, + dedent: 0 + }; + }, + + token: function(stream, state) { + var fillAlign = state.scope.align === null && state.scope; + if (fillAlign && stream.sol()) fillAlign.align = false; + + var style = tokenLexer(stream, state); + if (fillAlign && style && style != "comment") fillAlign.align = true; + + state.lastToken = {style:style, content: stream.current()}; + + if (stream.eol() && stream.lambda) { + state.lambda = false; + } + + return style; + }, + + indent: function(state, text) { + if (state.tokenize != tokenBase) return 0; + var scope = state.scope; + var closer = text && "])}".indexOf(text.charAt(0)) > -1; + if (closer) while (scope.type == "coffee" && scope.prev) scope = scope.prev; + var closes = closer && scope.type === text.charAt(0); + if (scope.align) + return scope.alignOffset - (closes ? 1 : 0); + else + return (closes ? scope.prev : scope).offset; + }, + + lineComment: "#", + fold: "indent" + }; + return external; +}); + +CodeMirror.defineMIME("text/x-coffeescript", "coffeescript"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/coffeescript/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/coffeescript/index.html new file mode 100644 index 0000000..36f3fbb --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/coffeescript/index.html @@ -0,0 +1,740 @@ + + +CodeMirror: CoffeeScript mode + + + + + + + + + +
                              +

                              CoffeeScript mode

                              +
                              + + +

                              MIME types defined: text/x-coffeescript.

                              + +

                              The CoffeeScript mode was written by Jeff Pickhardt.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/commonlisp/commonlisp.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/commonlisp/commonlisp.js new file mode 100644 index 0000000..5f50b35 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/commonlisp/commonlisp.js @@ -0,0 +1,122 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("commonlisp", function (config) { + var specialForm = /^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/; + var assumeBody = /^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/; + var numLiteral = /^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/; + var symbol = /[^\s'`,@()\[\]";]/; + var type; + + function readSym(stream) { + var ch; + while (ch = stream.next()) { + if (ch == "\\") stream.next(); + else if (!symbol.test(ch)) { stream.backUp(1); break; } + } + return stream.current(); + } + + function base(stream, state) { + if (stream.eatSpace()) {type = "ws"; return null;} + if (stream.match(numLiteral)) return "number"; + var ch = stream.next(); + if (ch == "\\") ch = stream.next(); + + if (ch == '"') return (state.tokenize = inString)(stream, state); + else if (ch == "(") { type = "open"; return "bracket"; } + else if (ch == ")" || ch == "]") { type = "close"; return "bracket"; } + else if (ch == ";") { stream.skipToEnd(); type = "ws"; return "comment"; } + else if (/['`,@]/.test(ch)) return null; + else if (ch == "|") { + if (stream.skipTo("|")) { stream.next(); return "symbol"; } + else { stream.skipToEnd(); return "error"; } + } else if (ch == "#") { + var ch = stream.next(); + if (ch == "[") { type = "open"; return "bracket"; } + else if (/[+\-=\.']/.test(ch)) return null; + else if (/\d/.test(ch) && stream.match(/^\d*#/)) return null; + else if (ch == "|") return (state.tokenize = inComment)(stream, state); + else if (ch == ":") { readSym(stream); return "meta"; } + else return "error"; + } else { + var name = readSym(stream); + if (name == ".") return null; + type = "symbol"; + if (name == "nil" || name == "t" || name.charAt(0) == ":") return "atom"; + if (state.lastType == "open" && (specialForm.test(name) || assumeBody.test(name))) return "keyword"; + if (name.charAt(0) == "&") return "variable-2"; + return "variable"; + } + } + + function inString(stream, state) { + var escaped = false, next; + while (next = stream.next()) { + if (next == '"' && !escaped) { state.tokenize = base; break; } + escaped = !escaped && next == "\\"; + } + return "string"; + } + + function inComment(stream, state) { + var next, last; + while (next = stream.next()) { + if (next == "#" && last == "|") { state.tokenize = base; break; } + last = next; + } + type = "ws"; + return "comment"; + } + + return { + startState: function () { + return {ctx: {prev: null, start: 0, indentTo: 0}, lastType: null, tokenize: base}; + }, + + token: function (stream, state) { + if (stream.sol() && typeof state.ctx.indentTo != "number") + state.ctx.indentTo = state.ctx.start + 1; + + type = null; + var style = state.tokenize(stream, state); + if (type != "ws") { + if (state.ctx.indentTo == null) { + if (type == "symbol" && assumeBody.test(stream.current())) + state.ctx.indentTo = state.ctx.start + config.indentUnit; + else + state.ctx.indentTo = "next"; + } else if (state.ctx.indentTo == "next") { + state.ctx.indentTo = stream.column(); + } + state.lastType = type; + } + if (type == "open") state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null}; + else if (type == "close") state.ctx = state.ctx.prev || state.ctx; + return style; + }, + + indent: function (state, _textAfter) { + var i = state.ctx.indentTo; + return typeof i == "number" ? i : state.ctx.start + 1; + }, + + lineComment: ";;", + blockCommentStart: "#|", + blockCommentEnd: "|#" + }; +}); + +CodeMirror.defineMIME("text/x-common-lisp", "commonlisp"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/commonlisp/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/commonlisp/index.html new file mode 100644 index 0000000..f2bf452 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/commonlisp/index.html @@ -0,0 +1,177 @@ + + +CodeMirror: Common Lisp mode + + + + + + + + + +
                              +

                              Common Lisp mode

                              +
                              + + +

                              MIME types defined: text/x-common-lisp.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/css.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/css.js new file mode 100644 index 0000000..3f02907 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/css.js @@ -0,0 +1,717 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("css", function(config, parserConfig) { + if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode("text/css"); + + var indentUnit = config.indentUnit, + tokenHooks = parserConfig.tokenHooks, + mediaTypes = parserConfig.mediaTypes || {}, + mediaFeatures = parserConfig.mediaFeatures || {}, + propertyKeywords = parserConfig.propertyKeywords || {}, + nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {}, + colorKeywords = parserConfig.colorKeywords || {}, + valueKeywords = parserConfig.valueKeywords || {}, + fontProperties = parserConfig.fontProperties || {}, + allowNested = parserConfig.allowNested; + + var type, override; + function ret(style, tp) { type = tp; return style; } + + // Tokenizers + + function tokenBase(stream, state) { + var ch = stream.next(); + if (tokenHooks[ch]) { + var result = tokenHooks[ch](stream, state); + if (result !== false) return result; + } + if (ch == "@") { + stream.eatWhile(/[\w\\\-]/); + return ret("def", stream.current()); + } else if (ch == "=" || (ch == "~" || ch == "|") && stream.eat("=")) { + return ret(null, "compare"); + } else if (ch == "\"" || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } else if (ch == "#") { + stream.eatWhile(/[\w\\\-]/); + return ret("atom", "hash"); + } else if (ch == "!") { + stream.match(/^\s*\w*/); + return ret("keyword", "important"); + } else if (/\d/.test(ch) || ch == "." && stream.eat(/\d/)) { + stream.eatWhile(/[\w.%]/); + return ret("number", "unit"); + } else if (ch === "-") { + if (/[\d.]/.test(stream.peek())) { + stream.eatWhile(/[\w.%]/); + return ret("number", "unit"); + } else if (stream.match(/^\w+-/)) { + return ret("meta", "meta"); + } + } else if (/[,+>*\/]/.test(ch)) { + return ret(null, "select-op"); + } else if (ch == "." && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) { + return ret("qualifier", "qualifier"); + } else if (/[:;{}\[\]\(\)]/.test(ch)) { + return ret(null, ch); + } else if (ch == "u" && stream.match("rl(")) { + stream.backUp(1); + state.tokenize = tokenParenthesized; + return ret("property", "word"); + } else if (/[\w\\\-]/.test(ch)) { + stream.eatWhile(/[\w\\\-]/); + return ret("property", "word"); + } else { + return ret(null, null); + } + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && !escaped) { + if (quote == ")") stream.backUp(1); + break; + } + escaped = !escaped && ch == "\\"; + } + if (ch == quote || !escaped && quote != ")") state.tokenize = null; + return ret("string", "string"); + }; + } + + function tokenParenthesized(stream, state) { + stream.next(); // Must be '(' + if (!stream.match(/\s*[\"\')]/, false)) + state.tokenize = tokenString(")"); + else + state.tokenize = null; + return ret(null, "("); + } + + // Context management + + function Context(type, indent, prev) { + this.type = type; + this.indent = indent; + this.prev = prev; + } + + function pushContext(state, stream, type) { + state.context = new Context(type, stream.indentation() + indentUnit, state.context); + return type; + } + + function popContext(state) { + state.context = state.context.prev; + return state.context.type; + } + + function pass(type, stream, state) { + return states[state.context.type](type, stream, state); + } + function popAndPass(type, stream, state, n) { + for (var i = n || 1; i > 0; i--) + state.context = state.context.prev; + return pass(type, stream, state); + } + + // Parser + + function wordAsValue(stream) { + var word = stream.current().toLowerCase(); + if (valueKeywords.hasOwnProperty(word)) + override = "atom"; + else if (colorKeywords.hasOwnProperty(word)) + override = "keyword"; + else + override = "variable"; + } + + var states = {}; + + states.top = function(type, stream, state) { + if (type == "{") { + return pushContext(state, stream, "block"); + } else if (type == "}" && state.context.prev) { + return popContext(state); + } else if (type == "@media") { + return pushContext(state, stream, "media"); + } else if (type == "@font-face") { + return "font_face_before"; + } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) { + return "keyframes"; + } else if (type && type.charAt(0) == "@") { + return pushContext(state, stream, "at"); + } else if (type == "hash") { + override = "builtin"; + } else if (type == "word") { + override = "tag"; + } else if (type == "variable-definition") { + return "maybeprop"; + } else if (type == "interpolation") { + return pushContext(state, stream, "interpolation"); + } else if (type == ":") { + return "pseudo"; + } else if (allowNested && type == "(") { + return pushContext(state, stream, "parens"); + } + return state.context.type; + }; + + states.block = function(type, stream, state) { + if (type == "word") { + var word = stream.current().toLowerCase(); + if (propertyKeywords.hasOwnProperty(word)) { + override = "property"; + return "maybeprop"; + } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) { + override = "string-2"; + return "maybeprop"; + } else if (allowNested) { + override = stream.match(/^\s*:(?:\s|$)/, false) ? "property" : "tag"; + return "block"; + } else { + override += " error"; + return "maybeprop"; + } + } else if (type == "meta") { + return "block"; + } else if (!allowNested && (type == "hash" || type == "qualifier")) { + override = "error"; + return "block"; + } else { + return states.top(type, stream, state); + } + }; + + states.maybeprop = function(type, stream, state) { + if (type == ":") return pushContext(state, stream, "prop"); + return pass(type, stream, state); + }; + + states.prop = function(type, stream, state) { + if (type == ";") return popContext(state); + if (type == "{" && allowNested) return pushContext(state, stream, "propBlock"); + if (type == "}" || type == "{") return popAndPass(type, stream, state); + if (type == "(") return pushContext(state, stream, "parens"); + + if (type == "hash" && !/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())) { + override += " error"; + } else if (type == "word") { + wordAsValue(stream); + } else if (type == "interpolation") { + return pushContext(state, stream, "interpolation"); + } + return "prop"; + }; + + states.propBlock = function(type, _stream, state) { + if (type == "}") return popContext(state); + if (type == "word") { override = "property"; return "maybeprop"; } + return state.context.type; + }; + + states.parens = function(type, stream, state) { + if (type == "{" || type == "}") return popAndPass(type, stream, state); + if (type == ")") return popContext(state); + if (type == "(") return pushContext(state, stream, "parens"); + if (type == "word") wordAsValue(stream); + return "parens"; + }; + + states.pseudo = function(type, stream, state) { + if (type == "word") { + override = "variable-3"; + return state.context.type; + } + return pass(type, stream, state); + }; + + states.media = function(type, stream, state) { + if (type == "(") return pushContext(state, stream, "media_parens"); + if (type == "}") return popAndPass(type, stream, state); + if (type == "{") return popContext(state) && pushContext(state, stream, allowNested ? "block" : "top"); + + if (type == "word") { + var word = stream.current().toLowerCase(); + if (word == "only" || word == "not" || word == "and") + override = "keyword"; + else if (mediaTypes.hasOwnProperty(word)) + override = "attribute"; + else if (mediaFeatures.hasOwnProperty(word)) + override = "property"; + else + override = "error"; + } + return state.context.type; + }; + + states.media_parens = function(type, stream, state) { + if (type == ")") return popContext(state); + if (type == "{" || type == "}") return popAndPass(type, stream, state, 2); + return states.media(type, stream, state); + }; + + states.font_face_before = function(type, stream, state) { + if (type == "{") + return pushContext(state, stream, "font_face"); + return pass(type, stream, state); + }; + + states.font_face = function(type, stream, state) { + if (type == "}") return popContext(state); + if (type == "word") { + if (!fontProperties.hasOwnProperty(stream.current().toLowerCase())) + override = "error"; + else + override = "property"; + return "maybeprop"; + } + return "font_face"; + }; + + states.keyframes = function(type, stream, state) { + if (type == "word") { override = "variable"; return "keyframes"; } + if (type == "{") return pushContext(state, stream, "top"); + return pass(type, stream, state); + }; + + states.at = function(type, stream, state) { + if (type == ";") return popContext(state); + if (type == "{" || type == "}") return popAndPass(type, stream, state); + if (type == "word") override = "tag"; + else if (type == "hash") override = "builtin"; + return "at"; + }; + + states.interpolation = function(type, stream, state) { + if (type == "}") return popContext(state); + if (type == "{" || type == ";") return popAndPass(type, stream, state); + if (type != "variable") override = "error"; + return "interpolation"; + }; + + return { + startState: function(base) { + return {tokenize: null, + state: "top", + context: new Context("top", base || 0, null)}; + }, + + token: function(stream, state) { + if (!state.tokenize && stream.eatSpace()) return null; + var style = (state.tokenize || tokenBase)(stream, state); + if (style && typeof style == "object") { + type = style[1]; + style = style[0]; + } + override = style; + state.state = states[state.state](type, stream, state); + return override; + }, + + indent: function(state, textAfter) { + var cx = state.context, ch = textAfter && textAfter.charAt(0); + var indent = cx.indent; + if (cx.type == "prop" && (ch == "}" || ch == ")")) cx = cx.prev; + if (cx.prev && + (ch == "}" && (cx.type == "block" || cx.type == "top" || cx.type == "interpolation" || cx.type == "font_face") || + ch == ")" && (cx.type == "parens" || cx.type == "media_parens") || + ch == "{" && (cx.type == "at" || cx.type == "media"))) { + indent = cx.indent - indentUnit; + cx = cx.prev; + } + return indent; + }, + + electricChars: "}", + blockCommentStart: "/*", + blockCommentEnd: "*/", + fold: "brace" + }; +}); + + function keySet(array) { + var keys = {}; + for (var i = 0; i < array.length; ++i) { + keys[array[i]] = true; + } + return keys; + } + + var mediaTypes_ = [ + "all", "aural", "braille", "handheld", "print", "projection", "screen", + "tty", "tv", "embossed" + ], mediaTypes = keySet(mediaTypes_); + + var mediaFeatures_ = [ + "width", "min-width", "max-width", "height", "min-height", "max-height", + "device-width", "min-device-width", "max-device-width", "device-height", + "min-device-height", "max-device-height", "aspect-ratio", + "min-aspect-ratio", "max-aspect-ratio", "device-aspect-ratio", + "min-device-aspect-ratio", "max-device-aspect-ratio", "color", "min-color", + "max-color", "color-index", "min-color-index", "max-color-index", + "monochrome", "min-monochrome", "max-monochrome", "resolution", + "min-resolution", "max-resolution", "scan", "grid" + ], mediaFeatures = keySet(mediaFeatures_); + + var propertyKeywords_ = [ + "align-content", "align-items", "align-self", "alignment-adjust", + "alignment-baseline", "anchor-point", "animation", "animation-delay", + "animation-direction", "animation-duration", "animation-fill-mode", + "animation-iteration-count", "animation-name", "animation-play-state", + "animation-timing-function", "appearance", "azimuth", "backface-visibility", + "background", "background-attachment", "background-clip", "background-color", + "background-image", "background-origin", "background-position", + "background-repeat", "background-size", "baseline-shift", "binding", + "bleed", "bookmark-label", "bookmark-level", "bookmark-state", + "bookmark-target", "border", "border-bottom", "border-bottom-color", + "border-bottom-left-radius", "border-bottom-right-radius", + "border-bottom-style", "border-bottom-width", "border-collapse", + "border-color", "border-image", "border-image-outset", + "border-image-repeat", "border-image-slice", "border-image-source", + "border-image-width", "border-left", "border-left-color", + "border-left-style", "border-left-width", "border-radius", "border-right", + "border-right-color", "border-right-style", "border-right-width", + "border-spacing", "border-style", "border-top", "border-top-color", + "border-top-left-radius", "border-top-right-radius", "border-top-style", + "border-top-width", "border-width", "bottom", "box-decoration-break", + "box-shadow", "box-sizing", "break-after", "break-before", "break-inside", + "caption-side", "clear", "clip", "color", "color-profile", "column-count", + "column-fill", "column-gap", "column-rule", "column-rule-color", + "column-rule-style", "column-rule-width", "column-span", "column-width", + "columns", "content", "counter-increment", "counter-reset", "crop", "cue", + "cue-after", "cue-before", "cursor", "direction", "display", + "dominant-baseline", "drop-initial-after-adjust", + "drop-initial-after-align", "drop-initial-before-adjust", + "drop-initial-before-align", "drop-initial-size", "drop-initial-value", + "elevation", "empty-cells", "fit", "fit-position", "flex", "flex-basis", + "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", + "float", "float-offset", "flow-from", "flow-into", "font", "font-feature-settings", + "font-family", "font-kerning", "font-language-override", "font-size", "font-size-adjust", + "font-stretch", "font-style", "font-synthesis", "font-variant", + "font-variant-alternates", "font-variant-caps", "font-variant-east-asian", + "font-variant-ligatures", "font-variant-numeric", "font-variant-position", + "font-weight", "grid", "grid-area", "grid-auto-columns", "grid-auto-flow", + "grid-auto-position", "grid-auto-rows", "grid-column", "grid-column-end", + "grid-column-start", "grid-row", "grid-row-end", "grid-row-start", + "grid-template", "grid-template-areas", "grid-template-columns", + "grid-template-rows", "hanging-punctuation", "height", "hyphens", + "icon", "image-orientation", "image-rendering", "image-resolution", + "inline-box-align", "justify-content", "left", "letter-spacing", + "line-break", "line-height", "line-stacking", "line-stacking-ruby", + "line-stacking-shift", "line-stacking-strategy", "list-style", + "list-style-image", "list-style-position", "list-style-type", "margin", + "margin-bottom", "margin-left", "margin-right", "margin-top", + "marker-offset", "marks", "marquee-direction", "marquee-loop", + "marquee-play-count", "marquee-speed", "marquee-style", "max-height", + "max-width", "min-height", "min-width", "move-to", "nav-down", "nav-index", + "nav-left", "nav-right", "nav-up", "object-fit", "object-position", + "opacity", "order", "orphans", "outline", + "outline-color", "outline-offset", "outline-style", "outline-width", + "overflow", "overflow-style", "overflow-wrap", "overflow-x", "overflow-y", + "padding", "padding-bottom", "padding-left", "padding-right", "padding-top", + "page", "page-break-after", "page-break-before", "page-break-inside", + "page-policy", "pause", "pause-after", "pause-before", "perspective", + "perspective-origin", "pitch", "pitch-range", "play-during", "position", + "presentation-level", "punctuation-trim", "quotes", "region-break-after", + "region-break-before", "region-break-inside", "region-fragment", + "rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness", + "right", "rotation", "rotation-point", "ruby-align", "ruby-overhang", + "ruby-position", "ruby-span", "shape-image-threshold", "shape-inside", "shape-margin", + "shape-outside", "size", "speak", "speak-as", "speak-header", + "speak-numeral", "speak-punctuation", "speech-rate", "stress", "string-set", + "tab-size", "table-layout", "target", "target-name", "target-new", + "target-position", "text-align", "text-align-last", "text-decoration", + "text-decoration-color", "text-decoration-line", "text-decoration-skip", + "text-decoration-style", "text-emphasis", "text-emphasis-color", + "text-emphasis-position", "text-emphasis-style", "text-height", + "text-indent", "text-justify", "text-outline", "text-overflow", "text-shadow", + "text-size-adjust", "text-space-collapse", "text-transform", "text-underline-position", + "text-wrap", "top", "transform", "transform-origin", "transform-style", + "transition", "transition-delay", "transition-duration", + "transition-property", "transition-timing-function", "unicode-bidi", + "vertical-align", "visibility", "voice-balance", "voice-duration", + "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress", + "voice-volume", "volume", "white-space", "widows", "width", "word-break", + "word-spacing", "word-wrap", "z-index", + // SVG-specific + "clip-path", "clip-rule", "mask", "enable-background", "filter", "flood-color", + "flood-opacity", "lighting-color", "stop-color", "stop-opacity", "pointer-events", + "color-interpolation", "color-interpolation-filters", + "color-rendering", "fill", "fill-opacity", "fill-rule", "image-rendering", + "marker", "marker-end", "marker-mid", "marker-start", "shape-rendering", "stroke", + "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", + "stroke-miterlimit", "stroke-opacity", "stroke-width", "text-rendering", + "baseline-shift", "dominant-baseline", "glyph-orientation-horizontal", + "glyph-orientation-vertical", "text-anchor", "writing-mode" + ], propertyKeywords = keySet(propertyKeywords_); + + var nonStandardPropertyKeywords_ = [ + "scrollbar-arrow-color", "scrollbar-base-color", "scrollbar-dark-shadow-color", + "scrollbar-face-color", "scrollbar-highlight-color", "scrollbar-shadow-color", + "scrollbar-3d-light-color", "scrollbar-track-color", "shape-inside", + "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button", + "searchfield-results-decoration", "zoom" + ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_); + + var colorKeywords_ = [ + "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", + "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", + "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", + "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", + "darkgray", "darkgreen", "darkkhaki", "darkmagenta", "darkolivegreen", + "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", + "darkslateblue", "darkslategray", "darkturquoise", "darkviolet", + "deeppink", "deepskyblue", "dimgray", "dodgerblue", "firebrick", + "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", + "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", + "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", + "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", + "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightpink", + "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", + "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", + "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", + "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", + "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", + "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", + "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", + "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", + "purple", "rebeccapurple", "red", "rosybrown", "royalblue", "saddlebrown", + "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", + "slateblue", "slategray", "snow", "springgreen", "steelblue", "tan", + "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white", + "whitesmoke", "yellow", "yellowgreen" + ], colorKeywords = keySet(colorKeywords_); + + var valueKeywords_ = [ + "above", "absolute", "activeborder", "activecaption", "afar", + "after-white-space", "ahead", "alias", "all", "all-scroll", "alternate", + "always", "amharic", "amharic-abegede", "antialiased", "appworkspace", + "arabic-indic", "armenian", "asterisks", "auto", "avoid", "avoid-column", "avoid-page", + "avoid-region", "background", "backwards", "baseline", "below", "bidi-override", "binary", + "bengali", "blink", "block", "block-axis", "bold", "bolder", "border", "border-box", + "both", "bottom", "break", "break-all", "break-word", "button", "button-bevel", + "buttonface", "buttonhighlight", "buttonshadow", "buttontext", "cambodian", + "capitalize", "caps-lock-indicator", "caption", "captiontext", "caret", + "cell", "center", "checkbox", "circle", "cjk-earthly-branch", + "cjk-heavenly-stem", "cjk-ideographic", "clear", "clip", "close-quote", + "col-resize", "collapse", "column", "compact", "condensed", "contain", "content", + "content-box", "context-menu", "continuous", "copy", "cover", "crop", + "cross", "crosshair", "currentcolor", "cursive", "dashed", "decimal", + "decimal-leading-zero", "default", "default-button", "destination-atop", + "destination-in", "destination-out", "destination-over", "devanagari", + "disc", "discard", "document", "dot-dash", "dot-dot-dash", "dotted", + "double", "down", "e-resize", "ease", "ease-in", "ease-in-out", "ease-out", + "element", "ellipse", "ellipsis", "embed", "end", "ethiopic", "ethiopic-abegede", + "ethiopic-abegede-am-et", "ethiopic-abegede-gez", "ethiopic-abegede-ti-er", + "ethiopic-abegede-ti-et", "ethiopic-halehame-aa-er", + "ethiopic-halehame-aa-et", "ethiopic-halehame-am-et", + "ethiopic-halehame-gez", "ethiopic-halehame-om-et", + "ethiopic-halehame-sid-et", "ethiopic-halehame-so-et", + "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", + "ethiopic-halehame-tig", "ew-resize", "expanded", "extra-condensed", + "extra-expanded", "fantasy", "fast", "fill", "fixed", "flat", "flex", "footnotes", + "forwards", "from", "geometricPrecision", "georgian", "graytext", "groove", + "gujarati", "gurmukhi", "hand", "hangul", "hangul-consonant", "hebrew", + "help", "hidden", "hide", "higher", "highlight", "highlighttext", + "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "icon", "ignore", + "inactiveborder", "inactivecaption", "inactivecaptiontext", "infinite", + "infobackground", "infotext", "inherit", "initial", "inline", "inline-axis", + "inline-block", "inline-flex", "inline-table", "inset", "inside", "intrinsic", "invert", + "italic", "justify", "kannada", "katakana", "katakana-iroha", "keep-all", "khmer", + "landscape", "lao", "large", "larger", "left", "level", "lighter", + "line-through", "linear", "lines", "list-item", "listbox", "listitem", + "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian", + "lower-greek", "lower-hexadecimal", "lower-latin", "lower-norwegian", + "lower-roman", "lowercase", "ltr", "malayalam", "match", + "media-controls-background", "media-current-time-display", + "media-fullscreen-button", "media-mute-button", "media-play-button", + "media-return-to-realtime-button", "media-rewind-button", + "media-seek-back-button", "media-seek-forward-button", "media-slider", + "media-sliderthumb", "media-time-remaining-display", "media-volume-slider", + "media-volume-slider-container", "media-volume-sliderthumb", "medium", + "menu", "menulist", "menulist-button", "menulist-text", + "menulist-textfield", "menutext", "message-box", "middle", "min-intrinsic", + "mix", "mongolian", "monospace", "move", "multiple", "myanmar", "n-resize", + "narrower", "ne-resize", "nesw-resize", "no-close-quote", "no-drop", + "no-open-quote", "no-repeat", "none", "normal", "not-allowed", "nowrap", + "ns-resize", "nw-resize", "nwse-resize", "oblique", "octal", "open-quote", + "optimizeLegibility", "optimizeSpeed", "oriya", "oromo", "outset", + "outside", "outside-shape", "overlay", "overline", "padding", "padding-box", + "painted", "page", "paused", "persian", "plus-darker", "plus-lighter", "pointer", + "polygon", "portrait", "pre", "pre-line", "pre-wrap", "preserve-3d", "progress", "push-button", + "radio", "read-only", "read-write", "read-write-plaintext-only", "rectangle", "region", + "relative", "repeat", "repeat-x", "repeat-y", "reset", "reverse", "rgb", "rgba", + "ridge", "right", "round", "row-resize", "rtl", "run-in", "running", + "s-resize", "sans-serif", "scroll", "scrollbar", "se-resize", "searchfield", + "searchfield-cancel-button", "searchfield-decoration", + "searchfield-results-button", "searchfield-results-decoration", + "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama", + "single", "skip-white-space", "slide", "slider-horizontal", + "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow", + "small", "small-caps", "small-caption", "smaller", "solid", "somali", + "source-atop", "source-in", "source-out", "source-over", "space", "square", + "square-button", "start", "static", "status-bar", "stretch", "stroke", + "sub", "subpixel-antialiased", "super", "sw-resize", "table", + "table-caption", "table-cell", "table-column", "table-column-group", + "table-footer-group", "table-header-group", "table-row", "table-row-group", + "telugu", "text", "text-bottom", "text-top", "textarea", "textfield", "thai", + "thick", "thin", "threeddarkshadow", "threedface", "threedhighlight", + "threedlightshadow", "threedshadow", "tibetan", "tigre", "tigrinya-er", + "tigrinya-er-abegede", "tigrinya-et", "tigrinya-et-abegede", "to", "top", + "transparent", "ultra-condensed", "ultra-expanded", "underline", "up", + "upper-alpha", "upper-armenian", "upper-greek", "upper-hexadecimal", + "upper-latin", "upper-norwegian", "upper-roman", "uppercase", "urdu", "url", + "vertical", "vertical-text", "visible", "visibleFill", "visiblePainted", + "visibleStroke", "visual", "w-resize", "wait", "wave", "wider", + "window", "windowframe", "windowtext", "x-large", "x-small", "xor", + "xx-large", "xx-small" + ], valueKeywords = keySet(valueKeywords_); + + var fontProperties_ = [ + "font-family", "src", "unicode-range", "font-variant", "font-feature-settings", + "font-stretch", "font-weight", "font-style" + ], fontProperties = keySet(fontProperties_); + + var allWords = mediaTypes_.concat(mediaFeatures_).concat(propertyKeywords_) + .concat(nonStandardPropertyKeywords_).concat(colorKeywords_).concat(valueKeywords_); + CodeMirror.registerHelper("hintWords", "css", allWords); + + function tokenCComment(stream, state) { + var maybeEnd = false, ch; + while ((ch = stream.next()) != null) { + if (maybeEnd && ch == "/") { + state.tokenize = null; + break; + } + maybeEnd = (ch == "*"); + } + return ["comment", "comment"]; + } + + function tokenSGMLComment(stream, state) { + if (stream.skipTo("-->")) { + stream.match("-->"); + state.tokenize = null; + } else { + stream.skipToEnd(); + } + return ["comment", "comment"]; + } + + CodeMirror.defineMIME("text/css", { + mediaTypes: mediaTypes, + mediaFeatures: mediaFeatures, + propertyKeywords: propertyKeywords, + nonStandardPropertyKeywords: nonStandardPropertyKeywords, + colorKeywords: colorKeywords, + valueKeywords: valueKeywords, + fontProperties: fontProperties, + tokenHooks: { + "<": function(stream, state) { + if (!stream.match("!--")) return false; + state.tokenize = tokenSGMLComment; + return tokenSGMLComment(stream, state); + }, + "/": function(stream, state) { + if (!stream.eat("*")) return false; + state.tokenize = tokenCComment; + return tokenCComment(stream, state); + } + }, + name: "css" + }); + + CodeMirror.defineMIME("text/x-scss", { + mediaTypes: mediaTypes, + mediaFeatures: mediaFeatures, + propertyKeywords: propertyKeywords, + nonStandardPropertyKeywords: nonStandardPropertyKeywords, + colorKeywords: colorKeywords, + valueKeywords: valueKeywords, + fontProperties: fontProperties, + allowNested: true, + tokenHooks: { + "/": function(stream, state) { + if (stream.eat("/")) { + stream.skipToEnd(); + return ["comment", "comment"]; + } else if (stream.eat("*")) { + state.tokenize = tokenCComment; + return tokenCComment(stream, state); + } else { + return ["operator", "operator"]; + } + }, + ":": function(stream) { + if (stream.match(/\s*\{/)) + return [null, "{"]; + return false; + }, + "$": function(stream) { + stream.match(/^[\w-]+/); + if (stream.match(/^\s*:/, false)) + return ["variable-2", "variable-definition"]; + return ["variable-2", "variable"]; + }, + "#": function(stream) { + if (!stream.eat("{")) return false; + return [null, "interpolation"]; + } + }, + name: "css", + helperType: "scss" + }); + + CodeMirror.defineMIME("text/x-less", { + mediaTypes: mediaTypes, + mediaFeatures: mediaFeatures, + propertyKeywords: propertyKeywords, + nonStandardPropertyKeywords: nonStandardPropertyKeywords, + colorKeywords: colorKeywords, + valueKeywords: valueKeywords, + fontProperties: fontProperties, + allowNested: true, + tokenHooks: { + "/": function(stream, state) { + if (stream.eat("/")) { + stream.skipToEnd(); + return ["comment", "comment"]; + } else if (stream.eat("*")) { + state.tokenize = tokenCComment; + return tokenCComment(stream, state); + } else { + return ["operator", "operator"]; + } + }, + "@": function(stream) { + if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/, false)) return false; + stream.eatWhile(/[\w\\\-]/); + if (stream.match(/^\s*:/, false)) + return ["variable-2", "variable-definition"]; + return ["variable-2", "variable"]; + }, + "&": function() { + return ["atom", "atom"]; + } + }, + name: "css", + helperType: "less" + }); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/index.html new file mode 100644 index 0000000..2d2b9b0 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/index.html @@ -0,0 +1,75 @@ + + +CodeMirror: CSS mode + + + + + + + + + + + + +
                              +

                              CSS mode

                              +
                              + + +

                              MIME types defined: text/css, text/x-scss (demo), text/x-less (demo).

                              + +

                              Parsing/Highlighting Tests: normal, verbose.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/less.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/less.html new file mode 100644 index 0000000..cc579da --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/less.html @@ -0,0 +1,152 @@ + + +CodeMirror: LESS mode + + + + + + + + + + +
                              +

                              LESS mode

                              +
                              + + +

                              The LESS mode is a sub-mode of the CSS mode (defined in css.js.

                              + +

                              Parsing/Highlighting Tests: normal, verbose.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/less_test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/less_test.js new file mode 100644 index 0000000..2ba6998 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/less_test.js @@ -0,0 +1,51 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + "use strict"; + + var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-less"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "less"); } + + MT("variable", + "[variable-2 @base]: [atom #f04615];", + "[qualifier .class] {", + " [property width]: [variable percentage]([number 0.5]); [comment // returns `50%`]", + " [property color]: [variable saturate]([variable-2 @base], [number 5%]);", + "}"); + + MT("amp", + "[qualifier .child], [qualifier .sibling] {", + " [qualifier .parent] [atom &] {", + " [property color]: [keyword black];", + " }", + " [atom &] + [atom &] {", + " [property color]: [keyword red];", + " }", + "}"); + + MT("mixin", + "[qualifier .mixin] ([variable dark]; [variable-2 @color]) {", + " [property color]: [variable darken]([variable-2 @color], [number 10%]);", + "}", + "[qualifier .mixin] ([variable light]; [variable-2 @color]) {", + " [property color]: [variable lighten]([variable-2 @color], [number 10%]);", + "}", + "[qualifier .mixin] ([variable-2 @_]; [variable-2 @color]) {", + " [property display]: [atom block];", + "}", + "[variable-2 @switch]: [variable light];", + "[qualifier .class] {", + " [qualifier .mixin]([variable-2 @switch]; [atom #888]);", + "}"); + + MT("nest", + "[qualifier .one] {", + " [def @media] ([property width]: [number 400px]) {", + " [property font-size]: [number 1.2em];", + " [def @media] [attribute print] [keyword and] [property color] {", + " [property color]: [keyword blue];", + " }", + " }", + "}"); +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/scss.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/scss.html new file mode 100644 index 0000000..21f20e0 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/scss.html @@ -0,0 +1,157 @@ + + +CodeMirror: SCSS mode + + + + + + + + + +
                              +

                              SCSS mode

                              +
                              + + +

                              The SCSS mode is a sub-mode of the CSS mode (defined in css.js.

                              + +

                              Parsing/Highlighting Tests: normal, verbose.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/scss_test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/scss_test.js new file mode 100644 index 0000000..8dcea9e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/scss_test.js @@ -0,0 +1,110 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-scss"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "scss"); } + + MT('url_with_quotation', + "[tag foo] { [property background]:[atom url]([string test.jpg]) }"); + + MT('url_with_double_quotes', + "[tag foo] { [property background]:[atom url]([string \"test.jpg\"]) }"); + + MT('url_with_single_quotes', + "[tag foo] { [property background]:[atom url]([string \'test.jpg\']) }"); + + MT('string', + "[def @import] [string \"compass/css3\"]"); + + MT('important_keyword', + "[tag foo] { [property background]:[atom url]([string \'test.jpg\']) [keyword !important] }"); + + MT('variable', + "[variable-2 $blue]:[atom #333]"); + + MT('variable_as_attribute', + "[tag foo] { [property color]:[variable-2 $blue] }"); + + MT('numbers', + "[tag foo] { [property padding]:[number 10px] [number 10] [number 10em] [number 8in] }"); + + MT('number_percentage', + "[tag foo] { [property width]:[number 80%] }"); + + MT('selector', + "[builtin #hello][qualifier .world]{}"); + + MT('singleline_comment', + "[comment // this is a comment]"); + + MT('multiline_comment', + "[comment /*foobar*/]"); + + MT('attribute_with_hyphen', + "[tag foo] { [property font-size]:[number 10px] }"); + + MT('string_after_attribute', + "[tag foo] { [property content]:[string \"::\"] }"); + + MT('directives', + "[def @include] [qualifier .mixin]"); + + MT('basic_structure', + "[tag p] { [property background]:[keyword red]; }"); + + MT('nested_structure', + "[tag p] { [tag a] { [property color]:[keyword red]; } }"); + + MT('mixin', + "[def @mixin] [tag table-base] {}"); + + MT('number_without_semicolon', + "[tag p] {[property width]:[number 12]}", + "[tag a] {[property color]:[keyword red];}"); + + MT('atom_in_nested_block', + "[tag p] { [tag a] { [property color]:[atom #000]; } }"); + + MT('interpolation_in_property', + "[tag foo] { #{[variable-2 $hello]}:[number 2]; }"); + + MT('interpolation_in_selector', + "[tag foo]#{[variable-2 $hello]} { [property color]:[atom #000]; }"); + + MT('interpolation_error', + "[tag foo]#{[error foo]} { [property color]:[atom #000]; }"); + + MT("divide_operator", + "[tag foo] { [property width]:[number 4] [operator /] [number 2] }"); + + MT('nested_structure_with_id_selector', + "[tag p] { [builtin #hello] { [property color]:[keyword red]; } }"); + + MT('indent_mixin', + "[def @mixin] [tag container] (", + " [variable-2 $a]: [number 10],", + " [variable-2 $b]: [number 10])", + "{}"); + + MT('indent_nested', + "[tag foo] {", + " [tag bar] {", + " }", + "}"); + + MT('indent_parentheses', + "[tag foo] {", + " [property color]: [variable darken]([variable-2 $blue],", + " [number 9%]);", + "}"); + + MT('indent_vardef', + "[variable-2 $name]:", + " [string 'val'];", + "[tag tag] {", + " [tag inner] {", + " [property margin]: [number 3px];", + " }", + "}"); +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/test.js new file mode 100644 index 0000000..d236e2a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/css/test.js @@ -0,0 +1,135 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({indentUnit: 2}, "css"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + // Error, because "foobarhello" is neither a known type or property, but + // property was expected (after "and"), and it should be in parenthese. + MT("atMediaUnknownType", + "[def @media] [attribute screen] [keyword and] [error foobarhello] { }"); + + // Soft error, because "foobarhello" is not a known property or type. + MT("atMediaUnknownProperty", + "[def @media] [attribute screen] [keyword and] ([error foobarhello]) { }"); + + // Make sure nesting works with media queries + MT("atMediaMaxWidthNested", + "[def @media] [attribute screen] [keyword and] ([property max-width]: [number 25px]) { [tag foo] { } }"); + + MT("tagSelector", + "[tag foo] { }"); + + MT("classSelector", + "[qualifier .foo-bar_hello] { }"); + + MT("idSelector", + "[builtin #foo] { [error #foo] }"); + + MT("tagSelectorUnclosed", + "[tag foo] { [property margin]: [number 0] } [tag bar] { }"); + + MT("tagStringNoQuotes", + "[tag foo] { [property font-family]: [variable hello] [variable world]; }"); + + MT("tagStringDouble", + "[tag foo] { [property font-family]: [string \"hello world\"]; }"); + + MT("tagStringSingle", + "[tag foo] { [property font-family]: [string 'hello world']; }"); + + MT("tagColorKeyword", + "[tag foo] {", + " [property color]: [keyword black];", + " [property color]: [keyword navy];", + " [property color]: [keyword yellow];", + "}"); + + MT("tagColorHex3", + "[tag foo] { [property background]: [atom #fff]; }"); + + MT("tagColorHex6", + "[tag foo] { [property background]: [atom #ffffff]; }"); + + MT("tagColorHex4", + "[tag foo] { [property background]: [atom&error #ffff]; }"); + + MT("tagColorHexInvalid", + "[tag foo] { [property background]: [atom&error #ffg]; }"); + + MT("tagNegativeNumber", + "[tag foo] { [property margin]: [number -5px]; }"); + + MT("tagPositiveNumber", + "[tag foo] { [property padding]: [number 5px]; }"); + + MT("tagVendor", + "[tag foo] { [meta -foo-][property box-sizing]: [meta -foo-][atom border-box]; }"); + + MT("tagBogusProperty", + "[tag foo] { [property&error barhelloworld]: [number 0]; }"); + + MT("tagTwoProperties", + "[tag foo] { [property margin]: [number 0]; [property padding]: [number 0]; }"); + + MT("tagTwoPropertiesURL", + "[tag foo] { [property background]: [atom url]([string //example.com/foo.png]); [property padding]: [number 0]; }"); + + MT("commentSGML", + "[comment ]"); + + MT("commentSGML2", + "[comment ] [tag div] {}"); + + MT("indent_tagSelector", + "[tag strong], [tag em] {", + " [property background]: [atom rgba](", + " [number 255], [number 255], [number 0], [number .2]", + " );", + "}"); + + MT("indent_atMedia", + "[def @media] {", + " [tag foo] {", + " [property color]:", + " [keyword yellow];", + " }", + "}"); + + MT("indent_comma", + "[tag foo] {", + " [property font-family]: [variable verdana],", + " [atom sans-serif];", + "}"); + + MT("indent_parentheses", + "[tag foo]:[variable-3 before] {", + " [property background]: [atom url](", + "[string blahblah]", + "[string etc]", + "[string ]) [keyword !important];", + "}"); + + MT("font_face", + "[def @font-face] {", + " [property font-family]: [string 'myfont'];", + " [error nonsense]: [string 'abc'];", + " [property src]: [atom url]([string http://blah]),", + " [atom url]([string http://foo]);", + "}"); + + MT("empty_url", + "[def @import] [tag url]() [tag screen];"); + + MT("parens", + "[qualifier .foo] {", + " [property background-image]: [variable fade]([atom #000], [number 20%]);", + " [property border-image]: [variable linear-gradient](", + " [atom to] [atom bottom],", + " [variable fade]([atom #000], [number 20%]) [number 0%],", + " [variable fade]([atom #000], [number 20%]) [number 100%]", + " );", + "}"); +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cypher/cypher.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cypher/cypher.js new file mode 100644 index 0000000..3157787 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cypher/cypher.js @@ -0,0 +1,146 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +// By the Neo4j Team and contributors. +// https://github.com/neo4j-contrib/CodeMirror + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + var wordRegexp = function(words) { + return new RegExp("^(?:" + words.join("|") + ")$", "i"); + }; + + CodeMirror.defineMode("cypher", function(config) { + var tokenBase = function(stream/*, state*/) { + var ch = stream.next(), curPunc = null; + if (ch === "\"" || ch === "'") { + stream.match(/.+?["']/); + return "string"; + } + if (/[{}\(\),\.;\[\]]/.test(ch)) { + curPunc = ch; + return "node"; + } else if (ch === "/" && stream.eat("/")) { + stream.skipToEnd(); + return "comment"; + } else if (operatorChars.test(ch)) { + stream.eatWhile(operatorChars); + return null; + } else { + stream.eatWhile(/[_\w\d]/); + if (stream.eat(":")) { + stream.eatWhile(/[\w\d_\-]/); + return "atom"; + } + var word = stream.current(); + if (funcs.test(word)) return "builtin"; + if (preds.test(word)) return "def"; + if (keywords.test(word)) return "keyword"; + return "variable"; + } + }; + var pushContext = function(state, type, col) { + return state.context = { + prev: state.context, + indent: state.indent, + col: col, + type: type + }; + }; + var popContext = function(state) { + state.indent = state.context.indent; + return state.context = state.context.prev; + }; + var indentUnit = config.indentUnit; + var curPunc; + var funcs = wordRegexp(["abs", "acos", "allShortestPaths", "asin", "atan", "atan2", "avg", "ceil", "coalesce", "collect", "cos", "cot", "count", "degrees", "e", "endnode", "exp", "extract", "filter", "floor", "haversin", "head", "id", "labels", "last", "left", "length", "log", "log10", "lower", "ltrim", "max", "min", "node", "nodes", "percentileCont", "percentileDisc", "pi", "radians", "rand", "range", "reduce", "rel", "relationship", "relationships", "replace", "right", "round", "rtrim", "shortestPath", "sign", "sin", "split", "sqrt", "startnode", "stdev", "stdevp", "str", "substring", "sum", "tail", "tan", "timestamp", "toFloat", "toInt", "trim", "type", "upper"]); + var preds = wordRegexp(["all", "and", "any", "has", "in", "none", "not", "or", "single", "xor"]); + var keywords = wordRegexp(["as", "asc", "ascending", "assert", "by", "case", "commit", "constraint", "create", "csv", "cypher", "delete", "desc", "descending", "distinct", "drop", "else", "end", "explain", "false", "fieldterminator", "foreach", "from", "headers", "in", "index", "is", "limit", "load", "match", "merge", "null", "on", "optional", "order", "periodic", "profile", "remove", "return", "scan", "set", "skip", "start", "then", "true", "union", "unique", "unwind", "using", "when", "where", "with"]); + var operatorChars = /[*+\-<>=&|~%^]/; + + return { + startState: function(/*base*/) { + return { + tokenize: tokenBase, + context: null, + indent: 0, + col: 0 + }; + }, + token: function(stream, state) { + if (stream.sol()) { + if (state.context && (state.context.align == null)) { + state.context.align = false; + } + state.indent = stream.indentation(); + } + if (stream.eatSpace()) { + return null; + } + var style = state.tokenize(stream, state); + if (style !== "comment" && state.context && (state.context.align == null) && state.context.type !== "pattern") { + state.context.align = true; + } + if (curPunc === "(") { + pushContext(state, ")", stream.column()); + } else if (curPunc === "[") { + pushContext(state, "]", stream.column()); + } else if (curPunc === "{") { + pushContext(state, "}", stream.column()); + } else if (/[\]\}\)]/.test(curPunc)) { + while (state.context && state.context.type === "pattern") { + popContext(state); + } + if (state.context && curPunc === state.context.type) { + popContext(state); + } + } else if (curPunc === "." && state.context && state.context.type === "pattern") { + popContext(state); + } else if (/atom|string|variable/.test(style) && state.context) { + if (/[\}\]]/.test(state.context.type)) { + pushContext(state, "pattern", stream.column()); + } else if (state.context.type === "pattern" && !state.context.align) { + state.context.align = true; + state.context.col = stream.column(); + } + } + return style; + }, + indent: function(state, textAfter) { + var firstChar = textAfter && textAfter.charAt(0); + var context = state.context; + if (/[\]\}]/.test(firstChar)) { + while (context && context.type === "pattern") { + context = context.prev; + } + } + var closing = context && firstChar === context.type; + if (!context) return 0; + if (context.type === "keywords") return CodeMirror.commands.newlineAndIndent; + if (context.align) return context.col + (closing ? 0 : 1); + return context.indent + (closing ? 0 : indentUnit); + } + }; + }); + + CodeMirror.modeExtensions["cypher"] = { + autoFormatLineBreaks: function(text) { + var i, lines, reProcessedPortion; + var lines = text.split("\n"); + var reProcessedPortion = /\s+\b(return|where|order by|match|with|skip|limit|create|delete|set)\b\s/g; + for (var i = 0; i < lines.length; i++) + lines[i] = lines[i].replace(reProcessedPortion, " \n$1 ").trim(); + return lines.join("\n"); + } + }; + + CodeMirror.defineMIME("application/x-cypher-query", "cypher"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cypher/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cypher/index.html new file mode 100644 index 0000000..4c312e2 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/cypher/index.html @@ -0,0 +1,63 @@ + + +CodeMirror: Cypher Mode for CodeMirror + + + + + + + + + + +
                              +

                              Cypher Mode for CodeMirror

                              +
                              + +
                              +

                              MIME types defined: + application/x-cypher-query +

                              + + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/d/d.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/d/d.js new file mode 100644 index 0000000..c927a7e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/d/d.js @@ -0,0 +1,218 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("d", function(config, parserConfig) { + var indentUnit = config.indentUnit, + statementIndentUnit = parserConfig.statementIndentUnit || indentUnit, + keywords = parserConfig.keywords || {}, + builtin = parserConfig.builtin || {}, + blockKeywords = parserConfig.blockKeywords || {}, + atoms = parserConfig.atoms || {}, + hooks = parserConfig.hooks || {}, + multiLineStrings = parserConfig.multiLineStrings; + var isOperatorChar = /[+\-*&%=<>!?|\/]/; + + var curPunc; + + function tokenBase(stream, state) { + var ch = stream.next(); + if (hooks[ch]) { + var result = hooks[ch](stream, state); + if (result !== false) return result; + } + if (ch == '"' || ch == "'" || ch == "`") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + curPunc = ch; + return null; + } + if (/\d/.test(ch)) { + stream.eatWhile(/[\w\.]/); + return "number"; + } + if (ch == "/") { + if (stream.eat("+")) { + state.tokenize = tokenComment; + return tokenNestedComment(stream, state); + } + if (stream.eat("*")) { + state.tokenize = tokenComment; + return tokenComment(stream, state); + } + if (stream.eat("/")) { + stream.skipToEnd(); + return "comment"; + } + } + if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return "operator"; + } + stream.eatWhile(/[\w\$_\xa1-\uffff]/); + var cur = stream.current(); + if (keywords.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "keyword"; + } + if (builtin.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "builtin"; + } + if (atoms.propertyIsEnumerable(cur)) return "atom"; + return "variable"; + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) {end = true; break;} + escaped = !escaped && next == "\\"; + } + if (end || !(escaped || multiLineStrings)) + state.tokenize = null; + return "string"; + }; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = null; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function tokenNestedComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = null; + break; + } + maybeEnd = (ch == "+"); + } + return "comment"; + } + + function Context(indented, column, type, align, prev) { + this.indented = indented; + this.column = column; + this.type = type; + this.align = align; + this.prev = prev; + } + function pushContext(state, col, type) { + var indent = state.indented; + if (state.context && state.context.type == "statement") + indent = state.context.indented; + return state.context = new Context(indent, col, type, null, state.context); + } + function popContext(state) { + var t = state.context.type; + if (t == ")" || t == "]" || t == "}") + state.indented = state.context.indented; + return state.context = state.context.prev; + } + + // Interface + + return { + startState: function(basecolumn) { + return { + tokenize: null, + context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), + indented: 0, + startOfLine: true + }; + }, + + token: function(stream, state) { + var ctx = state.context; + if (stream.sol()) { + if (ctx.align == null) ctx.align = false; + state.indented = stream.indentation(); + state.startOfLine = true; + } + if (stream.eatSpace()) return null; + curPunc = null; + var style = (state.tokenize || tokenBase)(stream, state); + if (style == "comment" || style == "meta") return style; + if (ctx.align == null) ctx.align = true; + + if ((curPunc == ";" || curPunc == ":" || curPunc == ",") && ctx.type == "statement") popContext(state); + else if (curPunc == "{") pushContext(state, stream.column(), "}"); + else if (curPunc == "[") pushContext(state, stream.column(), "]"); + else if (curPunc == "(") pushContext(state, stream.column(), ")"); + else if (curPunc == "}") { + while (ctx.type == "statement") ctx = popContext(state); + if (ctx.type == "}") ctx = popContext(state); + while (ctx.type == "statement") ctx = popContext(state); + } + else if (curPunc == ctx.type) popContext(state); + else if (((ctx.type == "}" || ctx.type == "top") && curPunc != ';') || (ctx.type == "statement" && curPunc == "newstatement")) + pushContext(state, stream.column(), "statement"); + state.startOfLine = false; + return style; + }, + + indent: function(state, textAfter) { + if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass; + var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); + if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev; + var closing = firstChar == ctx.type; + if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit); + else if (ctx.align) return ctx.column + (closing ? 0 : 1); + else return ctx.indented + (closing ? 0 : indentUnit); + }, + + electricChars: "{}" + }; +}); + + function words(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + var blockKeywords = "body catch class do else enum for foreach foreach_reverse if in interface mixin " + + "out scope struct switch try union unittest version while with"; + + CodeMirror.defineMIME("text/x-d", { + name: "d", + keywords: words("abstract alias align asm assert auto break case cast cdouble cent cfloat const continue " + + "debug default delegate delete deprecated export extern final finally function goto immutable " + + "import inout invariant is lazy macro module new nothrow override package pragma private " + + "protected public pure ref return shared short static super synchronized template this " + + "throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters " + + blockKeywords), + blockKeywords: words(blockKeywords), + builtin: words("bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte " + + "ucent uint ulong ushort wchar wstring void size_t sizediff_t"), + atoms: words("exit failure success true false null"), + hooks: { + "@": function(stream, _state) { + stream.eatWhile(/[\w\$_]/); + return "meta"; + } + } + }); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/d/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/d/index.html new file mode 100644 index 0000000..08cabd8 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/d/index.html @@ -0,0 +1,273 @@ + + +CodeMirror: D mode + + + + + + + + + + +
                              +

                              D mode

                              +
                              + + + +

                              Simple mode that handle D-Syntax (DLang Homepage).

                              + +

                              MIME types defined: text/x-d + .

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dart/dart.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dart/dart.js new file mode 100644 index 0000000..a49e218 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dart/dart.js @@ -0,0 +1,50 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../clike/clike")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../clike/clike"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + var keywords = ("this super static final const abstract class extends external factory " + + "implements get native operator set typedef with enum throw rethrow " + + "assert break case continue default in return new deferred async await " + + "try catch finally do else for if switch while import library export " + + "part of show hide is").split(" "); + var blockKeywords = "try catch finally do else for if switch while".split(" "); + var atoms = "true false null".split(" "); + var builtins = "void bool num int double dynamic var String".split(" "); + + function set(words) { + var obj = {}; + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + CodeMirror.defineMIME("application/dart", { + name: "clike", + keywords: set(keywords), + multiLineStrings: true, + blockKeywords: set(blockKeywords), + builtin: set(builtins), + atoms: set(atoms), + hooks: { + "@": function(stream) { + stream.eatWhile(/[\w\$_]/); + return "meta"; + } + } + }); + + CodeMirror.registerHelper("hintWords", "application/dart", keywords.concat(atoms).concat(builtins)); + + // This is needed to make loading through meta.js work. + CodeMirror.defineMode("dart", function(conf) { + return CodeMirror.getMode(conf, "application/dart"); + }, "clike"); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dart/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dart/index.html new file mode 100644 index 0000000..e79da5a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dart/index.html @@ -0,0 +1,71 @@ + + +CodeMirror: Dart mode + + + + + + + + + +
                              +

                              Dart mode

                              +
                              + +
                              + + + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/diff/diff.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/diff/diff.js new file mode 100644 index 0000000..fe0305e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/diff/diff.js @@ -0,0 +1,47 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("diff", function() { + + var TOKEN_NAMES = { + '+': 'positive', + '-': 'negative', + '@': 'meta' + }; + + return { + token: function(stream) { + var tw_pos = stream.string.search(/[\t ]+?$/); + + if (!stream.sol() || tw_pos === 0) { + stream.skipToEnd(); + return ("error " + ( + TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, ''); + } + + var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd(); + + if (tw_pos === -1) { + stream.skipToEnd(); + } else { + stream.pos = tw_pos; + } + + return token_name; + } + }; +}); + +CodeMirror.defineMIME("text/x-diff", "diff"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/diff/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/diff/index.html new file mode 100644 index 0000000..a9669d9 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/diff/index.html @@ -0,0 +1,117 @@ + + +CodeMirror: Diff mode + + + + + + + + + +
                              +

                              Diff mode

                              +
                              + + +

                              MIME types defined: text/x-diff.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/django/django.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/django/django.js new file mode 100644 index 0000000..d70b2fe --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/django/django.js @@ -0,0 +1,67 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), + require("../../addon/mode/overlay")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../htmlmixed/htmlmixed", + "../../addon/mode/overlay"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + CodeMirror.defineMode("django:inner", function() { + var keywords = ["block", "endblock", "for", "endfor", "in", "true", "false", + "loop", "none", "self", "super", "if", "endif", "as", "not", "and", + "else", "import", "with", "endwith", "without", "context", "ifequal", "endifequal", + "ifnotequal", "endifnotequal", "extends", "include", "load", "length", "comment", + "endcomment", "empty"]; + keywords = new RegExp("^((" + keywords.join(")|(") + "))\\b"); + + function tokenBase (stream, state) { + stream.eatWhile(/[^\{]/); + var ch = stream.next(); + if (ch == "{") { + if (ch = stream.eat(/\{|%|#/)) { + state.tokenize = inTag(ch); + return "tag"; + } + } + } + function inTag (close) { + if (close == "{") { + close = "}"; + } + return function (stream, state) { + var ch = stream.next(); + if ((ch == close) && stream.eat("}")) { + state.tokenize = tokenBase; + return "tag"; + } + if (stream.match(keywords)) { + return "keyword"; + } + return close == "#" ? "comment" : "string"; + }; + } + return { + startState: function () { + return {tokenize: tokenBase}; + }, + token: function (stream, state) { + return state.tokenize(stream, state); + } + }; + }); + + CodeMirror.defineMode("django", function(config) { + var htmlBase = CodeMirror.getMode(config, "text/html"); + var djangoInner = CodeMirror.getMode(config, "django:inner"); + return CodeMirror.overlayMode(htmlBase, djangoInner); + }); + + CodeMirror.defineMIME("text/x-django", "django"); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/django/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/django/index.html new file mode 100644 index 0000000..ddcb8ec --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/django/index.html @@ -0,0 +1,63 @@ + + +CodeMirror: Django template mode + + + + + + + + + + + + +
                              +

                              Django template mode

                              +
                              + + + +

                              Mode for HTML with embedded Django template markup.

                              + +

                              MIME types defined: text/x-django

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dockerfile/dockerfile.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dockerfile/dockerfile.js new file mode 100644 index 0000000..6d51775 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dockerfile/dockerfile.js @@ -0,0 +1,76 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../../addon/mode/simple")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../../addon/mode/simple"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + // Collect all Dockerfile directives + var instructions = ["from", "maintainer", "run", "cmd", "expose", "env", + "add", "copy", "entrypoint", "volume", "user", + "workdir", "onbuild"], + instructionRegex = "(" + instructions.join('|') + ")", + instructionOnlyLine = new RegExp(instructionRegex + "\\s*$", "i"), + instructionWithArguments = new RegExp(instructionRegex + "(\\s+)", "i"); + + CodeMirror.defineSimpleMode("dockerfile", { + start: [ + // Block comment: This is a line starting with a comment + { + regex: /#.*$/, + token: "comment" + }, + // Highlight an instruction without any arguments (for convenience) + { + regex: instructionOnlyLine, + token: "variable-2" + }, + // Highlight an instruction followed by arguments + { + regex: instructionWithArguments, + token: ["variable-2", null], + next: "arguments" + }, + { + regex: /./, + token: null + } + ], + arguments: [ + { + // Line comment without instruction arguments is an error + regex: /#.*$/, + token: "error", + next: "start" + }, + { + regex: /[^#]+\\$/, + token: null + }, + { + // Match everything except for the inline comment + regex: /[^#]+/, + token: null, + next: "start" + }, + { + regex: /$/, + token: null, + next: "start" + }, + // Fail safe return to start + { + token: null, + next: "start" + } + ] + }); + + CodeMirror.defineMIME("text/x-dockerfile", "dockerfile"); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dockerfile/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dockerfile/index.html new file mode 100644 index 0000000..d0f3d9d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dockerfile/index.html @@ -0,0 +1,73 @@ + + +CodeMirror: Dockerfile mode + + + + + + + + + + +
                              +

                              Dockerfile mode

                              +
                              + + + +

                              Dockerfile syntax highlighting for CodeMirror. Depends on + the simplemode addon.

                              + +

                              MIME types defined: text/x-dockerfile

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dtd/dtd.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dtd/dtd.js new file mode 100644 index 0000000..f37029a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dtd/dtd.js @@ -0,0 +1,142 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/* + DTD mode + Ported to CodeMirror by Peter Kroon + Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues + GitHub: @peterkroon +*/ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("dtd", function(config) { + var indentUnit = config.indentUnit, type; + function ret(style, tp) {type = tp; return style;} + + function tokenBase(stream, state) { + var ch = stream.next(); + + if (ch == "<" && stream.eat("!") ) { + if (stream.eatWhile(/[\-]/)) { + state.tokenize = tokenSGMLComment; + return tokenSGMLComment(stream, state); + } else if (stream.eatWhile(/[\w]/)) return ret("keyword", "doindent"); + } else if (ch == "<" && stream.eat("?")) { //xml declaration + state.tokenize = inBlock("meta", "?>"); + return ret("meta", ch); + } else if (ch == "#" && stream.eatWhile(/[\w]/)) return ret("atom", "tag"); + else if (ch == "|") return ret("keyword", "seperator"); + else if (ch.match(/[\(\)\[\]\-\.,\+\?>]/)) return ret(null, ch);//if(ch === ">") return ret(null, "endtag"); else + else if (ch.match(/[\[\]]/)) return ret("rule", ch); + else if (ch == "\"" || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } else if (stream.eatWhile(/[a-zA-Z\?\+\d]/)) { + var sc = stream.current(); + if( sc.substr(sc.length-1,sc.length).match(/\?|\+/) !== null )stream.backUp(1); + return ret("tag", "tag"); + } else if (ch == "%" || ch == "*" ) return ret("number", "number"); + else { + stream.eatWhile(/[\w\\\-_%.{,]/); + return ret(null, null); + } + } + + function tokenSGMLComment(stream, state) { + var dashes = 0, ch; + while ((ch = stream.next()) != null) { + if (dashes >= 2 && ch == ">") { + state.tokenize = tokenBase; + break; + } + dashes = (ch == "-") ? dashes + 1 : 0; + } + return ret("comment", "comment"); + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && !escaped) { + state.tokenize = tokenBase; + break; + } + escaped = !escaped && ch == "\\"; + } + return ret("string", "tag"); + }; + } + + function inBlock(style, terminator) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.match(terminator)) { + state.tokenize = tokenBase; + break; + } + stream.next(); + } + return style; + }; + } + + return { + startState: function(base) { + return {tokenize: tokenBase, + baseIndent: base || 0, + stack: []}; + }, + + token: function(stream, state) { + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + + var context = state.stack[state.stack.length-1]; + if (stream.current() == "[" || type === "doindent" || type == "[") state.stack.push("rule"); + else if (type === "endtag") state.stack[state.stack.length-1] = "endtag"; + else if (stream.current() == "]" || type == "]" || (type == ">" && context == "rule")) state.stack.pop(); + else if (type == "[") state.stack.push("["); + return style; + }, + + indent: function(state, textAfter) { + var n = state.stack.length; + + if( textAfter.match(/\]\s+|\]/) )n=n-1; + else if(textAfter.substr(textAfter.length-1, textAfter.length) === ">"){ + if(textAfter.substr(0,1) === "<")n; + else if( type == "doindent" && textAfter.length > 1 )n; + else if( type == "doindent")n--; + else if( type == ">" && textAfter.length > 1)n; + else if( type == "tag" && textAfter !== ">")n; + else if( type == "tag" && state.stack[state.stack.length-1] == "rule")n--; + else if( type == "tag")n++; + else if( textAfter === ">" && state.stack[state.stack.length-1] == "rule" && type === ">")n--; + else if( textAfter === ">" && state.stack[state.stack.length-1] == "rule")n; + else if( textAfter.substr(0,1) !== "<" && textAfter.substr(0,1) === ">" )n=n-1; + else if( textAfter === ">")n; + else n=n-1; + //over rule them all + if(type == null || type == "]")n--; + } + + return state.baseIndent + n * indentUnit; + }, + + electricChars: "]>" + }; +}); + +CodeMirror.defineMIME("application/xml-dtd", "dtd"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dtd/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dtd/index.html new file mode 100644 index 0000000..e6798a7 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dtd/index.html @@ -0,0 +1,89 @@ + + +CodeMirror: DTD mode + + + + + + + + + +
                              +

                              DTD mode

                              +
                              + + +

                              MIME types defined: application/xml-dtd.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dylan/dylan.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dylan/dylan.js new file mode 100644 index 0000000..be2986a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dylan/dylan.js @@ -0,0 +1,299 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("dylan", function(_config) { + // Words + var words = { + // Words that introduce unnamed definitions like "define interface" + unnamedDefinition: ["interface"], + + // Words that introduce simple named definitions like "define library" + namedDefinition: ["module", "library", "macro", + "C-struct", "C-union", + "C-function", "C-callable-wrapper" + ], + + // Words that introduce type definitions like "define class". + // These are also parameterized like "define method" and are + // appended to otherParameterizedDefinitionWords + typeParameterizedDefinition: ["class", "C-subtype", "C-mapped-subtype"], + + // Words that introduce trickier definitions like "define method". + // These require special definitions to be added to startExpressions + otherParameterizedDefinition: ["method", "function", + "C-variable", "C-address" + ], + + // Words that introduce module constant definitions. + // These must also be simple definitions and are + // appended to otherSimpleDefinitionWords + constantSimpleDefinition: ["constant"], + + // Words that introduce module variable definitions. + // These must also be simple definitions and are + // appended to otherSimpleDefinitionWords + variableSimpleDefinition: ["variable"], + + // Other words that introduce simple definitions + // (without implicit bodies). + otherSimpleDefinition: ["generic", "domain", + "C-pointer-type", + "table" + ], + + // Words that begin statements with implicit bodies. + statement: ["if", "block", "begin", "method", "case", + "for", "select", "when", "unless", "until", + "while", "iterate", "profiling", "dynamic-bind" + ], + + // Patterns that act as separators in compound statements. + // This may include any general pattern that must be indented + // specially. + separator: ["finally", "exception", "cleanup", "else", + "elseif", "afterwards" + ], + + // Keywords that do not require special indentation handling, + // but which should be highlighted + other: ["above", "below", "by", "from", "handler", "in", + "instance", "let", "local", "otherwise", "slot", + "subclass", "then", "to", "keyed-by", "virtual" + ], + + // Condition signaling function calls + signalingCalls: ["signal", "error", "cerror", + "break", "check-type", "abort" + ] + }; + + words["otherDefinition"] = + words["unnamedDefinition"] + .concat(words["namedDefinition"]) + .concat(words["otherParameterizedDefinition"]); + + words["definition"] = + words["typeParameterizedDefinition"] + .concat(words["otherDefinition"]); + + words["parameterizedDefinition"] = + words["typeParameterizedDefinition"] + .concat(words["otherParameterizedDefinition"]); + + words["simpleDefinition"] = + words["constantSimpleDefinition"] + .concat(words["variableSimpleDefinition"]) + .concat(words["otherSimpleDefinition"]); + + words["keyword"] = + words["statement"] + .concat(words["separator"]) + .concat(words["other"]); + + // Patterns + var symbolPattern = "[-_a-zA-Z?!*@<>$%]+"; + var symbol = new RegExp("^" + symbolPattern); + var patterns = { + // Symbols with special syntax + symbolKeyword: symbolPattern + ":", + symbolClass: "<" + symbolPattern + ">", + symbolGlobal: "\\*" + symbolPattern + "\\*", + symbolConstant: "\\$" + symbolPattern + }; + var patternStyles = { + symbolKeyword: "atom", + symbolClass: "tag", + symbolGlobal: "variable-2", + symbolConstant: "variable-3" + }; + + // Compile all patterns to regular expressions + for (var patternName in patterns) + if (patterns.hasOwnProperty(patternName)) + patterns[patternName] = new RegExp("^" + patterns[patternName]); + + // Names beginning "with-" and "without-" are commonly + // used as statement macro + patterns["keyword"] = [/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/]; + + var styles = {}; + styles["keyword"] = "keyword"; + styles["definition"] = "def"; + styles["simpleDefinition"] = "def"; + styles["signalingCalls"] = "builtin"; + + // protected words lookup table + var wordLookup = {}; + var styleLookup = {}; + + [ + "keyword", + "definition", + "simpleDefinition", + "signalingCalls" + ].forEach(function(type) { + words[type].forEach(function(word) { + wordLookup[word] = type; + styleLookup[word] = styles[type]; + }); + }); + + + function chain(stream, state, f) { + state.tokenize = f; + return f(stream, state); + } + + var type, content; + + function ret(_type, style, _content) { + type = _type; + content = _content; + return style; + } + + function tokenBase(stream, state) { + // String + var ch = stream.peek(); + if (ch == "'" || ch == '"') { + stream.next(); + return chain(stream, state, tokenString(ch, "string", "string")); + } + // Comment + else if (ch == "/") { + stream.next(); + if (stream.eat("*")) { + return chain(stream, state, tokenComment); + } else if (stream.eat("/")) { + stream.skipToEnd(); + return ret("comment", "comment"); + } else { + stream.skipTo(" "); + return ret("operator", "operator"); + } + } + // Decimal + else if (/\d/.test(ch)) { + stream.match(/^\d*(?:\.\d*)?(?:e[+\-]?\d+)?/); + return ret("number", "number"); + } + // Hash + else if (ch == "#") { + stream.next(); + // Symbol with string syntax + ch = stream.peek(); + if (ch == '"') { + stream.next(); + return chain(stream, state, tokenString('"', "symbol", "string-2")); + } + // Binary number + else if (ch == "b") { + stream.next(); + stream.eatWhile(/[01]/); + return ret("number", "number"); + } + // Hex number + else if (ch == "x") { + stream.next(); + stream.eatWhile(/[\da-f]/i); + return ret("number", "number"); + } + // Octal number + else if (ch == "o") { + stream.next(); + stream.eatWhile(/[0-7]/); + return ret("number", "number"); + } + // Hash symbol + else { + stream.eatWhile(/[-a-zA-Z]/); + return ret("hash", "keyword"); + } + } else if (stream.match("end")) { + return ret("end", "keyword"); + } + for (var name in patterns) { + if (patterns.hasOwnProperty(name)) { + var pattern = patterns[name]; + if ((pattern instanceof Array && pattern.some(function(p) { + return stream.match(p); + })) || stream.match(pattern)) + return ret(name, patternStyles[name], stream.current()); + } + } + if (stream.match("define")) { + return ret("definition", "def"); + } else { + stream.eatWhile(/[\w\-]/); + // Keyword + if (wordLookup[stream.current()]) { + return ret(wordLookup[stream.current()], styleLookup[stream.current()], stream.current()); + } else if (stream.current().match(symbol)) { + return ret("variable", "variable"); + } else { + stream.next(); + return ret("other", "variable-2"); + } + } + } + + function tokenComment(stream, state) { + var maybeEnd = false, + ch; + while ((ch = stream.next())) { + if (ch == "/" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return ret("comment", "comment"); + } + + function tokenString(quote, type, style) { + return function(stream, state) { + var next, end = false; + while ((next = stream.next()) != null) { + if (next == quote) { + end = true; + break; + } + } + if (end) + state.tokenize = tokenBase; + return ret(type, style); + }; + } + + // Interface + return { + startState: function() { + return { + tokenize: tokenBase, + currentIndent: 0 + }; + }, + token: function(stream, state) { + if (stream.eatSpace()) + return null; + var style = state.tokenize(stream, state); + return style; + }, + blockCommentStart: "/*", + blockCommentEnd: "*/" + }; +}); + +CodeMirror.defineMIME("text/x-dylan", "dylan"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dylan/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dylan/index.html new file mode 100644 index 0000000..7c38398 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/dylan/index.html @@ -0,0 +1,407 @@ + + +CodeMirror: Dylan mode + + + + + + + + + + + + +
                              +

                              Dylan mode

                              + + +
                              + + + +

                              MIME types defined: text/x-dylan.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ebnf/ebnf.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ebnf/ebnf.js new file mode 100644 index 0000000..6b51aba --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ebnf/ebnf.js @@ -0,0 +1,195 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + CodeMirror.defineMode("ebnf", function (config) { + var commentType = {slash: 0, parenthesis: 1}; + var stateType = {comment: 0, _string: 1, characterClass: 2}; + var bracesMode = null; + + if (config.bracesMode) + bracesMode = CodeMirror.getMode(config, config.bracesMode); + + return { + startState: function () { + return { + stringType: null, + commentType: null, + braced: 0, + lhs: true, + localState: null, + stack: [], + inDefinition: false + }; + }, + token: function (stream, state) { + if (!stream) return; + + //check for state changes + if (state.stack.length === 0) { + //strings + if ((stream.peek() == '"') || (stream.peek() == "'")) { + state.stringType = stream.peek(); + stream.next(); // Skip quote + state.stack.unshift(stateType._string); + } else if (stream.match(/^\/\*/)) { //comments starting with /* + state.stack.unshift(stateType.comment); + state.commentType = commentType.slash; + } else if (stream.match(/^\(\*/)) { //comments starting with (* + state.stack.unshift(stateType.comment); + state.commentType = commentType.parenthesis; + } + } + + //return state + //stack has + switch (state.stack[0]) { + case stateType._string: + while (state.stack[0] === stateType._string && !stream.eol()) { + if (stream.peek() === state.stringType) { + stream.next(); // Skip quote + state.stack.shift(); // Clear flag + } else if (stream.peek() === "\\") { + stream.next(); + stream.next(); + } else { + stream.match(/^.[^\\\"\']*/); + } + } + return state.lhs ? "property string" : "string"; // Token style + + case stateType.comment: + while (state.stack[0] === stateType.comment && !stream.eol()) { + if (state.commentType === commentType.slash && stream.match(/\*\//)) { + state.stack.shift(); // Clear flag + state.commentType = null; + } else if (state.commentType === commentType.parenthesis && stream.match(/\*\)/)) { + state.stack.shift(); // Clear flag + state.commentType = null; + } else { + stream.match(/^.[^\*]*/); + } + } + return "comment"; + + case stateType.characterClass: + while (state.stack[0] === stateType.characterClass && !stream.eol()) { + if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) { + state.stack.shift(); + } + } + return "operator"; + } + + var peek = stream.peek(); + + if (bracesMode !== null && (state.braced || peek === "{")) { + if (state.localState === null) + state.localState = bracesMode.startState(); + + var token = bracesMode.token(stream, state.localState), + text = stream.current(); + + if (!token) { + for (var i = 0; i < text.length; i++) { + if (text[i] === "{") { + if (state.braced === 0) { + token = "matchingbracket"; + } + state.braced++; + } else if (text[i] === "}") { + state.braced--; + if (state.braced === 0) { + token = "matchingbracket"; + } + } + } + } + return token; + } + + //no stack + switch (peek) { + case "[": + stream.next(); + state.stack.unshift(stateType.characterClass); + return "bracket"; + case ":": + case "|": + case ";": + stream.next(); + return "operator"; + case "%": + if (stream.match("%%")) { + return "header"; + } else if (stream.match(/[%][A-Za-z]+/)) { + return "keyword"; + } else if (stream.match(/[%][}]/)) { + return "matchingbracket"; + } + break; + case "/": + if (stream.match(/[\/][A-Za-z]+/)) { + return "keyword"; + } + case "\\": + if (stream.match(/[\][a-z]+/)) { + return "string-2"; + } + case ".": + if (stream.match(".")) { + return "atom"; + } + case "*": + case "-": + case "+": + case "^": + if (stream.match(peek)) { + return "atom"; + } + case "$": + if (stream.match("$$")) { + return "builtin"; + } else if (stream.match(/[$][0-9]+/)) { + return "variable-3"; + } + case "<": + if (stream.match(/<<[a-zA-Z_]+>>/)) { + return "builtin"; + } + } + + if (stream.match(/^\/\//)) { + stream.skipToEnd(); + return "comment"; + } else if (stream.match(/return/)) { + return "operator"; + } else if (stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)) { + if (stream.match(/(?=[\(.])/)) { + return "variable"; + } else if (stream.match(/(?=[\s\n]*[:=])/)) { + return "def"; + } + return "variable-2"; + } else if (["[", "]", "(", ")"].indexOf(stream.peek()) != -1) { + stream.next(); + return "bracket"; + } else if (!stream.eatSpace()) { + stream.next(); + } + return null; + } + }; + }); + + CodeMirror.defineMIME("text/x-ebnf", "ebnf"); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ebnf/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ebnf/index.html new file mode 100644 index 0000000..a426c59 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ebnf/index.html @@ -0,0 +1,102 @@ + + + + CodeMirror: EBNF Mode + + + + + + + + + + + + +
                              +

                              EBNF Mode (bracesMode setting = "javascript")

                              +
                              + +

                              The EBNF Mode

                              +

                              Created by Robert Plummer

                              +
                              + + diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ecl/ecl.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ecl/ecl.js new file mode 100644 index 0000000..18778f1 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ecl/ecl.js @@ -0,0 +1,207 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("ecl", function(config) { + + function words(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + function metaHook(stream, state) { + if (!state.startOfLine) return false; + stream.skipToEnd(); + return "meta"; + } + + var indentUnit = config.indentUnit; + var keyword = words("abs acos allnodes ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize combine correlation cos cosh count covariance cron dataset dedup define denormalize distribute distributed distribution ebcdic enth error evaluate event eventextra eventname exists exp failcode failmessage fetch fromunicode getisvalid global graph group hash hash32 hash64 hashcrc hashmd5 having if index intformat isvalid iterate join keyunicode length library limit ln local log loop map matched matchlength matchposition matchtext matchunicode max merge mergejoin min nolocal nonempty normalize parse pipe power preload process project pull random range rank ranked realformat recordof regexfind regexreplace regroup rejected rollup round roundup row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt stepped stored sum table tan tanh thisnode topn tounicode transfer trim truncate typeof ungroup unicodeorder variance which workunit xmldecode xmlencode xmltext xmlunicode"); + var variable = words("apply assert build buildindex evaluate fail keydiff keypatch loadxml nothor notify output parallel sequential soapcall wait"); + var variable_2 = words("__compressed__ all and any as atmost before beginc++ best between case const counter csv descend encrypt end endc++ endmacro except exclusive expire export extend false few first flat from full function group header heading hole ifblock import in interface joined keep keyed last left limit load local locale lookup macro many maxcount maxlength min skew module named nocase noroot noscan nosort not of only opt or outer overwrite packed partition penalty physicallength pipe quote record relationship repeat return right scan self separator service shared skew skip sql store terminator thor threshold token transform trim true type unicodeorder unsorted validate virtual whole wild within xml xpath"); + var variable_3 = words("ascii big_endian boolean data decimal ebcdic integer pattern qstring real record rule set of string token udecimal unicode unsigned varstring varunicode"); + var builtin = words("checkpoint deprecated failcode failmessage failure global independent onwarning persist priority recovery stored success wait when"); + var blockKeywords = words("catch class do else finally for if switch try while"); + var atoms = words("true false null"); + var hooks = {"#": metaHook}; + var multiLineStrings; + var isOperatorChar = /[+\-*&%=<>!?|\/]/; + + var curPunc; + + function tokenBase(stream, state) { + var ch = stream.next(); + if (hooks[ch]) { + var result = hooks[ch](stream, state); + if (result !== false) return result; + } + if (ch == '"' || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + curPunc = ch; + return null; + } + if (/\d/.test(ch)) { + stream.eatWhile(/[\w\.]/); + return "number"; + } + if (ch == "/") { + if (stream.eat("*")) { + state.tokenize = tokenComment; + return tokenComment(stream, state); + } + if (stream.eat("/")) { + stream.skipToEnd(); + return "comment"; + } + } + if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return "operator"; + } + stream.eatWhile(/[\w\$_]/); + var cur = stream.current().toLowerCase(); + if (keyword.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "keyword"; + } else if (variable.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "variable"; + } else if (variable_2.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "variable-2"; + } else if (variable_3.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "variable-3"; + } else if (builtin.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "builtin"; + } else { //Data types are of from KEYWORD## + var i = cur.length - 1; + while(i >= 0 && (!isNaN(cur[i]) || cur[i] == '_')) + --i; + + if (i > 0) { + var cur2 = cur.substr(0, i + 1); + if (variable_3.propertyIsEnumerable(cur2)) { + if (blockKeywords.propertyIsEnumerable(cur2)) curPunc = "newstatement"; + return "variable-3"; + } + } + } + if (atoms.propertyIsEnumerable(cur)) return "atom"; + return null; + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) {end = true; break;} + escaped = !escaped && next == "\\"; + } + if (end || !(escaped || multiLineStrings)) + state.tokenize = tokenBase; + return "string"; + }; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function Context(indented, column, type, align, prev) { + this.indented = indented; + this.column = column; + this.type = type; + this.align = align; + this.prev = prev; + } + function pushContext(state, col, type) { + return state.context = new Context(state.indented, col, type, null, state.context); + } + function popContext(state) { + var t = state.context.type; + if (t == ")" || t == "]" || t == "}") + state.indented = state.context.indented; + return state.context = state.context.prev; + } + + // Interface + + return { + startState: function(basecolumn) { + return { + tokenize: null, + context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), + indented: 0, + startOfLine: true + }; + }, + + token: function(stream, state) { + var ctx = state.context; + if (stream.sol()) { + if (ctx.align == null) ctx.align = false; + state.indented = stream.indentation(); + state.startOfLine = true; + } + if (stream.eatSpace()) return null; + curPunc = null; + var style = (state.tokenize || tokenBase)(stream, state); + if (style == "comment" || style == "meta") return style; + if (ctx.align == null) ctx.align = true; + + if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state); + else if (curPunc == "{") pushContext(state, stream.column(), "}"); + else if (curPunc == "[") pushContext(state, stream.column(), "]"); + else if (curPunc == "(") pushContext(state, stream.column(), ")"); + else if (curPunc == "}") { + while (ctx.type == "statement") ctx = popContext(state); + if (ctx.type == "}") ctx = popContext(state); + while (ctx.type == "statement") ctx = popContext(state); + } + else if (curPunc == ctx.type) popContext(state); + else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement")) + pushContext(state, stream.column(), "statement"); + state.startOfLine = false; + return style; + }, + + indent: function(state, textAfter) { + if (state.tokenize != tokenBase && state.tokenize != null) return 0; + var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); + if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev; + var closing = firstChar == ctx.type; + if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit); + else if (ctx.align) return ctx.column + (closing ? 0 : 1); + else return ctx.indented + (closing ? 0 : indentUnit); + }, + + electricChars: "{}" + }; +}); + +CodeMirror.defineMIME("text/x-ecl", "ecl"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ecl/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ecl/index.html new file mode 100644 index 0000000..41be2f7 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ecl/index.html @@ -0,0 +1,52 @@ + + +CodeMirror: ECL mode + + + + + + + + + +
                              +

                              ECL mode

                              +
                              + + +

                              Based on CodeMirror's clike mode. For more information see HPCC Systems web site.

                              +

                              MIME types defined: text/x-ecl.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/eiffel/eiffel.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/eiffel/eiffel.js new file mode 100644 index 0000000..fcdf295 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/eiffel/eiffel.js @@ -0,0 +1,162 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("eiffel", function() { + function wordObj(words) { + var o = {}; + for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true; + return o; + } + var keywords = wordObj([ + 'note', + 'across', + 'when', + 'variant', + 'until', + 'unique', + 'undefine', + 'then', + 'strip', + 'select', + 'retry', + 'rescue', + 'require', + 'rename', + 'reference', + 'redefine', + 'prefix', + 'once', + 'old', + 'obsolete', + 'loop', + 'local', + 'like', + 'is', + 'inspect', + 'infix', + 'include', + 'if', + 'frozen', + 'from', + 'external', + 'export', + 'ensure', + 'end', + 'elseif', + 'else', + 'do', + 'creation', + 'create', + 'check', + 'alias', + 'agent', + 'separate', + 'invariant', + 'inherit', + 'indexing', + 'feature', + 'expanded', + 'deferred', + 'class', + 'Void', + 'True', + 'Result', + 'Precursor', + 'False', + 'Current', + 'create', + 'attached', + 'detachable', + 'as', + 'and', + 'implies', + 'not', + 'or' + ]); + var operators = wordObj([":=", "and then","and", "or","<<",">>"]); + var curPunc; + + function chain(newtok, stream, state) { + state.tokenize.push(newtok); + return newtok(stream, state); + } + + function tokenBase(stream, state) { + curPunc = null; + if (stream.eatSpace()) return null; + var ch = stream.next(); + if (ch == '"'||ch == "'") { + return chain(readQuoted(ch, "string"), stream, state); + } else if (ch == "-"&&stream.eat("-")) { + stream.skipToEnd(); + return "comment"; + } else if (ch == ":"&&stream.eat("=")) { + return "operator"; + } else if (/[0-9]/.test(ch)) { + stream.eatWhile(/[xXbBCc0-9\.]/); + stream.eat(/[\?\!]/); + return "ident"; + } else if (/[a-zA-Z_0-9]/.test(ch)) { + stream.eatWhile(/[a-zA-Z_0-9]/); + stream.eat(/[\?\!]/); + return "ident"; + } else if (/[=+\-\/*^%<>~]/.test(ch)) { + stream.eatWhile(/[=+\-\/*^%<>~]/); + return "operator"; + } else { + return null; + } + } + + function readQuoted(quote, style, unescaped) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && (unescaped || !escaped)) { + state.tokenize.pop(); + break; + } + escaped = !escaped && ch == "%"; + } + return style; + }; + } + + return { + startState: function() { + return {tokenize: [tokenBase]}; + }, + + token: function(stream, state) { + var style = state.tokenize[state.tokenize.length-1](stream, state); + if (style == "ident") { + var word = stream.current(); + style = keywords.propertyIsEnumerable(stream.current()) ? "keyword" + : operators.propertyIsEnumerable(stream.current()) ? "operator" + : /^[A-Z][A-Z_0-9]*$/g.test(word) ? "tag" + : /^0[bB][0-1]+$/g.test(word) ? "number" + : /^0[cC][0-7]+$/g.test(word) ? "number" + : /^0[xX][a-fA-F0-9]+$/g.test(word) ? "number" + : /^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(word) ? "number" + : /^[0-9]+$/g.test(word) ? "number" + : "variable"; + } + return style; + }, + lineComment: "--" + }; +}); + +CodeMirror.defineMIME("text/x-eiffel", "eiffel"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/eiffel/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/eiffel/index.html new file mode 100644 index 0000000..c53ec49 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/eiffel/index.html @@ -0,0 +1,429 @@ + + +CodeMirror: Eiffel mode + + + + + + + + + + +
                              +

                              Eiffel mode

                              +
                              + + +

                              MIME types defined: text/x-eiffel.

                              + +

                              Created by YNH.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/erlang/erlang.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/erlang/erlang.js new file mode 100644 index 0000000..fbca292 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/erlang/erlang.js @@ -0,0 +1,622 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/*jshint unused:true, eqnull:true, curly:true, bitwise:true */ +/*jshint undef:true, latedef:true, trailing:true */ +/*global CodeMirror:true */ + +// erlang mode. +// tokenizer -> token types -> CodeMirror styles +// tokenizer maintains a parse stack +// indenter uses the parse stack + +// TODO indenter: +// bit syntax +// old guard/bif/conversion clashes (e.g. "float/1") +// type/spec/opaque + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMIME("text/x-erlang", "erlang"); + +CodeMirror.defineMode("erlang", function(cmCfg) { + "use strict"; + +///////////////////////////////////////////////////////////////////////////// +// constants + + var typeWords = [ + "-type", "-spec", "-export_type", "-opaque"]; + + var keywordWords = [ + "after","begin","catch","case","cond","end","fun","if", + "let","of","query","receive","try","when"]; + + var separatorRE = /[\->,;]/; + var separatorWords = [ + "->",";",","]; + + var operatorAtomWords = [ + "and","andalso","band","bnot","bor","bsl","bsr","bxor", + "div","not","or","orelse","rem","xor"]; + + var operatorSymbolRE = /[\+\-\*\/<>=\|:!]/; + var operatorSymbolWords = [ + "=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"]; + + var openParenRE = /[<\(\[\{]/; + var openParenWords = [ + "<<","(","[","{"]; + + var closeParenRE = /[>\)\]\}]/; + var closeParenWords = [ + "}","]",")",">>"]; + + var guardWords = [ + "is_atom","is_binary","is_bitstring","is_boolean","is_float", + "is_function","is_integer","is_list","is_number","is_pid", + "is_port","is_record","is_reference","is_tuple", + "atom","binary","bitstring","boolean","function","integer","list", + "number","pid","port","record","reference","tuple"]; + + var bifWords = [ + "abs","adler32","adler32_combine","alive","apply","atom_to_binary", + "atom_to_list","binary_to_atom","binary_to_existing_atom", + "binary_to_list","binary_to_term","bit_size","bitstring_to_list", + "byte_size","check_process_code","contact_binary","crc32", + "crc32_combine","date","decode_packet","delete_module", + "disconnect_node","element","erase","exit","float","float_to_list", + "garbage_collect","get","get_keys","group_leader","halt","hd", + "integer_to_list","internal_bif","iolist_size","iolist_to_binary", + "is_alive","is_atom","is_binary","is_bitstring","is_boolean", + "is_float","is_function","is_integer","is_list","is_number","is_pid", + "is_port","is_process_alive","is_record","is_reference","is_tuple", + "length","link","list_to_atom","list_to_binary","list_to_bitstring", + "list_to_existing_atom","list_to_float","list_to_integer", + "list_to_pid","list_to_tuple","load_module","make_ref","module_loaded", + "monitor_node","node","node_link","node_unlink","nodes","notalive", + "now","open_port","pid_to_list","port_close","port_command", + "port_connect","port_control","pre_loaded","process_flag", + "process_info","processes","purge_module","put","register", + "registered","round","self","setelement","size","spawn","spawn_link", + "spawn_monitor","spawn_opt","split_binary","statistics", + "term_to_binary","time","throw","tl","trunc","tuple_size", + "tuple_to_list","unlink","unregister","whereis"]; + +// upper case: [A-Z] [Ø-Þ] [À-Ö] +// lower case: [a-z] [ß-ö] [ø-ÿ] + var anumRE = /[\w@Ø-ÞÀ-Öß-öø-ÿ]/; + var escapesRE = + /[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/; + +///////////////////////////////////////////////////////////////////////////// +// tokenizer + + function tokenizer(stream,state) { + // in multi-line string + if (state.in_string) { + state.in_string = (!doubleQuote(stream)); + return rval(state,stream,"string"); + } + + // in multi-line atom + if (state.in_atom) { + state.in_atom = (!singleQuote(stream)); + return rval(state,stream,"atom"); + } + + // whitespace + if (stream.eatSpace()) { + return rval(state,stream,"whitespace"); + } + + // attributes and type specs + if (!peekToken(state) && + stream.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/)) { + if (is_member(stream.current(),typeWords)) { + return rval(state,stream,"type"); + }else{ + return rval(state,stream,"attribute"); + } + } + + var ch = stream.next(); + + // comment + if (ch == '%') { + stream.skipToEnd(); + return rval(state,stream,"comment"); + } + + // colon + if (ch == ":") { + return rval(state,stream,"colon"); + } + + // macro + if (ch == '?') { + stream.eatSpace(); + stream.eatWhile(anumRE); + return rval(state,stream,"macro"); + } + + // record + if (ch == "#") { + stream.eatSpace(); + stream.eatWhile(anumRE); + return rval(state,stream,"record"); + } + + // dollar escape + if (ch == "$") { + if (stream.next() == "\\" && !stream.match(escapesRE)) { + return rval(state,stream,"error"); + } + return rval(state,stream,"number"); + } + + // dot + if (ch == ".") { + return rval(state,stream,"dot"); + } + + // quoted atom + if (ch == '\'') { + if (!(state.in_atom = (!singleQuote(stream)))) { + if (stream.match(/\s*\/\s*[0-9]/,false)) { + stream.match(/\s*\/\s*[0-9]/,true); + return rval(state,stream,"fun"); // 'f'/0 style fun + } + if (stream.match(/\s*\(/,false) || stream.match(/\s*:/,false)) { + return rval(state,stream,"function"); + } + } + return rval(state,stream,"atom"); + } + + // string + if (ch == '"') { + state.in_string = (!doubleQuote(stream)); + return rval(state,stream,"string"); + } + + // variable + if (/[A-Z_Ø-ÞÀ-Ö]/.test(ch)) { + stream.eatWhile(anumRE); + return rval(state,stream,"variable"); + } + + // atom/keyword/BIF/function + if (/[a-z_ß-öø-ÿ]/.test(ch)) { + stream.eatWhile(anumRE); + + if (stream.match(/\s*\/\s*[0-9]/,false)) { + stream.match(/\s*\/\s*[0-9]/,true); + return rval(state,stream,"fun"); // f/0 style fun + } + + var w = stream.current(); + + if (is_member(w,keywordWords)) { + return rval(state,stream,"keyword"); + }else if (is_member(w,operatorAtomWords)) { + return rval(state,stream,"operator"); + }else if (stream.match(/\s*\(/,false)) { + // 'put' and 'erlang:put' are bifs, 'foo:put' is not + if (is_member(w,bifWords) && + ((peekToken(state).token != ":") || + (peekToken(state,2).token == "erlang"))) { + return rval(state,stream,"builtin"); + }else if (is_member(w,guardWords)) { + return rval(state,stream,"guard"); + }else{ + return rval(state,stream,"function"); + } + }else if (is_member(w,operatorAtomWords)) { + return rval(state,stream,"operator"); + }else if (lookahead(stream) == ":") { + if (w == "erlang") { + return rval(state,stream,"builtin"); + } else { + return rval(state,stream,"function"); + } + }else if (is_member(w,["true","false"])) { + return rval(state,stream,"boolean"); + }else if (is_member(w,["true","false"])) { + return rval(state,stream,"boolean"); + }else{ + return rval(state,stream,"atom"); + } + } + + // number + var digitRE = /[0-9]/; + var radixRE = /[0-9a-zA-Z]/; // 36#zZ style int + if (digitRE.test(ch)) { + stream.eatWhile(digitRE); + if (stream.eat('#')) { // 36#aZ style integer + if (!stream.eatWhile(radixRE)) { + stream.backUp(1); //"36#" - syntax error + } + } else if (stream.eat('.')) { // float + if (!stream.eatWhile(digitRE)) { + stream.backUp(1); // "3." - probably end of function + } else { + if (stream.eat(/[eE]/)) { // float with exponent + if (stream.eat(/[-+]/)) { + if (!stream.eatWhile(digitRE)) { + stream.backUp(2); // "2e-" - syntax error + } + } else { + if (!stream.eatWhile(digitRE)) { + stream.backUp(1); // "2e" - syntax error + } + } + } + } + } + return rval(state,stream,"number"); // normal integer + } + + // open parens + if (nongreedy(stream,openParenRE,openParenWords)) { + return rval(state,stream,"open_paren"); + } + + // close parens + if (nongreedy(stream,closeParenRE,closeParenWords)) { + return rval(state,stream,"close_paren"); + } + + // separators + if (greedy(stream,separatorRE,separatorWords)) { + return rval(state,stream,"separator"); + } + + // operators + if (greedy(stream,operatorSymbolRE,operatorSymbolWords)) { + return rval(state,stream,"operator"); + } + + return rval(state,stream,null); + } + +///////////////////////////////////////////////////////////////////////////// +// utilities + function nongreedy(stream,re,words) { + if (stream.current().length == 1 && re.test(stream.current())) { + stream.backUp(1); + while (re.test(stream.peek())) { + stream.next(); + if (is_member(stream.current(),words)) { + return true; + } + } + stream.backUp(stream.current().length-1); + } + return false; + } + + function greedy(stream,re,words) { + if (stream.current().length == 1 && re.test(stream.current())) { + while (re.test(stream.peek())) { + stream.next(); + } + while (0 < stream.current().length) { + if (is_member(stream.current(),words)) { + return true; + }else{ + stream.backUp(1); + } + } + stream.next(); + } + return false; + } + + function doubleQuote(stream) { + return quote(stream, '"', '\\'); + } + + function singleQuote(stream) { + return quote(stream,'\'','\\'); + } + + function quote(stream,quoteChar,escapeChar) { + while (!stream.eol()) { + var ch = stream.next(); + if (ch == quoteChar) { + return true; + }else if (ch == escapeChar) { + stream.next(); + } + } + return false; + } + + function lookahead(stream) { + var m = stream.match(/([\n\s]+|%[^\n]*\n)*(.)/,false); + return m ? m.pop() : ""; + } + + function is_member(element,list) { + return (-1 < list.indexOf(element)); + } + + function rval(state,stream,type) { + + // parse stack + pushToken(state,realToken(type,stream)); + + // map erlang token type to CodeMirror style class + // erlang -> CodeMirror tag + switch (type) { + case "atom": return "atom"; + case "attribute": return "attribute"; + case "boolean": return "atom"; + case "builtin": return "builtin"; + case "close_paren": return null; + case "colon": return null; + case "comment": return "comment"; + case "dot": return null; + case "error": return "error"; + case "fun": return "meta"; + case "function": return "tag"; + case "guard": return "property"; + case "keyword": return "keyword"; + case "macro": return "variable-2"; + case "number": return "number"; + case "open_paren": return null; + case "operator": return "operator"; + case "record": return "bracket"; + case "separator": return null; + case "string": return "string"; + case "type": return "def"; + case "variable": return "variable"; + default: return null; + } + } + + function aToken(tok,col,ind,typ) { + return {token: tok, + column: col, + indent: ind, + type: typ}; + } + + function realToken(type,stream) { + return aToken(stream.current(), + stream.column(), + stream.indentation(), + type); + } + + function fakeToken(type) { + return aToken(type,0,0,type); + } + + function peekToken(state,depth) { + var len = state.tokenStack.length; + var dep = (depth ? depth : 1); + + if (len < dep) { + return false; + }else{ + return state.tokenStack[len-dep]; + } + } + + function pushToken(state,token) { + + if (!(token.type == "comment" || token.type == "whitespace")) { + state.tokenStack = maybe_drop_pre(state.tokenStack,token); + state.tokenStack = maybe_drop_post(state.tokenStack); + } + } + + function maybe_drop_pre(s,token) { + var last = s.length-1; + + if (0 < last && s[last].type === "record" && token.type === "dot") { + s.pop(); + }else if (0 < last && s[last].type === "group") { + s.pop(); + s.push(token); + }else{ + s.push(token); + } + return s; + } + + function maybe_drop_post(s) { + var last = s.length-1; + + if (s[last].type === "dot") { + return []; + } + if (s[last].type === "fun" && s[last-1].token === "fun") { + return s.slice(0,last-1); + } + switch (s[s.length-1].token) { + case "}": return d(s,{g:["{"]}); + case "]": return d(s,{i:["["]}); + case ")": return d(s,{i:["("]}); + case ">>": return d(s,{i:["<<"]}); + case "end": return d(s,{i:["begin","case","fun","if","receive","try"]}); + case ",": return d(s,{e:["begin","try","when","->", + ",","(","[","{","<<"]}); + case "->": return d(s,{r:["when"], + m:["try","if","case","receive"]}); + case ";": return d(s,{E:["case","fun","if","receive","try","when"]}); + case "catch":return d(s,{e:["try"]}); + case "of": return d(s,{e:["case"]}); + case "after":return d(s,{e:["receive","try"]}); + default: return s; + } + } + + function d(stack,tt) { + // stack is a stack of Token objects. + // tt is an object; {type:tokens} + // type is a char, tokens is a list of token strings. + // The function returns (possibly truncated) stack. + // It will descend the stack, looking for a Token such that Token.token + // is a member of tokens. If it does not find that, it will normally (but + // see "E" below) return stack. If it does find a match, it will remove + // all the Tokens between the top and the matched Token. + // If type is "m", that is all it does. + // If type is "i", it will also remove the matched Token and the top Token. + // If type is "g", like "i", but add a fake "group" token at the top. + // If type is "r", it will remove the matched Token, but not the top Token. + // If type is "e", it will keep the matched Token but not the top Token. + // If type is "E", it behaves as for type "e", except if there is no match, + // in which case it will return an empty stack. + + for (var type in tt) { + var len = stack.length-1; + var tokens = tt[type]; + for (var i = len-1; -1 < i ; i--) { + if (is_member(stack[i].token,tokens)) { + var ss = stack.slice(0,i); + switch (type) { + case "m": return ss.concat(stack[i]).concat(stack[len]); + case "r": return ss.concat(stack[len]); + case "i": return ss; + case "g": return ss.concat(fakeToken("group")); + case "E": return ss.concat(stack[i]); + case "e": return ss.concat(stack[i]); + } + } + } + } + return (type == "E" ? [] : stack); + } + +///////////////////////////////////////////////////////////////////////////// +// indenter + + function indenter(state,textAfter) { + var t; + var unit = cmCfg.indentUnit; + var wordAfter = wordafter(textAfter); + var currT = peekToken(state,1); + var prevT = peekToken(state,2); + + if (state.in_string || state.in_atom) { + return CodeMirror.Pass; + }else if (!prevT) { + return 0; + }else if (currT.token == "when") { + return currT.column+unit; + }else if (wordAfter === "when" && prevT.type === "function") { + return prevT.indent+unit; + }else if (wordAfter === "(" && currT.token === "fun") { + return currT.column+3; + }else if (wordAfter === "catch" && (t = getToken(state,["try"]))) { + return t.column; + }else if (is_member(wordAfter,["end","after","of"])) { + t = getToken(state,["begin","case","fun","if","receive","try"]); + return t ? t.column : CodeMirror.Pass; + }else if (is_member(wordAfter,closeParenWords)) { + t = getToken(state,openParenWords); + return t ? t.column : CodeMirror.Pass; + }else if (is_member(currT.token,[",","|","||"]) || + is_member(wordAfter,[",","|","||"])) { + t = postcommaToken(state); + return t ? t.column+t.token.length : unit; + }else if (currT.token == "->") { + if (is_member(prevT.token, ["receive","case","if","try"])) { + return prevT.column+unit+unit; + }else{ + return prevT.column+unit; + } + }else if (is_member(currT.token,openParenWords)) { + return currT.column+currT.token.length; + }else{ + t = defaultToken(state); + return truthy(t) ? t.column+unit : 0; + } + } + + function wordafter(str) { + var m = str.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/); + + return truthy(m) && (m.index === 0) ? m[0] : ""; + } + + function postcommaToken(state) { + var objs = state.tokenStack.slice(0,-1); + var i = getTokenIndex(objs,"type",["open_paren"]); + + return truthy(objs[i]) ? objs[i] : false; + } + + function defaultToken(state) { + var objs = state.tokenStack; + var stop = getTokenIndex(objs,"type",["open_paren","separator","keyword"]); + var oper = getTokenIndex(objs,"type",["operator"]); + + if (truthy(stop) && truthy(oper) && stop < oper) { + return objs[stop+1]; + } else if (truthy(stop)) { + return objs[stop]; + } else { + return false; + } + } + + function getToken(state,tokens) { + var objs = state.tokenStack; + var i = getTokenIndex(objs,"token",tokens); + + return truthy(objs[i]) ? objs[i] : false; + } + + function getTokenIndex(objs,propname,propvals) { + + for (var i = objs.length-1; -1 < i ; i--) { + if (is_member(objs[i][propname],propvals)) { + return i; + } + } + return false; + } + + function truthy(x) { + return (x !== false) && (x != null); + } + +///////////////////////////////////////////////////////////////////////////// +// this object defines the mode + + return { + startState: + function() { + return {tokenStack: [], + in_string: false, + in_atom: false}; + }, + + token: + function(stream, state) { + return tokenizer(stream, state); + }, + + indent: + function(state, textAfter) { + return indenter(state,textAfter); + }, + + lineComment: "%" + }; +}); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/erlang/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/erlang/index.html new file mode 100644 index 0000000..6d06a89 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/erlang/index.html @@ -0,0 +1,76 @@ + + +CodeMirror: Erlang mode + + + + + + + + + + + +
                              +

                              Erlang mode

                              +
                              + + + +

                              MIME types defined: text/x-erlang.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/fortran/fortran.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/fortran/fortran.js new file mode 100644 index 0000000..4d88f00 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/fortran/fortran.js @@ -0,0 +1,188 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("fortran", function() { + function words(array) { + var keys = {}; + for (var i = 0; i < array.length; ++i) { + keys[array[i]] = true; + } + return keys; + } + + var keywords = words([ + "abstract", "accept", "allocatable", "allocate", + "array", "assign", "asynchronous", "backspace", + "bind", "block", "byte", "call", "case", + "class", "close", "common", "contains", + "continue", "cycle", "data", "deallocate", + "decode", "deferred", "dimension", "do", + "elemental", "else", "encode", "end", + "endif", "entry", "enumerator", "equivalence", + "exit", "external", "extrinsic", "final", + "forall", "format", "function", "generic", + "go", "goto", "if", "implicit", "import", "include", + "inquire", "intent", "interface", "intrinsic", + "module", "namelist", "non_intrinsic", + "non_overridable", "none", "nopass", + "nullify", "open", "optional", "options", + "parameter", "pass", "pause", "pointer", + "print", "private", "program", "protected", + "public", "pure", "read", "recursive", "result", + "return", "rewind", "save", "select", "sequence", + "stop", "subroutine", "target", "then", "to", "type", + "use", "value", "volatile", "where", "while", + "write"]); + var builtins = words(["abort", "abs", "access", "achar", "acos", + "adjustl", "adjustr", "aimag", "aint", "alarm", + "all", "allocated", "alog", "amax", "amin", + "amod", "and", "anint", "any", "asin", + "associated", "atan", "besj", "besjn", "besy", + "besyn", "bit_size", "btest", "cabs", "ccos", + "ceiling", "cexp", "char", "chdir", "chmod", + "clog", "cmplx", "command_argument_count", + "complex", "conjg", "cos", "cosh", "count", + "cpu_time", "cshift", "csin", "csqrt", "ctime", + "c_funloc", "c_loc", "c_associated", "c_null_ptr", + "c_null_funptr", "c_f_pointer", "c_null_char", + "c_alert", "c_backspace", "c_form_feed", + "c_new_line", "c_carriage_return", + "c_horizontal_tab", "c_vertical_tab", "dabs", + "dacos", "dasin", "datan", "date_and_time", + "dbesj", "dbesj", "dbesjn", "dbesy", "dbesy", + "dbesyn", "dble", "dcos", "dcosh", "ddim", "derf", + "derfc", "dexp", "digits", "dim", "dint", "dlog", + "dlog", "dmax", "dmin", "dmod", "dnint", + "dot_product", "dprod", "dsign", "dsinh", + "dsin", "dsqrt", "dtanh", "dtan", "dtime", + "eoshift", "epsilon", "erf", "erfc", "etime", + "exit", "exp", "exponent", "extends_type_of", + "fdate", "fget", "fgetc", "float", "floor", + "flush", "fnum", "fputc", "fput", "fraction", + "fseek", "fstat", "ftell", "gerror", "getarg", + "get_command", "get_command_argument", + "get_environment_variable", "getcwd", + "getenv", "getgid", "getlog", "getpid", + "getuid", "gmtime", "hostnm", "huge", "iabs", + "iachar", "iand", "iargc", "ibclr", "ibits", + "ibset", "ichar", "idate", "idim", "idint", + "idnint", "ieor", "ierrno", "ifix", "imag", + "imagpart", "index", "int", "ior", "irand", + "isatty", "ishft", "ishftc", "isign", + "iso_c_binding", "is_iostat_end", "is_iostat_eor", + "itime", "kill", "kind", "lbound", "len", "len_trim", + "lge", "lgt", "link", "lle", "llt", "lnblnk", "loc", + "log", "logical", "long", "lshift", "lstat", "ltime", + "matmul", "max", "maxexponent", "maxloc", "maxval", + "mclock", "merge", "move_alloc", "min", "minexponent", + "minloc", "minval", "mod", "modulo", "mvbits", + "nearest", "new_line", "nint", "not", "or", "pack", + "perror", "precision", "present", "product", "radix", + "rand", "random_number", "random_seed", "range", + "real", "realpart", "rename", "repeat", "reshape", + "rrspacing", "rshift", "same_type_as", "scale", + "scan", "second", "selected_int_kind", + "selected_real_kind", "set_exponent", "shape", + "short", "sign", "signal", "sinh", "sin", "sleep", + "sngl", "spacing", "spread", "sqrt", "srand", "stat", + "sum", "symlnk", "system", "system_clock", "tan", + "tanh", "time", "tiny", "transfer", "transpose", + "trim", "ttynam", "ubound", "umask", "unlink", + "unpack", "verify", "xor", "zabs", "zcos", "zexp", + "zlog", "zsin", "zsqrt"]); + + var dataTypes = words(["c_bool", "c_char", "c_double", "c_double_complex", + "c_float", "c_float_complex", "c_funptr", "c_int", + "c_int16_t", "c_int32_t", "c_int64_t", "c_int8_t", + "c_int_fast16_t", "c_int_fast32_t", "c_int_fast64_t", + "c_int_fast8_t", "c_int_least16_t", "c_int_least32_t", + "c_int_least64_t", "c_int_least8_t", "c_intmax_t", + "c_intptr_t", "c_long", "c_long_double", + "c_long_double_complex", "c_long_long", "c_ptr", + "c_short", "c_signed_char", "c_size_t", "character", + "complex", "double", "integer", "logical", "real"]); + var isOperatorChar = /[+\-*&=<>\/\:]/; + var litOperator = new RegExp("(\.and\.|\.or\.|\.eq\.|\.lt\.|\.le\.|\.gt\.|\.ge\.|\.ne\.|\.not\.|\.eqv\.|\.neqv\.)", "i"); + + function tokenBase(stream, state) { + + if (stream.match(litOperator)){ + return 'operator'; + } + + var ch = stream.next(); + if (ch == "!") { + stream.skipToEnd(); + return "comment"; + } + if (ch == '"' || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + if (/[\[\]\(\),]/.test(ch)) { + return null; + } + if (/\d/.test(ch)) { + stream.eatWhile(/[\w\.]/); + return "number"; + } + if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return "operator"; + } + stream.eatWhile(/[\w\$_]/); + var word = stream.current().toLowerCase(); + + if (keywords.hasOwnProperty(word)){ + return 'keyword'; + } + if (builtins.hasOwnProperty(word) || dataTypes.hasOwnProperty(word)) { + return 'builtin'; + } + return "variable"; + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) { + end = true; + break; + } + escaped = !escaped && next == "\\"; + } + if (end || !escaped) state.tokenize = null; + return "string"; + }; + } + + // Interface + + return { + startState: function() { + return {tokenize: null}; + }, + + token: function(stream, state) { + if (stream.eatSpace()) return null; + var style = (state.tokenize || tokenBase)(stream, state); + if (style == "comment" || style == "meta") return style; + return style; + } + }; +}); + +CodeMirror.defineMIME("text/x-fortran", "fortran"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/fortran/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/fortran/index.html new file mode 100644 index 0000000..102e8f8 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/fortran/index.html @@ -0,0 +1,81 @@ + + +CodeMirror: Fortran mode + + + + + + + + + +
                              +

                              Fortran mode

                              + + +
                              + + + +

                              MIME types defined: text/x-Fortran.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gas/gas.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gas/gas.js new file mode 100644 index 0000000..0c74bed --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gas/gas.js @@ -0,0 +1,345 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("gas", function(_config, parserConfig) { + 'use strict'; + + // If an architecture is specified, its initialization function may + // populate this array with custom parsing functions which will be + // tried in the event that the standard functions do not find a match. + var custom = []; + + // The symbol used to start a line comment changes based on the target + // architecture. + // If no architecture is pased in "parserConfig" then only multiline + // comments will have syntax support. + var lineCommentStartSymbol = ""; + + // These directives are architecture independent. + // Machine specific directives should go in their respective + // architecture initialization function. + // Reference: + // http://sourceware.org/binutils/docs/as/Pseudo-Ops.html#Pseudo-Ops + var directives = { + ".abort" : "builtin", + ".align" : "builtin", + ".altmacro" : "builtin", + ".ascii" : "builtin", + ".asciz" : "builtin", + ".balign" : "builtin", + ".balignw" : "builtin", + ".balignl" : "builtin", + ".bundle_align_mode" : "builtin", + ".bundle_lock" : "builtin", + ".bundle_unlock" : "builtin", + ".byte" : "builtin", + ".cfi_startproc" : "builtin", + ".comm" : "builtin", + ".data" : "builtin", + ".def" : "builtin", + ".desc" : "builtin", + ".dim" : "builtin", + ".double" : "builtin", + ".eject" : "builtin", + ".else" : "builtin", + ".elseif" : "builtin", + ".end" : "builtin", + ".endef" : "builtin", + ".endfunc" : "builtin", + ".endif" : "builtin", + ".equ" : "builtin", + ".equiv" : "builtin", + ".eqv" : "builtin", + ".err" : "builtin", + ".error" : "builtin", + ".exitm" : "builtin", + ".extern" : "builtin", + ".fail" : "builtin", + ".file" : "builtin", + ".fill" : "builtin", + ".float" : "builtin", + ".func" : "builtin", + ".global" : "builtin", + ".gnu_attribute" : "builtin", + ".hidden" : "builtin", + ".hword" : "builtin", + ".ident" : "builtin", + ".if" : "builtin", + ".incbin" : "builtin", + ".include" : "builtin", + ".int" : "builtin", + ".internal" : "builtin", + ".irp" : "builtin", + ".irpc" : "builtin", + ".lcomm" : "builtin", + ".lflags" : "builtin", + ".line" : "builtin", + ".linkonce" : "builtin", + ".list" : "builtin", + ".ln" : "builtin", + ".loc" : "builtin", + ".loc_mark_labels" : "builtin", + ".local" : "builtin", + ".long" : "builtin", + ".macro" : "builtin", + ".mri" : "builtin", + ".noaltmacro" : "builtin", + ".nolist" : "builtin", + ".octa" : "builtin", + ".offset" : "builtin", + ".org" : "builtin", + ".p2align" : "builtin", + ".popsection" : "builtin", + ".previous" : "builtin", + ".print" : "builtin", + ".protected" : "builtin", + ".psize" : "builtin", + ".purgem" : "builtin", + ".pushsection" : "builtin", + ".quad" : "builtin", + ".reloc" : "builtin", + ".rept" : "builtin", + ".sbttl" : "builtin", + ".scl" : "builtin", + ".section" : "builtin", + ".set" : "builtin", + ".short" : "builtin", + ".single" : "builtin", + ".size" : "builtin", + ".skip" : "builtin", + ".sleb128" : "builtin", + ".space" : "builtin", + ".stab" : "builtin", + ".string" : "builtin", + ".struct" : "builtin", + ".subsection" : "builtin", + ".symver" : "builtin", + ".tag" : "builtin", + ".text" : "builtin", + ".title" : "builtin", + ".type" : "builtin", + ".uleb128" : "builtin", + ".val" : "builtin", + ".version" : "builtin", + ".vtable_entry" : "builtin", + ".vtable_inherit" : "builtin", + ".warning" : "builtin", + ".weak" : "builtin", + ".weakref" : "builtin", + ".word" : "builtin" + }; + + var registers = {}; + + function x86(_parserConfig) { + lineCommentStartSymbol = "#"; + + registers.ax = "variable"; + registers.eax = "variable-2"; + registers.rax = "variable-3"; + + registers.bx = "variable"; + registers.ebx = "variable-2"; + registers.rbx = "variable-3"; + + registers.cx = "variable"; + registers.ecx = "variable-2"; + registers.rcx = "variable-3"; + + registers.dx = "variable"; + registers.edx = "variable-2"; + registers.rdx = "variable-3"; + + registers.si = "variable"; + registers.esi = "variable-2"; + registers.rsi = "variable-3"; + + registers.di = "variable"; + registers.edi = "variable-2"; + registers.rdi = "variable-3"; + + registers.sp = "variable"; + registers.esp = "variable-2"; + registers.rsp = "variable-3"; + + registers.bp = "variable"; + registers.ebp = "variable-2"; + registers.rbp = "variable-3"; + + registers.ip = "variable"; + registers.eip = "variable-2"; + registers.rip = "variable-3"; + + registers.cs = "keyword"; + registers.ds = "keyword"; + registers.ss = "keyword"; + registers.es = "keyword"; + registers.fs = "keyword"; + registers.gs = "keyword"; + } + + function armv6(_parserConfig) { + // Reference: + // http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf + // http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/DDI0301H_arm1176jzfs_r0p7_trm.pdf + lineCommentStartSymbol = "@"; + directives.syntax = "builtin"; + + registers.r0 = "variable"; + registers.r1 = "variable"; + registers.r2 = "variable"; + registers.r3 = "variable"; + registers.r4 = "variable"; + registers.r5 = "variable"; + registers.r6 = "variable"; + registers.r7 = "variable"; + registers.r8 = "variable"; + registers.r9 = "variable"; + registers.r10 = "variable"; + registers.r11 = "variable"; + registers.r12 = "variable"; + + registers.sp = "variable-2"; + registers.lr = "variable-2"; + registers.pc = "variable-2"; + registers.r13 = registers.sp; + registers.r14 = registers.lr; + registers.r15 = registers.pc; + + custom.push(function(ch, stream) { + if (ch === '#') { + stream.eatWhile(/\w/); + return "number"; + } + }); + } + + var arch = (parserConfig.architecture || "x86").toLowerCase(); + if (arch === "x86") { + x86(parserConfig); + } else if (arch === "arm" || arch === "armv6") { + armv6(parserConfig); + } + + function nextUntilUnescaped(stream, end) { + var escaped = false, next; + while ((next = stream.next()) != null) { + if (next === end && !escaped) { + return false; + } + escaped = !escaped && next === "\\"; + } + return escaped; + } + + function clikeComment(stream, state) { + var maybeEnd = false, ch; + while ((ch = stream.next()) != null) { + if (ch === "/" && maybeEnd) { + state.tokenize = null; + break; + } + maybeEnd = (ch === "*"); + } + return "comment"; + } + + return { + startState: function() { + return { + tokenize: null + }; + }, + + token: function(stream, state) { + if (state.tokenize) { + return state.tokenize(stream, state); + } + + if (stream.eatSpace()) { + return null; + } + + var style, cur, ch = stream.next(); + + if (ch === "/") { + if (stream.eat("*")) { + state.tokenize = clikeComment; + return clikeComment(stream, state); + } + } + + if (ch === lineCommentStartSymbol) { + stream.skipToEnd(); + return "comment"; + } + + if (ch === '"') { + nextUntilUnescaped(stream, '"'); + return "string"; + } + + if (ch === '.') { + stream.eatWhile(/\w/); + cur = stream.current().toLowerCase(); + style = directives[cur]; + return style || null; + } + + if (ch === '=') { + stream.eatWhile(/\w/); + return "tag"; + } + + if (ch === '{') { + return "braket"; + } + + if (ch === '}') { + return "braket"; + } + + if (/\d/.test(ch)) { + if (ch === "0" && stream.eat("x")) { + stream.eatWhile(/[0-9a-fA-F]/); + return "number"; + } + stream.eatWhile(/\d/); + return "number"; + } + + if (/\w/.test(ch)) { + stream.eatWhile(/\w/); + if (stream.eat(":")) { + return 'tag'; + } + cur = stream.current().toLowerCase(); + style = registers[cur]; + return style || null; + } + + for (var i = 0; i < custom.length; i++) { + style = custom[i](ch, stream, state); + if (style) { + return style; + } + } + }, + + lineComment: lineCommentStartSymbol, + blockCommentStart: "/*", + blockCommentEnd: "*/" + }; +}); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gas/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gas/index.html new file mode 100644 index 0000000..739cfdf --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gas/index.html @@ -0,0 +1,68 @@ + + +CodeMirror: Gas mode + + + + + + + + + +
                              +

                              Gas mode

                              +
                              + +
                              + + + +

                              Handles AT&T assembler syntax (more specifically this handles + the GNU Assembler (gas) syntax.) + It takes a single optional configuration parameter: + architecture, which can be one of "ARM", + "ARMv6" or "x86". + Including the parameter adds syntax for the registers and special + directives for the supplied architecture. + +

                              MIME types defined: text/x-gas

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/gfm.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/gfm.js new file mode 100644 index 0000000..80a8e2c --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/gfm.js @@ -0,0 +1,123 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../markdown/markdown"), require("../../addon/mode/overlay")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../markdown/markdown", "../../addon/mode/overlay"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("gfm", function(config, modeConfig) { + var codeDepth = 0; + function blankLine(state) { + state.code = false; + return null; + } + var gfmOverlay = { + startState: function() { + return { + code: false, + codeBlock: false, + ateSpace: false + }; + }, + copyState: function(s) { + return { + code: s.code, + codeBlock: s.codeBlock, + ateSpace: s.ateSpace + }; + }, + token: function(stream, state) { + state.combineTokens = null; + + // Hack to prevent formatting override inside code blocks (block and inline) + if (state.codeBlock) { + if (stream.match(/^```/)) { + state.codeBlock = false; + return null; + } + stream.skipToEnd(); + return null; + } + if (stream.sol()) { + state.code = false; + } + if (stream.sol() && stream.match(/^```/)) { + stream.skipToEnd(); + state.codeBlock = true; + return null; + } + // If this block is changed, it may need to be updated in Markdown mode + if (stream.peek() === '`') { + stream.next(); + var before = stream.pos; + stream.eatWhile('`'); + var difference = 1 + stream.pos - before; + if (!state.code) { + codeDepth = difference; + state.code = true; + } else { + if (difference === codeDepth) { // Must be exact + state.code = false; + } + } + return null; + } else if (state.code) { + stream.next(); + return null; + } + // Check if space. If so, links can be formatted later on + if (stream.eatSpace()) { + state.ateSpace = true; + return null; + } + if (stream.sol() || state.ateSpace) { + state.ateSpace = false; + if(stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/)) { + // User/Project@SHA + // User@SHA + // SHA + state.combineTokens = true; + return "link"; + } else if (stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/)) { + // User/Project#Num + // User#Num + // #Num + state.combineTokens = true; + return "link"; + } + } + if (stream.match(/^((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i) && + stream.string.slice(stream.start - 2, stream.start) != "](") { + // URLs + // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls + // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine + state.combineTokens = true; + return "link"; + } + stream.next(); + return null; + }, + blankLine: blankLine + }; + + var markdownConfig = { + underscoresBreakWords: false, + taskLists: true, + fencedCodeBlocks: true, + strikethrough: true + }; + for (var attr in modeConfig) { + markdownConfig[attr] = modeConfig[attr]; + } + markdownConfig.name = "markdown"; + CodeMirror.defineMIME("gfmBase", markdownConfig); + return CodeMirror.overlayMode(CodeMirror.getMode(config, "gfmBase"), gfmOverlay); +}, "markdown"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/index.html new file mode 100644 index 0000000..7e38c52 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/index.html @@ -0,0 +1,93 @@ + + +CodeMirror: GFM mode + + + + + + + + + + + + + + + + + +
                              +

                              GFM mode

                              +
                              + + + +

                              Optionally depends on other modes for properly highlighted code blocks.

                              + +

                              Parsing/Highlighting Tests: normal, verbose.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/test.js new file mode 100644 index 0000000..c2bc38f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gfm/test.js @@ -0,0 +1,213 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({tabSize: 4}, "gfm"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + var modeHighlightFormatting = CodeMirror.getMode({tabSize: 4}, {name: "gfm", highlightFormatting: true}); + function FT(name) { test.mode(name, modeHighlightFormatting, Array.prototype.slice.call(arguments, 1)); } + + FT("codeBackticks", + "[comment&formatting&formatting-code `][comment foo][comment&formatting&formatting-code `]"); + + FT("doubleBackticks", + "[comment&formatting&formatting-code ``][comment foo ` bar][comment&formatting&formatting-code ``]"); + + FT("codeBlock", + "[comment&formatting&formatting-code-block ```css]", + "[tag foo]", + "[comment&formatting&formatting-code-block ```]"); + + FT("taskList", + "[variable-2&formatting&formatting-list&formatting-list-ul - ][meta&formatting&formatting-task [ ]]][variable-2 foo]", + "[variable-2&formatting&formatting-list&formatting-list-ul - ][property&formatting&formatting-task [x]]][variable-2 foo]"); + + FT("formatting_strikethrough", + "[strikethrough&formatting&formatting-strikethrough ~~][strikethrough foo][strikethrough&formatting&formatting-strikethrough ~~]"); + + FT("formatting_strikethrough", + "foo [strikethrough&formatting&formatting-strikethrough ~~][strikethrough bar][strikethrough&formatting&formatting-strikethrough ~~]"); + + MT("emInWordAsterisk", + "foo[em *bar*]hello"); + + MT("emInWordUnderscore", + "foo_bar_hello"); + + MT("emStrongUnderscore", + "[strong __][em&strong _foo__][em _] bar"); + + MT("fencedCodeBlocks", + "[comment ```]", + "[comment foo]", + "", + "[comment ```]", + "bar"); + + MT("fencedCodeBlockModeSwitching", + "[comment ```javascript]", + "[variable foo]", + "", + "[comment ```]", + "bar"); + + MT("taskListAsterisk", + "[variable-2 * []] foo]", // Invalid; must have space or x between [] + "[variable-2 * [ ]]bar]", // Invalid; must have space after ] + "[variable-2 * [x]]hello]", // Invalid; must have space after ] + "[variable-2 * ][meta [ ]]][variable-2 [world]]]", // Valid; tests reference style links + " [variable-3 * ][property [x]]][variable-3 foo]"); // Valid; can be nested + + MT("taskListPlus", + "[variable-2 + []] foo]", // Invalid; must have space or x between [] + "[variable-2 + [ ]]bar]", // Invalid; must have space after ] + "[variable-2 + [x]]hello]", // Invalid; must have space after ] + "[variable-2 + ][meta [ ]]][variable-2 [world]]]", // Valid; tests reference style links + " [variable-3 + ][property [x]]][variable-3 foo]"); // Valid; can be nested + + MT("taskListDash", + "[variable-2 - []] foo]", // Invalid; must have space or x between [] + "[variable-2 - [ ]]bar]", // Invalid; must have space after ] + "[variable-2 - [x]]hello]", // Invalid; must have space after ] + "[variable-2 - ][meta [ ]]][variable-2 [world]]]", // Valid; tests reference style links + " [variable-3 - ][property [x]]][variable-3 foo]"); // Valid; can be nested + + MT("taskListNumber", + "[variable-2 1. []] foo]", // Invalid; must have space or x between [] + "[variable-2 2. [ ]]bar]", // Invalid; must have space after ] + "[variable-2 3. [x]]hello]", // Invalid; must have space after ] + "[variable-2 4. ][meta [ ]]][variable-2 [world]]]", // Valid; tests reference style links + " [variable-3 1. ][property [x]]][variable-3 foo]"); // Valid; can be nested + + MT("SHA", + "foo [link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] bar"); + + MT("SHAEmphasis", + "[em *foo ][em&link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]"); + + MT("shortSHA", + "foo [link be6a8cc] bar"); + + MT("tooShortSHA", + "foo be6a8c bar"); + + MT("longSHA", + "foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd22 bar"); + + MT("badSHA", + "foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cg2 bar"); + + MT("userSHA", + "foo [link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] hello"); + + MT("userSHAEmphasis", + "[em *foo ][em&link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]"); + + MT("userProjectSHA", + "foo [link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] world"); + + MT("userProjectSHAEmphasis", + "[em *foo ][em&link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]"); + + MT("num", + "foo [link #1] bar"); + + MT("numEmphasis", + "[em *foo ][em&link #1][em *]"); + + MT("badNum", + "foo #1bar hello"); + + MT("userNum", + "foo [link bar#1] hello"); + + MT("userNumEmphasis", + "[em *foo ][em&link bar#1][em *]"); + + MT("userProjectNum", + "foo [link bar/hello#1] world"); + + MT("userProjectNumEmphasis", + "[em *foo ][em&link bar/hello#1][em *]"); + + MT("vanillaLink", + "foo [link http://www.example.com/] bar"); + + MT("vanillaLinkPunctuation", + "foo [link http://www.example.com/]. bar"); + + MT("vanillaLinkExtension", + "foo [link http://www.example.com/index.html] bar"); + + MT("vanillaLinkEmphasis", + "foo [em *][em&link http://www.example.com/index.html][em *] bar"); + + MT("notALink", + "[comment ```css]", + "[tag foo] {[property color]:[keyword black];}", + "[comment ```][link http://www.example.com/]"); + + MT("notALink", + "[comment ``foo `bar` http://www.example.com/``] hello"); + + MT("notALink", + "[comment `foo]", + "[link http://www.example.com/]", + "[comment `foo]", + "", + "[link http://www.example.com/]"); + + MT("headerCodeBlockGithub", + "[header&header-1 # heading]", + "", + "[comment ```]", + "[comment code]", + "[comment ```]", + "", + "Commit: [link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2]", + "Issue: [link #1]", + "Link: [link http://www.example.com/]"); + + MT("strikethrough", + "[strikethrough ~~foo~~]"); + + MT("strikethroughWithStartingSpace", + "~~ foo~~"); + + MT("strikethroughUnclosedStrayTildes", + "[strikethrough ~~foo~~~]"); + + MT("strikethroughUnclosedStrayTildes", + "[strikethrough ~~foo ~~]"); + + MT("strikethroughUnclosedStrayTildes", + "[strikethrough ~~foo ~~ bar]"); + + MT("strikethroughUnclosedStrayTildes", + "[strikethrough ~~foo ~~ bar~~]hello"); + + MT("strikethroughOneLetter", + "[strikethrough ~~a~~]"); + + MT("strikethroughWrapped", + "[strikethrough ~~foo]", + "[strikethrough foo~~]"); + + MT("strikethroughParagraph", + "[strikethrough ~~foo]", + "", + "foo[strikethrough ~~bar]"); + + MT("strikethroughEm", + "[strikethrough ~~foo][em&strikethrough *bar*][strikethrough ~~]"); + + MT("strikethroughEm", + "[em *][em&strikethrough ~~foo~~][em *]"); + + MT("strikethroughStrong", + "[strikethrough ~~][strong&strikethrough **foo**][strikethrough ~~]"); + + MT("strikethroughStrong", + "[strong **][strong&strikethrough ~~foo~~][strong **]"); + +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gherkin/gherkin.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gherkin/gherkin.js new file mode 100644 index 0000000..fc2ebee --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gherkin/gherkin.js @@ -0,0 +1,178 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/* +Gherkin mode - http://www.cukes.info/ +Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues +*/ + +// Following Objs from Brackets implementation: https://github.com/tregusti/brackets-gherkin/blob/master/main.js +//var Quotes = { +// SINGLE: 1, +// DOUBLE: 2 +//}; + +//var regex = { +// keywords: /(Feature| {2}(Scenario|In order to|As|I)| {4}(Given|When|Then|And))/ +//}; + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("gherkin", function () { + return { + startState: function () { + return { + lineNumber: 0, + tableHeaderLine: false, + allowFeature: true, + allowBackground: false, + allowScenario: false, + allowSteps: false, + allowPlaceholders: false, + allowMultilineArgument: false, + inMultilineString: false, + inMultilineTable: false, + inKeywordLine: false + }; + }, + token: function (stream, state) { + if (stream.sol()) { + state.lineNumber++; + state.inKeywordLine = false; + if (state.inMultilineTable) { + state.tableHeaderLine = false; + if (!stream.match(/\s*\|/, false)) { + state.allowMultilineArgument = false; + state.inMultilineTable = false; + } + } + } + + stream.eatSpace(); + + if (state.allowMultilineArgument) { + + // STRING + if (state.inMultilineString) { + if (stream.match('"""')) { + state.inMultilineString = false; + state.allowMultilineArgument = false; + } else { + stream.match(/.*/); + } + return "string"; + } + + // TABLE + if (state.inMultilineTable) { + if (stream.match(/\|\s*/)) { + return "bracket"; + } else { + stream.match(/[^\|]*/); + return state.tableHeaderLine ? "header" : "string"; + } + } + + // DETECT START + if (stream.match('"""')) { + // String + state.inMultilineString = true; + return "string"; + } else if (stream.match("|")) { + // Table + state.inMultilineTable = true; + state.tableHeaderLine = true; + return "bracket"; + } + + } + + // LINE COMMENT + if (stream.match(/#.*/)) { + return "comment"; + + // TAG + } else if (!state.inKeywordLine && stream.match(/@\S+/)) { + return "tag"; + + // FEATURE + } else if (!state.inKeywordLine && state.allowFeature && stream.match(/(機能|功能|フィーチャ|기능|โครงหลัก|ความสามารถ|ความต้องการทางธุรกิจ|ಹೆಚ್ಚಳ|గుణము|ਮੁਹਾਂਦਰਾ|ਨਕਸ਼ ਨੁਹਾਰ|ਖਾਸੀਅਤ|रूप लेख|وِیژگی|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Үзенчәлеклелек|Свойство|Особина|Мөмкинлек|Могућност|Λειτουργία|Δυνατότητα|Właściwość|Vlastnosť|Trajto|Tính năng|Savybė|Pretty much|Požiadavka|Požadavek|Potrzeba biznesowa|Özellik|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Hwæt|Hwaet|Funzionalità|Funktionalitéit|Funktionalität|Funkcja|Funkcionalnost|Funkcionalitāte|Funkcia|Fungsi|Functionaliteit|Funcționalitate|Funcţionalitate|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Fīča|Feature|Eiginleiki|Egenskap|Egenskab|Característica|Caracteristica|Business Need|Aspekt|Arwedd|Ahoy matey!|Ability):/)) { + state.allowScenario = true; + state.allowBackground = true; + state.allowPlaceholders = false; + state.allowSteps = false; + state.allowMultilineArgument = false; + state.inKeywordLine = true; + return "keyword"; + + // BACKGROUND + } else if (!state.inKeywordLine && state.allowBackground && stream.match(/(背景|배경|แนวคิด|ಹಿನ್ನೆಲೆ|నేపథ్యం|ਪਿਛੋਕੜ|पृष्ठभूमि|زمینه|الخلفية|רקע|Тарих|Предыстория|Предистория|Позадина|Передумова|Основа|Контекст|Кереш|Υπόβαθρο|Założenia|Yo\-ho\-ho|Tausta|Taust|Situācija|Rerefons|Pozadina|Pozadie|Pozadí|Osnova|Latar Belakang|Kontext|Konteksts|Kontekstas|Kontekst|Háttér|Hannergrond|Grundlage|Geçmiş|Fundo|Fono|First off|Dis is what went down|Dasar|Contexto|Contexte|Context|Contesto|Cenário de Fundo|Cenario de Fundo|Cefndir|Bối cảnh|Bakgrunnur|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|Ær|Aer|Achtergrond):/)) { + state.allowPlaceholders = false; + state.allowSteps = true; + state.allowBackground = false; + state.allowMultilineArgument = false; + state.inKeywordLine = true; + return "keyword"; + + // SCENARIO OUTLINE + } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景大綱|场景大纲|劇本大綱|剧本大纲|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|시나리오 개요|สรุปเหตุการณ์|โครงสร้างของเหตุการณ์|ವಿವರಣೆ|కథనం|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਟਕਥਾ ਢਾਂਚਾ|परिदृश्य रूपरेखा|سيناريو مخطط|الگوی سناریو|תבנית תרחיש|Сценарийның төзелеше|Сценарий структураси|Структура сценарію|Структура сценария|Структура сценарија|Скица|Рамка на сценарий|Концепт|Περιγραφή Σεναρίου|Wharrimean is|Template Situai|Template Senario|Template Keadaan|Tapausaihio|Szenariogrundriss|Szablon scenariusza|Swa hwær swa|Swa hwaer swa|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario konsep|Shiver me timbers|Senaryo taslağı|Schema dello scenario|Scenariomall|Scenariomal|Scenario Template|Scenario Outline|Scenario Amlinellol|Scenārijs pēc parauga|Scenarijaus šablonas|Reckon it's like|Raamstsenaarium|Plang vum Szenario|Plan du Scénario|Plan du scénario|Osnova scénáře|Osnova Scenára|Náčrt Scenáru|Náčrt Scénáře|Náčrt Scenára|MISHUN SRSLY|Menggariskan Senario|Lýsing Dæma|Lýsing Atburðarásar|Konturo de la scenaro|Koncept|Khung tình huống|Khung kịch bản|Forgatókönyv vázlat|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esbozo do escenario|Delineação do Cenário|Delineacao do Cenario|All y'all|Abstrakt Scenario|Abstract Scenario):/)) { + state.allowPlaceholders = true; + state.allowSteps = true; + state.allowMultilineArgument = false; + state.inKeywordLine = true; + return "keyword"; + + // EXAMPLES + } else if (state.allowScenario && stream.match(/(例子|例|サンプル|예|ชุดของเหตุการณ์|ชุดของตัวอย่าง|ಉದಾಹರಣೆಗಳು|ఉదాహరణలు|ਉਦਾਹਰਨਾਂ|उदाहरण|نمونه ها|امثلة|דוגמאות|Үрнәкләр|Сценарији|Примеры|Примери|Приклади|Мисоллар|Мисаллар|Σενάρια|Παραδείγματα|You'll wanna|Voorbeelden|Variantai|Tapaukset|Se þe|Se the|Se ðe|Scenarios|Scenariji|Scenarijai|Przykłady|Primjeri|Primeri|Příklady|Príklady|Piemēri|Példák|Pavyzdžiai|Paraugs|Örnekler|Juhtumid|Exemplos|Exemples|Exemple|Exempel|EXAMPLZ|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|Dữ liệu|Dead men tell no tales|Dæmi|Contoh|Cenários|Cenarios|Beispiller|Beispiele|Atburðarásir):/)) { + state.allowPlaceholders = false; + state.allowSteps = true; + state.allowBackground = false; + state.allowMultilineArgument = true; + return "keyword"; + + // SCENARIO + } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景|场景|劇本|剧本|シナリオ|시나리오|เหตุการณ์|ಕಥಾಸಾರಾಂಶ|సన్నివేశం|ਪਟਕਥਾ|परिदृश्य|سيناريو|سناریو|תרחיש|Сценарій|Сценарио|Сценарий|Пример|Σενάριο|Tình huống|The thing of it is|Tapaus|Szenario|Swa|Stsenaarium|Skenario|Situai|Senaryo|Senario|Scenaro|Scenariusz|Scenariu|Scénario|Scenario|Scenarijus|Scenārijs|Scenarij|Scenarie|Scénář|Scenár|Primer|MISHUN|Kịch bản|Keadaan|Heave to|Forgatókönyv|Escenario|Escenari|Cenário|Cenario|Awww, look mate|Atburðarás):/)) { + state.allowPlaceholders = false; + state.allowSteps = true; + state.allowBackground = false; + state.allowMultilineArgument = false; + state.inKeywordLine = true; + return "keyword"; + + // STEPS + } else if (!state.inKeywordLine && state.allowSteps && stream.match(/(那麼|那么|而且|當|当|并且|同時|同时|前提|假设|假設|假定|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|하지만|조건|먼저|만일|만약|단|그리고|그러면|และ |เมื่อ |แต่ |ดังนั้น |กำหนดให้ |ಸ್ಥಿತಿಯನ್ನು |ಮತ್ತು |ನೀಡಿದ |ನಂತರ |ಆದರೆ |మరియు |చెప్పబడినది |కాని |ఈ పరిస్థితిలో |అప్పుడు |ਪਰ |ਤਦ |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |ਜਦੋਂ |ਅਤੇ |यदि |परन्तु |पर |तब |तदा |तथा |जब |चूंकि |किन्तु |कदा |और |अगर |و |هنگامی |متى |لكن |عندما |ثم |بفرض |با فرض |اما |اذاً |آنگاه |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Һәм |Унда |Тоді |Тогда |То |Также |Та |Пусть |Припустимо, що |Припустимо |Онда |Но |Нехай |Нәтиҗәдә |Лекин |Ләкин |Коли |Когда |Когато |Када |Кад |К тому же |І |И |Задато |Задати |Задате |Если |Допустим |Дано |Дадено |Вә |Ва |Бирок |Әмма |Әйтик |Әгәр |Аммо |Али |Але |Агар |А також |А |Τότε |Όταν |Και |Δεδομένου |Αλλά |Þurh |Þegar |Þa þe |Þá |Þa |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Za předpokladu |Za predpokladu |Youse know when youse got |Youse know like when |Yna |Yeah nah |Y'know |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |wann |Ve |Và |Und |Un |ugeholl |Too right |Thurh |Thì |Then y'all |Then |Tha the |Tha |Tetapi |Tapi |Tak |Tada |Tad |Stel |Soit |Siis |Și |Şi |Si |Sed |Se |Så |Quando |Quand |Quan |Pryd |Potom |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Niin |Nhưng |När |Når |Mutta |Men |Mas |Maka |Majd |Mając |Mais |Maar |mä |Ma |Lorsque |Lorsqu'|Logo |Let go and haul |Kun |Kuid |Kui |Kiedy |Khi |Ketika |Kemudian |Keď |Když |Kaj |Kai |Kada |Kad |Jeżeli |Jeśli |Ja |It's just unbelievable |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben seien |Gegeben sei |Gdy |Gangway! |Fakat |Étant donnés |Etant donnés |Étant données |Etant données |Étant donnée |Etant donnée |Étant donné |Etant donné |Et |És |Entonces |Entón |Então |Entao |En |Eğer ki |Ef |Eeldades |E |Ðurh |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Diberi |Dengan |Den youse gotta |DEN |De |Dato |Dați fiind |Daţi fiind |Dati fiind |Dati |Date fiind |Date |Data |Dat fiind |Dar |Dann |dann |Dan |Dados |Dado |Dadas |Dada |Ða ðe |Ða |Cuando |Cho |Cando |Când |Cand |Cal |But y'all |But at the end of the day I reckon |BUT |But |Buh |Blimey! |Biết |Bet |Bagi |Aye |awer |Avast! |Atunci |Atesa |Atès |Apabila |Anrhegedig a |Angenommen |And y'all |And |AN |An |an |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Ak |Adott |Ac |Aber |A zároveň |A tiež |A taktiež |A také |A |a |7 |\* )/)) { + state.inStep = true; + state.allowPlaceholders = true; + state.allowMultilineArgument = true; + state.inKeywordLine = true; + return "keyword"; + + // INLINE STRING + } else if (stream.match(/"[^"]*"?/)) { + return "string"; + + // PLACEHOLDER + } else if (state.allowPlaceholders && stream.match(/<[^>]*>?/)) { + return "variable"; + + // Fall through + } else { + stream.next(); + stream.eatWhile(/[^@"<#]/); + return null; + } + } + }; +}); + +CodeMirror.defineMIME("text/x-feature", "gherkin"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gherkin/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gherkin/index.html new file mode 100644 index 0000000..442ed40 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/gherkin/index.html @@ -0,0 +1,48 @@ + + +CodeMirror: Gherkin mode + + + + + + + + + +
                              +

                              Gherkin mode

                              +
                              + + +

                              MIME types defined: text/x-feature.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/go/go.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/go/go.js new file mode 100644 index 0000000..173e034 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/go/go.js @@ -0,0 +1,184 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("go", function(config) { + var indentUnit = config.indentUnit; + + var keywords = { + "break":true, "case":true, "chan":true, "const":true, "continue":true, + "default":true, "defer":true, "else":true, "fallthrough":true, "for":true, + "func":true, "go":true, "goto":true, "if":true, "import":true, + "interface":true, "map":true, "package":true, "range":true, "return":true, + "select":true, "struct":true, "switch":true, "type":true, "var":true, + "bool":true, "byte":true, "complex64":true, "complex128":true, + "float32":true, "float64":true, "int8":true, "int16":true, "int32":true, + "int64":true, "string":true, "uint8":true, "uint16":true, "uint32":true, + "uint64":true, "int":true, "uint":true, "uintptr":true + }; + + var atoms = { + "true":true, "false":true, "iota":true, "nil":true, "append":true, + "cap":true, "close":true, "complex":true, "copy":true, "imag":true, + "len":true, "make":true, "new":true, "panic":true, "print":true, + "println":true, "real":true, "recover":true + }; + + var isOperatorChar = /[+\-*&^%:=<>!|\/]/; + + var curPunc; + + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"' || ch == "'" || ch == "`") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + if (/[\d\.]/.test(ch)) { + if (ch == ".") { + stream.match(/^[0-9]+([eE][\-+]?[0-9]+)?/); + } else if (ch == "0") { + stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/); + } else { + stream.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/); + } + return "number"; + } + if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + curPunc = ch; + return null; + } + if (ch == "/") { + if (stream.eat("*")) { + state.tokenize = tokenComment; + return tokenComment(stream, state); + } + if (stream.eat("/")) { + stream.skipToEnd(); + return "comment"; + } + } + if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return "operator"; + } + stream.eatWhile(/[\w\$_\xa1-\uffff]/); + var cur = stream.current(); + if (keywords.propertyIsEnumerable(cur)) { + if (cur == "case" || cur == "default") curPunc = "case"; + return "keyword"; + } + if (atoms.propertyIsEnumerable(cur)) return "atom"; + return "variable"; + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) {end = true; break;} + escaped = !escaped && next == "\\"; + } + if (end || !(escaped || quote == "`")) + state.tokenize = tokenBase; + return "string"; + }; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function Context(indented, column, type, align, prev) { + this.indented = indented; + this.column = column; + this.type = type; + this.align = align; + this.prev = prev; + } + function pushContext(state, col, type) { + return state.context = new Context(state.indented, col, type, null, state.context); + } + function popContext(state) { + var t = state.context.type; + if (t == ")" || t == "]" || t == "}") + state.indented = state.context.indented; + return state.context = state.context.prev; + } + + // Interface + + return { + startState: function(basecolumn) { + return { + tokenize: null, + context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), + indented: 0, + startOfLine: true + }; + }, + + token: function(stream, state) { + var ctx = state.context; + if (stream.sol()) { + if (ctx.align == null) ctx.align = false; + state.indented = stream.indentation(); + state.startOfLine = true; + if (ctx.type == "case") ctx.type = "}"; + } + if (stream.eatSpace()) return null; + curPunc = null; + var style = (state.tokenize || tokenBase)(stream, state); + if (style == "comment") return style; + if (ctx.align == null) ctx.align = true; + + if (curPunc == "{") pushContext(state, stream.column(), "}"); + else if (curPunc == "[") pushContext(state, stream.column(), "]"); + else if (curPunc == "(") pushContext(state, stream.column(), ")"); + else if (curPunc == "case") ctx.type = "case"; + else if (curPunc == "}" && ctx.type == "}") ctx = popContext(state); + else if (curPunc == ctx.type) popContext(state); + state.startOfLine = false; + return style; + }, + + indent: function(state, textAfter) { + if (state.tokenize != tokenBase && state.tokenize != null) return 0; + var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); + if (ctx.type == "case" && /^(?:case|default)\b/.test(textAfter)) { + state.context.type = "}"; + return ctx.indented; + } + var closing = firstChar == ctx.type; + if (ctx.align) return ctx.column + (closing ? 0 : 1); + else return ctx.indented + (closing ? 0 : indentUnit); + }, + + electricChars: "{}):", + fold: "brace", + blockCommentStart: "/*", + blockCommentEnd: "*/", + lineComment: "//" + }; +}); + +CodeMirror.defineMIME("text/x-go", "go"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/go/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/go/index.html new file mode 100644 index 0000000..72e3b36 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/go/index.html @@ -0,0 +1,85 @@ + + +CodeMirror: Go mode + + + + + + + + + + + +
                              +

                              Go mode

                              +
                              + + + +

                              MIME type: text/x-go

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/groovy/groovy.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/groovy/groovy.js new file mode 100644 index 0000000..89b8224 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/groovy/groovy.js @@ -0,0 +1,226 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("groovy", function(config) { + function words(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + var keywords = words( + "abstract as assert boolean break byte case catch char class const continue def default " + + "do double else enum extends final finally float for goto if implements import in " + + "instanceof int interface long native new package private protected public return " + + "short static strictfp super switch synchronized threadsafe throw throws transient " + + "try void volatile while"); + var blockKeywords = words("catch class do else finally for if switch try while enum interface def"); + var atoms = words("null true false this"); + + var curPunc; + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"' || ch == "'") { + return startString(ch, stream, state); + } + if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + curPunc = ch; + return null; + } + if (/\d/.test(ch)) { + stream.eatWhile(/[\w\.]/); + if (stream.eat(/eE/)) { stream.eat(/\+\-/); stream.eatWhile(/\d/); } + return "number"; + } + if (ch == "/") { + if (stream.eat("*")) { + state.tokenize.push(tokenComment); + return tokenComment(stream, state); + } + if (stream.eat("/")) { + stream.skipToEnd(); + return "comment"; + } + if (expectExpression(state.lastToken)) { + return startString(ch, stream, state); + } + } + if (ch == "-" && stream.eat(">")) { + curPunc = "->"; + return null; + } + if (/[+\-*&%=<>!?|\/~]/.test(ch)) { + stream.eatWhile(/[+\-*&%=<>|~]/); + return "operator"; + } + stream.eatWhile(/[\w\$_]/); + if (ch == "@") { stream.eatWhile(/[\w\$_\.]/); return "meta"; } + if (state.lastToken == ".") return "property"; + if (stream.eat(":")) { curPunc = "proplabel"; return "property"; } + var cur = stream.current(); + if (atoms.propertyIsEnumerable(cur)) { return "atom"; } + if (keywords.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "keyword"; + } + return "variable"; + } + tokenBase.isBase = true; + + function startString(quote, stream, state) { + var tripleQuoted = false; + if (quote != "/" && stream.eat(quote)) { + if (stream.eat(quote)) tripleQuoted = true; + else return "string"; + } + function t(stream, state) { + var escaped = false, next, end = !tripleQuoted; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) { + if (!tripleQuoted) { break; } + if (stream.match(quote + quote)) { end = true; break; } + } + if (quote == '"' && next == "$" && !escaped && stream.eat("{")) { + state.tokenize.push(tokenBaseUntilBrace()); + return "string"; + } + escaped = !escaped && next == "\\"; + } + if (end) state.tokenize.pop(); + return "string"; + } + state.tokenize.push(t); + return t(stream, state); + } + + function tokenBaseUntilBrace() { + var depth = 1; + function t(stream, state) { + if (stream.peek() == "}") { + depth--; + if (depth == 0) { + state.tokenize.pop(); + return state.tokenize[state.tokenize.length-1](stream, state); + } + } else if (stream.peek() == "{") { + depth++; + } + return tokenBase(stream, state); + } + t.isBase = true; + return t; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize.pop(); + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function expectExpression(last) { + return !last || last == "operator" || last == "->" || /[\.\[\{\(,;:]/.test(last) || + last == "newstatement" || last == "keyword" || last == "proplabel"; + } + + function Context(indented, column, type, align, prev) { + this.indented = indented; + this.column = column; + this.type = type; + this.align = align; + this.prev = prev; + } + function pushContext(state, col, type) { + return state.context = new Context(state.indented, col, type, null, state.context); + } + function popContext(state) { + var t = state.context.type; + if (t == ")" || t == "]" || t == "}") + state.indented = state.context.indented; + return state.context = state.context.prev; + } + + // Interface + + return { + startState: function(basecolumn) { + return { + tokenize: [tokenBase], + context: new Context((basecolumn || 0) - config.indentUnit, 0, "top", false), + indented: 0, + startOfLine: true, + lastToken: null + }; + }, + + token: function(stream, state) { + var ctx = state.context; + if (stream.sol()) { + if (ctx.align == null) ctx.align = false; + state.indented = stream.indentation(); + state.startOfLine = true; + // Automatic semicolon insertion + if (ctx.type == "statement" && !expectExpression(state.lastToken)) { + popContext(state); ctx = state.context; + } + } + if (stream.eatSpace()) return null; + curPunc = null; + var style = state.tokenize[state.tokenize.length-1](stream, state); + if (style == "comment") return style; + if (ctx.align == null) ctx.align = true; + + if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state); + // Handle indentation for {x -> \n ... } + else if (curPunc == "->" && ctx.type == "statement" && ctx.prev.type == "}") { + popContext(state); + state.context.align = false; + } + else if (curPunc == "{") pushContext(state, stream.column(), "}"); + else if (curPunc == "[") pushContext(state, stream.column(), "]"); + else if (curPunc == "(") pushContext(state, stream.column(), ")"); + else if (curPunc == "}") { + while (ctx.type == "statement") ctx = popContext(state); + if (ctx.type == "}") ctx = popContext(state); + while (ctx.type == "statement") ctx = popContext(state); + } + else if (curPunc == ctx.type) popContext(state); + else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement")) + pushContext(state, stream.column(), "statement"); + state.startOfLine = false; + state.lastToken = curPunc || style; + return style; + }, + + indent: function(state, textAfter) { + if (!state.tokenize[state.tokenize.length-1].isBase) return 0; + var firstChar = textAfter && textAfter.charAt(0), ctx = state.context; + if (ctx.type == "statement" && !expectExpression(state.lastToken)) ctx = ctx.prev; + var closing = firstChar == ctx.type; + if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : config.indentUnit); + else if (ctx.align) return ctx.column + (closing ? 0 : 1); + else return ctx.indented + (closing ? 0 : config.indentUnit); + }, + + electricChars: "{}", + fold: "brace" + }; +}); + +CodeMirror.defineMIME("text/x-groovy", "groovy"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/groovy/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/groovy/index.html new file mode 100644 index 0000000..bb0df07 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/groovy/index.html @@ -0,0 +1,84 @@ + + +CodeMirror: Groovy mode + + + + + + + + + + +
                              +

                              Groovy mode

                              +
                              + + + +

                              MIME types defined: text/x-groovy

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/haml.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/haml.js new file mode 100644 index 0000000..8fe63b0 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/haml.js @@ -0,0 +1,159 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../ruby/ruby")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../ruby/ruby"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + + // full haml mode. This handled embeded ruby and html fragments too + CodeMirror.defineMode("haml", function(config) { + var htmlMode = CodeMirror.getMode(config, {name: "htmlmixed"}); + var rubyMode = CodeMirror.getMode(config, "ruby"); + + function rubyInQuote(endQuote) { + return function(stream, state) { + var ch = stream.peek(); + if (ch == endQuote && state.rubyState.tokenize.length == 1) { + // step out of ruby context as it seems to complete processing all the braces + stream.next(); + state.tokenize = html; + return "closeAttributeTag"; + } else { + return ruby(stream, state); + } + }; + } + + function ruby(stream, state) { + if (stream.match("-#")) { + stream.skipToEnd(); + return "comment"; + } + return rubyMode.token(stream, state.rubyState); + } + + function html(stream, state) { + var ch = stream.peek(); + + // handle haml declarations. All declarations that cant be handled here + // will be passed to html mode + if (state.previousToken.style == "comment" ) { + if (state.indented > state.previousToken.indented) { + stream.skipToEnd(); + return "commentLine"; + } + } + + if (state.startOfLine) { + if (ch == "!" && stream.match("!!")) { + stream.skipToEnd(); + return "tag"; + } else if (stream.match(/^%[\w:#\.]+=/)) { + state.tokenize = ruby; + return "hamlTag"; + } else if (stream.match(/^%[\w:]+/)) { + return "hamlTag"; + } else if (ch == "/" ) { + stream.skipToEnd(); + return "comment"; + } + } + + if (state.startOfLine || state.previousToken.style == "hamlTag") { + if ( ch == "#" || ch == ".") { + stream.match(/[\w-#\.]*/); + return "hamlAttribute"; + } + } + + // donot handle --> as valid ruby, make it HTML close comment instead + if (state.startOfLine && !stream.match("-->", false) && (ch == "=" || ch == "-" )) { + state.tokenize = ruby; + return state.tokenize(stream, state); + } + + if (state.previousToken.style == "hamlTag" || + state.previousToken.style == "closeAttributeTag" || + state.previousToken.style == "hamlAttribute") { + if (ch == "(") { + state.tokenize = rubyInQuote(")"); + return state.tokenize(stream, state); + } else if (ch == "{") { + state.tokenize = rubyInQuote("}"); + return state.tokenize(stream, state); + } + } + + return htmlMode.token(stream, state.htmlState); + } + + return { + // default to html mode + startState: function() { + var htmlState = htmlMode.startState(); + var rubyState = rubyMode.startState(); + return { + htmlState: htmlState, + rubyState: rubyState, + indented: 0, + previousToken: { style: null, indented: 0}, + tokenize: html + }; + }, + + copyState: function(state) { + return { + htmlState : CodeMirror.copyState(htmlMode, state.htmlState), + rubyState: CodeMirror.copyState(rubyMode, state.rubyState), + indented: state.indented, + previousToken: state.previousToken, + tokenize: state.tokenize + }; + }, + + token: function(stream, state) { + if (stream.sol()) { + state.indented = stream.indentation(); + state.startOfLine = true; + } + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + state.startOfLine = false; + // dont record comment line as we only want to measure comment line with + // the opening comment block + if (style && style != "commentLine") { + state.previousToken = { style: style, indented: state.indented }; + } + // if current state is ruby and the previous token is not `,` reset the + // tokenize to html + if (stream.eol() && state.tokenize == ruby) { + stream.backUp(1); + var ch = stream.peek(); + stream.next(); + if (ch && ch != ",") { + state.tokenize = html; + } + } + // reprocess some of the specific style tag when finish setting previousToken + if (style == "hamlTag") { + style = "tag"; + } else if (style == "commentLine") { + style = "comment"; + } else if (style == "hamlAttribute") { + style = "attribute"; + } else if (style == "closeAttributeTag") { + style = null; + } + return style; + } + }; + }, "htmlmixed", "ruby"); + + CodeMirror.defineMIME("text/x-haml", "haml"); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/index.html new file mode 100644 index 0000000..2894a93 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/index.html @@ -0,0 +1,79 @@ + + +CodeMirror: HAML mode + + + + + + + + + + + + + +
                              +

                              HAML mode

                              +
                              + + +

                              MIME types defined: text/x-haml.

                              + +

                              Parsing/Highlighting Tests: normal, verbose.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/test.js new file mode 100644 index 0000000..508458a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haml/test.js @@ -0,0 +1,97 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({tabSize: 4, indentUnit: 2}, "haml"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + // Requires at least one media query + MT("elementName", + "[tag %h1] Hey There"); + + MT("oneElementPerLine", + "[tag %h1] Hey There %h2"); + + MT("idSelector", + "[tag %h1][attribute #test] Hey There"); + + MT("classSelector", + "[tag %h1][attribute .hello] Hey There"); + + MT("docType", + "[tag !!! XML]"); + + MT("comment", + "[comment / Hello WORLD]"); + + MT("notComment", + "[tag %h1] This is not a / comment "); + + MT("attributes", + "[tag %a]([variable title][operator =][string \"test\"]){[atom :title] [operator =>] [string \"test\"]}"); + + MT("htmlCode", + "[tag&bracket <][tag h1][tag&bracket >]Title[tag&bracket ]"); + + MT("rubyBlock", + "[operator =][variable-2 @item]"); + + MT("selectorRubyBlock", + "[tag %a.selector=] [variable-2 @item]"); + + MT("nestedRubyBlock", + "[tag %a]", + " [operator =][variable puts] [string \"test\"]"); + + MT("multilinePlaintext", + "[tag %p]", + " Hello,", + " World"); + + MT("multilineRuby", + "[tag %p]", + " [comment -# this is a comment]", + " [comment and this is a comment too]", + " Date/Time", + " [operator -] [variable now] [operator =] [tag DateTime][operator .][property now]", + " [tag %strong=] [variable now]", + " [operator -] [keyword if] [variable now] [operator >] [tag DateTime][operator .][property parse]([string \"December 31, 2006\"])", + " [operator =][string \"Happy\"]", + " [operator =][string \"Belated\"]", + " [operator =][string \"Birthday\"]"); + + MT("multilineComment", + "[comment /]", + " [comment Multiline]", + " [comment Comment]"); + + MT("hamlComment", + "[comment -# this is a comment]"); + + MT("multilineHamlComment", + "[comment -# this is a comment]", + " [comment and this is a comment too]"); + + MT("multilineHTMLComment", + "[comment ]"); + + MT("hamlAfterRubyTag", + "[attribute .block]", + " [tag %strong=] [variable now]", + " [attribute .test]", + " [operator =][variable now]", + " [attribute .right]"); + + MT("stretchedRuby", + "[operator =] [variable puts] [string \"Hello\"],", + " [string \"World\"]"); + + MT("interpolationInHashAttribute", + //"[tag %div]{[atom :id] [operator =>] [string \"#{][variable test][string }_#{][variable ting][string }\"]} test"); + "[tag %div]{[atom :id] [operator =>] [string \"#{][variable test][string }_#{][variable ting][string }\"]} test"); + + MT("interpolationInHTMLAttribute", + "[tag %div]([variable title][operator =][string \"#{][variable test][string }_#{][variable ting]()[string }\"]) Test"); +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haskell/haskell.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haskell/haskell.js new file mode 100644 index 0000000..fe0bab6 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haskell/haskell.js @@ -0,0 +1,267 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("haskell", function(_config, modeConfig) { + + function switchState(source, setState, f) { + setState(f); + return f(source, setState); + } + + // These should all be Unicode extended, as per the Haskell 2010 report + var smallRE = /[a-z_]/; + var largeRE = /[A-Z]/; + var digitRE = /\d/; + var hexitRE = /[0-9A-Fa-f]/; + var octitRE = /[0-7]/; + var idRE = /[a-z_A-Z0-9'\xa1-\uffff]/; + var symbolRE = /[-!#$%&*+.\/<=>?@\\^|~:]/; + var specialRE = /[(),;[\]`{}]/; + var whiteCharRE = /[ \t\v\f]/; // newlines are handled in tokenizer + + function normal(source, setState) { + if (source.eatWhile(whiteCharRE)) { + return null; + } + + var ch = source.next(); + if (specialRE.test(ch)) { + if (ch == '{' && source.eat('-')) { + var t = "comment"; + if (source.eat('#')) { + t = "meta"; + } + return switchState(source, setState, ncomment(t, 1)); + } + return null; + } + + if (ch == '\'') { + if (source.eat('\\')) { + source.next(); // should handle other escapes here + } + else { + source.next(); + } + if (source.eat('\'')) { + return "string"; + } + return "error"; + } + + if (ch == '"') { + return switchState(source, setState, stringLiteral); + } + + if (largeRE.test(ch)) { + source.eatWhile(idRE); + if (source.eat('.')) { + return "qualifier"; + } + return "variable-2"; + } + + if (smallRE.test(ch)) { + source.eatWhile(idRE); + return "variable"; + } + + if (digitRE.test(ch)) { + if (ch == '0') { + if (source.eat(/[xX]/)) { + source.eatWhile(hexitRE); // should require at least 1 + return "integer"; + } + if (source.eat(/[oO]/)) { + source.eatWhile(octitRE); // should require at least 1 + return "number"; + } + } + source.eatWhile(digitRE); + var t = "number"; + if (source.match(/^\.\d+/)) { + t = "number"; + } + if (source.eat(/[eE]/)) { + t = "number"; + source.eat(/[-+]/); + source.eatWhile(digitRE); // should require at least 1 + } + return t; + } + + if (ch == "." && source.eat(".")) + return "keyword"; + + if (symbolRE.test(ch)) { + if (ch == '-' && source.eat(/-/)) { + source.eatWhile(/-/); + if (!source.eat(symbolRE)) { + source.skipToEnd(); + return "comment"; + } + } + var t = "variable"; + if (ch == ':') { + t = "variable-2"; + } + source.eatWhile(symbolRE); + return t; + } + + return "error"; + } + + function ncomment(type, nest) { + if (nest == 0) { + return normal; + } + return function(source, setState) { + var currNest = nest; + while (!source.eol()) { + var ch = source.next(); + if (ch == '{' && source.eat('-')) { + ++currNest; + } + else if (ch == '-' && source.eat('}')) { + --currNest; + if (currNest == 0) { + setState(normal); + return type; + } + } + } + setState(ncomment(type, currNest)); + return type; + }; + } + + function stringLiteral(source, setState) { + while (!source.eol()) { + var ch = source.next(); + if (ch == '"') { + setState(normal); + return "string"; + } + if (ch == '\\') { + if (source.eol() || source.eat(whiteCharRE)) { + setState(stringGap); + return "string"; + } + if (source.eat('&')) { + } + else { + source.next(); // should handle other escapes here + } + } + } + setState(normal); + return "error"; + } + + function stringGap(source, setState) { + if (source.eat('\\')) { + return switchState(source, setState, stringLiteral); + } + source.next(); + setState(normal); + return "error"; + } + + + var wellKnownWords = (function() { + var wkw = {}; + function setType(t) { + return function () { + for (var i = 0; i < arguments.length; i++) + wkw[arguments[i]] = t; + }; + } + + setType("keyword")( + "case", "class", "data", "default", "deriving", "do", "else", "foreign", + "if", "import", "in", "infix", "infixl", "infixr", "instance", "let", + "module", "newtype", "of", "then", "type", "where", "_"); + + setType("keyword")( + "\.\.", ":", "::", "=", "\\", "\"", "<-", "->", "@", "~", "=>"); + + setType("builtin")( + "!!", "$!", "$", "&&", "+", "++", "-", ".", "/", "/=", "<", "<=", "=<<", + "==", ">", ">=", ">>", ">>=", "^", "^^", "||", "*", "**"); + + setType("builtin")( + "Bool", "Bounded", "Char", "Double", "EQ", "Either", "Enum", "Eq", + "False", "FilePath", "Float", "Floating", "Fractional", "Functor", "GT", + "IO", "IOError", "Int", "Integer", "Integral", "Just", "LT", "Left", + "Maybe", "Monad", "Nothing", "Num", "Ord", "Ordering", "Rational", "Read", + "ReadS", "Real", "RealFloat", "RealFrac", "Right", "Show", "ShowS", + "String", "True"); + + setType("builtin")( + "abs", "acos", "acosh", "all", "and", "any", "appendFile", "asTypeOf", + "asin", "asinh", "atan", "atan2", "atanh", "break", "catch", "ceiling", + "compare", "concat", "concatMap", "const", "cos", "cosh", "curry", + "cycle", "decodeFloat", "div", "divMod", "drop", "dropWhile", "either", + "elem", "encodeFloat", "enumFrom", "enumFromThen", "enumFromThenTo", + "enumFromTo", "error", "even", "exp", "exponent", "fail", "filter", + "flip", "floatDigits", "floatRadix", "floatRange", "floor", "fmap", + "foldl", "foldl1", "foldr", "foldr1", "fromEnum", "fromInteger", + "fromIntegral", "fromRational", "fst", "gcd", "getChar", "getContents", + "getLine", "head", "id", "init", "interact", "ioError", "isDenormalized", + "isIEEE", "isInfinite", "isNaN", "isNegativeZero", "iterate", "last", + "lcm", "length", "lex", "lines", "log", "logBase", "lookup", "map", + "mapM", "mapM_", "max", "maxBound", "maximum", "maybe", "min", "minBound", + "minimum", "mod", "negate", "not", "notElem", "null", "odd", "or", + "otherwise", "pi", "pred", "print", "product", "properFraction", + "putChar", "putStr", "putStrLn", "quot", "quotRem", "read", "readFile", + "readIO", "readList", "readLn", "readParen", "reads", "readsPrec", + "realToFrac", "recip", "rem", "repeat", "replicate", "return", "reverse", + "round", "scaleFloat", "scanl", "scanl1", "scanr", "scanr1", "seq", + "sequence", "sequence_", "show", "showChar", "showList", "showParen", + "showString", "shows", "showsPrec", "significand", "signum", "sin", + "sinh", "snd", "span", "splitAt", "sqrt", "subtract", "succ", "sum", + "tail", "take", "takeWhile", "tan", "tanh", "toEnum", "toInteger", + "toRational", "truncate", "uncurry", "undefined", "unlines", "until", + "unwords", "unzip", "unzip3", "userError", "words", "writeFile", "zip", + "zip3", "zipWith", "zipWith3"); + + var override = modeConfig.overrideKeywords; + if (override) for (var word in override) if (override.hasOwnProperty(word)) + wkw[word] = override[word]; + + return wkw; + })(); + + + + return { + startState: function () { return { f: normal }; }, + copyState: function (s) { return { f: s.f }; }, + + token: function(stream, state) { + var t = state.f(stream, function(s) { state.f = s; }); + var w = stream.current(); + return wellKnownWords.hasOwnProperty(w) ? wellKnownWords[w] : t; + }, + + blockCommentStart: "{-", + blockCommentEnd: "-}", + lineComment: "--" + }; + +}); + +CodeMirror.defineMIME("text/x-haskell", "haskell"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haskell/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haskell/index.html new file mode 100644 index 0000000..a5b6e6e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haskell/index.html @@ -0,0 +1,73 @@ + + +CodeMirror: Haskell mode + + + + + + + + + + + +
                              +

                              Haskell mode

                              +
                              + + + +

                              MIME types defined: text/x-haskell.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haxe/haxe.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haxe/haxe.js new file mode 100644 index 0000000..d49ad70 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haxe/haxe.js @@ -0,0 +1,518 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("haxe", function(config, parserConfig) { + var indentUnit = config.indentUnit; + + // Tokenizer + + var keywords = function(){ + function kw(type) {return {type: type, style: "keyword"};} + var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"); + var operator = kw("operator"), atom = {type: "atom", style: "atom"}, attribute = {type:"attribute", style: "attribute"}; + var type = kw("typedef"); + return { + "if": A, "while": A, "else": B, "do": B, "try": B, + "return": C, "break": C, "continue": C, "new": C, "throw": C, + "var": kw("var"), "inline":attribute, "static": attribute, "using":kw("import"), + "public": attribute, "private": attribute, "cast": kw("cast"), "import": kw("import"), "macro": kw("macro"), + "function": kw("function"), "catch": kw("catch"), "untyped": kw("untyped"), "callback": kw("cb"), + "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"), + "in": operator, "never": kw("property_access"), "trace":kw("trace"), + "class": type, "abstract":type, "enum":type, "interface":type, "typedef":type, "extends":type, "implements":type, "dynamic":type, + "true": atom, "false": atom, "null": atom + }; + }(); + + var isOperatorChar = /[+\-*&%=<>!?|]/; + + function chain(stream, state, f) { + state.tokenize = f; + return f(stream, state); + } + + function nextUntilUnescaped(stream, end) { + var escaped = false, next; + while ((next = stream.next()) != null) { + if (next == end && !escaped) + return false; + escaped = !escaped && next == "\\"; + } + return escaped; + } + + // Used as scratch variables to communicate multiple values without + // consing up tons of objects. + var type, content; + function ret(tp, style, cont) { + type = tp; content = cont; + return style; + } + + function haxeTokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"' || ch == "'") + return chain(stream, state, haxeTokenString(ch)); + else if (/[\[\]{}\(\),;\:\.]/.test(ch)) + return ret(ch); + else if (ch == "0" && stream.eat(/x/i)) { + stream.eatWhile(/[\da-f]/i); + return ret("number", "number"); + } + else if (/\d/.test(ch) || ch == "-" && stream.eat(/\d/)) { + stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/); + return ret("number", "number"); + } + else if (state.reAllowed && (ch == "~" && stream.eat(/\//))) { + nextUntilUnescaped(stream, "/"); + stream.eatWhile(/[gimsu]/); + return ret("regexp", "string-2"); + } + else if (ch == "/") { + if (stream.eat("*")) { + return chain(stream, state, haxeTokenComment); + } + else if (stream.eat("/")) { + stream.skipToEnd(); + return ret("comment", "comment"); + } + else { + stream.eatWhile(isOperatorChar); + return ret("operator", null, stream.current()); + } + } + else if (ch == "#") { + stream.skipToEnd(); + return ret("conditional", "meta"); + } + else if (ch == "@") { + stream.eat(/:/); + stream.eatWhile(/[\w_]/); + return ret ("metadata", "meta"); + } + else if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return ret("operator", null, stream.current()); + } + else { + var word; + if(/[A-Z]/.test(ch)) + { + stream.eatWhile(/[\w_<>]/); + word = stream.current(); + return ret("type", "variable-3", word); + } + else + { + stream.eatWhile(/[\w_]/); + var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word]; + return (known && state.kwAllowed) ? ret(known.type, known.style, word) : + ret("variable", "variable", word); + } + } + } + + function haxeTokenString(quote) { + return function(stream, state) { + if (!nextUntilUnescaped(stream, quote)) + state.tokenize = haxeTokenBase; + return ret("string", "string"); + }; + } + + function haxeTokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = haxeTokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return ret("comment", "comment"); + } + + // Parser + + var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true}; + + function HaxeLexical(indented, column, type, align, prev, info) { + this.indented = indented; + this.column = column; + this.type = type; + this.prev = prev; + this.info = info; + if (align != null) this.align = align; + } + + function inScope(state, varname) { + for (var v = state.localVars; v; v = v.next) + if (v.name == varname) return true; + } + + function parseHaxe(state, style, type, content, stream) { + var cc = state.cc; + // Communicate our context to the combinators. + // (Less wasteful than consing up a hundred closures on every call.) + cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; + + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = true; + + while(true) { + var combinator = cc.length ? cc.pop() : statement; + if (combinator(type, content)) { + while(cc.length && cc[cc.length - 1].lex) + cc.pop()(); + if (cx.marked) return cx.marked; + if (type == "variable" && inScope(state, content)) return "variable-2"; + if (type == "variable" && imported(state, content)) return "variable-3"; + return style; + } + } + } + + function imported(state, typename) + { + if (/[a-z]/.test(typename.charAt(0))) + return false; + var len = state.importedtypes.length; + for (var i = 0; i= 0; i--) cx.cc.push(arguments[i]); + } + function cont() { + pass.apply(null, arguments); + return true; + } + function register(varname) { + var state = cx.state; + if (state.context) { + cx.marked = "def"; + for (var v = state.localVars; v; v = v.next) + if (v.name == varname) return; + state.localVars = {name: varname, next: state.localVars}; + } + } + + // Combinators + + var defaultVars = {name: "this", next: null}; + function pushcontext() { + if (!cx.state.context) cx.state.localVars = defaultVars; + cx.state.context = {prev: cx.state.context, vars: cx.state.localVars}; + } + function popcontext() { + cx.state.localVars = cx.state.context.vars; + cx.state.context = cx.state.context.prev; + } + function pushlex(type, info) { + var result = function() { + var state = cx.state; + state.lexical = new HaxeLexical(state.indented, cx.stream.column(), type, null, state.lexical, info); + }; + result.lex = true; + return result; + } + function poplex() { + var state = cx.state; + if (state.lexical.prev) { + if (state.lexical.type == ")") + state.indented = state.lexical.indented; + state.lexical = state.lexical.prev; + } + } + poplex.lex = true; + + function expect(wanted) { + function f(type) { + if (type == wanted) return cont(); + else if (wanted == ";") return pass(); + else return cont(f); + }; + return f; + } + + function statement(type) { + if (type == "@") return cont(metadef); + if (type == "var") return cont(pushlex("vardef"), vardef1, expect(";"), poplex); + if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex); + if (type == "keyword b") return cont(pushlex("form"), statement, poplex); + if (type == "{") return cont(pushlex("}"), pushcontext, block, poplex, popcontext); + if (type == ";") return cont(); + if (type == "attribute") return cont(maybeattribute); + if (type == "function") return cont(functiondef); + if (type == "for") return cont(pushlex("form"), expect("("), pushlex(")"), forspec1, expect(")"), + poplex, statement, poplex); + if (type == "variable") return cont(pushlex("stat"), maybelabel); + if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"), + block, poplex, poplex); + if (type == "case") return cont(expression, expect(":")); + if (type == "default") return cont(expect(":")); + if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"), + statement, poplex, popcontext); + if (type == "import") return cont(importdef, expect(";")); + if (type == "typedef") return cont(typedef); + return pass(pushlex("stat"), expression, expect(";"), poplex); + } + function expression(type) { + if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator); + if (type == "function") return cont(functiondef); + if (type == "keyword c") return cont(maybeexpression); + if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeoperator); + if (type == "operator") return cont(expression); + if (type == "[") return cont(pushlex("]"), commasep(expression, "]"), poplex, maybeoperator); + if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator); + return cont(); + } + function maybeexpression(type) { + if (type.match(/[;\}\)\],]/)) return pass(); + return pass(expression); + } + + function maybeoperator(type, value) { + if (type == "operator" && /\+\+|--/.test(value)) return cont(maybeoperator); + if (type == "operator" || type == ":") return cont(expression); + if (type == ";") return; + if (type == "(") return cont(pushlex(")"), commasep(expression, ")"), poplex, maybeoperator); + if (type == ".") return cont(property, maybeoperator); + if (type == "[") return cont(pushlex("]"), expression, expect("]"), poplex, maybeoperator); + } + + function maybeattribute(type) { + if (type == "attribute") return cont(maybeattribute); + if (type == "function") return cont(functiondef); + if (type == "var") return cont(vardef1); + } + + function metadef(type) { + if(type == ":") return cont(metadef); + if(type == "variable") return cont(metadef); + if(type == "(") return cont(pushlex(")"), commasep(metaargs, ")"), poplex, statement); + } + function metaargs(type) { + if(type == "variable") return cont(); + } + + function importdef (type, value) { + if(type == "variable" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); } + else if(type == "variable" || type == "property" || type == "." || value == "*") return cont(importdef); + } + + function typedef (type, value) + { + if(type == "variable" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); } + else if (type == "type" && /[A-Z]/.test(value.charAt(0))) { return cont(); } + } + + function maybelabel(type) { + if (type == ":") return cont(poplex, statement); + return pass(maybeoperator, expect(";"), poplex); + } + function property(type) { + if (type == "variable") {cx.marked = "property"; return cont();} + } + function objprop(type) { + if (type == "variable") cx.marked = "property"; + if (atomicTypes.hasOwnProperty(type)) return cont(expect(":"), expression); + } + function commasep(what, end) { + function proceed(type) { + if (type == ",") return cont(what, proceed); + if (type == end) return cont(); + return cont(expect(end)); + } + return function(type) { + if (type == end) return cont(); + else return pass(what, proceed); + }; + } + function block(type) { + if (type == "}") return cont(); + return pass(statement, block); + } + function vardef1(type, value) { + if (type == "variable"){register(value); return cont(typeuse, vardef2);} + return cont(); + } + function vardef2(type, value) { + if (value == "=") return cont(expression, vardef2); + if (type == ",") return cont(vardef1); + } + function forspec1(type, value) { + if (type == "variable") { + register(value); + } + return cont(pushlex(")"), pushcontext, forin, expression, poplex, statement, popcontext); + } + function forin(_type, value) { + if (value == "in") return cont(); + } + function functiondef(type, value) { + if (type == "variable") {register(value); return cont(functiondef);} + if (value == "new") return cont(functiondef); + if (type == "(") return cont(pushlex(")"), pushcontext, commasep(funarg, ")"), poplex, typeuse, statement, popcontext); + } + function typeuse(type) { + if(type == ":") return cont(typestring); + } + function typestring(type) { + if(type == "type") return cont(); + if(type == "variable") return cont(); + if(type == "{") return cont(pushlex("}"), commasep(typeprop, "}"), poplex); + } + function typeprop(type) { + if(type == "variable") return cont(typeuse); + } + function funarg(type, value) { + if (type == "variable") {register(value); return cont(typeuse);} + } + + // Interface + + return { + startState: function(basecolumn) { + var defaulttypes = ["Int", "Float", "String", "Void", "Std", "Bool", "Dynamic", "Array"]; + return { + tokenize: haxeTokenBase, + reAllowed: true, + kwAllowed: true, + cc: [], + lexical: new HaxeLexical((basecolumn || 0) - indentUnit, 0, "block", false), + localVars: parserConfig.localVars, + importedtypes: defaulttypes, + context: parserConfig.localVars && {vars: parserConfig.localVars}, + indented: 0 + }; + }, + + token: function(stream, state) { + if (stream.sol()) { + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = false; + state.indented = stream.indentation(); + } + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + if (type == "comment") return style; + state.reAllowed = !!(type == "operator" || type == "keyword c" || type.match(/^[\[{}\(,;:]$/)); + state.kwAllowed = type != '.'; + return parseHaxe(state, style, type, content, stream); + }, + + indent: function(state, textAfter) { + if (state.tokenize != haxeTokenBase) return 0; + var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical; + if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev; + var type = lexical.type, closing = firstChar == type; + if (type == "vardef") return lexical.indented + 4; + else if (type == "form" && firstChar == "{") return lexical.indented; + else if (type == "stat" || type == "form") return lexical.indented + indentUnit; + else if (lexical.info == "switch" && !closing) + return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit); + else if (lexical.align) return lexical.column + (closing ? 0 : 1); + else return lexical.indented + (closing ? 0 : indentUnit); + }, + + electricChars: "{}", + blockCommentStart: "/*", + blockCommentEnd: "*/", + lineComment: "//" + }; +}); + +CodeMirror.defineMIME("text/x-haxe", "haxe"); + +CodeMirror.defineMode("hxml", function () { + + return { + startState: function () { + return { + define: false, + inString: false + }; + }, + token: function (stream, state) { + var ch = stream.peek(); + var sol = stream.sol(); + + ///* comments */ + if (ch == "#") { + stream.skipToEnd(); + return "comment"; + } + if (sol && ch == "-") { + var style = "variable-2"; + + stream.eat(/-/); + + if (stream.peek() == "-") { + stream.eat(/-/); + style = "keyword a"; + } + + if (stream.peek() == "D") { + stream.eat(/[D]/); + style = "keyword c"; + state.define = true; + } + + stream.eatWhile(/[A-Z]/i); + return style; + } + + var ch = stream.peek(); + + if (state.inString == false && ch == "'") { + state.inString = true; + ch = stream.next(); + } + + if (state.inString == true) { + if (stream.skipTo("'")) { + + } else { + stream.skipToEnd(); + } + + if (stream.peek() == "'") { + stream.next(); + state.inString = false; + } + + return "string"; + } + + stream.next(); + return null; + }, + lineComment: "#" + }; +}); + +CodeMirror.defineMIME("text/x-hxml", "hxml"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haxe/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haxe/index.html new file mode 100644 index 0000000..fba5b94 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/haxe/index.html @@ -0,0 +1,124 @@ + + +CodeMirror: Haxe mode + + + + + + + + + +
                              +

                              Haxe mode

                              + + +

                              + +

                              Hxml mode:

                              + +

                              +
                              + + + +

                              MIME types defined: text/x-haxe, text/x-hxml.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlembedded/htmlembedded.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlembedded/htmlembedded.js new file mode 100644 index 0000000..e8f7ba8 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlembedded/htmlembedded.js @@ -0,0 +1,86 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../htmlmixed/htmlmixed"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("htmlembedded", function(config, parserConfig) { + + //config settings + var scriptStartRegex = parserConfig.scriptStartRegex || /^<%/i, + scriptEndRegex = parserConfig.scriptEndRegex || /^%>/i; + + //inner modes + var scriptingMode, htmlMixedMode; + + //tokenizer when in html mode + function htmlDispatch(stream, state) { + if (stream.match(scriptStartRegex, false)) { + state.token=scriptingDispatch; + return scriptingMode.token(stream, state.scriptState); + } + else + return htmlMixedMode.token(stream, state.htmlState); + } + + //tokenizer when in scripting mode + function scriptingDispatch(stream, state) { + if (stream.match(scriptEndRegex, false)) { + state.token=htmlDispatch; + return htmlMixedMode.token(stream, state.htmlState); + } + else + return scriptingMode.token(stream, state.scriptState); + } + + + return { + startState: function() { + scriptingMode = scriptingMode || CodeMirror.getMode(config, parserConfig.scriptingModeSpec); + htmlMixedMode = htmlMixedMode || CodeMirror.getMode(config, "htmlmixed"); + return { + token : parserConfig.startOpen ? scriptingDispatch : htmlDispatch, + htmlState : CodeMirror.startState(htmlMixedMode), + scriptState : CodeMirror.startState(scriptingMode) + }; + }, + + token: function(stream, state) { + return state.token(stream, state); + }, + + indent: function(state, textAfter) { + if (state.token == htmlDispatch) + return htmlMixedMode.indent(state.htmlState, textAfter); + else if (scriptingMode.indent) + return scriptingMode.indent(state.scriptState, textAfter); + }, + + copyState: function(state) { + return { + token : state.token, + htmlState : CodeMirror.copyState(htmlMixedMode, state.htmlState), + scriptState : CodeMirror.copyState(scriptingMode, state.scriptState) + }; + }, + + innerMode: function(state) { + if (state.token == scriptingDispatch) return {state: state.scriptState, mode: scriptingMode}; + else return {state: state.htmlState, mode: htmlMixedMode}; + } + }; +}, "htmlmixed"); + +CodeMirror.defineMIME("application/x-ejs", { name: "htmlembedded", scriptingModeSpec:"javascript"}); +CodeMirror.defineMIME("application/x-aspx", { name: "htmlembedded", scriptingModeSpec:"text/x-csharp"}); +CodeMirror.defineMIME("application/x-jsp", { name: "htmlembedded", scriptingModeSpec:"text/x-java"}); +CodeMirror.defineMIME("application/x-erb", { name: "htmlembedded", scriptingModeSpec:"ruby"}); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlembedded/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlembedded/index.html new file mode 100644 index 0000000..dbedc5c --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlembedded/index.html @@ -0,0 +1,58 @@ + + +CodeMirror: Html Embedded Scripts mode + + + + + + + + + + + + + +
                              +

                              Html Embedded Scripts mode

                              +
                              + + + +

                              Mode for html embedded scripts like JSP and ASP.NET. Depends on HtmlMixed which in turn depends on + JavaScript, CSS and XML.
                              Other dependancies include those of the scriping language chosen.

                              + +

                              MIME types defined: application/x-aspx (ASP.NET), + application/x-ejs (Embedded Javascript), application/x-jsp (JavaServer Pages)

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlmixed/htmlmixed.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlmixed/htmlmixed.js new file mode 100644 index 0000000..1cc438f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlmixed/htmlmixed.js @@ -0,0 +1,121 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../xml/xml"), require("../javascript/javascript"), require("../css/css")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../xml/xml", "../javascript/javascript", "../css/css"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("htmlmixed", function(config, parserConfig) { + var htmlMode = CodeMirror.getMode(config, {name: "xml", + htmlMode: true, + multilineTagIndentFactor: parserConfig.multilineTagIndentFactor, + multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag}); + var cssMode = CodeMirror.getMode(config, "css"); + + var scriptTypes = [], scriptTypesConf = parserConfig && parserConfig.scriptTypes; + scriptTypes.push({matches: /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i, + mode: CodeMirror.getMode(config, "javascript")}); + if (scriptTypesConf) for (var i = 0; i < scriptTypesConf.length; ++i) { + var conf = scriptTypesConf[i]; + scriptTypes.push({matches: conf.matches, mode: conf.mode && CodeMirror.getMode(config, conf.mode)}); + } + scriptTypes.push({matches: /./, + mode: CodeMirror.getMode(config, "text/plain")}); + + function html(stream, state) { + var tagName = state.htmlState.tagName; + if (tagName) tagName = tagName.toLowerCase(); + var style = htmlMode.token(stream, state.htmlState); + if (tagName == "script" && /\btag\b/.test(style) && stream.current() == ">") { + // Script block: mode to change to depends on type attribute + var scriptType = stream.string.slice(Math.max(0, stream.pos - 100), stream.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i); + scriptType = scriptType ? scriptType[1] : ""; + if (scriptType && /[\"\']/.test(scriptType.charAt(0))) scriptType = scriptType.slice(1, scriptType.length - 1); + for (var i = 0; i < scriptTypes.length; ++i) { + var tp = scriptTypes[i]; + if (typeof tp.matches == "string" ? scriptType == tp.matches : tp.matches.test(scriptType)) { + if (tp.mode) { + state.token = script; + state.localMode = tp.mode; + state.localState = tp.mode.startState && tp.mode.startState(htmlMode.indent(state.htmlState, "")); + } + break; + } + } + } else if (tagName == "style" && /\btag\b/.test(style) && stream.current() == ">") { + state.token = css; + state.localMode = cssMode; + state.localState = cssMode.startState(htmlMode.indent(state.htmlState, "")); + } + return style; + } + function maybeBackup(stream, pat, style) { + var cur = stream.current(); + var close = cur.search(pat), m; + if (close > -1) stream.backUp(cur.length - close); + else if (m = cur.match(/<\/?$/)) { + stream.backUp(cur.length); + if (!stream.match(pat, false)) stream.match(cur); + } + return style; + } + function script(stream, state) { + if (stream.match(/^<\/\s*script\s*>/i, false)) { + state.token = html; + state.localState = state.localMode = null; + return null; + } + return maybeBackup(stream, /<\/\s*script\s*>/, + state.localMode.token(stream, state.localState)); + } + function css(stream, state) { + if (stream.match(/^<\/\s*style\s*>/i, false)) { + state.token = html; + state.localState = state.localMode = null; + return null; + } + return maybeBackup(stream, /<\/\s*style\s*>/, + cssMode.token(stream, state.localState)); + } + + return { + startState: function() { + var state = htmlMode.startState(); + return {token: html, localMode: null, localState: null, htmlState: state}; + }, + + copyState: function(state) { + if (state.localState) + var local = CodeMirror.copyState(state.localMode, state.localState); + return {token: state.token, localMode: state.localMode, localState: local, + htmlState: CodeMirror.copyState(htmlMode, state.htmlState)}; + }, + + token: function(stream, state) { + return state.token(stream, state); + }, + + indent: function(state, textAfter) { + if (!state.localMode || /^\s*<\//.test(textAfter)) + return htmlMode.indent(state.htmlState, textAfter); + else if (state.localMode.indent) + return state.localMode.indent(state.localState, textAfter); + else + return CodeMirror.Pass; + }, + + innerMode: function(state) { + return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode}; + } + }; +}, "xml", "javascript", "css"); + +CodeMirror.defineMIME("text/html", "htmlmixed"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlmixed/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlmixed/index.html new file mode 100644 index 0000000..c512932 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/htmlmixed/index.html @@ -0,0 +1,89 @@ + + +CodeMirror: HTML mixed mode + + + + + + + + + + + + + + +
                              +

                              HTML mixed mode

                              +
                              + + +

                              The HTML mixed mode depends on the XML, JavaScript, and CSS modes.

                              + +

                              It takes an optional mode configuration + option, scriptTypes, which can be used to add custom + behavior for specific <script type="..."> tags. If + given, it should hold an array of {matches, mode} + objects, where matches is a string or regexp that + matches the script type, and mode is + either null, for script types that should stay in + HTML mode, or a mode + spec corresponding to the mode that should be used for the + script.

                              + +

                              MIME types defined: text/html + (redefined, only takes effect if you load this parser after the + XML parser).

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/http/http.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/http/http.js new file mode 100644 index 0000000..9a3c5f9 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/http/http.js @@ -0,0 +1,113 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("http", function() { + function failFirstLine(stream, state) { + stream.skipToEnd(); + state.cur = header; + return "error"; + } + + function start(stream, state) { + if (stream.match(/^HTTP\/\d\.\d/)) { + state.cur = responseStatusCode; + return "keyword"; + } else if (stream.match(/^[A-Z]+/) && /[ \t]/.test(stream.peek())) { + state.cur = requestPath; + return "keyword"; + } else { + return failFirstLine(stream, state); + } + } + + function responseStatusCode(stream, state) { + var code = stream.match(/^\d+/); + if (!code) return failFirstLine(stream, state); + + state.cur = responseStatusText; + var status = Number(code[0]); + if (status >= 100 && status < 200) { + return "positive informational"; + } else if (status >= 200 && status < 300) { + return "positive success"; + } else if (status >= 300 && status < 400) { + return "positive redirect"; + } else if (status >= 400 && status < 500) { + return "negative client-error"; + } else if (status >= 500 && status < 600) { + return "negative server-error"; + } else { + return "error"; + } + } + + function responseStatusText(stream, state) { + stream.skipToEnd(); + state.cur = header; + return null; + } + + function requestPath(stream, state) { + stream.eatWhile(/\S/); + state.cur = requestProtocol; + return "string-2"; + } + + function requestProtocol(stream, state) { + if (stream.match(/^HTTP\/\d\.\d$/)) { + state.cur = header; + return "keyword"; + } else { + return failFirstLine(stream, state); + } + } + + function header(stream) { + if (stream.sol() && !stream.eat(/[ \t]/)) { + if (stream.match(/^.*?:/)) { + return "atom"; + } else { + stream.skipToEnd(); + return "error"; + } + } else { + stream.skipToEnd(); + return "string"; + } + } + + function body(stream) { + stream.skipToEnd(); + return null; + } + + return { + token: function(stream, state) { + var cur = state.cur; + if (cur != header && cur != body && stream.eatSpace()) return null; + return cur(stream, state); + }, + + blankLine: function(state) { + state.cur = body; + }, + + startState: function() { + return {cur: start}; + } + }; +}); + +CodeMirror.defineMIME("message/http", "http"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/http/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/http/index.html new file mode 100644 index 0000000..0b8d531 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/http/index.html @@ -0,0 +1,45 @@ + + +CodeMirror: HTTP mode + + + + + + + + + +
                              +

                              HTTP mode

                              + + +
                              + + + +

                              MIME types defined: message/http.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/idl/idl.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/idl/idl.js new file mode 100644 index 0000000..15c852e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/idl/idl.js @@ -0,0 +1,290 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + function wordRegexp(words) { + return new RegExp('^((' + words.join(')|(') + '))\\b', 'i'); + }; + + var builtinArray = [ + 'a_correlate', 'abs', 'acos', 'adapt_hist_equal', 'alog', + 'alog2', 'alog10', 'amoeba', 'annotate', 'app_user_dir', + 'app_user_dir_query', 'arg_present', 'array_equal', 'array_indices', + 'arrow', 'ascii_template', 'asin', 'assoc', 'atan', + 'axis', 'axis', 'bandpass_filter', 'bandreject_filter', 'barplot', + 'bar_plot', 'beseli', 'beselj', 'beselk', 'besely', + 'beta', 'biginteger', 'bilinear', 'bin_date', 'binary_template', + 'bindgen', 'binomial', 'bit_ffs', 'bit_population', 'blas_axpy', + 'blk_con', 'boolarr', 'boolean', 'boxplot', 'box_cursor', + 'breakpoint', 'broyden', 'bubbleplot', 'butterworth', 'bytarr', + 'byte', 'byteorder', 'bytscl', 'c_correlate', 'calendar', + 'caldat', 'call_external', 'call_function', 'call_method', + 'call_procedure', 'canny', 'catch', 'cd', 'cdf', 'ceil', + 'chebyshev', 'check_math', 'chisqr_cvf', 'chisqr_pdf', 'choldc', + 'cholsol', 'cindgen', 'cir_3pnt', 'clipboard', 'close', + 'clust_wts', 'cluster', 'cluster_tree', 'cmyk_convert', 'code_coverage', + 'color_convert', 'color_exchange', 'color_quan', 'color_range_map', + 'colorbar', 'colorize_sample', 'colormap_applicable', + 'colormap_gradient', 'colormap_rotation', 'colortable', + 'comfit', 'command_line_args', 'common', 'compile_opt', 'complex', + 'complexarr', 'complexround', 'compute_mesh_normals', 'cond', 'congrid', + 'conj', 'constrained_min', 'contour', 'contour', 'convert_coord', + 'convol', 'convol_fft', 'coord2to3', 'copy_lun', 'correlate', + 'cos', 'cosh', 'cpu', 'cramer', 'createboxplotdata', + 'create_cursor', 'create_struct', 'create_view', 'crossp', 'crvlength', + 'ct_luminance', 'cti_test', 'cursor', 'curvefit', 'cv_coord', + 'cvttobm', 'cw_animate', 'cw_animate_getp', 'cw_animate_load', + 'cw_animate_run', 'cw_arcball', 'cw_bgroup', 'cw_clr_index', + 'cw_colorsel', 'cw_defroi', 'cw_field', 'cw_filesel', 'cw_form', + 'cw_fslider', 'cw_light_editor', 'cw_light_editor_get', + 'cw_light_editor_set', 'cw_orient', 'cw_palette_editor', + 'cw_palette_editor_get', 'cw_palette_editor_set', 'cw_pdmenu', + 'cw_rgbslider', 'cw_tmpl', 'cw_zoom', 'db_exists', + 'dblarr', 'dcindgen', 'dcomplex', 'dcomplexarr', 'define_key', + 'define_msgblk', 'define_msgblk_from_file', 'defroi', 'defsysv', + 'delvar', 'dendro_plot', 'dendrogram', 'deriv', 'derivsig', + 'determ', 'device', 'dfpmin', 'diag_matrix', 'dialog_dbconnect', + 'dialog_message', 'dialog_pickfile', 'dialog_printersetup', + 'dialog_printjob', 'dialog_read_image', + 'dialog_write_image', 'dictionary', 'digital_filter', 'dilate', 'dindgen', + 'dissolve', 'dist', 'distance_measure', 'dlm_load', 'dlm_register', + 'doc_library', 'double', 'draw_roi', 'edge_dog', 'efont', + 'eigenql', 'eigenvec', 'ellipse', 'elmhes', 'emboss', + 'empty', 'enable_sysrtn', 'eof', 'eos', 'erase', + 'erf', 'erfc', 'erfcx', 'erode', 'errorplot', + 'errplot', 'estimator_filter', 'execute', 'exit', 'exp', + 'expand', 'expand_path', 'expint', 'extrac', 'extract_slice', + 'f_cvf', 'f_pdf', 'factorial', 'fft', 'file_basename', + 'file_chmod', 'file_copy', 'file_delete', 'file_dirname', + 'file_expand_path', 'file_gunzip', 'file_gzip', 'file_info', + 'file_lines', 'file_link', 'file_mkdir', 'file_move', + 'file_poll_input', 'file_readlink', 'file_same', + 'file_search', 'file_tar', 'file_test', 'file_untar', 'file_unzip', + 'file_which', 'file_zip', 'filepath', 'findgen', 'finite', + 'fix', 'flick', 'float', 'floor', 'flow3', + 'fltarr', 'flush', 'format_axis_values', 'forward_function', 'free_lun', + 'fstat', 'fulstr', 'funct', 'function', 'fv_test', + 'fx_root', 'fz_roots', 'gamma', 'gamma_ct', 'gauss_cvf', + 'gauss_pdf', 'gauss_smooth', 'gauss2dfit', 'gaussfit', + 'gaussian_function', 'gaussint', 'get_drive_list', 'get_dxf_objects', + 'get_kbrd', 'get_login_info', + 'get_lun', 'get_screen_size', 'getenv', 'getwindows', 'greg2jul', + 'grib', 'grid_input', 'grid_tps', 'grid3', 'griddata', + 'gs_iter', 'h_eq_ct', 'h_eq_int', 'hanning', 'hash', + 'hdf', 'hdf5', 'heap_free', 'heap_gc', 'heap_nosave', + 'heap_refcount', 'heap_save', 'help', 'hilbert', 'hist_2d', + 'hist_equal', 'histogram', 'hls', 'hough', 'hqr', + 'hsv', 'i18n_multibytetoutf8', + 'i18n_multibytetowidechar', 'i18n_utf8tomultibyte', + 'i18n_widechartomultibyte', + 'ibeta', 'icontour', 'iconvertcoord', 'idelete', 'identity', + 'idl_base64', 'idl_container', 'idl_validname', + 'idlexbr_assistant', 'idlitsys_createtool', + 'idlunit', 'iellipse', 'igamma', 'igetcurrent', 'igetdata', + 'igetid', 'igetproperty', 'iimage', 'image', 'image_cont', + 'image_statistics', 'image_threshold', 'imaginary', 'imap', 'indgen', + 'int_2d', 'int_3d', 'int_tabulated', 'intarr', 'interpol', + 'interpolate', 'interval_volume', 'invert', 'ioctl', 'iopen', + 'ir_filter', 'iplot', 'ipolygon', 'ipolyline', 'iputdata', + 'iregister', 'ireset', 'iresolve', 'irotate', 'isa', + 'isave', 'iscale', 'isetcurrent', 'isetproperty', 'ishft', + 'isocontour', 'isosurface', 'isurface', 'itext', 'itranslate', + 'ivector', 'ivolume', 'izoom', 'journal', 'json_parse', + 'json_serialize', 'jul2greg', 'julday', 'keyword_set', 'krig2d', + 'kurtosis', 'kw_test', 'l64indgen', 'la_choldc', 'la_cholmprove', + 'la_cholsol', 'la_determ', 'la_eigenproblem', 'la_eigenql', 'la_eigenvec', + 'la_elmhes', 'la_gm_linear_model', 'la_hqr', 'la_invert', + 'la_least_square_equality', 'la_least_squares', 'la_linear_equation', + 'la_ludc', 'la_lumprove', 'la_lusol', + 'la_svd', 'la_tridc', 'la_trimprove', 'la_triql', 'la_trired', + 'la_trisol', 'label_date', 'label_region', 'ladfit', 'laguerre', + 'lambda', 'lambdap', 'lambertw', 'laplacian', 'least_squares_filter', + 'leefilt', 'legend', 'legendre', 'linbcg', 'lindgen', + 'linfit', 'linkimage', 'list', 'll_arc_distance', 'lmfit', + 'lmgr', 'lngamma', 'lnp_test', 'loadct', 'locale_get', + 'logical_and', 'logical_or', 'logical_true', 'lon64arr', 'lonarr', + 'long', 'long64', 'lsode', 'lu_complex', 'ludc', + 'lumprove', 'lusol', 'm_correlate', 'machar', 'make_array', + 'make_dll', 'make_rt', 'map', 'mapcontinents', 'mapgrid', + 'map_2points', 'map_continents', 'map_grid', 'map_image', 'map_patch', + 'map_proj_forward', 'map_proj_image', 'map_proj_info', + 'map_proj_init', 'map_proj_inverse', + 'map_set', 'matrix_multiply', 'matrix_power', 'max', 'md_test', + 'mean', 'meanabsdev', 'mean_filter', 'median', 'memory', + 'mesh_clip', 'mesh_decimate', 'mesh_issolid', + 'mesh_merge', 'mesh_numtriangles', + 'mesh_obj', 'mesh_smooth', 'mesh_surfacearea', + 'mesh_validate', 'mesh_volume', + 'message', 'min', 'min_curve_surf', 'mk_html_help', 'modifyct', + 'moment', 'morph_close', 'morph_distance', + 'morph_gradient', 'morph_hitormiss', + 'morph_open', 'morph_thin', 'morph_tophat', 'multi', 'n_elements', + 'n_params', 'n_tags', 'ncdf', 'newton', 'noise_hurl', + 'noise_pick', 'noise_scatter', 'noise_slur', 'norm', 'obj_class', + 'obj_destroy', 'obj_hasmethod', 'obj_isa', 'obj_new', 'obj_valid', + 'objarr', 'on_error', 'on_ioerror', 'online_help', 'openr', + 'openu', 'openw', 'oplot', 'oploterr', 'orderedhash', + 'p_correlate', 'parse_url', 'particle_trace', 'path_cache', 'path_sep', + 'pcomp', 'plot', 'plot3d', 'plot', 'plot_3dbox', + 'plot_field', 'ploterr', 'plots', 'polar_contour', 'polar_surface', + 'polyfill', 'polyshade', 'pnt_line', 'point_lun', 'polarplot', + 'poly', 'poly_2d', 'poly_area', 'poly_fit', 'polyfillv', + 'polygon', 'polyline', 'polywarp', 'popd', 'powell', + 'pref_commit', 'pref_get', 'pref_set', 'prewitt', 'primes', + 'print', 'printf', 'printd', 'pro', 'product', + 'profile', 'profiler', 'profiles', 'project_vol', 'ps_show_fonts', + 'psafm', 'pseudo', 'ptr_free', 'ptr_new', 'ptr_valid', + 'ptrarr', 'pushd', 'qgrid3', 'qhull', 'qromb', + 'qromo', 'qsimp', 'query_*', 'query_ascii', 'query_bmp', + 'query_csv', 'query_dicom', 'query_gif', 'query_image', 'query_jpeg', + 'query_jpeg2000', 'query_mrsid', 'query_pict', 'query_png', 'query_ppm', + 'query_srf', 'query_tiff', 'query_video', 'query_wav', 'r_correlate', + 'r_test', 'radon', 'randomn', 'randomu', 'ranks', + 'rdpix', 'read', 'readf', 'read_ascii', 'read_binary', + 'read_bmp', 'read_csv', 'read_dicom', 'read_gif', 'read_image', + 'read_interfile', 'read_jpeg', 'read_jpeg2000', 'read_mrsid', 'read_pict', + 'read_png', 'read_ppm', 'read_spr', 'read_srf', 'read_sylk', + 'read_tiff', 'read_video', 'read_wav', 'read_wave', 'read_x11_bitmap', + 'read_xwd', 'reads', 'readu', 'real_part', 'rebin', + 'recall_commands', 'recon3', 'reduce_colors', 'reform', 'region_grow', + 'register_cursor', 'regress', 'replicate', + 'replicate_inplace', 'resolve_all', + 'resolve_routine', 'restore', 'retall', 'return', 'reverse', + 'rk4', 'roberts', 'rot', 'rotate', 'round', + 'routine_filepath', 'routine_info', 'rs_test', 's_test', 'save', + 'savgol', 'scale3', 'scale3d', 'scatterplot', 'scatterplot3d', + 'scope_level', 'scope_traceback', 'scope_varfetch', + 'scope_varname', 'search2d', + 'search3d', 'sem_create', 'sem_delete', 'sem_lock', 'sem_release', + 'set_plot', 'set_shading', 'setenv', 'sfit', 'shade_surf', + 'shade_surf_irr', 'shade_volume', 'shift', 'shift_diff', 'shmdebug', + 'shmmap', 'shmunmap', 'shmvar', 'show3', 'showfont', + 'signum', 'simplex', 'sin', 'sindgen', 'sinh', + 'size', 'skewness', 'skip_lun', 'slicer3', 'slide_image', + 'smooth', 'sobel', 'socket', 'sort', 'spawn', + 'sph_4pnt', 'sph_scat', 'spher_harm', 'spl_init', 'spl_interp', + 'spline', 'spline_p', 'sprsab', 'sprsax', 'sprsin', + 'sprstp', 'sqrt', 'standardize', 'stddev', 'stop', + 'strarr', 'strcmp', 'strcompress', 'streamline', 'streamline', + 'stregex', 'stretch', 'string', 'strjoin', 'strlen', + 'strlowcase', 'strmatch', 'strmessage', 'strmid', 'strpos', + 'strput', 'strsplit', 'strtrim', 'struct_assign', 'struct_hide', + 'strupcase', 'surface', 'surface', 'surfr', 'svdc', + 'svdfit', 'svsol', 'swap_endian', 'swap_endian_inplace', 'symbol', + 'systime', 't_cvf', 't_pdf', 't3d', 'tag_names', + 'tan', 'tanh', 'tek_color', 'temporary', 'terminal_size', + 'tetra_clip', 'tetra_surface', 'tetra_volume', 'text', 'thin', + 'thread', 'threed', 'tic', 'time_test2', 'timegen', + 'timer', 'timestamp', 'timestamptovalues', 'tm_test', 'toc', + 'total', 'trace', 'transpose', 'tri_surf', 'triangulate', + 'trigrid', 'triql', 'trired', 'trisol', 'truncate_lun', + 'ts_coef', 'ts_diff', 'ts_fcast', 'ts_smooth', 'tv', + 'tvcrs', 'tvlct', 'tvrd', 'tvscl', 'typename', + 'uindgen', 'uint', 'uintarr', 'ul64indgen', 'ulindgen', + 'ulon64arr', 'ulonarr', 'ulong', 'ulong64', 'uniq', + 'unsharp_mask', 'usersym', 'value_locate', 'variance', 'vector', + 'vector_field', 'vel', 'velovect', 'vert_t3d', 'voigt', + 'volume', 'voronoi', 'voxel_proj', 'wait', 'warp_tri', + 'watershed', 'wdelete', 'wf_draw', 'where', 'widget_base', + 'widget_button', 'widget_combobox', 'widget_control', + 'widget_displaycontextmenu', 'widget_draw', + 'widget_droplist', 'widget_event', 'widget_info', + 'widget_label', 'widget_list', + 'widget_propertysheet', 'widget_slider', 'widget_tab', + 'widget_table', 'widget_text', + 'widget_tree', 'widget_tree_move', 'widget_window', + 'wiener_filter', 'window', + 'window', 'write_bmp', 'write_csv', 'write_gif', 'write_image', + 'write_jpeg', 'write_jpeg2000', 'write_nrif', 'write_pict', 'write_png', + 'write_ppm', 'write_spr', 'write_srf', 'write_sylk', 'write_tiff', + 'write_video', 'write_wav', 'write_wave', 'writeu', 'wset', + 'wshow', 'wtn', 'wv_applet', 'wv_cwt', 'wv_cw_wavelet', + 'wv_denoise', 'wv_dwt', 'wv_fn_coiflet', + 'wv_fn_daubechies', 'wv_fn_gaussian', + 'wv_fn_haar', 'wv_fn_morlet', 'wv_fn_paul', + 'wv_fn_symlet', 'wv_import_data', + 'wv_import_wavelet', 'wv_plot3d_wps', 'wv_plot_multires', + 'wv_pwt', 'wv_tool_denoise', + 'xbm_edit', 'xdisplayfile', 'xdxf', 'xfont', 'xinteranimate', + 'xloadct', 'xmanager', 'xmng_tmpl', 'xmtool', 'xobjview', + 'xobjview_rotate', 'xobjview_write_image', + 'xpalette', 'xpcolor', 'xplot3d', + 'xregistered', 'xroi', 'xsq_test', 'xsurface', 'xvaredit', + 'xvolume', 'xvolume_rotate', 'xvolume_write_image', + 'xyouts', 'zlib_compress', 'zlib_uncompress', 'zoom', 'zoom_24' + ]; + var builtins = wordRegexp(builtinArray); + + var keywordArray = [ + 'begin', 'end', 'endcase', 'endfor', + 'endwhile', 'endif', 'endrep', 'endforeach', + 'break', 'case', 'continue', 'for', + 'foreach', 'goto', 'if', 'then', 'else', + 'repeat', 'until', 'switch', 'while', + 'do', 'pro', 'function' + ]; + var keywords = wordRegexp(keywordArray); + + CodeMirror.registerHelper("hintWords", "idl", builtinArray.concat(keywordArray)); + + var identifiers = new RegExp('^[_a-z\xa1-\uffff][_a-z0-9\xa1-\uffff]*', 'i'); + + var singleOperators = /[+\-*&=<>\/@#~$]/; + var boolOperators = new RegExp('(and|or|eq|lt|le|gt|ge|ne|not)', 'i'); + + function tokenBase(stream) { + // whitespaces + if (stream.eatSpace()) return null; + + // Handle one line Comments + if (stream.match(';')) { + stream.skipToEnd(); + return 'comment'; + } + + // Handle Number Literals + if (stream.match(/^[0-9\.+-]/, false)) { + if (stream.match(/^[+-]?0x[0-9a-fA-F]+/)) + return 'number'; + if (stream.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/)) + return 'number'; + if (stream.match(/^[+-]?\d+([EeDd][+-]?\d+)?/)) + return 'number'; + } + + // Handle Strings + if (stream.match(/^"([^"]|(""))*"/)) { return 'string'; } + if (stream.match(/^'([^']|(''))*'/)) { return 'string'; } + + // Handle words + if (stream.match(keywords)) { return 'keyword'; } + if (stream.match(builtins)) { return 'builtin'; } + if (stream.match(identifiers)) { return 'variable'; } + + if (stream.match(singleOperators) || stream.match(boolOperators)) { + return 'operator'; } + + // Handle non-detected items + stream.next(); + return 'error'; + }; + + CodeMirror.defineMode('idl', function() { + return { + token: function(stream) { + return tokenBase(stream); + } + }; + }); + + CodeMirror.defineMIME('text/x-idl', 'idl'); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/idl/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/idl/index.html new file mode 100644 index 0000000..280bb90 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/idl/index.html @@ -0,0 +1,64 @@ + + +CodeMirror: IDL mode + + + + + + + + + +
                              +

                              IDL mode

                              + +
                              + + +

                              MIME types defined: text/x-idl.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/index.html new file mode 100644 index 0000000..c933e1e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/index.html @@ -0,0 +1,132 @@ + + +CodeMirror: Language Modes + + + + + +
                              + +

                              Language modes

                              + +

                              This is a list of every mode in the distribution. Each mode lives +in a subdirectory of the mode/ directory, and typically +defines a single JavaScript file that implements the mode. Loading +such file will make the language available to CodeMirror, through +the mode +option.

                              + +
                              + +
                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jade/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jade/index.html new file mode 100644 index 0000000..e534981 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jade/index.html @@ -0,0 +1,70 @@ + + +CodeMirror: Jade Templating Mode + + + + + + + + + + + + + +
                              +

                              Jade Templating Mode

                              +
                              + +

                              The Jade Templating Mode

                              +

                              Created by Forbes Lindesay. Managed as part of a Brackets extension at https://github.com/ForbesLindesay/jade-brackets.

                              +

                              MIME type defined: text/x-jade.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jade/jade.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jade/jade.js new file mode 100644 index 0000000..96fadb1 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jade/jade.js @@ -0,0 +1,590 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../javascript/javascript"), require("../css/css"), require("../htmlmixed/htmlmixed")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../javascript/javascript", "../css/css", "../htmlmixed/htmlmixed"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode('jade', function (config) { + // token types + var KEYWORD = 'keyword'; + var DOCTYPE = 'meta'; + var ID = 'builtin'; + var CLASS = 'qualifier'; + + var ATTRS_NEST = { + '{': '}', + '(': ')', + '[': ']' + }; + + var jsMode = CodeMirror.getMode(config, 'javascript'); + + function State() { + this.javaScriptLine = false; + this.javaScriptLineExcludesColon = false; + + this.javaScriptArguments = false; + this.javaScriptArgumentsDepth = 0; + + this.isInterpolating = false; + this.interpolationNesting = 0; + + this.jsState = jsMode.startState(); + + this.restOfLine = ''; + + this.isIncludeFiltered = false; + this.isEach = false; + + this.lastTag = ''; + this.scriptType = ''; + + // Attributes Mode + this.isAttrs = false; + this.attrsNest = []; + this.inAttributeName = true; + this.attributeIsType = false; + this.attrValue = ''; + + // Indented Mode + this.indentOf = Infinity; + this.indentToken = ''; + + this.innerMode = null; + this.innerState = null; + + this.innerModeForLine = false; + } + /** + * Safely copy a state + * + * @return {State} + */ + State.prototype.copy = function () { + var res = new State(); + res.javaScriptLine = this.javaScriptLine; + res.javaScriptLineExcludesColon = this.javaScriptLineExcludesColon; + res.javaScriptArguments = this.javaScriptArguments; + res.javaScriptArgumentsDepth = this.javaScriptArgumentsDepth; + res.isInterpolating = this.isInterpolating; + res.interpolationNesting = this.intpolationNesting; + + res.jsState = CodeMirror.copyState(jsMode, this.jsState); + + res.innerMode = this.innerMode; + if (this.innerMode && this.innerState) { + res.innerState = CodeMirror.copyState(this.innerMode, this.innerState); + } + + res.restOfLine = this.restOfLine; + + res.isIncludeFiltered = this.isIncludeFiltered; + res.isEach = this.isEach; + res.lastTag = this.lastTag; + res.scriptType = this.scriptType; + res.isAttrs = this.isAttrs; + res.attrsNest = this.attrsNest.slice(); + res.inAttributeName = this.inAttributeName; + res.attributeIsType = this.attributeIsType; + res.attrValue = this.attrValue; + res.indentOf = this.indentOf; + res.indentToken = this.indentToken; + + res.innerModeForLine = this.innerModeForLine; + + return res; + }; + + function javaScript(stream, state) { + if (stream.sol()) { + // if javaScriptLine was set at end of line, ignore it + state.javaScriptLine = false; + state.javaScriptLineExcludesColon = false; + } + if (state.javaScriptLine) { + if (state.javaScriptLineExcludesColon && stream.peek() === ':') { + state.javaScriptLine = false; + state.javaScriptLineExcludesColon = false; + return; + } + var tok = jsMode.token(stream, state.jsState); + if (stream.eol()) state.javaScriptLine = false; + return tok || true; + } + } + function javaScriptArguments(stream, state) { + if (state.javaScriptArguments) { + if (state.javaScriptArgumentsDepth === 0 && stream.peek() !== '(') { + state.javaScriptArguments = false; + return; + } + if (stream.peek() === '(') { + state.javaScriptArgumentsDepth++; + } else if (stream.peek() === ')') { + state.javaScriptArgumentsDepth--; + } + if (state.javaScriptArgumentsDepth === 0) { + state.javaScriptArguments = false; + return; + } + + var tok = jsMode.token(stream, state.jsState); + return tok || true; + } + } + + function yieldStatement(stream) { + if (stream.match(/^yield\b/)) { + return 'keyword'; + } + } + + function doctype(stream) { + if (stream.match(/^(?:doctype) *([^\n]+)?/)) { + return DOCTYPE; + } + } + + function interpolation(stream, state) { + if (stream.match('#{')) { + state.isInterpolating = true; + state.interpolationNesting = 0; + return 'punctuation'; + } + } + + function interpolationContinued(stream, state) { + if (state.isInterpolating) { + if (stream.peek() === '}') { + state.interpolationNesting--; + if (state.interpolationNesting < 0) { + stream.next(); + state.isInterpolating = false; + return 'puncutation'; + } + } else if (stream.peek() === '{') { + state.interpolationNesting++; + } + return jsMode.token(stream, state.jsState) || true; + } + } + + function caseStatement(stream, state) { + if (stream.match(/^case\b/)) { + state.javaScriptLine = true; + return KEYWORD; + } + } + + function when(stream, state) { + if (stream.match(/^when\b/)) { + state.javaScriptLine = true; + state.javaScriptLineExcludesColon = true; + return KEYWORD; + } + } + + function defaultStatement(stream) { + if (stream.match(/^default\b/)) { + return KEYWORD; + } + } + + function extendsStatement(stream, state) { + if (stream.match(/^extends?\b/)) { + state.restOfLine = 'string'; + return KEYWORD; + } + } + + function append(stream, state) { + if (stream.match(/^append\b/)) { + state.restOfLine = 'variable'; + return KEYWORD; + } + } + function prepend(stream, state) { + if (stream.match(/^prepend\b/)) { + state.restOfLine = 'variable'; + return KEYWORD; + } + } + function block(stream, state) { + if (stream.match(/^block\b *(?:(prepend|append)\b)?/)) { + state.restOfLine = 'variable'; + return KEYWORD; + } + } + + function include(stream, state) { + if (stream.match(/^include\b/)) { + state.restOfLine = 'string'; + return KEYWORD; + } + } + + function includeFiltered(stream, state) { + if (stream.match(/^include:([a-zA-Z0-9\-]+)/, false) && stream.match('include')) { + state.isIncludeFiltered = true; + return KEYWORD; + } + } + + function includeFilteredContinued(stream, state) { + if (state.isIncludeFiltered) { + var tok = filter(stream, state); + state.isIncludeFiltered = false; + state.restOfLine = 'string'; + return tok; + } + } + + function mixin(stream, state) { + if (stream.match(/^mixin\b/)) { + state.javaScriptLine = true; + return KEYWORD; + } + } + + function call(stream, state) { + if (stream.match(/^\+([-\w]+)/)) { + if (!stream.match(/^\( *[-\w]+ *=/, false)) { + state.javaScriptArguments = true; + state.javaScriptArgumentsDepth = 0; + } + return 'variable'; + } + if (stream.match(/^\+#{/, false)) { + stream.next(); + state.mixinCallAfter = true; + return interpolation(stream, state); + } + } + function callArguments(stream, state) { + if (state.mixinCallAfter) { + state.mixinCallAfter = false; + if (!stream.match(/^\( *[-\w]+ *=/, false)) { + state.javaScriptArguments = true; + state.javaScriptArgumentsDepth = 0; + } + return true; + } + } + + function conditional(stream, state) { + if (stream.match(/^(if|unless|else if|else)\b/)) { + state.javaScriptLine = true; + return KEYWORD; + } + } + + function each(stream, state) { + if (stream.match(/^(- *)?(each|for)\b/)) { + state.isEach = true; + return KEYWORD; + } + } + function eachContinued(stream, state) { + if (state.isEach) { + if (stream.match(/^ in\b/)) { + state.javaScriptLine = true; + state.isEach = false; + return KEYWORD; + } else if (stream.sol() || stream.eol()) { + state.isEach = false; + } else if (stream.next()) { + while (!stream.match(/^ in\b/, false) && stream.next()); + return 'variable'; + } + } + } + + function whileStatement(stream, state) { + if (stream.match(/^while\b/)) { + state.javaScriptLine = true; + return KEYWORD; + } + } + + function tag(stream, state) { + var captures; + if (captures = stream.match(/^(\w(?:[-:\w]*\w)?)\/?/)) { + state.lastTag = captures[1].toLowerCase(); + if (state.lastTag === 'script') { + state.scriptType = 'application/javascript'; + } + return 'tag'; + } + } + + function filter(stream, state) { + if (stream.match(/^:([\w\-]+)/)) { + var innerMode; + if (config && config.innerModes) { + innerMode = config.innerModes(stream.current().substring(1)); + } + if (!innerMode) { + innerMode = stream.current().substring(1); + } + if (typeof innerMode === 'string') { + innerMode = CodeMirror.getMode(config, innerMode); + } + setInnerMode(stream, state, innerMode); + return 'atom'; + } + } + + function code(stream, state) { + if (stream.match(/^(!?=|-)/)) { + state.javaScriptLine = true; + return 'punctuation'; + } + } + + function id(stream) { + if (stream.match(/^#([\w-]+)/)) { + return ID; + } + } + + function className(stream) { + if (stream.match(/^\.([\w-]+)/)) { + return CLASS; + } + } + + function attrs(stream, state) { + if (stream.peek() == '(') { + stream.next(); + state.isAttrs = true; + state.attrsNest = []; + state.inAttributeName = true; + state.attrValue = ''; + state.attributeIsType = false; + return 'punctuation'; + } + } + + function attrsContinued(stream, state) { + if (state.isAttrs) { + if (ATTRS_NEST[stream.peek()]) { + state.attrsNest.push(ATTRS_NEST[stream.peek()]); + } + if (state.attrsNest[state.attrsNest.length - 1] === stream.peek()) { + state.attrsNest.pop(); + } else if (stream.eat(')')) { + state.isAttrs = false; + return 'punctuation'; + } + if (state.inAttributeName && stream.match(/^[^=,\)!]+/)) { + if (stream.peek() === '=' || stream.peek() === '!') { + state.inAttributeName = false; + state.jsState = jsMode.startState(); + if (state.lastTag === 'script' && stream.current().trim().toLowerCase() === 'type') { + state.attributeIsType = true; + } else { + state.attributeIsType = false; + } + } + return 'attribute'; + } + + var tok = jsMode.token(stream, state.jsState); + if (state.attributeIsType && tok === 'string') { + state.scriptType = stream.current().toString(); + } + if (state.attrsNest.length === 0 && (tok === 'string' || tok === 'variable' || tok === 'keyword')) { + try { + Function('', 'var x ' + state.attrValue.replace(/,\s*$/, '').replace(/^!/, '')); + state.inAttributeName = true; + state.attrValue = ''; + stream.backUp(stream.current().length); + return attrsContinued(stream, state); + } catch (ex) { + //not the end of an attribute + } + } + state.attrValue += stream.current(); + return tok || true; + } + } + + function attributesBlock(stream, state) { + if (stream.match(/^&attributes\b/)) { + state.javaScriptArguments = true; + state.javaScriptArgumentsDepth = 0; + return 'keyword'; + } + } + + function indent(stream) { + if (stream.sol() && stream.eatSpace()) { + return 'indent'; + } + } + + function comment(stream, state) { + if (stream.match(/^ *\/\/(-)?([^\n]*)/)) { + state.indentOf = stream.indentation(); + state.indentToken = 'comment'; + return 'comment'; + } + } + + function colon(stream) { + if (stream.match(/^: */)) { + return 'colon'; + } + } + + function text(stream, state) { + if (stream.match(/^(?:\| ?| )([^\n]+)/)) { + return 'string'; + } + if (stream.match(/^(<[^\n]*)/, false)) { + // html string + setInnerMode(stream, state, 'htmlmixed'); + state.innerModeForLine = true; + return innerMode(stream, state, true); + } + } + + function dot(stream, state) { + if (stream.eat('.')) { + var innerMode = null; + if (state.lastTag === 'script' && state.scriptType.toLowerCase().indexOf('javascript') != -1) { + innerMode = state.scriptType.toLowerCase().replace(/"|'/g, ''); + } else if (state.lastTag === 'style') { + innerMode = 'css'; + } + setInnerMode(stream, state, innerMode); + return 'dot'; + } + } + + function fail(stream) { + stream.next(); + return null; + } + + + function setInnerMode(stream, state, mode) { + mode = CodeMirror.mimeModes[mode] || mode; + mode = config.innerModes ? config.innerModes(mode) || mode : mode; + mode = CodeMirror.mimeModes[mode] || mode; + mode = CodeMirror.getMode(config, mode); + state.indentOf = stream.indentation(); + + if (mode && mode.name !== 'null') { + state.innerMode = mode; + } else { + state.indentToken = 'string'; + } + } + function innerMode(stream, state, force) { + if (stream.indentation() > state.indentOf || (state.innerModeForLine && !stream.sol()) || force) { + if (state.innerMode) { + if (!state.innerState) { + state.innerState = state.innerMode.startState ? state.innerMode.startState(stream.indentation()) : {}; + } + return stream.hideFirstChars(state.indentOf + 2, function () { + return state.innerMode.token(stream, state.innerState) || true; + }); + } else { + stream.skipToEnd(); + return state.indentToken; + } + } else if (stream.sol()) { + state.indentOf = Infinity; + state.indentToken = null; + state.innerMode = null; + state.innerState = null; + } + } + function restOfLine(stream, state) { + if (stream.sol()) { + // if restOfLine was set at end of line, ignore it + state.restOfLine = ''; + } + if (state.restOfLine) { + stream.skipToEnd(); + var tok = state.restOfLine; + state.restOfLine = ''; + return tok; + } + } + + + function startState() { + return new State(); + } + function copyState(state) { + return state.copy(); + } + /** + * Get the next token in the stream + * + * @param {Stream} stream + * @param {State} state + */ + function nextToken(stream, state) { + var tok = innerMode(stream, state) + || restOfLine(stream, state) + || interpolationContinued(stream, state) + || includeFilteredContinued(stream, state) + || eachContinued(stream, state) + || attrsContinued(stream, state) + || javaScript(stream, state) + || javaScriptArguments(stream, state) + || callArguments(stream, state) + + || yieldStatement(stream, state) + || doctype(stream, state) + || interpolation(stream, state) + || caseStatement(stream, state) + || when(stream, state) + || defaultStatement(stream, state) + || extendsStatement(stream, state) + || append(stream, state) + || prepend(stream, state) + || block(stream, state) + || include(stream, state) + || includeFiltered(stream, state) + || mixin(stream, state) + || call(stream, state) + || conditional(stream, state) + || each(stream, state) + || whileStatement(stream, state) + || tag(stream, state) + || filter(stream, state) + || code(stream, state) + || id(stream, state) + || className(stream, state) + || attrs(stream, state) + || attributesBlock(stream, state) + || indent(stream, state) + || text(stream, state) + || comment(stream, state) + || colon(stream, state) + || dot(stream, state) + || fail(stream, state); + + return tok === true ? null : tok; + } + return { + startState: startState, + copyState: copyState, + token: nextToken + }; +}); + +CodeMirror.defineMIME('text/x-jade', 'jade'); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/index.html new file mode 100644 index 0000000..592a133 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/index.html @@ -0,0 +1,114 @@ + + +CodeMirror: JavaScript mode + + + + + + + + + + + + +
                              +

                              JavaScript mode

                              + + +
                              + + + +

                              + JavaScript mode supports several configuration options: +

                                +
                              • json which will set the mode to expect JSON + data rather than a JavaScript program.
                              • +
                              • jsonld which will set the mode to expect + JSON-LD linked data rather + than a JavaScript program (demo).
                              • +
                              • typescript which will activate additional + syntax highlighting and some other things for TypeScript code + (demo).
                              • +
                              • statementIndent which (given a number) will + determine the amount of indentation to use for statements + continued on a new line.
                              • +
                              • wordCharacters, a regexp that indicates which + characters should be considered part of an identifier. + Defaults to /[\w$]/, which does not handle + non-ASCII identifiers. Can be set to something more elaborate + to improve Unicode support.
                              • +
                              +

                              + +

                              MIME types defined: text/javascript, application/json, application/ld+json, text/typescript, application/typescript.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/javascript.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/javascript.js new file mode 100644 index 0000000..93df06d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/javascript.js @@ -0,0 +1,692 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +// TODO actually recognize syntax of TypeScript constructs + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("javascript", function(config, parserConfig) { + var indentUnit = config.indentUnit; + var statementIndent = parserConfig.statementIndent; + var jsonldMode = parserConfig.jsonld; + var jsonMode = parserConfig.json || jsonldMode; + var isTS = parserConfig.typescript; + var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/; + + // Tokenizer + + var keywords = function(){ + function kw(type) {return {type: type, style: "keyword"};} + var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"); + var operator = kw("operator"), atom = {type: "atom", style: "atom"}; + + var jsKeywords = { + "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B, + "return": C, "break": C, "continue": C, "new": C, "delete": C, "throw": C, "debugger": C, + "var": kw("var"), "const": kw("var"), "let": kw("var"), + "function": kw("function"), "catch": kw("catch"), + "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"), + "in": operator, "typeof": operator, "instanceof": operator, + "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom, + "this": kw("this"), "module": kw("module"), "class": kw("class"), "super": kw("atom"), + "yield": C, "export": kw("export"), "import": kw("import"), "extends": C + }; + + // Extend the 'normal' keywords with the TypeScript language extensions + if (isTS) { + var type = {type: "variable", style: "variable-3"}; + var tsKeywords = { + // object-like things + "interface": kw("interface"), + "extends": kw("extends"), + "constructor": kw("constructor"), + + // scope modifiers + "public": kw("public"), + "private": kw("private"), + "protected": kw("protected"), + "static": kw("static"), + + // types + "string": type, "number": type, "bool": type, "any": type + }; + + for (var attr in tsKeywords) { + jsKeywords[attr] = tsKeywords[attr]; + } + } + + return jsKeywords; + }(); + + var isOperatorChar = /[+\-*&%=<>!?|~^]/; + var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/; + + function readRegexp(stream) { + var escaped = false, next, inSet = false; + while ((next = stream.next()) != null) { + if (!escaped) { + if (next == "/" && !inSet) return; + if (next == "[") inSet = true; + else if (inSet && next == "]") inSet = false; + } + escaped = !escaped && next == "\\"; + } + } + + // Used as scratch variables to communicate multiple values without + // consing up tons of objects. + var type, content; + function ret(tp, style, cont) { + type = tp; content = cont; + return style; + } + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"' || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } else if (ch == "." && stream.match(/^\d+(?:[eE][+\-]?\d+)?/)) { + return ret("number", "number"); + } else if (ch == "." && stream.match("..")) { + return ret("spread", "meta"); + } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + return ret(ch); + } else if (ch == "=" && stream.eat(">")) { + return ret("=>", "operator"); + } else if (ch == "0" && stream.eat(/x/i)) { + stream.eatWhile(/[\da-f]/i); + return ret("number", "number"); + } else if (/\d/.test(ch)) { + stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/); + return ret("number", "number"); + } else if (ch == "/") { + if (stream.eat("*")) { + state.tokenize = tokenComment; + return tokenComment(stream, state); + } else if (stream.eat("/")) { + stream.skipToEnd(); + return ret("comment", "comment"); + } else if (state.lastType == "operator" || state.lastType == "keyword c" || + state.lastType == "sof" || /^[\[{}\(,;:]$/.test(state.lastType)) { + readRegexp(stream); + stream.eatWhile(/[gimy]/); // 'y' is "sticky" option in Mozilla + return ret("regexp", "string-2"); + } else { + stream.eatWhile(isOperatorChar); + return ret("operator", "operator", stream.current()); + } + } else if (ch == "`") { + state.tokenize = tokenQuasi; + return tokenQuasi(stream, state); + } else if (ch == "#") { + stream.skipToEnd(); + return ret("error", "error"); + } else if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return ret("operator", "operator", stream.current()); + } else if (wordRE.test(ch)) { + stream.eatWhile(wordRE); + var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word]; + return (known && state.lastType != ".") ? ret(known.type, known.style, word) : + ret("variable", "variable", word); + } + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next; + if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)){ + state.tokenize = tokenBase; + return ret("jsonld-keyword", "meta"); + } + while ((next = stream.next()) != null) { + if (next == quote && !escaped) break; + escaped = !escaped && next == "\\"; + } + if (!escaped) state.tokenize = tokenBase; + return ret("string", "string"); + }; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return ret("comment", "comment"); + } + + function tokenQuasi(stream, state) { + var escaped = false, next; + while ((next = stream.next()) != null) { + if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) { + state.tokenize = tokenBase; + break; + } + escaped = !escaped && next == "\\"; + } + return ret("quasi", "string-2", stream.current()); + } + + var brackets = "([{}])"; + // This is a crude lookahead trick to try and notice that we're + // parsing the argument patterns for a fat-arrow function before we + // actually hit the arrow token. It only works if the arrow is on + // the same line as the arguments and there's no strange noise + // (comments) in between. Fallback is to only notice when we hit the + // arrow, and not declare the arguments as locals for the arrow + // body. + function findFatArrow(stream, state) { + if (state.fatArrowAt) state.fatArrowAt = null; + var arrow = stream.string.indexOf("=>", stream.start); + if (arrow < 0) return; + + var depth = 0, sawSomething = false; + for (var pos = arrow - 1; pos >= 0; --pos) { + var ch = stream.string.charAt(pos); + var bracket = brackets.indexOf(ch); + if (bracket >= 0 && bracket < 3) { + if (!depth) { ++pos; break; } + if (--depth == 0) break; + } else if (bracket >= 3 && bracket < 6) { + ++depth; + } else if (wordRE.test(ch)) { + sawSomething = true; + } else if (/["'\/]/.test(ch)) { + return; + } else if (sawSomething && !depth) { + ++pos; + break; + } + } + if (sawSomething && !depth) state.fatArrowAt = pos; + } + + // Parser + + var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true, "this": true, "jsonld-keyword": true}; + + function JSLexical(indented, column, type, align, prev, info) { + this.indented = indented; + this.column = column; + this.type = type; + this.prev = prev; + this.info = info; + if (align != null) this.align = align; + } + + function inScope(state, varname) { + for (var v = state.localVars; v; v = v.next) + if (v.name == varname) return true; + for (var cx = state.context; cx; cx = cx.prev) { + for (var v = cx.vars; v; v = v.next) + if (v.name == varname) return true; + } + } + + function parseJS(state, style, type, content, stream) { + var cc = state.cc; + // Communicate our context to the combinators. + // (Less wasteful than consing up a hundred closures on every call.) + cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style; + + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = true; + + while(true) { + var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement; + if (combinator(type, content)) { + while(cc.length && cc[cc.length - 1].lex) + cc.pop()(); + if (cx.marked) return cx.marked; + if (type == "variable" && inScope(state, content)) return "variable-2"; + return style; + } + } + } + + // Combinator utils + + var cx = {state: null, column: null, marked: null, cc: null}; + function pass() { + for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); + } + function cont() { + pass.apply(null, arguments); + return true; + } + function register(varname) { + function inList(list) { + for (var v = list; v; v = v.next) + if (v.name == varname) return true; + return false; + } + var state = cx.state; + if (state.context) { + cx.marked = "def"; + if (inList(state.localVars)) return; + state.localVars = {name: varname, next: state.localVars}; + } else { + if (inList(state.globalVars)) return; + if (parserConfig.globalVars) + state.globalVars = {name: varname, next: state.globalVars}; + } + } + + // Combinators + + var defaultVars = {name: "this", next: {name: "arguments"}}; + function pushcontext() { + cx.state.context = {prev: cx.state.context, vars: cx.state.localVars}; + cx.state.localVars = defaultVars; + } + function popcontext() { + cx.state.localVars = cx.state.context.vars; + cx.state.context = cx.state.context.prev; + } + function pushlex(type, info) { + var result = function() { + var state = cx.state, indent = state.indented; + if (state.lexical.type == "stat") indent = state.lexical.indented; + else for (var outer = state.lexical; outer && outer.type == ")" && outer.align; outer = outer.prev) + indent = outer.indented; + state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info); + }; + result.lex = true; + return result; + } + function poplex() { + var state = cx.state; + if (state.lexical.prev) { + if (state.lexical.type == ")") + state.indented = state.lexical.indented; + state.lexical = state.lexical.prev; + } + } + poplex.lex = true; + + function expect(wanted) { + function exp(type) { + if (type == wanted) return cont(); + else if (wanted == ";") return pass(); + else return cont(exp); + }; + return exp; + } + + function statement(type, value) { + if (type == "var") return cont(pushlex("vardef", value.length), vardef, expect(";"), poplex); + if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex); + if (type == "keyword b") return cont(pushlex("form"), statement, poplex); + if (type == "{") return cont(pushlex("}"), block, poplex); + if (type == ";") return cont(); + if (type == "if") { + if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex) + cx.state.cc.pop()(); + return cont(pushlex("form"), expression, statement, poplex, maybeelse); + } + if (type == "function") return cont(functiondef); + if (type == "for") return cont(pushlex("form"), forspec, statement, poplex); + if (type == "variable") return cont(pushlex("stat"), maybelabel); + if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"), + block, poplex, poplex); + if (type == "case") return cont(expression, expect(":")); + if (type == "default") return cont(expect(":")); + if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"), + statement, poplex, popcontext); + if (type == "module") return cont(pushlex("form"), pushcontext, afterModule, popcontext, poplex); + if (type == "class") return cont(pushlex("form"), className, poplex); + if (type == "export") return cont(pushlex("form"), afterExport, poplex); + if (type == "import") return cont(pushlex("form"), afterImport, poplex); + return pass(pushlex("stat"), expression, expect(";"), poplex); + } + function expression(type) { + return expressionInner(type, false); + } + function expressionNoComma(type) { + return expressionInner(type, true); + } + function expressionInner(type, noComma) { + if (cx.state.fatArrowAt == cx.stream.start) { + var body = noComma ? arrowBodyNoComma : arrowBody; + if (type == "(") return cont(pushcontext, pushlex(")"), commasep(pattern, ")"), poplex, expect("=>"), body, popcontext); + else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext); + } + + var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma; + if (atomicTypes.hasOwnProperty(type)) return cont(maybeop); + if (type == "function") return cont(functiondef, maybeop); + if (type == "keyword c") return cont(noComma ? maybeexpressionNoComma : maybeexpression); + if (type == "(") return cont(pushlex(")"), maybeexpression, comprehension, expect(")"), poplex, maybeop); + if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression); + if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop); + if (type == "{") return contCommasep(objprop, "}", null, maybeop); + if (type == "quasi") { return pass(quasi, maybeop); } + return cont(); + } + function maybeexpression(type) { + if (type.match(/[;\}\)\],]/)) return pass(); + return pass(expression); + } + function maybeexpressionNoComma(type) { + if (type.match(/[;\}\)\],]/)) return pass(); + return pass(expressionNoComma); + } + + function maybeoperatorComma(type, value) { + if (type == ",") return cont(expression); + return maybeoperatorNoComma(type, value, false); + } + function maybeoperatorNoComma(type, value, noComma) { + var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma; + var expr = noComma == false ? expression : expressionNoComma; + if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext); + if (type == "operator") { + if (/\+\+|--/.test(value)) return cont(me); + if (value == "?") return cont(expression, expect(":"), expr); + return cont(expr); + } + if (type == "quasi") { return pass(quasi, me); } + if (type == ";") return; + if (type == "(") return contCommasep(expressionNoComma, ")", "call", me); + if (type == ".") return cont(property, me); + if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me); + } + function quasi(type, value) { + if (type != "quasi") return pass(); + if (value.slice(value.length - 2) != "${") return cont(quasi); + return cont(expression, continueQuasi); + } + function continueQuasi(type) { + if (type == "}") { + cx.marked = "string-2"; + cx.state.tokenize = tokenQuasi; + return cont(quasi); + } + } + function arrowBody(type) { + findFatArrow(cx.stream, cx.state); + return pass(type == "{" ? statement : expression); + } + function arrowBodyNoComma(type) { + findFatArrow(cx.stream, cx.state); + return pass(type == "{" ? statement : expressionNoComma); + } + function maybelabel(type) { + if (type == ":") return cont(poplex, statement); + return pass(maybeoperatorComma, expect(";"), poplex); + } + function property(type) { + if (type == "variable") {cx.marked = "property"; return cont();} + } + function objprop(type, value) { + if (type == "variable" || cx.style == "keyword") { + cx.marked = "property"; + if (value == "get" || value == "set") return cont(getterSetter); + return cont(afterprop); + } else if (type == "number" || type == "string") { + cx.marked = jsonldMode ? "property" : (cx.style + " property"); + return cont(afterprop); + } else if (type == "jsonld-keyword") { + return cont(afterprop); + } else if (type == "[") { + return cont(expression, expect("]"), afterprop); + } + } + function getterSetter(type) { + if (type != "variable") return pass(afterprop); + cx.marked = "property"; + return cont(functiondef); + } + function afterprop(type) { + if (type == ":") return cont(expressionNoComma); + if (type == "(") return pass(functiondef); + } + function commasep(what, end) { + function proceed(type) { + if (type == ",") { + var lex = cx.state.lexical; + if (lex.info == "call") lex.pos = (lex.pos || 0) + 1; + return cont(what, proceed); + } + if (type == end) return cont(); + return cont(expect(end)); + } + return function(type) { + if (type == end) return cont(); + return pass(what, proceed); + }; + } + function contCommasep(what, end, info) { + for (var i = 3; i < arguments.length; i++) + cx.cc.push(arguments[i]); + return cont(pushlex(end, info), commasep(what, end), poplex); + } + function block(type) { + if (type == "}") return cont(); + return pass(statement, block); + } + function maybetype(type) { + if (isTS && type == ":") return cont(typedef); + } + function typedef(type) { + if (type == "variable"){cx.marked = "variable-3"; return cont();} + } + function vardef() { + return pass(pattern, maybetype, maybeAssign, vardefCont); + } + function pattern(type, value) { + if (type == "variable") { register(value); return cont(); } + if (type == "[") return contCommasep(pattern, "]"); + if (type == "{") return contCommasep(proppattern, "}"); + } + function proppattern(type, value) { + if (type == "variable" && !cx.stream.match(/^\s*:/, false)) { + register(value); + return cont(maybeAssign); + } + if (type == "variable") cx.marked = "property"; + return cont(expect(":"), pattern, maybeAssign); + } + function maybeAssign(_type, value) { + if (value == "=") return cont(expressionNoComma); + } + function vardefCont(type) { + if (type == ",") return cont(vardef); + } + function maybeelse(type, value) { + if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex); + } + function forspec(type) { + if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex); + } + function forspec1(type) { + if (type == "var") return cont(vardef, expect(";"), forspec2); + if (type == ";") return cont(forspec2); + if (type == "variable") return cont(formaybeinof); + return pass(expression, expect(";"), forspec2); + } + function formaybeinof(_type, value) { + if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); } + return cont(maybeoperatorComma, forspec2); + } + function forspec2(type, value) { + if (type == ";") return cont(forspec3); + if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); } + return pass(expression, expect(";"), forspec3); + } + function forspec3(type) { + if (type != ")") cont(expression); + } + function functiondef(type, value) { + if (value == "*") {cx.marked = "keyword"; return cont(functiondef);} + if (type == "variable") {register(value); return cont(functiondef);} + if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, statement, popcontext); + } + function funarg(type) { + if (type == "spread") return cont(funarg); + return pass(pattern, maybetype); + } + function className(type, value) { + if (type == "variable") {register(value); return cont(classNameAfter);} + } + function classNameAfter(type, value) { + if (value == "extends") return cont(expression, classNameAfter); + if (type == "{") return cont(pushlex("}"), classBody, poplex); + } + function classBody(type, value) { + if (type == "variable" || cx.style == "keyword") { + cx.marked = "property"; + if (value == "get" || value == "set") return cont(classGetterSetter, functiondef, classBody); + return cont(functiondef, classBody); + } + if (value == "*") { + cx.marked = "keyword"; + return cont(classBody); + } + if (type == ";") return cont(classBody); + if (type == "}") return cont(); + } + function classGetterSetter(type) { + if (type != "variable") return pass(); + cx.marked = "property"; + return cont(); + } + function afterModule(type, value) { + if (type == "string") return cont(statement); + if (type == "variable") { register(value); return cont(maybeFrom); } + } + function afterExport(_type, value) { + if (value == "*") { cx.marked = "keyword"; return cont(maybeFrom, expect(";")); } + if (value == "default") { cx.marked = "keyword"; return cont(expression, expect(";")); } + return pass(statement); + } + function afterImport(type) { + if (type == "string") return cont(); + return pass(importSpec, maybeFrom); + } + function importSpec(type, value) { + if (type == "{") return contCommasep(importSpec, "}"); + if (type == "variable") register(value); + return cont(); + } + function maybeFrom(_type, value) { + if (value == "from") { cx.marked = "keyword"; return cont(expression); } + } + function arrayLiteral(type) { + if (type == "]") return cont(); + return pass(expressionNoComma, maybeArrayComprehension); + } + function maybeArrayComprehension(type) { + if (type == "for") return pass(comprehension, expect("]")); + if (type == ",") return cont(commasep(maybeexpressionNoComma, "]")); + return pass(commasep(expressionNoComma, "]")); + } + function comprehension(type) { + if (type == "for") return cont(forspec, comprehension); + if (type == "if") return cont(expression, comprehension); + } + + function isContinuedStatement(state, textAfter) { + return state.lastType == "operator" || state.lastType == "," || + isOperatorChar.test(textAfter.charAt(0)) || + /[,.]/.test(textAfter.charAt(0)); + } + + // Interface + + return { + startState: function(basecolumn) { + var state = { + tokenize: tokenBase, + lastType: "sof", + cc: [], + lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), + localVars: parserConfig.localVars, + context: parserConfig.localVars && {vars: parserConfig.localVars}, + indented: 0 + }; + if (parserConfig.globalVars && typeof parserConfig.globalVars == "object") + state.globalVars = parserConfig.globalVars; + return state; + }, + + token: function(stream, state) { + if (stream.sol()) { + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = false; + state.indented = stream.indentation(); + findFatArrow(stream, state); + } + if (state.tokenize != tokenComment && stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + if (type == "comment") return style; + state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type; + return parseJS(state, style, type, content, stream); + }, + + indent: function(state, textAfter) { + if (state.tokenize == tokenComment) return CodeMirror.Pass; + if (state.tokenize != tokenBase) return 0; + var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical; + // Kludge to prevent 'maybelse' from blocking lexical scope pops + if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) { + var c = state.cc[i]; + if (c == poplex) lexical = lexical.prev; + else if (c != maybeelse) break; + } + if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev; + if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat") + lexical = lexical.prev; + var type = lexical.type, closing = firstChar == type; + + if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info + 1 : 0); + else if (type == "form" && firstChar == "{") return lexical.indented; + else if (type == "form") return lexical.indented + indentUnit; + else if (type == "stat") + return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0); + else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false) + return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit); + else if (lexical.align) return lexical.column + (closing ? 0 : 1); + else return lexical.indented + (closing ? 0 : indentUnit); + }, + + electricInput: /^\s*(?:case .*?:|default:|\{|\})$/, + blockCommentStart: jsonMode ? null : "/*", + blockCommentEnd: jsonMode ? null : "*/", + lineComment: jsonMode ? null : "//", + fold: "brace", + + helperType: jsonMode ? "json" : "javascript", + jsonldMode: jsonldMode, + jsonMode: jsonMode + }; +}); + +CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/); + +CodeMirror.defineMIME("text/javascript", "javascript"); +CodeMirror.defineMIME("text/ecmascript", "javascript"); +CodeMirror.defineMIME("application/javascript", "javascript"); +CodeMirror.defineMIME("application/x-javascript", "javascript"); +CodeMirror.defineMIME("application/ecmascript", "javascript"); +CodeMirror.defineMIME("application/json", {name: "javascript", json: true}); +CodeMirror.defineMIME("application/x-json", {name: "javascript", json: true}); +CodeMirror.defineMIME("application/ld+json", {name: "javascript", jsonld: true}); +CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true }); +CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true }); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/json-ld.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/json-ld.html new file mode 100644 index 0000000..aa03d6a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/json-ld.html @@ -0,0 +1,72 @@ + + +CodeMirror: JSON-LD mode + + + + + + + + + + + + +
                              +

                              JSON-LD mode

                              + + +
                              + + + +

                              This is a specialization of the JavaScript mode.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/test.js new file mode 100644 index 0000000..91b0e89 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/test.js @@ -0,0 +1,200 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({indentUnit: 2}, "javascript"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + MT("locals", + "[keyword function] [variable foo]([def a], [def b]) { [keyword var] [def c] [operator =] [number 10]; [keyword return] [variable-2 a] [operator +] [variable-2 c] [operator +] [variable d]; }"); + + MT("comma-and-binop", + "[keyword function](){ [keyword var] [def x] [operator =] [number 1] [operator +] [number 2], [def y]; }"); + + MT("destructuring", + "([keyword function]([def a], [[[def b], [def c] ]]) {", + " [keyword let] {[def d], [property foo]: [def c][operator =][number 10], [def x]} [operator =] [variable foo]([variable-2 a]);", + " [[[variable-2 c], [variable y] ]] [operator =] [variable-2 c];", + "})();"); + + MT("class_body", + "[keyword class] [variable Foo] {", + " [property constructor]() {}", + " [property sayName]() {", + " [keyword return] [string-2 `foo${][variable foo][string-2 }oo`];", + " }", + "}"); + + MT("class", + "[keyword class] [variable Point] [keyword extends] [variable SuperThing] {", + " [property get] [property prop]() { [keyword return] [number 24]; }", + " [property constructor]([def x], [def y]) {", + " [keyword super]([string 'something']);", + " [keyword this].[property x] [operator =] [variable-2 x];", + " }", + "}"); + + MT("module", + "[keyword module] [string 'foo'] {", + " [keyword export] [keyword let] [def x] [operator =] [number 42];", + " [keyword export] [keyword *] [keyword from] [string 'somewhere'];", + "}"); + + MT("import", + "[keyword function] [variable foo]() {", + " [keyword import] [def $] [keyword from] [string 'jquery'];", + " [keyword module] [def crypto] [keyword from] [string 'crypto'];", + " [keyword import] { [def encrypt], [def decrypt] } [keyword from] [string 'crypto'];", + "}"); + + MT("const", + "[keyword function] [variable f]() {", + " [keyword const] [[ [def a], [def b] ]] [operator =] [[ [number 1], [number 2] ]];", + "}"); + + MT("for/of", + "[keyword for]([keyword let] [variable of] [keyword of] [variable something]) {}"); + + MT("generator", + "[keyword function*] [variable repeat]([def n]) {", + " [keyword for]([keyword var] [def i] [operator =] [number 0]; [variable-2 i] [operator <] [variable-2 n]; [operator ++][variable-2 i])", + " [keyword yield] [variable-2 i];", + "}"); + + MT("quotedStringAddition", + "[keyword let] [variable f] [operator =] [variable a] [operator +] [string 'fatarrow'] [operator +] [variable c];"); + + MT("quotedFatArrow", + "[keyword let] [variable f] [operator =] [variable a] [operator +] [string '=>'] [operator +] [variable c];"); + + MT("fatArrow", + "[variable array].[property filter]([def a] [operator =>] [variable-2 a] [operator +] [number 1]);", + "[variable a];", // No longer in scope + "[keyword let] [variable f] [operator =] ([[ [def a], [def b] ]], [def c]) [operator =>] [variable-2 a] [operator +] [variable-2 c];", + "[variable c];"); + + MT("spread", + "[keyword function] [variable f]([def a], [meta ...][def b]) {", + " [variable something]([variable-2 a], [meta ...][variable-2 b]);", + "}"); + + MT("comprehension", + "[keyword function] [variable f]() {", + " [[([variable x] [operator +] [number 1]) [keyword for] ([keyword var] [def x] [keyword in] [variable y]) [keyword if] [variable pred]([variable-2 x]) ]];", + " ([variable u] [keyword for] ([keyword var] [def u] [keyword of] [variable generateValues]()) [keyword if] ([variable-2 u].[property color] [operator ===] [string 'blue']));", + "}"); + + MT("quasi", + "[variable re][string-2 `fofdlakj${][variable x] [operator +] ([variable re][string-2 `foo`]) [operator +] [number 1][string-2 }fdsa`] [operator +] [number 2]"); + + MT("quasi_no_function", + "[variable x] [operator =] [string-2 `fofdlakj${][variable x] [operator +] [string-2 `foo`] [operator +] [number 1][string-2 }fdsa`] [operator +] [number 2]"); + + MT("indent_statement", + "[keyword var] [variable x] [operator =] [number 10]", + "[variable x] [operator +=] [variable y] [operator +]", + " [atom Infinity]", + "[keyword debugger];"); + + MT("indent_if", + "[keyword if] ([number 1])", + " [keyword break];", + "[keyword else] [keyword if] ([number 2])", + " [keyword continue];", + "[keyword else]", + " [number 10];", + "[keyword if] ([number 1]) {", + " [keyword break];", + "} [keyword else] [keyword if] ([number 2]) {", + " [keyword continue];", + "} [keyword else] {", + " [number 10];", + "}"); + + MT("indent_for", + "[keyword for] ([keyword var] [variable i] [operator =] [number 0];", + " [variable i] [operator <] [number 100];", + " [variable i][operator ++])", + " [variable doSomething]([variable i]);", + "[keyword debugger];"); + + MT("indent_c_style", + "[keyword function] [variable foo]()", + "{", + " [keyword debugger];", + "}"); + + MT("indent_else", + "[keyword for] (;;)", + " [keyword if] ([variable foo])", + " [keyword if] ([variable bar])", + " [number 1];", + " [keyword else]", + " [number 2];", + " [keyword else]", + " [number 3];"); + + MT("indent_funarg", + "[variable foo]([number 10000],", + " [keyword function]([def a]) {", + " [keyword debugger];", + "};"); + + MT("indent_below_if", + "[keyword for] (;;)", + " [keyword if] ([variable foo])", + " [number 1];", + "[number 2];"); + + MT("multilinestring", + "[keyword var] [variable x] [operator =] [string 'foo\\]", + "[string bar'];"); + + MT("scary_regexp", + "[string-2 /foo[[/]]bar/];"); + + MT("indent_strange_array", + "[keyword var] [variable x] [operator =] [[", + " [number 1],,", + " [number 2],", + "]];", + "[number 10];"); + + var jsonld_mode = CodeMirror.getMode( + {indentUnit: 2}, + {name: "javascript", jsonld: true} + ); + function LD(name) { + test.mode(name, jsonld_mode, Array.prototype.slice.call(arguments, 1)); + } + + LD("json_ld_keywords", + '{', + ' [meta "@context"]: {', + ' [meta "@base"]: [string "http://example.com"],', + ' [meta "@vocab"]: [string "http://xmlns.com/foaf/0.1/"],', + ' [property "likesFlavor"]: {', + ' [meta "@container"]: [meta "@list"]', + ' [meta "@reverse"]: [string "@beFavoriteOf"]', + ' },', + ' [property "nick"]: { [meta "@container"]: [meta "@set"] },', + ' [property "nick"]: { [meta "@container"]: [meta "@index"] }', + ' },', + ' [meta "@graph"]: [[ {', + ' [meta "@id"]: [string "http://dbpedia.org/resource/John_Lennon"],', + ' [property "name"]: [string "John Lennon"],', + ' [property "modified"]: {', + ' [meta "@value"]: [string "2010-05-29T14:17:39+02:00"],', + ' [meta "@type"]: [string "http://www.w3.org/2001/XMLSchema#dateTime"]', + ' }', + ' } ]]', + '}'); + + LD("json_ld_fake", + '{', + ' [property "@fake"]: [string "@fake"],', + ' [property "@contextual"]: [string "@identifier"],', + ' [property "user@domain.com"]: [string "@graphical"],', + ' [property "@ID"]: [string "@@ID"]', + '}'); +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/typescript.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/typescript.html new file mode 100644 index 0000000..c701abb --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/javascript/typescript.html @@ -0,0 +1,61 @@ + + +CodeMirror: TypeScript mode + + + + + + + + + +
                              +

                              TypeScript mode

                              + + +
                              + + + +

                              This is a specialization of the JavaScript mode.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jinja2/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jinja2/index.html new file mode 100644 index 0000000..5a70e91 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jinja2/index.html @@ -0,0 +1,54 @@ + + +CodeMirror: Jinja2 mode + + + + + + + + + +
                              +

                              Jinja2 mode

                              +
                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jinja2/jinja2.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jinja2/jinja2.js new file mode 100644 index 0000000..ed19558 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/jinja2/jinja2.js @@ -0,0 +1,142 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + CodeMirror.defineMode("jinja2", function() { + var keywords = ["and", "as", "block", "endblock", "by", "cycle", "debug", "else", "elif", + "extends", "filter", "endfilter", "firstof", "for", + "endfor", "if", "endif", "ifchanged", "endifchanged", + "ifequal", "endifequal", "ifnotequal", + "endifnotequal", "in", "include", "load", "not", "now", "or", + "parsed", "regroup", "reversed", "spaceless", + "endspaceless", "ssi", "templatetag", "openblock", + "closeblock", "openvariable", "closevariable", + "openbrace", "closebrace", "opencomment", + "closecomment", "widthratio", "url", "with", "endwith", + "get_current_language", "trans", "endtrans", "noop", "blocktrans", + "endblocktrans", "get_available_languages", + "get_current_language_bidi", "plural"], + operator = /^[+\-*&%=<>!?|~^]/, + sign = /^[:\[\(\{]/, + atom = ["true", "false"], + number = /^(\d[+\-\*\/])?\d+(\.\d+)?/; + + keywords = new RegExp("((" + keywords.join(")|(") + "))\\b"); + atom = new RegExp("((" + atom.join(")|(") + "))\\b"); + + function tokenBase (stream, state) { + var ch = stream.peek(); + + //Comment + if (state.incomment) { + if(!stream.skipTo("#}")) { + stream.skipToEnd(); + } else { + stream.eatWhile(/\#|}/); + state.incomment = false; + } + return "comment"; + //Tag + } else if (state.intag) { + //After operator + if(state.operator) { + state.operator = false; + if(stream.match(atom)) { + return "atom"; + } + if(stream.match(number)) { + return "number"; + } + } + //After sign + if(state.sign) { + state.sign = false; + if(stream.match(atom)) { + return "atom"; + } + if(stream.match(number)) { + return "number"; + } + } + + if(state.instring) { + if(ch == state.instring) { + state.instring = false; + } + stream.next(); + return "string"; + } else if(ch == "'" || ch == '"') { + state.instring = ch; + stream.next(); + return "string"; + } else if(stream.match(state.intag + "}") || stream.eat("-") && stream.match(state.intag + "}")) { + state.intag = false; + return "tag"; + } else if(stream.match(operator)) { + state.operator = true; + return "operator"; + } else if(stream.match(sign)) { + state.sign = true; + } else { + if(stream.eat(" ") || stream.sol()) { + if(stream.match(keywords)) { + return "keyword"; + } + if(stream.match(atom)) { + return "atom"; + } + if(stream.match(number)) { + return "number"; + } + if(stream.sol()) { + stream.next(); + } + } else { + stream.next(); + } + + } + return "variable"; + } else if (stream.eat("{")) { + if (ch = stream.eat("#")) { + state.incomment = true; + if(!stream.skipTo("#}")) { + stream.skipToEnd(); + } else { + stream.eatWhile(/\#|}/); + state.incomment = false; + } + return "comment"; + //Open tag + } else if (ch = stream.eat(/\{|%/)) { + //Cache close tag + state.intag = ch; + if(ch == "{") { + state.intag = "}"; + } + stream.eat("-"); + return "tag"; + } + } + stream.next(); + }; + + return { + startState: function () { + return {tokenize: tokenBase}; + }, + token: function (stream, state) { + return state.tokenize(stream, state); + } + }; + }); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/julia/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/julia/index.html new file mode 100644 index 0000000..e35bf2d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/julia/index.html @@ -0,0 +1,195 @@ + + +CodeMirror: Julia mode + + + + + + + + + +
                              +

                              Julia mode

                              + +
                              + + +

                              MIME types defined: text/x-julia.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/julia/julia.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/julia/julia.js new file mode 100644 index 0000000..e854988 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/julia/julia.js @@ -0,0 +1,301 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("julia", function(_conf, parserConf) { + var ERRORCLASS = 'error'; + + function wordRegexp(words) { + return new RegExp("^((" + words.join(")|(") + "))\\b"); + } + + var operators = parserConf.operators || /^\.?[|&^\\%*+\-<>!=\/]=?|\?|~|:|\$|\.[<>]|<<=?|>>>?=?|\.[<>=]=|->?|\/\/|\bin\b/; + var delimiters = parserConf.delimiters || /^[;,()[\]{}]/; + var identifiers = parserConf.identifiers|| /^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*!*/; + var blockOpeners = ["begin", "function", "type", "immutable", "let", "macro", "for", "while", "quote", "if", "else", "elseif", "try", "finally", "catch", "do"]; + var blockClosers = ["end", "else", "elseif", "catch", "finally"]; + var keywordList = ['if', 'else', 'elseif', 'while', 'for', 'begin', 'let', 'end', 'do', 'try', 'catch', 'finally', 'return', 'break', 'continue', 'global', 'local', 'const', 'export', 'import', 'importall', 'using', 'function', 'macro', 'module', 'baremodule', 'type', 'immutable', 'quote', 'typealias', 'abstract', 'bitstype', 'ccall']; + var builtinList = ['true', 'false', 'enumerate', 'open', 'close', 'nothing', 'NaN', 'Inf', 'print', 'println', 'Int', 'Int8', 'Uint8', 'Int16', 'Uint16', 'Int32', 'Uint32', 'Int64', 'Uint64', 'Int128', 'Uint128', 'Bool', 'Char', 'Float16', 'Float32', 'Float64', 'Array', 'Vector', 'Matrix', 'String', 'UTF8String', 'ASCIIString', 'error', 'warn', 'info', '@printf']; + + //var stringPrefixes = new RegExp("^[br]?('|\")") + var stringPrefixes = /^(`|'|"{3}|([br]?"))/; + var keywords = wordRegexp(keywordList); + var builtins = wordRegexp(builtinList); + var openers = wordRegexp(blockOpeners); + var closers = wordRegexp(blockClosers); + var macro = /^@[_A-Za-z][_A-Za-z0-9]*/; + var symbol = /^:[_A-Za-z][_A-Za-z0-9]*/; + var indentInfo = null; + + function in_array(state) { + var ch = cur_scope(state); + if(ch=="[" || ch=="{") { + return true; + } + else { + return false; + } + } + + function cur_scope(state) { + if(state.scopes.length==0) { + return null; + } + return state.scopes[state.scopes.length - 1]; + } + + // tokenizers + function tokenBase(stream, state) { + // Handle scope changes + var leaving_expr = state.leaving_expr; + if(stream.sol()) { + leaving_expr = false; + } + state.leaving_expr = false; + if(leaving_expr) { + if(stream.match(/^'+/)) { + return 'operator'; + } + + } + + if(stream.match(/^\.{2,3}/)) { + return 'operator'; + } + + if (stream.eatSpace()) { + return null; + } + + var ch = stream.peek(); + // Handle Comments + if (ch === '#') { + stream.skipToEnd(); + return 'comment'; + } + if(ch==='[') { + state.scopes.push("["); + } + + if(ch==='{') { + state.scopes.push("{"); + } + + var scope=cur_scope(state); + + if(scope==='[' && ch===']') { + state.scopes.pop(); + state.leaving_expr=true; + } + + if(scope==='{' && ch==='}') { + state.scopes.pop(); + state.leaving_expr=true; + } + + if(ch===')') { + state.leaving_expr = true; + } + + var match; + if(!in_array(state) && (match=stream.match(openers, false))) { + state.scopes.push(match); + } + + if(!in_array(state) && stream.match(closers, false)) { + state.scopes.pop(); + } + + if(in_array(state)) { + if(stream.match(/^end/)) { + return 'number'; + } + + } + + if(stream.match(/^=>/)) { + return 'operator'; + } + + + // Handle Number Literals + if (stream.match(/^[0-9\.]/, false)) { + var imMatcher = RegExp(/^im\b/); + var floatLiteral = false; + // Floats + if (stream.match(/^\d*\.(?!\.)\d+([ef][\+\-]?\d+)?/i)) { floatLiteral = true; } + if (stream.match(/^\d+\.(?!\.)\d*/)) { floatLiteral = true; } + if (stream.match(/^\.\d+/)) { floatLiteral = true; } + if (floatLiteral) { + // Float literals may be "imaginary" + stream.match(imMatcher); + state.leaving_expr = true; + return 'number'; + } + // Integers + var intLiteral = false; + // Hex + if (stream.match(/^0x[0-9a-f]+/i)) { intLiteral = true; } + // Binary + if (stream.match(/^0b[01]+/i)) { intLiteral = true; } + // Octal + if (stream.match(/^0o[0-7]+/i)) { intLiteral = true; } + // Decimal + if (stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)) { + intLiteral = true; + } + // Zero by itself with no other piece of number. + if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; } + if (intLiteral) { + // Integer literals may be "long" + stream.match(imMatcher); + state.leaving_expr = true; + return 'number'; + } + } + + if(stream.match(/^(::)|(<:)/)) { + return 'operator'; + } + + // Handle symbols + if(!leaving_expr && stream.match(symbol)) { + return 'string'; + } + + // Handle operators and Delimiters + if (stream.match(operators)) { + return 'operator'; + } + + + // Handle Strings + if (stream.match(stringPrefixes)) { + state.tokenize = tokenStringFactory(stream.current()); + return state.tokenize(stream, state); + } + + if (stream.match(macro)) { + return 'meta'; + } + + + if (stream.match(delimiters)) { + return null; + } + + if (stream.match(keywords)) { + return 'keyword'; + } + + if (stream.match(builtins)) { + return 'builtin'; + } + + + if (stream.match(identifiers)) { + state.leaving_expr=true; + return 'variable'; + } + // Handle non-detected items + stream.next(); + return ERRORCLASS; + } + + function tokenStringFactory(delimiter) { + while ('rub'.indexOf(delimiter.charAt(0).toLowerCase()) >= 0) { + delimiter = delimiter.substr(1); + } + var singleline = delimiter.length == 1; + var OUTCLASS = 'string'; + + function tokenString(stream, state) { + while (!stream.eol()) { + stream.eatWhile(/[^'"\\]/); + if (stream.eat('\\')) { + stream.next(); + if (singleline && stream.eol()) { + return OUTCLASS; + } + } else if (stream.match(delimiter)) { + state.tokenize = tokenBase; + return OUTCLASS; + } else { + stream.eat(/['"]/); + } + } + if (singleline) { + if (parserConf.singleLineStringErrors) { + return ERRORCLASS; + } else { + state.tokenize = tokenBase; + } + } + return OUTCLASS; + } + tokenString.isString = true; + return tokenString; + } + + function tokenLexer(stream, state) { + indentInfo = null; + var style = state.tokenize(stream, state); + var current = stream.current(); + + // Handle '.' connected identifiers + if (current === '.') { + style = stream.match(identifiers, false) ? null : ERRORCLASS; + if (style === null && state.lastStyle === 'meta') { + // Apply 'meta' style to '.' connected identifiers when + // appropriate. + style = 'meta'; + } + return style; + } + + return style; + } + + var external = { + startState: function() { + return { + tokenize: tokenBase, + scopes: [], + leaving_expr: false + }; + }, + + token: function(stream, state) { + var style = tokenLexer(stream, state); + state.lastStyle = style; + return style; + }, + + indent: function(state, textAfter) { + var delta = 0; + if(textAfter=="end" || textAfter=="]" || textAfter=="}" || textAfter=="else" || textAfter=="elseif" || textAfter=="catch" || textAfter=="finally") { + delta = -1; + } + return (state.scopes.length + delta) * 4; + }, + + lineComment: "#", + fold: "indent", + electricChars: "edlsifyh]}" + }; + return external; +}); + + +CodeMirror.defineMIME("text/x-julia", "julia"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/kotlin/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/kotlin/index.html new file mode 100644 index 0000000..859e109 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/kotlin/index.html @@ -0,0 +1,89 @@ + + +CodeMirror: Kotlin mode + + + + + + + + + +
                              +

                              Kotlin mode

                              + + +
                              + + +

                              Mode for Kotlin (http://kotlin.jetbrains.org/)

                              +

                              Developed by Hadi Hariri (https://github.com/hhariri).

                              +

                              MIME type defined: text/x-kotlin.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/kotlin/kotlin.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/kotlin/kotlin.js new file mode 100644 index 0000000..73c84f6 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/kotlin/kotlin.js @@ -0,0 +1,280 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("kotlin", function (config, parserConfig) { + function words(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + var multiLineStrings = parserConfig.multiLineStrings; + + var keywords = words( + "package continue return object while break class data trait throw super" + + " when type this else This try val var fun for is in if do as true false null get set"); + var softKeywords = words("import" + + " where by get set abstract enum open annotation override private public internal" + + " protected catch out vararg inline finally final ref"); + var blockKeywords = words("catch class do else finally for if where try while enum"); + var atoms = words("null true false this"); + + var curPunc; + + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"' || ch == "'") { + return startString(ch, stream, state); + } + // Wildcard import w/o trailing semicolon (import smth.*) + if (ch == "." && stream.eat("*")) { + return "word"; + } + if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + curPunc = ch; + return null; + } + if (/\d/.test(ch)) { + if (stream.eat(/eE/)) { + stream.eat(/\+\-/); + stream.eatWhile(/\d/); + } + return "number"; + } + if (ch == "/") { + if (stream.eat("*")) { + state.tokenize.push(tokenComment); + return tokenComment(stream, state); + } + if (stream.eat("/")) { + stream.skipToEnd(); + return "comment"; + } + if (expectExpression(state.lastToken)) { + return startString(ch, stream, state); + } + } + // Commented + if (ch == "-" && stream.eat(">")) { + curPunc = "->"; + return null; + } + if (/[\-+*&%=<>!?|\/~]/.test(ch)) { + stream.eatWhile(/[\-+*&%=<>|~]/); + return "operator"; + } + stream.eatWhile(/[\w\$_]/); + + var cur = stream.current(); + if (atoms.propertyIsEnumerable(cur)) { + return "atom"; + } + if (softKeywords.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "softKeyword"; + } + + if (keywords.propertyIsEnumerable(cur)) { + if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; + return "keyword"; + } + return "word"; + } + + tokenBase.isBase = true; + + function startString(quote, stream, state) { + var tripleQuoted = false; + if (quote != "/" && stream.eat(quote)) { + if (stream.eat(quote)) tripleQuoted = true; + else return "string"; + } + function t(stream, state) { + var escaped = false, next, end = !tripleQuoted; + + while ((next = stream.next()) != null) { + if (next == quote && !escaped) { + if (!tripleQuoted) { + break; + } + if (stream.match(quote + quote)) { + end = true; + break; + } + } + + if (quote == '"' && next == "$" && !escaped && stream.eat("{")) { + state.tokenize.push(tokenBaseUntilBrace()); + return "string"; + } + + if (next == "$" && !escaped && !stream.eat(" ")) { + state.tokenize.push(tokenBaseUntilSpace()); + return "string"; + } + escaped = !escaped && next == "\\"; + } + if (multiLineStrings) + state.tokenize.push(t); + if (end) state.tokenize.pop(); + return "string"; + } + + state.tokenize.push(t); + return t(stream, state); + } + + function tokenBaseUntilBrace() { + var depth = 1; + + function t(stream, state) { + if (stream.peek() == "}") { + depth--; + if (depth == 0) { + state.tokenize.pop(); + return state.tokenize[state.tokenize.length - 1](stream, state); + } + } else if (stream.peek() == "{") { + depth++; + } + return tokenBase(stream, state); + } + + t.isBase = true; + return t; + } + + function tokenBaseUntilSpace() { + function t(stream, state) { + if (stream.eat(/[\w]/)) { + var isWord = stream.eatWhile(/[\w]/); + if (isWord) { + state.tokenize.pop(); + return "word"; + } + } + state.tokenize.pop(); + return "string"; + } + + t.isBase = true; + return t; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize.pop(); + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function expectExpression(last) { + return !last || last == "operator" || last == "->" || /[\.\[\{\(,;:]/.test(last) || + last == "newstatement" || last == "keyword" || last == "proplabel"; + } + + function Context(indented, column, type, align, prev) { + this.indented = indented; + this.column = column; + this.type = type; + this.align = align; + this.prev = prev; + } + + function pushContext(state, col, type) { + return state.context = new Context(state.indented, col, type, null, state.context); + } + + function popContext(state) { + var t = state.context.type; + if (t == ")" || t == "]" || t == "}") + state.indented = state.context.indented; + return state.context = state.context.prev; + } + + // Interface + + return { + startState: function (basecolumn) { + return { + tokenize: [tokenBase], + context: new Context((basecolumn || 0) - config.indentUnit, 0, "top", false), + indented: 0, + startOfLine: true, + lastToken: null + }; + }, + + token: function (stream, state) { + var ctx = state.context; + if (stream.sol()) { + if (ctx.align == null) ctx.align = false; + state.indented = stream.indentation(); + state.startOfLine = true; + // Automatic semicolon insertion + if (ctx.type == "statement" && !expectExpression(state.lastToken)) { + popContext(state); + ctx = state.context; + } + } + if (stream.eatSpace()) return null; + curPunc = null; + var style = state.tokenize[state.tokenize.length - 1](stream, state); + if (style == "comment") return style; + if (ctx.align == null) ctx.align = true; + if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state); + // Handle indentation for {x -> \n ... } + else if (curPunc == "->" && ctx.type == "statement" && ctx.prev.type == "}") { + popContext(state); + state.context.align = false; + } + else if (curPunc == "{") pushContext(state, stream.column(), "}"); + else if (curPunc == "[") pushContext(state, stream.column(), "]"); + else if (curPunc == "(") pushContext(state, stream.column(), ")"); + else if (curPunc == "}") { + while (ctx.type == "statement") ctx = popContext(state); + if (ctx.type == "}") ctx = popContext(state); + while (ctx.type == "statement") ctx = popContext(state); + } + else if (curPunc == ctx.type) popContext(state); + else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement")) + pushContext(state, stream.column(), "statement"); + state.startOfLine = false; + state.lastToken = curPunc || style; + return style; + }, + + indent: function (state, textAfter) { + if (!state.tokenize[state.tokenize.length - 1].isBase) return 0; + var firstChar = textAfter && textAfter.charAt(0), ctx = state.context; + if (ctx.type == "statement" && !expectExpression(state.lastToken)) ctx = ctx.prev; + var closing = firstChar == ctx.type; + if (ctx.type == "statement") { + return ctx.indented + (firstChar == "{" ? 0 : config.indentUnit); + } + else if (ctx.align) return ctx.column + (closing ? 0 : 1); + else return ctx.indented + (closing ? 0 : config.indentUnit); + }, + + electricChars: "{}" + }; +}); + +CodeMirror.defineMIME("text/x-kotlin", "kotlin"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/livescript/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/livescript/index.html new file mode 100644 index 0000000..f415479 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/livescript/index.html @@ -0,0 +1,459 @@ + + +CodeMirror: LiveScript mode + + + + + + + + + + +
                              +

                              LiveScript mode

                              +
                              + + +

                              MIME types defined: text/x-livescript.

                              + +

                              The LiveScript mode was written by Kenneth Bentley.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/livescript/livescript.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/livescript/livescript.js new file mode 100644 index 0000000..55882ef --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/livescript/livescript.js @@ -0,0 +1,280 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/** + * Link to the project's GitHub page: + * https://github.com/duralog/CodeMirror + */ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + CodeMirror.defineMode('livescript', function(){ + var tokenBase = function(stream, state) { + var next_rule = state.next || "start"; + if (next_rule) { + state.next = state.next; + var nr = Rules[next_rule]; + if (nr.splice) { + for (var i$ = 0; i$ < nr.length; ++i$) { + var r = nr[i$], m; + if (r.regex && (m = stream.match(r.regex))) { + state.next = r.next || state.next; + return r.token; + } + } + stream.next(); + return 'error'; + } + if (stream.match(r = Rules[next_rule])) { + if (r.regex && stream.match(r.regex)) { + state.next = r.next; + return r.token; + } else { + stream.next(); + return 'error'; + } + } + } + stream.next(); + return 'error'; + }; + var external = { + startState: function(){ + return { + next: 'start', + lastToken: null + }; + }, + token: function(stream, state){ + while (stream.pos == stream.start) + var style = tokenBase(stream, state); + state.lastToken = { + style: style, + indent: stream.indentation(), + content: stream.current() + }; + return style.replace(/\./g, ' '); + }, + indent: function(state){ + var indentation = state.lastToken.indent; + if (state.lastToken.content.match(indenter)) { + indentation += 2; + } + return indentation; + } + }; + return external; + }); + + var identifier = '(?![\\d\\s])[$\\w\\xAA-\\uFFDC](?:(?!\\s)[$\\w\\xAA-\\uFFDC]|-[A-Za-z])*'; + var indenter = RegExp('(?:[({[=:]|[-~]>|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*' + identifier + ')?))\\s*$'); + var keywordend = '(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))'; + var stringfill = { + token: 'string', + regex: '.+' + }; + var Rules = { + start: [ + { + token: 'comment.doc', + regex: '/\\*', + next: 'comment' + }, { + token: 'comment', + regex: '#.*' + }, { + token: 'keyword', + regex: '(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)' + keywordend + }, { + token: 'constant.language', + regex: '(?:true|false|yes|no|on|off|null|void|undefined)' + keywordend + }, { + token: 'invalid.illegal', + regex: '(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)' + keywordend + }, { + token: 'language.support.class', + regex: '(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)' + keywordend + }, { + token: 'language.support.function', + regex: '(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)' + keywordend + }, { + token: 'variable.language', + regex: '(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)' + keywordend + }, { + token: 'identifier', + regex: identifier + '\\s*:(?![:=])' + }, { + token: 'variable', + regex: identifier + }, { + token: 'keyword.operator', + regex: '(?:\\.{3}|\\s+\\?)' + }, { + token: 'keyword.variable', + regex: '(?:@+|::|\\.\\.)', + next: 'key' + }, { + token: 'keyword.operator', + regex: '\\.\\s*', + next: 'key' + }, { + token: 'string', + regex: '\\\\\\S[^\\s,;)}\\]]*' + }, { + token: 'string.doc', + regex: '\'\'\'', + next: 'qdoc' + }, { + token: 'string.doc', + regex: '"""', + next: 'qqdoc' + }, { + token: 'string', + regex: '\'', + next: 'qstring' + }, { + token: 'string', + regex: '"', + next: 'qqstring' + }, { + token: 'string', + regex: '`', + next: 'js' + }, { + token: 'string', + regex: '<\\[', + next: 'words' + }, { + token: 'string.regex', + regex: '//', + next: 'heregex' + }, { + token: 'string.regex', + regex: '\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}', + next: 'key' + }, { + token: 'constant.numeric', + regex: '(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)' + }, { + token: 'lparen', + regex: '[({[]' + }, { + token: 'rparen', + regex: '[)}\\]]', + next: 'key' + }, { + token: 'keyword.operator', + regex: '\\S+' + }, { + token: 'text', + regex: '\\s+' + } + ], + heregex: [ + { + token: 'string.regex', + regex: '.*?//[gimy$?]{0,4}', + next: 'start' + }, { + token: 'string.regex', + regex: '\\s*#{' + }, { + token: 'comment.regex', + regex: '\\s+(?:#.*)?' + }, { + token: 'string.regex', + regex: '\\S+' + } + ], + key: [ + { + token: 'keyword.operator', + regex: '[.?@!]+' + }, { + token: 'identifier', + regex: identifier, + next: 'start' + }, { + token: 'text', + regex: '', + next: 'start' + } + ], + comment: [ + { + token: 'comment.doc', + regex: '.*?\\*/', + next: 'start' + }, { + token: 'comment.doc', + regex: '.+' + } + ], + qdoc: [ + { + token: 'string', + regex: ".*?'''", + next: 'key' + }, stringfill + ], + qqdoc: [ + { + token: 'string', + regex: '.*?"""', + next: 'key' + }, stringfill + ], + qstring: [ + { + token: 'string', + regex: '[^\\\\\']*(?:\\\\.[^\\\\\']*)*\'', + next: 'key' + }, stringfill + ], + qqstring: [ + { + token: 'string', + regex: '[^\\\\"]*(?:\\\\.[^\\\\"]*)*"', + next: 'key' + }, stringfill + ], + js: [ + { + token: 'string', + regex: '[^\\\\`]*(?:\\\\.[^\\\\`]*)*`', + next: 'key' + }, stringfill + ], + words: [ + { + token: 'string', + regex: '.*?\\]>', + next: 'key' + }, stringfill + ] + }; + for (var idx in Rules) { + var r = Rules[idx]; + if (r.splice) { + for (var i = 0, len = r.length; i < len; ++i) { + var rr = r[i]; + if (typeof rr.regex === 'string') { + Rules[idx][i].regex = new RegExp('^' + rr.regex); + } + } + } else if (typeof rr.regex === 'string') { + Rules[idx].regex = new RegExp('^' + r.regex); + } + } + + CodeMirror.defineMIME('text/x-livescript', 'livescript'); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/lua/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/lua/index.html new file mode 100644 index 0000000..9b04fdd --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/lua/index.html @@ -0,0 +1,85 @@ + + +CodeMirror: Lua mode + + + + + + + + + + + +
                              +

                              Lua mode

                              +
                              + + +

                              Loosely based on Franciszek + Wawrzak's CodeMirror + 1 mode. One configuration parameter is + supported, specials, to which you can provide an + array of strings to have those identifiers highlighted with + the lua-special style.

                              +

                              MIME types defined: text/x-lua.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/lua/lua.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/lua/lua.js new file mode 100644 index 0000000..0b19abd --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/lua/lua.js @@ -0,0 +1,159 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +// LUA mode. Ported to CodeMirror 2 from Franciszek Wawrzak's +// CodeMirror 1 mode. +// highlights keywords, strings, comments (no leveling supported! ("[==[")), tokens, basic indenting + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("lua", function(config, parserConfig) { + var indentUnit = config.indentUnit; + + function prefixRE(words) { + return new RegExp("^(?:" + words.join("|") + ")", "i"); + } + function wordRE(words) { + return new RegExp("^(?:" + words.join("|") + ")$", "i"); + } + var specials = wordRE(parserConfig.specials || []); + + // long list of standard functions from lua manual + var builtins = wordRE([ + "_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load", + "loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require", + "select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall", + + "coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield", + + "debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable", + "debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable", + "debug.setupvalue","debug.traceback", + + "close","flush","lines","read","seek","setvbuf","write", + + "io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin", + "io.stdout","io.tmpfile","io.type","io.write", + + "math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg", + "math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max", + "math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh", + "math.sqrt","math.tan","math.tanh", + + "os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale", + "os.time","os.tmpname", + + "package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload", + "package.seeall", + + "string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub", + "string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper", + + "table.concat","table.insert","table.maxn","table.remove","table.sort" + ]); + var keywords = wordRE(["and","break","elseif","false","nil","not","or","return", + "true","function", "end", "if", "then", "else", "do", + "while", "repeat", "until", "for", "in", "local" ]); + + var indentTokens = wordRE(["function", "if","repeat","do", "\\(", "{"]); + var dedentTokens = wordRE(["end", "until", "\\)", "}"]); + var dedentPartial = prefixRE(["end", "until", "\\)", "}", "else", "elseif"]); + + function readBracket(stream) { + var level = 0; + while (stream.eat("=")) ++level; + stream.eat("["); + return level; + } + + function normal(stream, state) { + var ch = stream.next(); + if (ch == "-" && stream.eat("-")) { + if (stream.eat("[") && stream.eat("[")) + return (state.cur = bracketed(readBracket(stream), "comment"))(stream, state); + stream.skipToEnd(); + return "comment"; + } + if (ch == "\"" || ch == "'") + return (state.cur = string(ch))(stream, state); + if (ch == "[" && /[\[=]/.test(stream.peek())) + return (state.cur = bracketed(readBracket(stream), "string"))(stream, state); + if (/\d/.test(ch)) { + stream.eatWhile(/[\w.%]/); + return "number"; + } + if (/[\w_]/.test(ch)) { + stream.eatWhile(/[\w\\\-_.]/); + return "variable"; + } + return null; + } + + function bracketed(level, style) { + return function(stream, state) { + var curlev = null, ch; + while ((ch = stream.next()) != null) { + if (curlev == null) {if (ch == "]") curlev = 0;} + else if (ch == "=") ++curlev; + else if (ch == "]" && curlev == level) { state.cur = normal; break; } + else curlev = null; + } + return style; + }; + } + + function string(quote) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && !escaped) break; + escaped = !escaped && ch == "\\"; + } + if (!escaped) state.cur = normal; + return "string"; + }; + } + + return { + startState: function(basecol) { + return {basecol: basecol || 0, indentDepth: 0, cur: normal}; + }, + + token: function(stream, state) { + if (stream.eatSpace()) return null; + var style = state.cur(stream, state); + var word = stream.current(); + if (style == "variable") { + if (keywords.test(word)) style = "keyword"; + else if (builtins.test(word)) style = "builtin"; + else if (specials.test(word)) style = "variable-2"; + } + if ((style != "comment") && (style != "string")){ + if (indentTokens.test(word)) ++state.indentDepth; + else if (dedentTokens.test(word)) --state.indentDepth; + } + return style; + }, + + indent: function(state, textAfter) { + var closing = dedentPartial.test(textAfter); + return state.basecol + indentUnit * (state.indentDepth - (closing ? 1 : 0)); + }, + + lineComment: "--", + blockCommentStart: "--[[", + blockCommentEnd: "]]" + }; +}); + +CodeMirror.defineMIME("text/x-lua", "lua"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/index.html new file mode 100644 index 0000000..6c5f571 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/index.html @@ -0,0 +1,359 @@ + + +CodeMirror: Markdown mode + + + + + + + + + + + +
                              +

                              Markdown mode

                              +
                              + + + +

                              Optionally depends on the XML mode for properly highlighted inline XML blocks.

                              + +

                              MIME types defined: text/x-markdown.

                              + +

                              Parsing/Highlighting Tests: normal, verbose.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/markdown.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/markdown.js new file mode 100644 index 0000000..3c80311 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/markdown.js @@ -0,0 +1,765 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../xml/xml"), require("../meta")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../xml/xml", "../meta"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) { + + var htmlFound = CodeMirror.modes.hasOwnProperty("xml"); + var htmlMode = CodeMirror.getMode(cmCfg, htmlFound ? {name: "xml", htmlMode: true} : "text/plain"); + + function getMode(name) { + if (CodeMirror.findModeByName) { + var found = CodeMirror.findModeByName(name); + if (found) name = found.mime || found.mimes[0]; + } + var mode = CodeMirror.getMode(cmCfg, name); + return mode.name == "null" ? null : mode; + } + + // Should characters that affect highlighting be highlighted separate? + // Does not include characters that will be output (such as `1.` and `-` for lists) + if (modeCfg.highlightFormatting === undefined) + modeCfg.highlightFormatting = false; + + // Maximum number of nested blockquotes. Set to 0 for infinite nesting. + // Excess `>` will emit `error` token. + if (modeCfg.maxBlockquoteDepth === undefined) + modeCfg.maxBlockquoteDepth = 0; + + // Should underscores in words open/close em/strong? + if (modeCfg.underscoresBreakWords === undefined) + modeCfg.underscoresBreakWords = true; + + // Turn on fenced code blocks? ("```" to start/end) + if (modeCfg.fencedCodeBlocks === undefined) modeCfg.fencedCodeBlocks = false; + + // Turn on task lists? ("- [ ] " and "- [x] ") + if (modeCfg.taskLists === undefined) modeCfg.taskLists = false; + + // Turn on strikethrough syntax + if (modeCfg.strikethrough === undefined) + modeCfg.strikethrough = false; + + var codeDepth = 0; + + var header = 'header' + , code = 'comment' + , quote = 'quote' + , list1 = 'variable-2' + , list2 = 'variable-3' + , list3 = 'keyword' + , hr = 'hr' + , image = 'tag' + , formatting = 'formatting' + , linkinline = 'link' + , linkemail = 'link' + , linktext = 'link' + , linkhref = 'string' + , em = 'em' + , strong = 'strong' + , strikethrough = 'strikethrough'; + + var hrRE = /^([*\-=_])(?:\s*\1){2,}\s*$/ + , ulRE = /^[*\-+]\s+/ + , olRE = /^[0-9]+\.\s+/ + , taskListRE = /^\[(x| )\](?=\s)/ // Must follow ulRE or olRE + , atxHeaderRE = /^#+/ + , setextHeaderRE = /^(?:\={1,}|-{1,})$/ + , textRE = /^[^#!\[\]*_\\<>` "'(~]+/; + + function switchInline(stream, state, f) { + state.f = state.inline = f; + return f(stream, state); + } + + function switchBlock(stream, state, f) { + state.f = state.block = f; + return f(stream, state); + } + + + // Blocks + + function blankLine(state) { + // Reset linkTitle state + state.linkTitle = false; + // Reset EM state + state.em = false; + // Reset STRONG state + state.strong = false; + // Reset strikethrough state + state.strikethrough = false; + // Reset state.quote + state.quote = 0; + if (!htmlFound && state.f == htmlBlock) { + state.f = inlineNormal; + state.block = blockNormal; + } + // Reset state.trailingSpace + state.trailingSpace = 0; + state.trailingSpaceNewLine = false; + // Mark this line as blank + state.thisLineHasContent = false; + return null; + } + + function blockNormal(stream, state) { + + var sol = stream.sol(); + + var prevLineIsList = (state.list !== false); + if (state.list !== false && state.indentationDiff >= 0) { // Continued list + if (state.indentationDiff < 4) { // Only adjust indentation if *not* a code block + state.indentation -= state.indentationDiff; + } + state.list = null; + } else if (state.list !== false && state.indentation > 0) { + state.list = null; + state.listDepth = Math.floor(state.indentation / 4); + } else if (state.list !== false) { // No longer a list + state.list = false; + state.listDepth = 0; + } + + var match = null; + if (state.indentationDiff >= 4) { + state.indentation -= 4; + stream.skipToEnd(); + return code; + } else if (stream.eatSpace()) { + return null; + } else if (match = stream.match(atxHeaderRE)) { + state.header = match[0].length <= 6 ? match[0].length : 6; + if (modeCfg.highlightFormatting) state.formatting = "header"; + state.f = state.inline; + return getType(state); + } else if (state.prevLineHasContent && (match = stream.match(setextHeaderRE))) { + state.header = match[0].charAt(0) == '=' ? 1 : 2; + if (modeCfg.highlightFormatting) state.formatting = "header"; + state.f = state.inline; + return getType(state); + } else if (stream.eat('>')) { + state.indentation++; + state.quote = sol ? 1 : state.quote + 1; + if (modeCfg.highlightFormatting) state.formatting = "quote"; + stream.eatSpace(); + return getType(state); + } else if (stream.peek() === '[') { + return switchInline(stream, state, footnoteLink); + } else if (stream.match(hrRE, true)) { + return hr; + } else if ((!state.prevLineHasContent || prevLineIsList) && (stream.match(ulRE, false) || stream.match(olRE, false))) { + var listType = null; + if (stream.match(ulRE, true)) { + listType = 'ul'; + } else { + stream.match(olRE, true); + listType = 'ol'; + } + state.indentation += 4; + state.list = true; + state.listDepth++; + if (modeCfg.taskLists && stream.match(taskListRE, false)) { + state.taskList = true; + } + state.f = state.inline; + if (modeCfg.highlightFormatting) state.formatting = ["list", "list-" + listType]; + return getType(state); + } else if (modeCfg.fencedCodeBlocks && stream.match(/^```[ \t]*([\w+#]*)/, true)) { + // try switching mode + state.localMode = getMode(RegExp.$1); + if (state.localMode) state.localState = state.localMode.startState(); + state.f = state.block = local; + if (modeCfg.highlightFormatting) state.formatting = "code-block"; + state.code = true; + return getType(state); + } + + return switchInline(stream, state, state.inline); + } + + function htmlBlock(stream, state) { + var style = htmlMode.token(stream, state.htmlState); + if ((htmlFound && state.htmlState.tagStart === null && !state.htmlState.context) || + (state.md_inside && stream.current().indexOf(">") > -1)) { + state.f = inlineNormal; + state.block = blockNormal; + state.htmlState = null; + } + return style; + } + + function local(stream, state) { + if (stream.sol() && stream.match("```", false)) { + state.localMode = state.localState = null; + state.f = state.block = leavingLocal; + return null; + } else if (state.localMode) { + return state.localMode.token(stream, state.localState); + } else { + stream.skipToEnd(); + return code; + } + } + + function leavingLocal(stream, state) { + stream.match("```"); + state.block = blockNormal; + state.f = inlineNormal; + if (modeCfg.highlightFormatting) state.formatting = "code-block"; + state.code = true; + var returnType = getType(state); + state.code = false; + return returnType; + } + + // Inline + function getType(state) { + var styles = []; + + if (state.formatting) { + styles.push(formatting); + + if (typeof state.formatting === "string") state.formatting = [state.formatting]; + + for (var i = 0; i < state.formatting.length; i++) { + styles.push(formatting + "-" + state.formatting[i]); + + if (state.formatting[i] === "header") { + styles.push(formatting + "-" + state.formatting[i] + "-" + state.header); + } + + // Add `formatting-quote` and `formatting-quote-#` for blockquotes + // Add `error` instead if the maximum blockquote nesting depth is passed + if (state.formatting[i] === "quote") { + if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) { + styles.push(formatting + "-" + state.formatting[i] + "-" + state.quote); + } else { + styles.push("error"); + } + } + } + } + + if (state.taskOpen) { + styles.push("meta"); + return styles.length ? styles.join(' ') : null; + } + if (state.taskClosed) { + styles.push("property"); + return styles.length ? styles.join(' ') : null; + } + + if (state.linkHref) { + styles.push(linkhref); + return styles.length ? styles.join(' ') : null; + } + + if (state.strong) { styles.push(strong); } + if (state.em) { styles.push(em); } + if (state.strikethrough) { styles.push(strikethrough); } + + if (state.linkText) { styles.push(linktext); } + + if (state.code) { styles.push(code); } + + if (state.header) { styles.push(header); styles.push(header + "-" + state.header); } + + if (state.quote) { + styles.push(quote); + + // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth + if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) { + styles.push(quote + "-" + state.quote); + } else { + styles.push(quote + "-" + modeCfg.maxBlockquoteDepth); + } + } + + if (state.list !== false) { + var listMod = (state.listDepth - 1) % 3; + if (!listMod) { + styles.push(list1); + } else if (listMod === 1) { + styles.push(list2); + } else { + styles.push(list3); + } + } + + if (state.trailingSpaceNewLine) { + styles.push("trailing-space-new-line"); + } else if (state.trailingSpace) { + styles.push("trailing-space-" + (state.trailingSpace % 2 ? "a" : "b")); + } + + return styles.length ? styles.join(' ') : null; + } + + function handleText(stream, state) { + if (stream.match(textRE, true)) { + return getType(state); + } + return undefined; + } + + function inlineNormal(stream, state) { + var style = state.text(stream, state); + if (typeof style !== 'undefined') + return style; + + if (state.list) { // List marker (*, +, -, 1., etc) + state.list = null; + return getType(state); + } + + if (state.taskList) { + var taskOpen = stream.match(taskListRE, true)[1] !== "x"; + if (taskOpen) state.taskOpen = true; + else state.taskClosed = true; + if (modeCfg.highlightFormatting) state.formatting = "task"; + state.taskList = false; + return getType(state); + } + + state.taskOpen = false; + state.taskClosed = false; + + if (state.header && stream.match(/^#+$/, true)) { + if (modeCfg.highlightFormatting) state.formatting = "header"; + return getType(state); + } + + // Get sol() value now, before character is consumed + var sol = stream.sol(); + + var ch = stream.next(); + + if (ch === '\\') { + stream.next(); + if (modeCfg.highlightFormatting) { + var type = getType(state); + return type ? type + " formatting-escape" : "formatting-escape"; + } + } + + // Matches link titles present on next line + if (state.linkTitle) { + state.linkTitle = false; + var matchCh = ch; + if (ch === '(') { + matchCh = ')'; + } + matchCh = (matchCh+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); + var regex = '^\\s*(?:[^' + matchCh + '\\\\]+|\\\\\\\\|\\\\.)' + matchCh; + if (stream.match(new RegExp(regex), true)) { + return linkhref; + } + } + + // If this block is changed, it may need to be updated in GFM mode + if (ch === '`') { + var previousFormatting = state.formatting; + if (modeCfg.highlightFormatting) state.formatting = "code"; + var t = getType(state); + var before = stream.pos; + stream.eatWhile('`'); + var difference = 1 + stream.pos - before; + if (!state.code) { + codeDepth = difference; + state.code = true; + return getType(state); + } else { + if (difference === codeDepth) { // Must be exact + state.code = false; + return t; + } + state.formatting = previousFormatting; + return getType(state); + } + } else if (state.code) { + return getType(state); + } + + if (ch === '!' && stream.match(/\[[^\]]*\] ?(?:\(|\[)/, false)) { + stream.match(/\[[^\]]*\]/); + state.inline = state.f = linkHref; + return image; + } + + if (ch === '[' && stream.match(/.*\](\(.*\)| ?\[.*\])/, false)) { + state.linkText = true; + if (modeCfg.highlightFormatting) state.formatting = "link"; + return getType(state); + } + + if (ch === ']' && state.linkText && stream.match(/\(.*\)| ?\[.*\]/, false)) { + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + state.linkText = false; + state.inline = state.f = linkHref; + return type; + } + + if (ch === '<' && stream.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/, false)) { + state.f = state.inline = linkInline; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + if (type){ + type += " "; + } else { + type = ""; + } + return type + linkinline; + } + + if (ch === '<' && stream.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/, false)) { + state.f = state.inline = linkInline; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + if (type){ + type += " "; + } else { + type = ""; + } + return type + linkemail; + } + + if (ch === '<' && stream.match(/^\w/, false)) { + if (stream.string.indexOf(">") != -1) { + var atts = stream.string.substring(1,stream.string.indexOf(">")); + if (/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(atts)) { + state.md_inside = true; + } + } + stream.backUp(1); + state.htmlState = CodeMirror.startState(htmlMode); + return switchBlock(stream, state, htmlBlock); + } + + if (ch === '<' && stream.match(/^\/\w*?>/)) { + state.md_inside = false; + return "tag"; + } + + var ignoreUnderscore = false; + if (!modeCfg.underscoresBreakWords) { + if (ch === '_' && stream.peek() !== '_' && stream.match(/(\w)/, false)) { + var prevPos = stream.pos - 2; + if (prevPos >= 0) { + var prevCh = stream.string.charAt(prevPos); + if (prevCh !== '_' && prevCh.match(/(\w)/, false)) { + ignoreUnderscore = true; + } + } + } + } + if (ch === '*' || (ch === '_' && !ignoreUnderscore)) { + if (sol && stream.peek() === ' ') { + // Do nothing, surrounded by newline and space + } else if (state.strong === ch && stream.eat(ch)) { // Remove STRONG + if (modeCfg.highlightFormatting) state.formatting = "strong"; + var t = getType(state); + state.strong = false; + return t; + } else if (!state.strong && stream.eat(ch)) { // Add STRONG + state.strong = ch; + if (modeCfg.highlightFormatting) state.formatting = "strong"; + return getType(state); + } else if (state.em === ch) { // Remove EM + if (modeCfg.highlightFormatting) state.formatting = "em"; + var t = getType(state); + state.em = false; + return t; + } else if (!state.em) { // Add EM + state.em = ch; + if (modeCfg.highlightFormatting) state.formatting = "em"; + return getType(state); + } + } else if (ch === ' ') { + if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces + if (stream.peek() === ' ') { // Surrounded by spaces, ignore + return getType(state); + } else { // Not surrounded by spaces, back up pointer + stream.backUp(1); + } + } + } + + if (modeCfg.strikethrough) { + if (ch === '~' && stream.eatWhile(ch)) { + if (state.strikethrough) {// Remove strikethrough + if (modeCfg.highlightFormatting) state.formatting = "strikethrough"; + var t = getType(state); + state.strikethrough = false; + return t; + } else if (stream.match(/^[^\s]/, false)) {// Add strikethrough + state.strikethrough = true; + if (modeCfg.highlightFormatting) state.formatting = "strikethrough"; + return getType(state); + } + } else if (ch === ' ') { + if (stream.match(/^~~/, true)) { // Probably surrounded by space + if (stream.peek() === ' ') { // Surrounded by spaces, ignore + return getType(state); + } else { // Not surrounded by spaces, back up pointer + stream.backUp(2); + } + } + } + } + + if (ch === ' ') { + if (stream.match(/ +$/, false)) { + state.trailingSpace++; + } else if (state.trailingSpace) { + state.trailingSpaceNewLine = true; + } + } + + return getType(state); + } + + function linkInline(stream, state) { + var ch = stream.next(); + + if (ch === ">") { + state.f = state.inline = inlineNormal; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + if (type){ + type += " "; + } else { + type = ""; + } + return type + linkinline; + } + + stream.match(/^[^>]+/, true); + + return linkinline; + } + + function linkHref(stream, state) { + // Check if space, and return NULL if so (to avoid marking the space) + if(stream.eatSpace()){ + return null; + } + var ch = stream.next(); + if (ch === '(' || ch === '[') { + state.f = state.inline = getLinkHrefInside(ch === "(" ? ")" : "]"); + if (modeCfg.highlightFormatting) state.formatting = "link-string"; + state.linkHref = true; + return getType(state); + } + return 'error'; + } + + function getLinkHrefInside(endChar) { + return function(stream, state) { + var ch = stream.next(); + + if (ch === endChar) { + state.f = state.inline = inlineNormal; + if (modeCfg.highlightFormatting) state.formatting = "link-string"; + var returnState = getType(state); + state.linkHref = false; + return returnState; + } + + if (stream.match(inlineRE(endChar), true)) { + stream.backUp(1); + } + + state.linkHref = true; + return getType(state); + }; + } + + function footnoteLink(stream, state) { + if (stream.match(/^[^\]]*\]:/, false)) { + state.f = footnoteLinkInside; + stream.next(); // Consume [ + if (modeCfg.highlightFormatting) state.formatting = "link"; + state.linkText = true; + return getType(state); + } + return switchInline(stream, state, inlineNormal); + } + + function footnoteLinkInside(stream, state) { + if (stream.match(/^\]:/, true)) { + state.f = state.inline = footnoteUrl; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var returnType = getType(state); + state.linkText = false; + return returnType; + } + + stream.match(/^[^\]]+/, true); + + return linktext; + } + + function footnoteUrl(stream, state) { + // Check if space, and return NULL if so (to avoid marking the space) + if(stream.eatSpace()){ + return null; + } + // Match URL + stream.match(/^[^\s]+/, true); + // Check for link title + if (stream.peek() === undefined) { // End of line, set flag to check next line + state.linkTitle = true; + } else { // More content on line, check if link title + stream.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/, true); + } + state.f = state.inline = inlineNormal; + return linkhref; + } + + var savedInlineRE = []; + function inlineRE(endChar) { + if (!savedInlineRE[endChar]) { + // Escape endChar for RegExp (taken from http://stackoverflow.com/a/494122/526741) + endChar = (endChar+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); + // Match any non-endChar, escaped character, as well as the closing + // endChar. + savedInlineRE[endChar] = new RegExp('^(?:[^\\\\]|\\\\.)*?(' + endChar + ')'); + } + return savedInlineRE[endChar]; + } + + var mode = { + startState: function() { + return { + f: blockNormal, + + prevLineHasContent: false, + thisLineHasContent: false, + + block: blockNormal, + htmlState: null, + indentation: 0, + + inline: inlineNormal, + text: handleText, + + formatting: false, + linkText: false, + linkHref: false, + linkTitle: false, + em: false, + strong: false, + header: 0, + taskList: false, + list: false, + listDepth: 0, + quote: 0, + trailingSpace: 0, + trailingSpaceNewLine: false, + strikethrough: false + }; + }, + + copyState: function(s) { + return { + f: s.f, + + prevLineHasContent: s.prevLineHasContent, + thisLineHasContent: s.thisLineHasContent, + + block: s.block, + htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState), + indentation: s.indentation, + + localMode: s.localMode, + localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null, + + inline: s.inline, + text: s.text, + formatting: false, + linkTitle: s.linkTitle, + em: s.em, + strong: s.strong, + strikethrough: s.strikethrough, + header: s.header, + taskList: s.taskList, + list: s.list, + listDepth: s.listDepth, + quote: s.quote, + trailingSpace: s.trailingSpace, + trailingSpaceNewLine: s.trailingSpaceNewLine, + md_inside: s.md_inside + }; + }, + + token: function(stream, state) { + + // Reset state.formatting + state.formatting = false; + + if (stream.sol()) { + var forceBlankLine = !!state.header; + + // Reset state.header + state.header = 0; + + if (stream.match(/^\s*$/, true) || forceBlankLine) { + state.prevLineHasContent = false; + blankLine(state); + return forceBlankLine ? this.token(stream, state) : null; + } else { + state.prevLineHasContent = state.thisLineHasContent; + state.thisLineHasContent = true; + } + + // Reset state.taskList + state.taskList = false; + + // Reset state.code + state.code = false; + + // Reset state.trailingSpace + state.trailingSpace = 0; + state.trailingSpaceNewLine = false; + + state.f = state.block; + var indentation = stream.match(/^\s*/, true)[0].replace(/\t/g, ' ').length; + var difference = Math.floor((indentation - state.indentation) / 4) * 4; + if (difference > 4) difference = 4; + var adjustedIndentation = state.indentation + difference; + state.indentationDiff = adjustedIndentation - state.indentation; + state.indentation = adjustedIndentation; + if (indentation > 0) return null; + } + return state.f(stream, state); + }, + + innerMode: function(state) { + if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode}; + if (state.localState) return {state: state.localState, mode: state.localMode}; + return {state: state, mode: mode}; + }, + + blankLine: blankLine, + + getType: getType, + + fold: "markdown" + }; + return mode; +}, "xml"); + +CodeMirror.defineMIME("text/x-markdown", "markdown"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/test.js new file mode 100644 index 0000000..96ca1ae --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/markdown/test.js @@ -0,0 +1,754 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({tabSize: 4}, "markdown"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + var modeHighlightFormatting = CodeMirror.getMode({tabSize: 4}, {name: "markdown", highlightFormatting: true}); + function FT(name) { test.mode(name, modeHighlightFormatting, Array.prototype.slice.call(arguments, 1)); } + + FT("formatting_emAsterisk", + "[em&formatting&formatting-em *][em foo][em&formatting&formatting-em *]"); + + FT("formatting_emUnderscore", + "[em&formatting&formatting-em _][em foo][em&formatting&formatting-em _]"); + + FT("formatting_strongAsterisk", + "[strong&formatting&formatting-strong **][strong foo][strong&formatting&formatting-strong **]"); + + FT("formatting_strongUnderscore", + "[strong&formatting&formatting-strong __][strong foo][strong&formatting&formatting-strong __]"); + + FT("formatting_codeBackticks", + "[comment&formatting&formatting-code `][comment foo][comment&formatting&formatting-code `]"); + + FT("formatting_doubleBackticks", + "[comment&formatting&formatting-code ``][comment foo ` bar][comment&formatting&formatting-code ``]"); + + FT("formatting_atxHeader", + "[header&header-1&formatting&formatting-header&formatting-header-1 #][header&header-1 foo # bar ][header&header-1&formatting&formatting-header&formatting-header-1 #]"); + + FT("formatting_setextHeader", + "foo", + "[header&header-1&formatting&formatting-header&formatting-header-1 =]"); + + FT("formatting_blockquote", + "[quote"e-1&formatting&formatting-quote&formatting-quote-1 > ][quote"e-1 foo]"); + + FT("formatting_list", + "[variable-2&formatting&formatting-list&formatting-list-ul - ][variable-2 foo]"); + FT("formatting_list", + "[variable-2&formatting&formatting-list&formatting-list-ol 1. ][variable-2 foo]"); + + FT("formatting_link", + "[link&formatting&formatting-link [][link foo][link&formatting&formatting-link ]]][string&formatting&formatting-link-string (][string http://example.com/][string&formatting&formatting-link-string )]"); + + FT("formatting_linkReference", + "[link&formatting&formatting-link [][link foo][link&formatting&formatting-link ]]][string&formatting&formatting-link-string [][string bar][string&formatting&formatting-link-string ]]]", + "[link&formatting&formatting-link [][link bar][link&formatting&formatting-link ]]:] [string http://example.com/]"); + + FT("formatting_linkWeb", + "[link&formatting&formatting-link <][link http://example.com/][link&formatting&formatting-link >]"); + + FT("formatting_linkEmail", + "[link&formatting&formatting-link <][link user@example.com][link&formatting&formatting-link >]"); + + FT("formatting_escape", + "[formatting-escape \\*]"); + + MT("plainText", + "foo"); + + // Don't style single trailing space + MT("trailingSpace1", + "foo "); + + // Two or more trailing spaces should be styled with line break character + MT("trailingSpace2", + "foo[trailing-space-a ][trailing-space-new-line ]"); + + MT("trailingSpace3", + "foo[trailing-space-a ][trailing-space-b ][trailing-space-new-line ]"); + + MT("trailingSpace4", + "foo[trailing-space-a ][trailing-space-b ][trailing-space-a ][trailing-space-new-line ]"); + + // Code blocks using 4 spaces (regardless of CodeMirror.tabSize value) + MT("codeBlocksUsing4Spaces", + " [comment foo]"); + + // Code blocks using 4 spaces with internal indentation + MT("codeBlocksUsing4SpacesIndentation", + " [comment bar]", + " [comment hello]", + " [comment world]", + " [comment foo]", + "bar"); + + // Code blocks using 4 spaces with internal indentation + MT("codeBlocksUsing4SpacesIndentation", + " foo", + " [comment bar]", + " [comment hello]", + " [comment world]"); + + // Code blocks should end even after extra indented lines + MT("codeBlocksWithTrailingIndentedLine", + " [comment foo]", + " [comment bar]", + " [comment baz]", + " ", + "hello"); + + // Code blocks using 1 tab (regardless of CodeMirror.indentWithTabs value) + MT("codeBlocksUsing1Tab", + "\t[comment foo]"); + + // Inline code using backticks + MT("inlineCodeUsingBackticks", + "foo [comment `bar`]"); + + // Block code using single backtick (shouldn't work) + MT("blockCodeSingleBacktick", + "[comment `]", + "foo", + "[comment `]"); + + // Unclosed backticks + // Instead of simply marking as CODE, it would be nice to have an + // incomplete flag for CODE, that is styled slightly different. + MT("unclosedBackticks", + "foo [comment `bar]"); + + // Per documentation: "To include a literal backtick character within a + // code span, you can use multiple backticks as the opening and closing + // delimiters" + MT("doubleBackticks", + "[comment ``foo ` bar``]"); + + // Tests based on Dingus + // http://daringfireball.net/projects/markdown/dingus + // + // Multiple backticks within an inline code block + MT("consecutiveBackticks", + "[comment `foo```bar`]"); + + // Multiple backticks within an inline code block with a second code block + MT("consecutiveBackticks", + "[comment `foo```bar`] hello [comment `world`]"); + + // Unclosed with several different groups of backticks + MT("unclosedBackticks", + "[comment ``foo ``` bar` hello]"); + + // Closed with several different groups of backticks + MT("closedBackticks", + "[comment ``foo ``` bar` hello``] world"); + + // atx headers + // http://daringfireball.net/projects/markdown/syntax#header + + MT("atxH1", + "[header&header-1 # foo]"); + + MT("atxH2", + "[header&header-2 ## foo]"); + + MT("atxH3", + "[header&header-3 ### foo]"); + + MT("atxH4", + "[header&header-4 #### foo]"); + + MT("atxH5", + "[header&header-5 ##### foo]"); + + MT("atxH6", + "[header&header-6 ###### foo]"); + + // H6 - 7x '#' should still be H6, per Dingus + // http://daringfireball.net/projects/markdown/dingus + MT("atxH6NotH7", + "[header&header-6 ####### foo]"); + + // Inline styles should be parsed inside headers + MT("atxH1inline", + "[header&header-1 # foo ][header&header-1&em *bar*]"); + + // Setext headers - H1, H2 + // Per documentation, "Any number of underlining =’s or -’s will work." + // http://daringfireball.net/projects/markdown/syntax#header + // Ideally, the text would be marked as `header` as well, but this is + // not really feasible at the moment. So, instead, we're testing against + // what works today, to avoid any regressions. + // + // Check if single underlining = works + MT("setextH1", + "foo", + "[header&header-1 =]"); + + // Check if 3+ ='s work + MT("setextH1", + "foo", + "[header&header-1 ===]"); + + // Check if single underlining - works + MT("setextH2", + "foo", + "[header&header-2 -]"); + + // Check if 3+ -'s work + MT("setextH2", + "foo", + "[header&header-2 ---]"); + + // Single-line blockquote with trailing space + MT("blockquoteSpace", + "[quote"e-1 > foo]"); + + // Single-line blockquote + MT("blockquoteNoSpace", + "[quote"e-1 >foo]"); + + // No blank line before blockquote + MT("blockquoteNoBlankLine", + "foo", + "[quote"e-1 > bar]"); + + // Nested blockquote + MT("blockquoteSpace", + "[quote"e-1 > foo]", + "[quote"e-1 >][quote"e-2 > foo]", + "[quote"e-1 >][quote"e-2 >][quote"e-3 > foo]"); + + // Single-line blockquote followed by normal paragraph + MT("blockquoteThenParagraph", + "[quote"e-1 >foo]", + "", + "bar"); + + // Multi-line blockquote (lazy mode) + MT("multiBlockquoteLazy", + "[quote"e-1 >foo]", + "[quote"e-1 bar]"); + + // Multi-line blockquote followed by normal paragraph (lazy mode) + MT("multiBlockquoteLazyThenParagraph", + "[quote"e-1 >foo]", + "[quote"e-1 bar]", + "", + "hello"); + + // Multi-line blockquote (non-lazy mode) + MT("multiBlockquote", + "[quote"e-1 >foo]", + "[quote"e-1 >bar]"); + + // Multi-line blockquote followed by normal paragraph (non-lazy mode) + MT("multiBlockquoteThenParagraph", + "[quote"e-1 >foo]", + "[quote"e-1 >bar]", + "", + "hello"); + + // Check list types + + MT("listAsterisk", + "foo", + "bar", + "", + "[variable-2 * foo]", + "[variable-2 * bar]"); + + MT("listPlus", + "foo", + "bar", + "", + "[variable-2 + foo]", + "[variable-2 + bar]"); + + MT("listDash", + "foo", + "bar", + "", + "[variable-2 - foo]", + "[variable-2 - bar]"); + + MT("listNumber", + "foo", + "bar", + "", + "[variable-2 1. foo]", + "[variable-2 2. bar]"); + + // Lists require a preceding blank line (per Dingus) + MT("listBogus", + "foo", + "1. bar", + "2. hello"); + + // List after header + MT("listAfterHeader", + "[header&header-1 # foo]", + "[variable-2 - bar]"); + + // Formatting in lists (*) + MT("listAsteriskFormatting", + "[variable-2 * ][variable-2&em *foo*][variable-2 bar]", + "[variable-2 * ][variable-2&strong **foo**][variable-2 bar]", + "[variable-2 * ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2 bar]", + "[variable-2 * ][variable-2&comment `foo`][variable-2 bar]"); + + // Formatting in lists (+) + MT("listPlusFormatting", + "[variable-2 + ][variable-2&em *foo*][variable-2 bar]", + "[variable-2 + ][variable-2&strong **foo**][variable-2 bar]", + "[variable-2 + ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2 bar]", + "[variable-2 + ][variable-2&comment `foo`][variable-2 bar]"); + + // Formatting in lists (-) + MT("listDashFormatting", + "[variable-2 - ][variable-2&em *foo*][variable-2 bar]", + "[variable-2 - ][variable-2&strong **foo**][variable-2 bar]", + "[variable-2 - ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2 bar]", + "[variable-2 - ][variable-2&comment `foo`][variable-2 bar]"); + + // Formatting in lists (1.) + MT("listNumberFormatting", + "[variable-2 1. ][variable-2&em *foo*][variable-2 bar]", + "[variable-2 2. ][variable-2&strong **foo**][variable-2 bar]", + "[variable-2 3. ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2 bar]", + "[variable-2 4. ][variable-2&comment `foo`][variable-2 bar]"); + + // Paragraph lists + MT("listParagraph", + "[variable-2 * foo]", + "", + "[variable-2 * bar]"); + + // Multi-paragraph lists + // + // 4 spaces + MT("listMultiParagraph", + "[variable-2 * foo]", + "", + "[variable-2 * bar]", + "", + " [variable-2 hello]"); + + // 4 spaces, extra blank lines (should still be list, per Dingus) + MT("listMultiParagraphExtra", + "[variable-2 * foo]", + "", + "[variable-2 * bar]", + "", + "", + " [variable-2 hello]"); + + // 4 spaces, plus 1 space (should still be list, per Dingus) + MT("listMultiParagraphExtraSpace", + "[variable-2 * foo]", + "", + "[variable-2 * bar]", + "", + " [variable-2 hello]", + "", + " [variable-2 world]"); + + // 1 tab + MT("listTab", + "[variable-2 * foo]", + "", + "[variable-2 * bar]", + "", + "\t[variable-2 hello]"); + + // No indent + MT("listNoIndent", + "[variable-2 * foo]", + "", + "[variable-2 * bar]", + "", + "hello"); + + // Blockquote + MT("blockquote", + "[variable-2 * foo]", + "", + "[variable-2 * bar]", + "", + " [variable-2"e"e-1 > hello]"); + + // Code block + MT("blockquoteCode", + "[variable-2 * foo]", + "", + "[variable-2 * bar]", + "", + " [comment > hello]", + "", + " [variable-2 world]"); + + // Code block followed by text + MT("blockquoteCodeText", + "[variable-2 * foo]", + "", + " [variable-2 bar]", + "", + " [comment hello]", + "", + " [variable-2 world]"); + + // Nested list + + MT("listAsteriskNested", + "[variable-2 * foo]", + "", + " [variable-3 * bar]"); + + MT("listPlusNested", + "[variable-2 + foo]", + "", + " [variable-3 + bar]"); + + MT("listDashNested", + "[variable-2 - foo]", + "", + " [variable-3 - bar]"); + + MT("listNumberNested", + "[variable-2 1. foo]", + "", + " [variable-3 2. bar]"); + + MT("listMixed", + "[variable-2 * foo]", + "", + " [variable-3 + bar]", + "", + " [keyword - hello]", + "", + " [variable-2 1. world]"); + + MT("listBlockquote", + "[variable-2 * foo]", + "", + " [variable-3 + bar]", + "", + " [quote"e-1&variable-3 > hello]"); + + MT("listCode", + "[variable-2 * foo]", + "", + " [variable-3 + bar]", + "", + " [comment hello]"); + + // Code with internal indentation + MT("listCodeIndentation", + "[variable-2 * foo]", + "", + " [comment bar]", + " [comment hello]", + " [comment world]", + " [comment foo]", + " [variable-2 bar]"); + + // List nesting edge cases + MT("listNested", + "[variable-2 * foo]", + "", + " [variable-3 * bar]", + "", + " [variable-2 hello]" + ); + MT("listNested", + "[variable-2 * foo]", + "", + " [variable-3 * bar]", + "", + " [variable-3 * foo]" + ); + + // Code followed by text + MT("listCodeText", + "[variable-2 * foo]", + "", + " [comment bar]", + "", + "hello"); + + // Following tests directly from official Markdown documentation + // http://daringfireball.net/projects/markdown/syntax#hr + + MT("hrSpace", + "[hr * * *]"); + + MT("hr", + "[hr ***]"); + + MT("hrLong", + "[hr *****]"); + + MT("hrSpaceDash", + "[hr - - -]"); + + MT("hrDashLong", + "[hr ---------------------------------------]"); + + // Inline link with title + MT("linkTitle", + "[link [[foo]]][string (http://example.com/ \"bar\")] hello"); + + // Inline link without title + MT("linkNoTitle", + "[link [[foo]]][string (http://example.com/)] bar"); + + // Inline link with image + MT("linkImage", + "[link [[][tag ![[foo]]][string (http://example.com/)][link ]]][string (http://example.com/)] bar"); + + // Inline link with Em + MT("linkEm", + "[link [[][link&em *foo*][link ]]][string (http://example.com/)] bar"); + + // Inline link with Strong + MT("linkStrong", + "[link [[][link&strong **foo**][link ]]][string (http://example.com/)] bar"); + + // Inline link with EmStrong + MT("linkEmStrong", + "[link [[][link&strong **][link&em&strong *foo**][link&em *][link ]]][string (http://example.com/)] bar"); + + // Image with title + MT("imageTitle", + "[tag ![[foo]]][string (http://example.com/ \"bar\")] hello"); + + // Image without title + MT("imageNoTitle", + "[tag ![[foo]]][string (http://example.com/)] bar"); + + // Image with asterisks + MT("imageAsterisks", + "[tag ![[*foo*]]][string (http://example.com/)] bar"); + + // Not a link. Should be normal text due to square brackets being used + // regularly in text, especially in quoted material, and no space is allowed + // between square brackets and parentheses (per Dingus). + MT("notALink", + "[[foo]] (bar)"); + + // Reference-style links + MT("linkReference", + "[link [[foo]]][string [[bar]]] hello"); + + // Reference-style links with Em + MT("linkReferenceEm", + "[link [[][link&em *foo*][link ]]][string [[bar]]] hello"); + + // Reference-style links with Strong + MT("linkReferenceStrong", + "[link [[][link&strong **foo**][link ]]][string [[bar]]] hello"); + + // Reference-style links with EmStrong + MT("linkReferenceEmStrong", + "[link [[][link&strong **][link&em&strong *foo**][link&em *][link ]]][string [[bar]]] hello"); + + // Reference-style links with optional space separator (per docuentation) + // "You can optionally use a space to separate the sets of brackets" + MT("linkReferenceSpace", + "[link [[foo]]] [string [[bar]]] hello"); + + // Should only allow a single space ("...use *a* space...") + MT("linkReferenceDoubleSpace", + "[[foo]] [[bar]] hello"); + + // Reference-style links with implicit link name + MT("linkImplicit", + "[link [[foo]]][string [[]]] hello"); + + // @todo It would be nice if, at some point, the document was actually + // checked to see if the referenced link exists + + // Link label, for reference-style links (taken from documentation) + + MT("labelNoTitle", + "[link [[foo]]:] [string http://example.com/]"); + + MT("labelIndented", + " [link [[foo]]:] [string http://example.com/]"); + + MT("labelSpaceTitle", + "[link [[foo bar]]:] [string http://example.com/ \"hello\"]"); + + MT("labelDoubleTitle", + "[link [[foo bar]]:] [string http://example.com/ \"hello\"] \"world\""); + + MT("labelTitleDoubleQuotes", + "[link [[foo]]:] [string http://example.com/ \"bar\"]"); + + MT("labelTitleSingleQuotes", + "[link [[foo]]:] [string http://example.com/ 'bar']"); + + MT("labelTitleParenthese", + "[link [[foo]]:] [string http://example.com/ (bar)]"); + + MT("labelTitleInvalid", + "[link [[foo]]:] [string http://example.com/] bar"); + + MT("labelLinkAngleBrackets", + "[link [[foo]]:] [string \"bar\"]"); + + MT("labelTitleNextDoubleQuotes", + "[link [[foo]]:] [string http://example.com/]", + "[string \"bar\"] hello"); + + MT("labelTitleNextSingleQuotes", + "[link [[foo]]:] [string http://example.com/]", + "[string 'bar'] hello"); + + MT("labelTitleNextParenthese", + "[link [[foo]]:] [string http://example.com/]", + "[string (bar)] hello"); + + MT("labelTitleNextMixed", + "[link [[foo]]:] [string http://example.com/]", + "(bar\" hello"); + + MT("linkWeb", + "[link ] foo"); + + MT("linkWebDouble", + "[link ] foo [link ]"); + + MT("linkEmail", + "[link ] foo"); + + MT("linkEmailDouble", + "[link ] foo [link ]"); + + MT("emAsterisk", + "[em *foo*] bar"); + + MT("emUnderscore", + "[em _foo_] bar"); + + MT("emInWordAsterisk", + "foo[em *bar*]hello"); + + MT("emInWordUnderscore", + "foo[em _bar_]hello"); + + // Per documentation: "...surround an * or _ with spaces, it’ll be + // treated as a literal asterisk or underscore." + + MT("emEscapedBySpaceIn", + "foo [em _bar _ hello_] world"); + + MT("emEscapedBySpaceOut", + "foo _ bar[em _hello_]world"); + + MT("emEscapedByNewline", + "foo", + "_ bar[em _hello_]world"); + + // Unclosed emphasis characters + // Instead of simply marking as EM / STRONG, it would be nice to have an + // incomplete flag for EM and STRONG, that is styled slightly different. + MT("emIncompleteAsterisk", + "foo [em *bar]"); + + MT("emIncompleteUnderscore", + "foo [em _bar]"); + + MT("strongAsterisk", + "[strong **foo**] bar"); + + MT("strongUnderscore", + "[strong __foo__] bar"); + + MT("emStrongAsterisk", + "[em *foo][em&strong **bar*][strong hello**] world"); + + MT("emStrongUnderscore", + "[em _foo][em&strong __bar_][strong hello__] world"); + + // "...same character must be used to open and close an emphasis span."" + MT("emStrongMixed", + "[em _foo][em&strong **bar*hello__ world]"); + + MT("emStrongMixed", + "[em *foo][em&strong __bar_hello** world]"); + + // These characters should be escaped: + // \ backslash + // ` backtick + // * asterisk + // _ underscore + // {} curly braces + // [] square brackets + // () parentheses + // # hash mark + // + plus sign + // - minus sign (hyphen) + // . dot + // ! exclamation mark + + MT("escapeBacktick", + "foo \\`bar\\`"); + + MT("doubleEscapeBacktick", + "foo \\\\[comment `bar\\\\`]"); + + MT("escapeAsterisk", + "foo \\*bar\\*"); + + MT("doubleEscapeAsterisk", + "foo \\\\[em *bar\\\\*]"); + + MT("escapeUnderscore", + "foo \\_bar\\_"); + + MT("doubleEscapeUnderscore", + "foo \\\\[em _bar\\\\_]"); + + MT("escapeHash", + "\\# foo"); + + MT("doubleEscapeHash", + "\\\\# foo"); + + MT("escapeNewline", + "\\", + "[em *foo*]"); + + + // Tests to make sure GFM-specific things aren't getting through + + MT("taskList", + "[variable-2 * [ ]] bar]"); + + MT("fencedCodeBlocks", + "[comment ```]", + "foo", + "[comment ```]"); + + // Tests that require XML mode + + MT("xmlMode", + "[tag&bracket <][tag div][tag&bracket >]", + "*foo*", + "[tag&bracket <][tag http://github.com][tag&bracket />]", + "[tag&bracket ]", + "[link ]"); + + MT("xmlModeWithMarkdownInside", + "[tag&bracket <][tag div] [attribute markdown]=[string 1][tag&bracket >]", + "[em *foo*]", + "[link ]", + "[tag
                              ]", + "[link ]", + "[tag&bracket <][tag div][tag&bracket >]", + "[tag&bracket ]"); + +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/meta.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/meta.js new file mode 100644 index 0000000..8d91df7 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/meta.js @@ -0,0 +1,176 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + CodeMirror.modeInfo = [ + {name: "APL", mime: "text/apl", mode: "apl", ext: ["dyalog", "apl"]}, + {name: "Asterisk", mime: "text/x-asterisk", mode: "asterisk", file: /^extensions\.conf$/i}, + {name: "C", mime: "text/x-csrc", mode: "clike", ext: ["c", "h"]}, + {name: "C++", mime: "text/x-c++src", mode: "clike", ext: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"], alias: ["cpp"]}, + {name: "Cobol", mime: "text/x-cobol", mode: "cobol", ext: ["cob", "cpy"]}, + {name: "C#", mime: "text/x-csharp", mode: "clike", ext: ["cs"], alias: ["csharp"]}, + {name: "Clojure", mime: "text/x-clojure", mode: "clojure", ext: ["clj"]}, + {name: "CoffeeScript", mime: "text/x-coffeescript", mode: "coffeescript", ext: ["coffee"], alias: ["coffee", "coffee-script"]}, + {name: "Common Lisp", mime: "text/x-common-lisp", mode: "commonlisp", ext: ["cl", "lisp", "el"], alias: ["lisp"]}, + {name: "Cypher", mime: "application/x-cypher-query", mode: "cypher", ext: ["cyp", "cypher"]}, + {name: "Cython", mime: "text/x-cython", mode: "python", ext: ["pyx", "pxd", "pxi"]}, + {name: "CSS", mime: "text/css", mode: "css", ext: ["css"]}, + {name: "CQL", mime: "text/x-cassandra", mode: "sql", ext: ["cql"]}, + {name: "D", mime: "text/x-d", mode: "d", ext: ["d"]}, + {name: "Dart", mimes: ["application/dart", "text/x-dart"], mode: "dart", ext: ["dart"]}, + {name: "diff", mime: "text/x-diff", mode: "diff", ext: ["diff", "patch"]}, + {name: "Django", mime: "text/x-django", mode: "django"}, + {name: "Dockerfile", mime: "text/x-dockerfile", mode: "dockerfile", file: /^Dockerfile$/}, + {name: "DTD", mime: "application/xml-dtd", mode: "dtd", ext: ["dtd"]}, + {name: "Dylan", mime: "text/x-dylan", mode: "dylan", ext: ["dylan", "dyl", "intr"]}, + {name: "EBNF", mime: "text/x-ebnf", mode: "ebnf"}, + {name: "ECL", mime: "text/x-ecl", mode: "ecl", ext: ["ecl"]}, + {name: "Eiffel", mime: "text/x-eiffel", mode: "eiffel", ext: ["e"]}, + {name: "Embedded Javascript", mime: "application/x-ejs", mode: "htmlembedded", ext: ["ejs"]}, + {name: "Embedded Ruby", mime: "application/x-erb", mode: "htmlembedded", ext: ["erb"]}, + {name: "Erlang", mime: "text/x-erlang", mode: "erlang", ext: ["erl"]}, + {name: "Fortran", mime: "text/x-fortran", mode: "fortran", ext: ["f", "for", "f77", "f90"]}, + {name: "F#", mime: "text/x-fsharp", mode: "mllike", ext: ["fs"], alias: ["fsharp"]}, + {name: "Gas", mime: "text/x-gas", mode: "gas", ext: ["s"]}, + {name: "Gherkin", mime: "text/x-feature", mode: "gherkin", ext: ["feature"]}, + {name: "GitHub Flavored Markdown", mime: "text/x-gfm", mode: "gfm", file: /^(readme|contributing|history).md$/i}, + {name: "Go", mime: "text/x-go", mode: "go", ext: ["go"]}, + {name: "Groovy", mime: "text/x-groovy", mode: "groovy", ext: ["groovy"]}, + {name: "HAML", mime: "text/x-haml", mode: "haml", ext: ["haml"]}, + {name: "Haskell", mime: "text/x-haskell", mode: "haskell", ext: ["hs"]}, + {name: "Haxe", mime: "text/x-haxe", mode: "haxe", ext: ["hx"]}, + {name: "HXML", mime: "text/x-hxml", mode: "haxe", ext: ["hxml"]}, + {name: "ASP.NET", mime: "application/x-aspx", mode: "htmlembedded", ext: ["aspx"], alias: ["asp", "aspx"]}, + {name: "HTML", mime: "text/html", mode: "htmlmixed", ext: ["html", "htm"], alias: ["xhtml"]}, + {name: "HTTP", mime: "message/http", mode: "http"}, + {name: "IDL", mime: "text/x-idl", mode: "idl", ext: ["pro"]}, + {name: "Jade", mime: "text/x-jade", mode: "jade", ext: ["jade"]}, + {name: "Java", mime: "text/x-java", mode: "clike", ext: ["java"]}, + {name: "Java Server Pages", mime: "application/x-jsp", mode: "htmlembedded", ext: ["jsp"], alias: ["jsp"]}, + {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/x-javascript", "application/ecmascript"], + mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]}, + {name: "JSON", mimes: ["application/json", "application/x-json"], mode: "javascript", ext: ["json", "map"], alias: ["json5"]}, + {name: "JSON-LD", mime: "application/ld+json", mode: "javascript", ext: ["jsonld"], alias: ["jsonld"]}, + {name: "Jinja2", mime: "null", mode: "jinja2"}, + {name: "Julia", mime: "text/x-julia", mode: "julia", ext: ["jl"]}, + {name: "Kotlin", mime: "text/x-kotlin", mode: "kotlin", ext: ["kt"]}, + {name: "LESS", mime: "text/x-less", mode: "css", ext: ["less"]}, + {name: "LiveScript", mime: "text/x-livescript", mode: "livescript", ext: ["ls"], alias: ["ls"]}, + {name: "Lua", mime: "text/x-lua", mode: "lua", ext: ["lua"]}, + {name: "Markdown", mime: "text/x-markdown", mode: "markdown", ext: ["markdown", "md", "mkd"]}, + {name: "mIRC", mime: "text/mirc", mode: "mirc"}, + {name: "MariaDB SQL", mime: "text/x-mariadb", mode: "sql"}, + {name: "Modelica", mime: "text/x-modelica", mode: "modelica", ext: ["mo"]}, + {name: "MS SQL", mime: "text/x-mssql", mode: "sql"}, + {name: "MySQL", mime: "text/x-mysql", mode: "sql"}, + {name: "Nginx", mime: "text/x-nginx-conf", mode: "nginx", file: /nginx.*\.conf$/i}, + {name: "NTriples", mime: "text/n-triples", mode: "ntriples", ext: ["nt"]}, + {name: "Objective C", mime: "text/x-objectivec", mode: "clike", ext: ["m", "mm"]}, + {name: "OCaml", mime: "text/x-ocaml", mode: "mllike", ext: ["ml", "mli", "mll", "mly"]}, + {name: "Octave", mime: "text/x-octave", mode: "octave", ext: ["m"]}, + {name: "Pascal", mime: "text/x-pascal", mode: "pascal", ext: ["p", "pas"]}, + {name: "PEG.js", mime: "null", mode: "pegjs", ext: ["jsonld"]}, + {name: "Perl", mime: "text/x-perl", mode: "perl", ext: ["pl", "pm"]}, + {name: "PHP", mime: "application/x-httpd-php", mode: "php", ext: ["php", "php3", "php4", "php5", "phtml"]}, + {name: "Pig", mime: "text/x-pig", mode: "pig", ext: ["pig"]}, + {name: "Plain Text", mime: "text/plain", mode: "null", ext: ["txt", "text", "conf", "def", "list", "log"]}, + {name: "PLSQL", mime: "text/x-plsql", mode: "sql", ext: ["pls"]}, + {name: "Properties files", mime: "text/x-properties", mode: "properties", ext: ["properties", "ini", "in"], alias: ["ini", "properties"]}, + {name: "Python", mime: "text/x-python", mode: "python", ext: ["py", "pyw"]}, + {name: "Puppet", mime: "text/x-puppet", mode: "puppet", ext: ["pp"]}, + {name: "Q", mime: "text/x-q", mode: "q", ext: ["q"]}, + {name: "R", mime: "text/x-rsrc", mode: "r", ext: ["r"], alias: ["rscript"]}, + {name: "reStructuredText", mime: "text/x-rst", mode: "rst", ext: ["rst"], alias: ["rst"]}, + {name: "RPM Changes", mime: "text/x-rpm-changes", mode: "rpm"}, + {name: "RPM Spec", mime: "text/x-rpm-spec", mode: "rpm", ext: ["spec"]}, + {name: "Ruby", mime: "text/x-ruby", mode: "ruby", ext: ["rb"], alias: ["jruby", "macruby", "rake", "rb", "rbx"]}, + {name: "Rust", mime: "text/x-rustsrc", mode: "rust", ext: ["rs"]}, + {name: "Sass", mime: "text/x-sass", mode: "sass", ext: ["sass"]}, + {name: "Scala", mime: "text/x-scala", mode: "clike", ext: ["scala"]}, + {name: "Scheme", mime: "text/x-scheme", mode: "scheme", ext: ["scm", "ss"]}, + {name: "SCSS", mime: "text/x-scss", mode: "css", ext: ["scss"]}, + {name: "Shell", mime: "text/x-sh", mode: "shell", ext: ["sh", "ksh", "bash"], alias: ["bash", "sh", "zsh"]}, + {name: "Sieve", mime: "application/sieve", mode: "sieve", ext: ["siv", "sieve"]}, + {name: "Slim", mimes: ["text/x-slim", "application/x-slim"], mode: "slim", ext: ["slim"]}, + {name: "Smalltalk", mime: "text/x-stsrc", mode: "smalltalk", ext: ["st"]}, + {name: "Smarty", mime: "text/x-smarty", mode: "smarty", ext: ["tpl"]}, + {name: "SmartyMixed", mime: "text/x-smarty", mode: "smartymixed"}, + {name: "Solr", mime: "text/x-solr", mode: "solr"}, + {name: "Soy", mime: "text/x-soy", mode: "soy", ext: ["soy"], alias: ["closure template"]}, + {name: "SPARQL", mime: "application/sparql-query", mode: "sparql", ext: ["rq", "sparql"], alias: ["sparul"]}, + {name: "Spreadsheet", mime: "text/x-spreadsheet", mode: "spreadsheet", alias: ["excel", "formula"]}, + {name: "SQL", mime: "text/x-sql", mode: "sql", ext: ["sql"]}, + {name: "MariaDB", mime: "text/x-mariadb", mode: "sql"}, + {name: "sTeX", mime: "text/x-stex", mode: "stex"}, + {name: "LaTeX", mime: "text/x-latex", mode: "stex", ext: ["text", "ltx"], alias: ["tex"]}, + {name: "SystemVerilog", mime: "text/x-systemverilog", mode: "verilog", ext: ["v"]}, + {name: "Tcl", mime: "text/x-tcl", mode: "tcl", ext: ["tcl"]}, + {name: "Textile", mime: "text/x-textile", mode: "textile", ext: ["textile"]}, + {name: "TiddlyWiki ", mime: "text/x-tiddlywiki", mode: "tiddlywiki"}, + {name: "Tiki wiki", mime: "text/tiki", mode: "tiki"}, + {name: "TOML", mime: "text/x-toml", mode: "toml", ext: ["toml"]}, + {name: "Tornado", mime: "text/x-tornado", mode: "tornado"}, + {name: "Turtle", mime: "text/turtle", mode: "turtle", ext: ["ttl"]}, + {name: "TypeScript", mime: "application/typescript", mode: "javascript", ext: ["ts"], alias: ["ts"]}, + {name: "VB.NET", mime: "text/x-vb", mode: "vb", ext: ["vb"]}, + {name: "VBScript", mime: "text/vbscript", mode: "vbscript", ext: ["vbs"]}, + {name: "Velocity", mime: "text/velocity", mode: "velocity", ext: ["vtl"]}, + {name: "Verilog", mime: "text/x-verilog", mode: "verilog", ext: ["v"]}, + {name: "XML", mimes: ["application/xml", "text/xml"], mode: "xml", ext: ["xml", "xsl", "xsd"], alias: ["rss", "wsdl", "xsd"]}, + {name: "XQuery", mime: "application/xquery", mode: "xquery", ext: ["xy", "xquery"]}, + {name: "YAML", mime: "text/x-yaml", mode: "yaml", ext: ["yaml"], alias: ["yml"]}, + {name: "Z80", mime: "text/x-z80", mode: "z80", ext: ["z80"]} + ]; + // Ensure all modes have a mime property for backwards compatibility + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.mimes) info.mime = info.mimes[0]; + } + + CodeMirror.findModeByMIME = function(mime) { + mime = mime.toLowerCase(); + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.mime == mime) return info; + if (info.mimes) for (var j = 0; j < info.mimes.length; j++) + if (info.mimes[j] == mime) return info; + } + }; + + CodeMirror.findModeByExtension = function(ext) { + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.ext) for (var j = 0; j < info.ext.length; j++) + if (info.ext[j] == ext) return info; + } + }; + + CodeMirror.findModeByFileName = function(filename) { + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.file && info.file.test(filename)) return info; + } + var dot = filename.lastIndexOf("."); + var ext = dot > -1 && filename.substring(dot + 1, filename.length); + if (ext) return CodeMirror.findModeByExtension(ext); + }; + + CodeMirror.findModeByName = function(name) { + name = name.toLowerCase(); + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.name.toLowerCase() == name) return info; + if (info.alias) for (var j = 0; j < info.alias.length; j++) + if (info.alias[j].toLowerCase() == name) return info; + } + }; +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mirc/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mirc/index.html new file mode 100644 index 0000000..fd2f34e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mirc/index.html @@ -0,0 +1,160 @@ + + +CodeMirror: mIRC mode + + + + + + + + + + +
                              +

                              mIRC mode

                              +
                              + + +

                              MIME types defined: text/mirc.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mirc/mirc.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mirc/mirc.js new file mode 100644 index 0000000..f0d5c6a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mirc/mirc.js @@ -0,0 +1,193 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +//mIRC mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMIME("text/mirc", "mirc"); +CodeMirror.defineMode("mirc", function() { + function parseWords(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + var specials = parseWords("$! $$ $& $? $+ $abook $abs $active $activecid " + + "$activewid $address $addtok $agent $agentname $agentstat $agentver " + + "$alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime " + + "$asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind " + + "$binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes " + + "$chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color " + + "$com $comcall $comchan $comerr $compact $compress $comval $cos $count " + + "$cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight " + + "$dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress " + + "$deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll " + + "$dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error " + + "$eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir " + + "$finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve " + + "$fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt " + + "$group $halted $hash $height $hfind $hget $highlight $hnick $hotline " + + "$hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil " + + "$inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect " + + "$insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile " + + "$isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive " + + "$lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock " + + "$lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer " + + "$maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext " + + "$menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode " + + "$modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile " + + "$nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly " + + "$opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree " + + "$pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo " + + "$readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex " + + "$reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline " + + "$sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin " + + "$site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname " + + "$sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped " + + "$syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp " + + "$timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel " + + "$ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver " + + "$version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor"); + var keywords = parseWords("abook ajinvite alias aline ame amsg anick aop auser autojoin avoice " + + "away background ban bcopy beep bread break breplace bset btrunc bunset bwrite " + + "channel clear clearall cline clipboard close cnick color comclose comopen " + + "comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver " + + "debug dec describe dialog did didtok disable disconnect dlevel dline dll " + + "dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace " + + "drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable " + + "events exit fclose filter findtext finger firewall flash flist flood flush " + + "flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove " + + "gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd " + + "halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear " + + "ialmark identd if ignore iline inc invite iuser join kick linesep links list " + + "load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice " + + "notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice " + + "qme qmsg query queryn quit raw reload remini remote remove rename renwin " + + "reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini " + + "say scid scon server set showmirc signam sline sockaccept sockclose socklist " + + "socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite " + + "sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize " + + "toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho " + + "var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum " + + "isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower " + + "isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs " + + "elseif else goto menu nicklist status title icon size option text edit " + + "button check radio box scroll list combo link tab item"); + var functions = parseWords("if elseif else and not or eq ne in ni for foreach while switch"); + var isOperatorChar = /[+\-*&%=<>!?^\/\|]/; + function chain(stream, state, f) { + state.tokenize = f; + return f(stream, state); + } + function tokenBase(stream, state) { + var beforeParams = state.beforeParams; + state.beforeParams = false; + var ch = stream.next(); + if (/[\[\]{}\(\),\.]/.test(ch)) { + if (ch == "(" && beforeParams) state.inParams = true; + else if (ch == ")") state.inParams = false; + return null; + } + else if (/\d/.test(ch)) { + stream.eatWhile(/[\w\.]/); + return "number"; + } + else if (ch == "\\") { + stream.eat("\\"); + stream.eat(/./); + return "number"; + } + else if (ch == "/" && stream.eat("*")) { + return chain(stream, state, tokenComment); + } + else if (ch == ";" && stream.match(/ *\( *\(/)) { + return chain(stream, state, tokenUnparsed); + } + else if (ch == ";" && !state.inParams) { + stream.skipToEnd(); + return "comment"; + } + else if (ch == '"') { + stream.eat(/"/); + return "keyword"; + } + else if (ch == "$") { + stream.eatWhile(/[$_a-z0-9A-Z\.:]/); + if (specials && specials.propertyIsEnumerable(stream.current().toLowerCase())) { + return "keyword"; + } + else { + state.beforeParams = true; + return "builtin"; + } + } + else if (ch == "%") { + stream.eatWhile(/[^,^\s^\(^\)]/); + state.beforeParams = true; + return "string"; + } + else if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return "operator"; + } + else { + stream.eatWhile(/[\w\$_{}]/); + var word = stream.current().toLowerCase(); + if (keywords && keywords.propertyIsEnumerable(word)) + return "keyword"; + if (functions && functions.propertyIsEnumerable(word)) { + state.beforeParams = true; + return "keyword"; + } + return null; + } + } + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + function tokenUnparsed(stream, state) { + var maybeEnd = 0, ch; + while (ch = stream.next()) { + if (ch == ";" && maybeEnd == 2) { + state.tokenize = tokenBase; + break; + } + if (ch == ")") + maybeEnd++; + else if (ch != " ") + maybeEnd = 0; + } + return "meta"; + } + return { + startState: function() { + return { + tokenize: tokenBase, + beforeParams: false, + inParams: false + }; + }, + token: function(stream, state) { + if (stream.eatSpace()) return null; + return state.tokenize(stream, state); + } + }; +}); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mllike/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mllike/index.html new file mode 100644 index 0000000..5923af8 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mllike/index.html @@ -0,0 +1,179 @@ + + +CodeMirror: ML-like mode + + + + + + + + + + +
                              +

                              OCaml mode

                              + + + + +

                              F# mode

                              + + + + + +

                              MIME types defined: text/x-ocaml (OCaml) and text/x-fsharp (F#).

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mllike/mllike.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mllike/mllike.js new file mode 100644 index 0000000..04ab1c9 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/mllike/mllike.js @@ -0,0 +1,205 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode('mllike', function(_config, parserConfig) { + var words = { + 'let': 'keyword', + 'rec': 'keyword', + 'in': 'keyword', + 'of': 'keyword', + 'and': 'keyword', + 'if': 'keyword', + 'then': 'keyword', + 'else': 'keyword', + 'for': 'keyword', + 'to': 'keyword', + 'while': 'keyword', + 'do': 'keyword', + 'done': 'keyword', + 'fun': 'keyword', + 'function': 'keyword', + 'val': 'keyword', + 'type': 'keyword', + 'mutable': 'keyword', + 'match': 'keyword', + 'with': 'keyword', + 'try': 'keyword', + 'open': 'builtin', + 'ignore': 'builtin', + 'begin': 'keyword', + 'end': 'keyword' + }; + + var extraWords = parserConfig.extraWords || {}; + for (var prop in extraWords) { + if (extraWords.hasOwnProperty(prop)) { + words[prop] = parserConfig.extraWords[prop]; + } + } + + function tokenBase(stream, state) { + var ch = stream.next(); + + if (ch === '"') { + state.tokenize = tokenString; + return state.tokenize(stream, state); + } + if (ch === '(') { + if (stream.eat('*')) { + state.commentLevel++; + state.tokenize = tokenComment; + return state.tokenize(stream, state); + } + } + if (ch === '~') { + stream.eatWhile(/\w/); + return 'variable-2'; + } + if (ch === '`') { + stream.eatWhile(/\w/); + return 'quote'; + } + if (ch === '/' && parserConfig.slashComments && stream.eat('/')) { + stream.skipToEnd(); + return 'comment'; + } + if (/\d/.test(ch)) { + stream.eatWhile(/[\d]/); + if (stream.eat('.')) { + stream.eatWhile(/[\d]/); + } + return 'number'; + } + if ( /[+\-*&%=<>!?|]/.test(ch)) { + return 'operator'; + } + stream.eatWhile(/\w/); + var cur = stream.current(); + return words[cur] || 'variable'; + } + + function tokenString(stream, state) { + var next, end = false, escaped = false; + while ((next = stream.next()) != null) { + if (next === '"' && !escaped) { + end = true; + break; + } + escaped = !escaped && next === '\\'; + } + if (end && !escaped) { + state.tokenize = tokenBase; + } + return 'string'; + }; + + function tokenComment(stream, state) { + var prev, next; + while(state.commentLevel > 0 && (next = stream.next()) != null) { + if (prev === '(' && next === '*') state.commentLevel++; + if (prev === '*' && next === ')') state.commentLevel--; + prev = next; + } + if (state.commentLevel <= 0) { + state.tokenize = tokenBase; + } + return 'comment'; + } + + return { + startState: function() {return {tokenize: tokenBase, commentLevel: 0};}, + token: function(stream, state) { + if (stream.eatSpace()) return null; + return state.tokenize(stream, state); + }, + + blockCommentStart: "(*", + blockCommentEnd: "*)", + lineComment: parserConfig.slashComments ? "//" : null + }; +}); + +CodeMirror.defineMIME('text/x-ocaml', { + name: 'mllike', + extraWords: { + 'succ': 'keyword', + 'trace': 'builtin', + 'exit': 'builtin', + 'print_string': 'builtin', + 'print_endline': 'builtin', + 'true': 'atom', + 'false': 'atom', + 'raise': 'keyword' + } +}); + +CodeMirror.defineMIME('text/x-fsharp', { + name: 'mllike', + extraWords: { + 'abstract': 'keyword', + 'as': 'keyword', + 'assert': 'keyword', + 'base': 'keyword', + 'class': 'keyword', + 'default': 'keyword', + 'delegate': 'keyword', + 'downcast': 'keyword', + 'downto': 'keyword', + 'elif': 'keyword', + 'exception': 'keyword', + 'extern': 'keyword', + 'finally': 'keyword', + 'global': 'keyword', + 'inherit': 'keyword', + 'inline': 'keyword', + 'interface': 'keyword', + 'internal': 'keyword', + 'lazy': 'keyword', + 'let!': 'keyword', + 'member' : 'keyword', + 'module': 'keyword', + 'namespace': 'keyword', + 'new': 'keyword', + 'null': 'keyword', + 'override': 'keyword', + 'private': 'keyword', + 'public': 'keyword', + 'return': 'keyword', + 'return!': 'keyword', + 'select': 'keyword', + 'static': 'keyword', + 'struct': 'keyword', + 'upcast': 'keyword', + 'use': 'keyword', + 'use!': 'keyword', + 'val': 'keyword', + 'when': 'keyword', + 'yield': 'keyword', + 'yield!': 'keyword', + + 'List': 'builtin', + 'Seq': 'builtin', + 'Map': 'builtin', + 'Set': 'builtin', + 'int': 'builtin', + 'string': 'builtin', + 'raise': 'builtin', + 'failwith': 'builtin', + 'not': 'builtin', + 'true': 'builtin', + 'false': 'builtin' + }, + slashComments: true +}); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/modelica/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/modelica/index.html new file mode 100644 index 0000000..408c3b1 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/modelica/index.html @@ -0,0 +1,67 @@ + + +CodeMirror: Modelica mode + + + + + + + + + + + + +
                              +

                              Modelica mode

                              + +
                              + + + +

                              Simple mode that tries to handle Modelica as well as it can.

                              + +

                              MIME types defined: text/x-modelica + (Modlica code).

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/modelica/modelica.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/modelica/modelica.js new file mode 100644 index 0000000..77ec7a3 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/modelica/modelica.js @@ -0,0 +1,245 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +// Modelica support for CodeMirror, copyright (c) by Lennart Ochel + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +}) + +(function(CodeMirror) { + "use strict"; + + CodeMirror.defineMode("modelica", function(config, parserConfig) { + + var indentUnit = config.indentUnit; + var keywords = parserConfig.keywords || {}; + var builtin = parserConfig.builtin || {}; + var atoms = parserConfig.atoms || {}; + + var isSingleOperatorChar = /[;=\(:\),{}.*<>+\-\/^\[\]]/; + var isDoubleOperatorChar = /(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/; + var isDigit = /[0-9]/; + var isNonDigit = /[_a-zA-Z]/; + + function tokenLineComment(stream, state) { + stream.skipToEnd(); + state.tokenize = null; + return "comment"; + } + + function tokenBlockComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (maybeEnd && ch == "/") { + state.tokenize = null; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function tokenString(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == '"' && !escaped) { + state.tokenize = null; + state.sol = false; + break; + } + escaped = !escaped && ch == "\\"; + } + + return "string"; + } + + function tokenIdent(stream, state) { + stream.eatWhile(isDigit); + while (stream.eat(isDigit) || stream.eat(isNonDigit)) { } + + + var cur = stream.current(); + + if(state.sol && (cur == "package" || cur == "model" || cur == "when" || cur == "connector")) state.level++; + else if(state.sol && cur == "end" && state.level > 0) state.level--; + + state.tokenize = null; + state.sol = false; + + if (keywords.propertyIsEnumerable(cur)) return "keyword"; + else if (builtin.propertyIsEnumerable(cur)) return "builtin"; + else if (atoms.propertyIsEnumerable(cur)) return "atom"; + else return "variable"; + } + + function tokenQIdent(stream, state) { + while (stream.eat(/[^']/)) { } + + state.tokenize = null; + state.sol = false; + + if(stream.eat("'")) + return "variable"; + else + return "error"; + } + + function tokenUnsignedNuber(stream, state) { + stream.eatWhile(isDigit); + if (stream.eat('.')) { + stream.eatWhile(isDigit); + } + if (stream.eat('e') || stream.eat('E')) { + if (!stream.eat('-')) + stream.eat('+'); + stream.eatWhile(isDigit); + } + + state.tokenize = null; + state.sol = false; + return "number"; + } + + // Interface + return { + startState: function() { + return { + tokenize: null, + level: 0, + sol: true + }; + }, + + token: function(stream, state) { + if(state.tokenize != null) { + return state.tokenize(stream, state); + } + + if(stream.sol()) { + state.sol = true; + } + + // WHITESPACE + if(stream.eatSpace()) { + state.tokenize = null; + return null; + } + + var ch = stream.next(); + + // LINECOMMENT + if(ch == '/' && stream.eat('/')) { + state.tokenize = tokenLineComment; + } + // BLOCKCOMMENT + else if(ch == '/' && stream.eat('*')) { + state.tokenize = tokenBlockComment; + } + // TWO SYMBOL TOKENS + else if(isDoubleOperatorChar.test(ch+stream.peek())) { + stream.next(); + state.tokenize = null; + return "operator"; + } + // SINGLE SYMBOL TOKENS + else if(isSingleOperatorChar.test(ch)) { + state.tokenize = null; + return "operator"; + } + // IDENT + else if(isNonDigit.test(ch)) { + state.tokenize = tokenIdent; + } + // Q-IDENT + else if(ch == "'" && stream.peek() && stream.peek() != "'") { + state.tokenize = tokenQIdent; + } + // STRING + else if(ch == '"') { + state.tokenize = tokenString; + } + // UNSIGNED_NUBER + else if(isDigit.test(ch)) { + state.tokenize = tokenUnsignedNuber; + } + // ERROR + else { + state.tokenize = null; + return "error"; + } + + return state.tokenize(stream, state); + }, + + indent: function(state, textAfter) { + if (state.tokenize != null) return CodeMirror.Pass; + + var level = state.level; + if(/(algorithm)/.test(textAfter)) level--; + if(/(equation)/.test(textAfter)) level--; + if(/(initial algorithm)/.test(textAfter)) level--; + if(/(initial equation)/.test(textAfter)) level--; + if(/(end)/.test(textAfter)) level--; + + if(level > 0) + return indentUnit*level; + else + return 0; + }, + + blockCommentStart: "/*", + blockCommentEnd: "*/", + lineComment: "//" + }; + }); + + function words(str) { + var obj = {}, words = str.split(" "); + for (var i=0; i + +CodeMirror: NGINX mode + + + + + + + + + + + + + +
                              +

                              NGINX mode

                              +
                              + + +

                              MIME types defined: text/nginx.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/nginx/nginx.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/nginx/nginx.js new file mode 100644 index 0000000..135b9cc --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/nginx/nginx.js @@ -0,0 +1,178 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("nginx", function(config) { + + function words(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + var keywords = words( + /* ngxDirectiveControl */ "break return rewrite set" + + /* ngxDirective */ " accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23" + ); + + var keywords_block = words( + /* ngxDirectiveBlock */ "http mail events server types location upstream charset_map limit_except if geo map" + ); + + var keywords_important = words( + /* ngxDirectiveImportant */ "include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files" + ); + + var indentUnit = config.indentUnit, type; + function ret(style, tp) {type = tp; return style;} + + function tokenBase(stream, state) { + + + stream.eatWhile(/[\w\$_]/); + + var cur = stream.current(); + + + if (keywords.propertyIsEnumerable(cur)) { + return "keyword"; + } + else if (keywords_block.propertyIsEnumerable(cur)) { + return "variable-2"; + } + else if (keywords_important.propertyIsEnumerable(cur)) { + return "string-2"; + } + /**/ + + var ch = stream.next(); + if (ch == "@") {stream.eatWhile(/[\w\\\-]/); return ret("meta", stream.current());} + else if (ch == "/" && stream.eat("*")) { + state.tokenize = tokenCComment; + return tokenCComment(stream, state); + } + else if (ch == "<" && stream.eat("!")) { + state.tokenize = tokenSGMLComment; + return tokenSGMLComment(stream, state); + } + else if (ch == "=") ret(null, "compare"); + else if ((ch == "~" || ch == "|") && stream.eat("=")) return ret(null, "compare"); + else if (ch == "\"" || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + else if (ch == "#") { + stream.skipToEnd(); + return ret("comment", "comment"); + } + else if (ch == "!") { + stream.match(/^\s*\w*/); + return ret("keyword", "important"); + } + else if (/\d/.test(ch)) { + stream.eatWhile(/[\w.%]/); + return ret("number", "unit"); + } + else if (/[,.+>*\/]/.test(ch)) { + return ret(null, "select-op"); + } + else if (/[;{}:\[\]]/.test(ch)) { + return ret(null, ch); + } + else { + stream.eatWhile(/[\w\\\-]/); + return ret("variable", "variable"); + } + } + + function tokenCComment(stream, state) { + var maybeEnd = false, ch; + while ((ch = stream.next()) != null) { + if (maybeEnd && ch == "/") { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return ret("comment", "comment"); + } + + function tokenSGMLComment(stream, state) { + var dashes = 0, ch; + while ((ch = stream.next()) != null) { + if (dashes >= 2 && ch == ">") { + state.tokenize = tokenBase; + break; + } + dashes = (ch == "-") ? dashes + 1 : 0; + } + return ret("comment", "comment"); + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && !escaped) + break; + escaped = !escaped && ch == "\\"; + } + if (!escaped) state.tokenize = tokenBase; + return ret("string", "string"); + }; + } + + return { + startState: function(base) { + return {tokenize: tokenBase, + baseIndent: base || 0, + stack: []}; + }, + + token: function(stream, state) { + if (stream.eatSpace()) return null; + type = null; + var style = state.tokenize(stream, state); + + var context = state.stack[state.stack.length-1]; + if (type == "hash" && context == "rule") style = "atom"; + else if (style == "variable") { + if (context == "rule") style = "number"; + else if (!context || context == "@media{") style = "tag"; + } + + if (context == "rule" && /^[\{\};]$/.test(type)) + state.stack.pop(); + if (type == "{") { + if (context == "@media") state.stack[state.stack.length-1] = "@media{"; + else state.stack.push("{"); + } + else if (type == "}") state.stack.pop(); + else if (type == "@media") state.stack.push("@media"); + else if (context == "{" && type != "comment") state.stack.push("rule"); + return style; + }, + + indent: function(state, textAfter) { + var n = state.stack.length; + if (/^\}/.test(textAfter)) + n -= state.stack[state.stack.length-1] == "rule" ? 2 : 1; + return state.baseIndent + n * indentUnit; + }, + + electricChars: "}" + }; +}); + +CodeMirror.defineMIME("text/nginx", "text/x-nginx-conf"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ntriples/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ntriples/index.html new file mode 100644 index 0000000..6e724a2 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ntriples/index.html @@ -0,0 +1,45 @@ + + +CodeMirror: NTriples mode + + + + + + + + + +
                              +

                              NTriples mode

                              +
                              + +
                              + + +

                              MIME types defined: text/n-triples.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ntriples/ntriples.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ntriples/ntriples.js new file mode 100644 index 0000000..0524b1e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ntriples/ntriples.js @@ -0,0 +1,186 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/********************************************************** +* This script provides syntax highlighting support for +* the Ntriples format. +* Ntriples format specification: +* http://www.w3.org/TR/rdf-testcases/#ntriples +***********************************************************/ + +/* + The following expression defines the defined ASF grammar transitions. + + pre_subject -> + { + ( writing_subject_uri | writing_bnode_uri ) + -> pre_predicate + -> writing_predicate_uri + -> pre_object + -> writing_object_uri | writing_object_bnode | + ( + writing_object_literal + -> writing_literal_lang | writing_literal_type + ) + -> post_object + -> BEGIN + } otherwise { + -> ERROR + } +*/ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("ntriples", function() { + + var Location = { + PRE_SUBJECT : 0, + WRITING_SUB_URI : 1, + WRITING_BNODE_URI : 2, + PRE_PRED : 3, + WRITING_PRED_URI : 4, + PRE_OBJ : 5, + WRITING_OBJ_URI : 6, + WRITING_OBJ_BNODE : 7, + WRITING_OBJ_LITERAL : 8, + WRITING_LIT_LANG : 9, + WRITING_LIT_TYPE : 10, + POST_OBJ : 11, + ERROR : 12 + }; + function transitState(currState, c) { + var currLocation = currState.location; + var ret; + + // Opening. + if (currLocation == Location.PRE_SUBJECT && c == '<') ret = Location.WRITING_SUB_URI; + else if(currLocation == Location.PRE_SUBJECT && c == '_') ret = Location.WRITING_BNODE_URI; + else if(currLocation == Location.PRE_PRED && c == '<') ret = Location.WRITING_PRED_URI; + else if(currLocation == Location.PRE_OBJ && c == '<') ret = Location.WRITING_OBJ_URI; + else if(currLocation == Location.PRE_OBJ && c == '_') ret = Location.WRITING_OBJ_BNODE; + else if(currLocation == Location.PRE_OBJ && c == '"') ret = Location.WRITING_OBJ_LITERAL; + + // Closing. + else if(currLocation == Location.WRITING_SUB_URI && c == '>') ret = Location.PRE_PRED; + else if(currLocation == Location.WRITING_BNODE_URI && c == ' ') ret = Location.PRE_PRED; + else if(currLocation == Location.WRITING_PRED_URI && c == '>') ret = Location.PRE_OBJ; + else if(currLocation == Location.WRITING_OBJ_URI && c == '>') ret = Location.POST_OBJ; + else if(currLocation == Location.WRITING_OBJ_BNODE && c == ' ') ret = Location.POST_OBJ; + else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '"') ret = Location.POST_OBJ; + else if(currLocation == Location.WRITING_LIT_LANG && c == ' ') ret = Location.POST_OBJ; + else if(currLocation == Location.WRITING_LIT_TYPE && c == '>') ret = Location.POST_OBJ; + + // Closing typed and language literal. + else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '@') ret = Location.WRITING_LIT_LANG; + else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '^') ret = Location.WRITING_LIT_TYPE; + + // Spaces. + else if( c == ' ' && + ( + currLocation == Location.PRE_SUBJECT || + currLocation == Location.PRE_PRED || + currLocation == Location.PRE_OBJ || + currLocation == Location.POST_OBJ + ) + ) ret = currLocation; + + // Reset. + else if(currLocation == Location.POST_OBJ && c == '.') ret = Location.PRE_SUBJECT; + + // Error + else ret = Location.ERROR; + + currState.location=ret; + } + + return { + startState: function() { + return { + location : Location.PRE_SUBJECT, + uris : [], + anchors : [], + bnodes : [], + langs : [], + types : [] + }; + }, + token: function(stream, state) { + var ch = stream.next(); + if(ch == '<') { + transitState(state, ch); + var parsedURI = ''; + stream.eatWhile( function(c) { if( c != '#' && c != '>' ) { parsedURI += c; return true; } return false;} ); + state.uris.push(parsedURI); + if( stream.match('#', false) ) return 'variable'; + stream.next(); + transitState(state, '>'); + return 'variable'; + } + if(ch == '#') { + var parsedAnchor = ''; + stream.eatWhile(function(c) { if(c != '>' && c != ' ') { parsedAnchor+= c; return true; } return false;}); + state.anchors.push(parsedAnchor); + return 'variable-2'; + } + if(ch == '>') { + transitState(state, '>'); + return 'variable'; + } + if(ch == '_') { + transitState(state, ch); + var parsedBNode = ''; + stream.eatWhile(function(c) { if( c != ' ' ) { parsedBNode += c; return true; } return false;}); + state.bnodes.push(parsedBNode); + stream.next(); + transitState(state, ' '); + return 'builtin'; + } + if(ch == '"') { + transitState(state, ch); + stream.eatWhile( function(c) { return c != '"'; } ); + stream.next(); + if( stream.peek() != '@' && stream.peek() != '^' ) { + transitState(state, '"'); + } + return 'string'; + } + if( ch == '@' ) { + transitState(state, '@'); + var parsedLang = ''; + stream.eatWhile(function(c) { if( c != ' ' ) { parsedLang += c; return true; } return false;}); + state.langs.push(parsedLang); + stream.next(); + transitState(state, ' '); + return 'string-2'; + } + if( ch == '^' ) { + stream.next(); + transitState(state, '^'); + var parsedType = ''; + stream.eatWhile(function(c) { if( c != '>' ) { parsedType += c; return true; } return false;} ); + state.types.push(parsedType); + stream.next(); + transitState(state, '>'); + return 'variable'; + } + if( ch == ' ' ) { + transitState(state, ch); + } + if( ch == '.' ) { + transitState(state, ch); + } + } + }; +}); + +CodeMirror.defineMIME("text/n-triples", "ntriples"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/octave/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/octave/index.html new file mode 100644 index 0000000..ca0205d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/octave/index.html @@ -0,0 +1,83 @@ + + +CodeMirror: Octave mode + + + + + + + + + +
                              +

                              Octave mode

                              + +
                              + + +

                              MIME types defined: text/x-octave.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/octave/octave.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/octave/octave.js new file mode 100644 index 0000000..a7bec03 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/octave/octave.js @@ -0,0 +1,135 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("octave", function() { + function wordRegexp(words) { + return new RegExp("^((" + words.join(")|(") + "))\\b"); + } + + var singleOperators = new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]"); + var singleDelimiters = new RegExp('^[\\(\\[\\{\\},:=;]'); + var doubleOperators = new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))"); + var doubleDelimiters = new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))"); + var tripleDelimiters = new RegExp("^((>>=)|(<<=))"); + var expressionEnd = new RegExp("^[\\]\\)]"); + var identifiers = new RegExp("^[_A-Za-z\xa1-\uffff][_A-Za-z0-9\xa1-\uffff]*"); + + var builtins = wordRegexp([ + 'error', 'eval', 'function', 'abs', 'acos', 'atan', 'asin', 'cos', + 'cosh', 'exp', 'log', 'prod', 'sum', 'log10', 'max', 'min', 'sign', 'sin', 'sinh', + 'sqrt', 'tan', 'reshape', 'break', 'zeros', 'default', 'margin', 'round', 'ones', + 'rand', 'syn', 'ceil', 'floor', 'size', 'clear', 'zeros', 'eye', 'mean', 'std', 'cov', + 'det', 'eig', 'inv', 'norm', 'rank', 'trace', 'expm', 'logm', 'sqrtm', 'linspace', 'plot', + 'title', 'xlabel', 'ylabel', 'legend', 'text', 'grid', 'meshgrid', 'mesh', 'num2str', + 'fft', 'ifft', 'arrayfun', 'cellfun', 'input', 'fliplr', 'flipud', 'ismember' + ]); + + var keywords = wordRegexp([ + 'return', 'case', 'switch', 'else', 'elseif', 'end', 'endif', 'endfunction', + 'if', 'otherwise', 'do', 'for', 'while', 'try', 'catch', 'classdef', 'properties', 'events', + 'methods', 'global', 'persistent', 'endfor', 'endwhile', 'printf', 'sprintf', 'disp', 'until', + 'continue', 'pkg' + ]); + + + // tokenizers + function tokenTranspose(stream, state) { + if (!stream.sol() && stream.peek() === '\'') { + stream.next(); + state.tokenize = tokenBase; + return 'operator'; + } + state.tokenize = tokenBase; + return tokenBase(stream, state); + } + + + function tokenComment(stream, state) { + if (stream.match(/^.*%}/)) { + state.tokenize = tokenBase; + return 'comment'; + }; + stream.skipToEnd(); + return 'comment'; + } + + function tokenBase(stream, state) { + // whitespaces + if (stream.eatSpace()) return null; + + // Handle one line Comments + if (stream.match('%{')){ + state.tokenize = tokenComment; + stream.skipToEnd(); + return 'comment'; + } + + if (stream.match(/^[%#]/)){ + stream.skipToEnd(); + return 'comment'; + } + + // Handle Number Literals + if (stream.match(/^[0-9\.+-]/, false)) { + if (stream.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/)) { + stream.tokenize = tokenBase; + return 'number'; }; + if (stream.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/)) { return 'number'; }; + if (stream.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/)) { return 'number'; }; + } + if (stream.match(wordRegexp(['nan','NaN','inf','Inf']))) { return 'number'; }; + + // Handle Strings + if (stream.match(/^"([^"]|(""))*"/)) { return 'string'; } ; + if (stream.match(/^'([^']|(''))*'/)) { return 'string'; } ; + + // Handle words + if (stream.match(keywords)) { return 'keyword'; } ; + if (stream.match(builtins)) { return 'builtin'; } ; + if (stream.match(identifiers)) { return 'variable'; } ; + + if (stream.match(singleOperators) || stream.match(doubleOperators)) { return 'operator'; }; + if (stream.match(singleDelimiters) || stream.match(doubleDelimiters) || stream.match(tripleDelimiters)) { return null; }; + + if (stream.match(expressionEnd)) { + state.tokenize = tokenTranspose; + return null; + }; + + + // Handle non-detected items + stream.next(); + return 'error'; + }; + + + return { + startState: function() { + return { + tokenize: tokenBase + }; + }, + + token: function(stream, state) { + var style = state.tokenize(stream, state); + if (style === 'number' || style === 'variable'){ + state.tokenize = tokenTranspose; + } + return style; + } + }; +}); + +CodeMirror.defineMIME("text/x-octave", "octave"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pascal/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pascal/index.html new file mode 100644 index 0000000..597f4ad --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pascal/index.html @@ -0,0 +1,61 @@ + + +CodeMirror: Pascal mode + + + + + + + + + +
                              +

                              Pascal mode

                              + + +
                              + + + +

                              MIME types defined: text/x-pascal.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pascal/pascal.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pascal/pascal.js new file mode 100644 index 0000000..2d0c3d4 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pascal/pascal.js @@ -0,0 +1,109 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("pascal", function() { + function words(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + var keywords = words("and array begin case const div do downto else end file for forward integer " + + "boolean char function goto if in label mod nil not of or packed procedure " + + "program record repeat set string then to type until var while with"); + var atoms = {"null": true}; + + var isOperatorChar = /[+\-*&%=<>!?|\/]/; + + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == "#" && state.startOfLine) { + stream.skipToEnd(); + return "meta"; + } + if (ch == '"' || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + if (ch == "(" && stream.eat("*")) { + state.tokenize = tokenComment; + return tokenComment(stream, state); + } + if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + return null; + } + if (/\d/.test(ch)) { + stream.eatWhile(/[\w\.]/); + return "number"; + } + if (ch == "/") { + if (stream.eat("/")) { + stream.skipToEnd(); + return "comment"; + } + } + if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return "operator"; + } + stream.eatWhile(/[\w\$_]/); + var cur = stream.current(); + if (keywords.propertyIsEnumerable(cur)) return "keyword"; + if (atoms.propertyIsEnumerable(cur)) return "atom"; + return "variable"; + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) {end = true; break;} + escaped = !escaped && next == "\\"; + } + if (end || !escaped) state.tokenize = null; + return "string"; + }; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == ")" && maybeEnd) { + state.tokenize = null; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + // Interface + + return { + startState: function() { + return {tokenize: null}; + }, + + token: function(stream, state) { + if (stream.eatSpace()) return null; + var style = (state.tokenize || tokenBase)(stream, state); + if (style == "comment" || style == "meta") return style; + return style; + }, + + electricChars: "{}" + }; +}); + +CodeMirror.defineMIME("text/x-pascal", "pascal"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pegjs/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pegjs/index.html new file mode 100644 index 0000000..9729d80 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pegjs/index.html @@ -0,0 +1,66 @@ + + + + CodeMirror: PEG.js Mode + + + + + + + + + + + + +
                              +

                              PEG.js Mode

                              +
                              + +

                              The PEG.js Mode

                              +

                              Created by Forbes Lindesay.

                              +
                              + + diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pegjs/pegjs.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pegjs/pegjs.js new file mode 100644 index 0000000..306e376 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pegjs/pegjs.js @@ -0,0 +1,114 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../javascript/javascript")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../javascript/javascript"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("pegjs", function (config) { + var jsMode = CodeMirror.getMode(config, "javascript"); + + function identifier(stream) { + return stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/); + } + + return { + startState: function () { + return { + inString: false, + stringType: null, + inComment: false, + inChracterClass: false, + braced: 0, + lhs: true, + localState: null + }; + }, + token: function (stream, state) { + if (stream) + + //check for state changes + if (!state.inString && !state.inComment && ((stream.peek() == '"') || (stream.peek() == "'"))) { + state.stringType = stream.peek(); + stream.next(); // Skip quote + state.inString = true; // Update state + } + if (!state.inString && !state.inComment && stream.match(/^\/\*/)) { + state.inComment = true; + } + + //return state + if (state.inString) { + while (state.inString && !stream.eol()) { + if (stream.peek() === state.stringType) { + stream.next(); // Skip quote + state.inString = false; // Clear flag + } else if (stream.peek() === '\\') { + stream.next(); + stream.next(); + } else { + stream.match(/^.[^\\\"\']*/); + } + } + return state.lhs ? "property string" : "string"; // Token style + } else if (state.inComment) { + while (state.inComment && !stream.eol()) { + if (stream.match(/\*\//)) { + state.inComment = false; // Clear flag + } else { + stream.match(/^.[^\*]*/); + } + } + return "comment"; + } else if (state.inChracterClass) { + while (state.inChracterClass && !stream.eol()) { + if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) { + state.inChracterClass = false; + } + } + } else if (stream.peek() === '[') { + stream.next(); + state.inChracterClass = true; + return 'bracket'; + } else if (stream.match(/^\/\//)) { + stream.skipToEnd(); + return "comment"; + } else if (state.braced || stream.peek() === '{') { + if (state.localState === null) { + state.localState = jsMode.startState(); + } + var token = jsMode.token(stream, state.localState); + var text = stream.current(); + if (!token) { + for (var i = 0; i < text.length; i++) { + if (text[i] === '{') { + state.braced++; + } else if (text[i] === '}') { + state.braced--; + } + }; + } + return token; + } else if (identifier(stream)) { + if (stream.peek() === ':') { + return 'variable'; + } + return 'variable-2'; + } else if (['[', ']', '(', ')'].indexOf(stream.peek()) != -1) { + stream.next(); + return 'bracket'; + } else if (!stream.eatSpace()) { + stream.next(); + } + return null; + } + }; +}, "javascript"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/perl/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/perl/index.html new file mode 100644 index 0000000..8c1021c --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/perl/index.html @@ -0,0 +1,75 @@ + + +CodeMirror: Perl mode + + + + + + + + + +
                              +

                              Perl mode

                              + + +
                              + + + +

                              MIME types defined: text/x-perl.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/perl/perl.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/perl/perl.js new file mode 100644 index 0000000..bef62bc --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/perl/perl.js @@ -0,0 +1,837 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +// CodeMirror2 mode/perl/perl.js (text/x-perl) beta 0.10 (2011-11-08) +// This is a part of CodeMirror from https://github.com/sabaca/CodeMirror_mode_perl (mail@sabaca.com) + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("perl",function(){ + // http://perldoc.perl.org + var PERL={ // null - magic touch + // 1 - keyword + // 2 - def + // 3 - atom + // 4 - operator + // 5 - variable-2 (predefined) + // [x,y] - x=1,2,3; y=must be defined if x{...} + // PERL operators + '->' : 4, + '++' : 4, + '--' : 4, + '**' : 4, + // ! ~ \ and unary + and - + '=~' : 4, + '!~' : 4, + '*' : 4, + '/' : 4, + '%' : 4, + 'x' : 4, + '+' : 4, + '-' : 4, + '.' : 4, + '<<' : 4, + '>>' : 4, + // named unary operators + '<' : 4, + '>' : 4, + '<=' : 4, + '>=' : 4, + 'lt' : 4, + 'gt' : 4, + 'le' : 4, + 'ge' : 4, + '==' : 4, + '!=' : 4, + '<=>' : 4, + 'eq' : 4, + 'ne' : 4, + 'cmp' : 4, + '~~' : 4, + '&' : 4, + '|' : 4, + '^' : 4, + '&&' : 4, + '||' : 4, + '//' : 4, + '..' : 4, + '...' : 4, + '?' : 4, + ':' : 4, + '=' : 4, + '+=' : 4, + '-=' : 4, + '*=' : 4, // etc. ??? + ',' : 4, + '=>' : 4, + '::' : 4, + // list operators (rightward) + 'not' : 4, + 'and' : 4, + 'or' : 4, + 'xor' : 4, + // PERL predefined variables (I know, what this is a paranoid idea, but may be needed for people, who learn PERL, and for me as well, ...and may be for you?;) + 'BEGIN' : [5,1], + 'END' : [5,1], + 'PRINT' : [5,1], + 'PRINTF' : [5,1], + 'GETC' : [5,1], + 'READ' : [5,1], + 'READLINE' : [5,1], + 'DESTROY' : [5,1], + 'TIE' : [5,1], + 'TIEHANDLE' : [5,1], + 'UNTIE' : [5,1], + 'STDIN' : 5, + 'STDIN_TOP' : 5, + 'STDOUT' : 5, + 'STDOUT_TOP' : 5, + 'STDERR' : 5, + 'STDERR_TOP' : 5, + '$ARG' : 5, + '$_' : 5, + '@ARG' : 5, + '@_' : 5, + '$LIST_SEPARATOR' : 5, + '$"' : 5, + '$PROCESS_ID' : 5, + '$PID' : 5, + '$$' : 5, + '$REAL_GROUP_ID' : 5, + '$GID' : 5, + '$(' : 5, + '$EFFECTIVE_GROUP_ID' : 5, + '$EGID' : 5, + '$)' : 5, + '$PROGRAM_NAME' : 5, + '$0' : 5, + '$SUBSCRIPT_SEPARATOR' : 5, + '$SUBSEP' : 5, + '$;' : 5, + '$REAL_USER_ID' : 5, + '$UID' : 5, + '$<' : 5, + '$EFFECTIVE_USER_ID' : 5, + '$EUID' : 5, + '$>' : 5, + '$a' : 5, + '$b' : 5, + '$COMPILING' : 5, + '$^C' : 5, + '$DEBUGGING' : 5, + '$^D' : 5, + '${^ENCODING}' : 5, + '$ENV' : 5, + '%ENV' : 5, + '$SYSTEM_FD_MAX' : 5, + '$^F' : 5, + '@F' : 5, + '${^GLOBAL_PHASE}' : 5, + '$^H' : 5, + '%^H' : 5, + '@INC' : 5, + '%INC' : 5, + '$INPLACE_EDIT' : 5, + '$^I' : 5, + '$^M' : 5, + '$OSNAME' : 5, + '$^O' : 5, + '${^OPEN}' : 5, + '$PERLDB' : 5, + '$^P' : 5, + '$SIG' : 5, + '%SIG' : 5, + '$BASETIME' : 5, + '$^T' : 5, + '${^TAINT}' : 5, + '${^UNICODE}' : 5, + '${^UTF8CACHE}' : 5, + '${^UTF8LOCALE}' : 5, + '$PERL_VERSION' : 5, + '$^V' : 5, + '${^WIN32_SLOPPY_STAT}' : 5, + '$EXECUTABLE_NAME' : 5, + '$^X' : 5, + '$1' : 5, // - regexp $1, $2... + '$MATCH' : 5, + '$&' : 5, + '${^MATCH}' : 5, + '$PREMATCH' : 5, + '$`' : 5, + '${^PREMATCH}' : 5, + '$POSTMATCH' : 5, + "$'" : 5, + '${^POSTMATCH}' : 5, + '$LAST_PAREN_MATCH' : 5, + '$+' : 5, + '$LAST_SUBMATCH_RESULT' : 5, + '$^N' : 5, + '@LAST_MATCH_END' : 5, + '@+' : 5, + '%LAST_PAREN_MATCH' : 5, + '%+' : 5, + '@LAST_MATCH_START' : 5, + '@-' : 5, + '%LAST_MATCH_START' : 5, + '%-' : 5, + '$LAST_REGEXP_CODE_RESULT' : 5, + '$^R' : 5, + '${^RE_DEBUG_FLAGS}' : 5, + '${^RE_TRIE_MAXBUF}' : 5, + '$ARGV' : 5, + '@ARGV' : 5, + 'ARGV' : 5, + 'ARGVOUT' : 5, + '$OUTPUT_FIELD_SEPARATOR' : 5, + '$OFS' : 5, + '$,' : 5, + '$INPUT_LINE_NUMBER' : 5, + '$NR' : 5, + '$.' : 5, + '$INPUT_RECORD_SEPARATOR' : 5, + '$RS' : 5, + '$/' : 5, + '$OUTPUT_RECORD_SEPARATOR' : 5, + '$ORS' : 5, + '$\\' : 5, + '$OUTPUT_AUTOFLUSH' : 5, + '$|' : 5, + '$ACCUMULATOR' : 5, + '$^A' : 5, + '$FORMAT_FORMFEED' : 5, + '$^L' : 5, + '$FORMAT_PAGE_NUMBER' : 5, + '$%' : 5, + '$FORMAT_LINES_LEFT' : 5, + '$-' : 5, + '$FORMAT_LINE_BREAK_CHARACTERS' : 5, + '$:' : 5, + '$FORMAT_LINES_PER_PAGE' : 5, + '$=' : 5, + '$FORMAT_TOP_NAME' : 5, + '$^' : 5, + '$FORMAT_NAME' : 5, + '$~' : 5, + '${^CHILD_ERROR_NATIVE}' : 5, + '$EXTENDED_OS_ERROR' : 5, + '$^E' : 5, + '$EXCEPTIONS_BEING_CAUGHT' : 5, + '$^S' : 5, + '$WARNING' : 5, + '$^W' : 5, + '${^WARNING_BITS}' : 5, + '$OS_ERROR' : 5, + '$ERRNO' : 5, + '$!' : 5, + '%OS_ERROR' : 5, + '%ERRNO' : 5, + '%!' : 5, + '$CHILD_ERROR' : 5, + '$?' : 5, + '$EVAL_ERROR' : 5, + '$@' : 5, + '$OFMT' : 5, + '$#' : 5, + '$*' : 5, + '$ARRAY_BASE' : 5, + '$[' : 5, + '$OLD_PERL_VERSION' : 5, + '$]' : 5, + // PERL blocks + 'if' :[1,1], + elsif :[1,1], + 'else' :[1,1], + 'while' :[1,1], + unless :[1,1], + 'for' :[1,1], + foreach :[1,1], + // PERL functions + 'abs' :1, // - absolute value function + accept :1, // - accept an incoming socket connect + alarm :1, // - schedule a SIGALRM + 'atan2' :1, // - arctangent of Y/X in the range -PI to PI + bind :1, // - binds an address to a socket + binmode :1, // - prepare binary files for I/O + bless :1, // - create an object + bootstrap :1, // + 'break' :1, // - break out of a "given" block + caller :1, // - get context of the current subroutine call + chdir :1, // - change your current working directory + chmod :1, // - changes the permissions on a list of files + chomp :1, // - remove a trailing record separator from a string + chop :1, // - remove the last character from a string + chown :1, // - change the owership on a list of files + chr :1, // - get character this number represents + chroot :1, // - make directory new root for path lookups + close :1, // - close file (or pipe or socket) handle + closedir :1, // - close directory handle + connect :1, // - connect to a remote socket + 'continue' :[1,1], // - optional trailing block in a while or foreach + 'cos' :1, // - cosine function + crypt :1, // - one-way passwd-style encryption + dbmclose :1, // - breaks binding on a tied dbm file + dbmopen :1, // - create binding on a tied dbm file + 'default' :1, // + defined :1, // - test whether a value, variable, or function is defined + 'delete' :1, // - deletes a value from a hash + die :1, // - raise an exception or bail out + 'do' :1, // - turn a BLOCK into a TERM + dump :1, // - create an immediate core dump + each :1, // - retrieve the next key/value pair from a hash + endgrent :1, // - be done using group file + endhostent :1, // - be done using hosts file + endnetent :1, // - be done using networks file + endprotoent :1, // - be done using protocols file + endpwent :1, // - be done using passwd file + endservent :1, // - be done using services file + eof :1, // - test a filehandle for its end + 'eval' :1, // - catch exceptions or compile and run code + 'exec' :1, // - abandon this program to run another + exists :1, // - test whether a hash key is present + exit :1, // - terminate this program + 'exp' :1, // - raise I to a power + fcntl :1, // - file control system call + fileno :1, // - return file descriptor from filehandle + flock :1, // - lock an entire file with an advisory lock + fork :1, // - create a new process just like this one + format :1, // - declare a picture format with use by the write() function + formline :1, // - internal function used for formats + getc :1, // - get the next character from the filehandle + getgrent :1, // - get next group record + getgrgid :1, // - get group record given group user ID + getgrnam :1, // - get group record given group name + gethostbyaddr :1, // - get host record given its address + gethostbyname :1, // - get host record given name + gethostent :1, // - get next hosts record + getlogin :1, // - return who logged in at this tty + getnetbyaddr :1, // - get network record given its address + getnetbyname :1, // - get networks record given name + getnetent :1, // - get next networks record + getpeername :1, // - find the other end of a socket connection + getpgrp :1, // - get process group + getppid :1, // - get parent process ID + getpriority :1, // - get current nice value + getprotobyname :1, // - get protocol record given name + getprotobynumber :1, // - get protocol record numeric protocol + getprotoent :1, // - get next protocols record + getpwent :1, // - get next passwd record + getpwnam :1, // - get passwd record given user login name + getpwuid :1, // - get passwd record given user ID + getservbyname :1, // - get services record given its name + getservbyport :1, // - get services record given numeric port + getservent :1, // - get next services record + getsockname :1, // - retrieve the sockaddr for a given socket + getsockopt :1, // - get socket options on a given socket + given :1, // + glob :1, // - expand filenames using wildcards + gmtime :1, // - convert UNIX time into record or string using Greenwich time + 'goto' :1, // - create spaghetti code + grep :1, // - locate elements in a list test true against a given criterion + hex :1, // - convert a string to a hexadecimal number + 'import' :1, // - patch a module's namespace into your own + index :1, // - find a substring within a string + 'int' :1, // - get the integer portion of a number + ioctl :1, // - system-dependent device control system call + 'join' :1, // - join a list into a string using a separator + keys :1, // - retrieve list of indices from a hash + kill :1, // - send a signal to a process or process group + last :1, // - exit a block prematurely + lc :1, // - return lower-case version of a string + lcfirst :1, // - return a string with just the next letter in lower case + length :1, // - return the number of bytes in a string + 'link' :1, // - create a hard link in the filesytem + listen :1, // - register your socket as a server + local : 2, // - create a temporary value for a global variable (dynamic scoping) + localtime :1, // - convert UNIX time into record or string using local time + lock :1, // - get a thread lock on a variable, subroutine, or method + 'log' :1, // - retrieve the natural logarithm for a number + lstat :1, // - stat a symbolic link + m :null, // - match a string with a regular expression pattern + map :1, // - apply a change to a list to get back a new list with the changes + mkdir :1, // - create a directory + msgctl :1, // - SysV IPC message control operations + msgget :1, // - get SysV IPC message queue + msgrcv :1, // - receive a SysV IPC message from a message queue + msgsnd :1, // - send a SysV IPC message to a message queue + my : 2, // - declare and assign a local variable (lexical scoping) + 'new' :1, // + next :1, // - iterate a block prematurely + no :1, // - unimport some module symbols or semantics at compile time + oct :1, // - convert a string to an octal number + open :1, // - open a file, pipe, or descriptor + opendir :1, // - open a directory + ord :1, // - find a character's numeric representation + our : 2, // - declare and assign a package variable (lexical scoping) + pack :1, // - convert a list into a binary representation + 'package' :1, // - declare a separate global namespace + pipe :1, // - open a pair of connected filehandles + pop :1, // - remove the last element from an array and return it + pos :1, // - find or set the offset for the last/next m//g search + print :1, // - output a list to a filehandle + printf :1, // - output a formatted list to a filehandle + prototype :1, // - get the prototype (if any) of a subroutine + push :1, // - append one or more elements to an array + q :null, // - singly quote a string + qq :null, // - doubly quote a string + qr :null, // - Compile pattern + quotemeta :null, // - quote regular expression magic characters + qw :null, // - quote a list of words + qx :null, // - backquote quote a string + rand :1, // - retrieve the next pseudorandom number + read :1, // - fixed-length buffered input from a filehandle + readdir :1, // - get a directory from a directory handle + readline :1, // - fetch a record from a file + readlink :1, // - determine where a symbolic link is pointing + readpipe :1, // - execute a system command and collect standard output + recv :1, // - receive a message over a Socket + redo :1, // - start this loop iteration over again + ref :1, // - find out the type of thing being referenced + rename :1, // - change a filename + require :1, // - load in external functions from a library at runtime + reset :1, // - clear all variables of a given name + 'return' :1, // - get out of a function early + reverse :1, // - flip a string or a list + rewinddir :1, // - reset directory handle + rindex :1, // - right-to-left substring search + rmdir :1, // - remove a directory + s :null, // - replace a pattern with a string + say :1, // - print with newline + scalar :1, // - force a scalar context + seek :1, // - reposition file pointer for random-access I/O + seekdir :1, // - reposition directory pointer + select :1, // - reset default output or do I/O multiplexing + semctl :1, // - SysV semaphore control operations + semget :1, // - get set of SysV semaphores + semop :1, // - SysV semaphore operations + send :1, // - send a message over a socket + setgrent :1, // - prepare group file for use + sethostent :1, // - prepare hosts file for use + setnetent :1, // - prepare networks file for use + setpgrp :1, // - set the process group of a process + setpriority :1, // - set a process's nice value + setprotoent :1, // - prepare protocols file for use + setpwent :1, // - prepare passwd file for use + setservent :1, // - prepare services file for use + setsockopt :1, // - set some socket options + shift :1, // - remove the first element of an array, and return it + shmctl :1, // - SysV shared memory operations + shmget :1, // - get SysV shared memory segment identifier + shmread :1, // - read SysV shared memory + shmwrite :1, // - write SysV shared memory + shutdown :1, // - close down just half of a socket connection + 'sin' :1, // - return the sine of a number + sleep :1, // - block for some number of seconds + socket :1, // - create a socket + socketpair :1, // - create a pair of sockets + 'sort' :1, // - sort a list of values + splice :1, // - add or remove elements anywhere in an array + 'split' :1, // - split up a string using a regexp delimiter + sprintf :1, // - formatted print into a string + 'sqrt' :1, // - square root function + srand :1, // - seed the random number generator + stat :1, // - get a file's status information + state :1, // - declare and assign a state variable (persistent lexical scoping) + study :1, // - optimize input data for repeated searches + 'sub' :1, // - declare a subroutine, possibly anonymously + 'substr' :1, // - get or alter a portion of a stirng + symlink :1, // - create a symbolic link to a file + syscall :1, // - execute an arbitrary system call + sysopen :1, // - open a file, pipe, or descriptor + sysread :1, // - fixed-length unbuffered input from a filehandle + sysseek :1, // - position I/O pointer on handle used with sysread and syswrite + system :1, // - run a separate program + syswrite :1, // - fixed-length unbuffered output to a filehandle + tell :1, // - get current seekpointer on a filehandle + telldir :1, // - get current seekpointer on a directory handle + tie :1, // - bind a variable to an object class + tied :1, // - get a reference to the object underlying a tied variable + time :1, // - return number of seconds since 1970 + times :1, // - return elapsed time for self and child processes + tr :null, // - transliterate a string + truncate :1, // - shorten a file + uc :1, // - return upper-case version of a string + ucfirst :1, // - return a string with just the next letter in upper case + umask :1, // - set file creation mode mask + undef :1, // - remove a variable or function definition + unlink :1, // - remove one link to a file + unpack :1, // - convert binary structure into normal perl variables + unshift :1, // - prepend more elements to the beginning of a list + untie :1, // - break a tie binding to a variable + use :1, // - load in a module at compile time + utime :1, // - set a file's last access and modify times + values :1, // - return a list of the values in a hash + vec :1, // - test or set particular bits in a string + wait :1, // - wait for any child process to die + waitpid :1, // - wait for a particular child process to die + wantarray :1, // - get void vs scalar vs list context of current subroutine call + warn :1, // - print debugging info + when :1, // + write :1, // - print a picture record + y :null}; // - transliterate a string + + var RXstyle="string-2"; + var RXmodifiers=/[goseximacplud]/; // NOTE: "m", "s", "y" and "tr" need to correct real modifiers for each regexp type + + function tokenChain(stream,state,chain,style,tail){ // NOTE: chain.length > 2 is not working now (it's for s[...][...]geos;) + state.chain=null; // 12 3tail + state.style=null; + state.tail=null; + state.tokenize=function(stream,state){ + var e=false,c,i=0; + while(c=stream.next()){ + if(c===chain[i]&&!e){ + if(chain[++i]!==undefined){ + state.chain=chain[i]; + state.style=style; + state.tail=tail;} + else if(tail) + stream.eatWhile(tail); + state.tokenize=tokenPerl; + return style;} + e=!e&&c=="\\";} + return style;}; + return state.tokenize(stream,state);} + + function tokenSOMETHING(stream,state,string){ + state.tokenize=function(stream,state){ + if(stream.string==string) + state.tokenize=tokenPerl; + stream.skipToEnd(); + return "string";}; + return state.tokenize(stream,state);} + + function tokenPerl(stream,state){ + if(stream.eatSpace()) + return null; + if(state.chain) + return tokenChain(stream,state,state.chain,state.style,state.tail); + if(stream.match(/^\-?[\d\.]/,false)) + if(stream.match(/^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/)) + return 'number'; + if(stream.match(/^<<(?=\w)/)){ // NOTE: <"],RXstyle,RXmodifiers);} + if(/[\^'"!~\/]/.test(c)){ + eatSuffix(stream, 1); + return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}} + else if(c=="q"){ + c=look(stream, 1); + if(c=="("){ + eatSuffix(stream, 2); + return tokenChain(stream,state,[")"],"string");} + if(c=="["){ + eatSuffix(stream, 2); + return tokenChain(stream,state,["]"],"string");} + if(c=="{"){ + eatSuffix(stream, 2); + return tokenChain(stream,state,["}"],"string");} + if(c=="<"){ + eatSuffix(stream, 2); + return tokenChain(stream,state,[">"],"string");} + if(/[\^'"!~\/]/.test(c)){ + eatSuffix(stream, 1); + return tokenChain(stream,state,[stream.eat(c)],"string");}} + else if(c=="w"){ + c=look(stream, 1); + if(c=="("){ + eatSuffix(stream, 2); + return tokenChain(stream,state,[")"],"bracket");} + if(c=="["){ + eatSuffix(stream, 2); + return tokenChain(stream,state,["]"],"bracket");} + if(c=="{"){ + eatSuffix(stream, 2); + return tokenChain(stream,state,["}"],"bracket");} + if(c=="<"){ + eatSuffix(stream, 2); + return tokenChain(stream,state,[">"],"bracket");} + if(/[\^'"!~\/]/.test(c)){ + eatSuffix(stream, 1); + return tokenChain(stream,state,[stream.eat(c)],"bracket");}} + else if(c=="r"){ + c=look(stream, 1); + if(c=="("){ + eatSuffix(stream, 2); + return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);} + if(c=="["){ + eatSuffix(stream, 2); + return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);} + if(c=="{"){ + eatSuffix(stream, 2); + return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);} + if(c=="<"){ + eatSuffix(stream, 2); + return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);} + if(/[\^'"!~\/]/.test(c)){ + eatSuffix(stream, 1); + return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}} + else if(/[\^'"!~\/(\[{<]/.test(c)){ + if(c=="("){ + eatSuffix(stream, 1); + return tokenChain(stream,state,[")"],"string");} + if(c=="["){ + eatSuffix(stream, 1); + return tokenChain(stream,state,["]"],"string");} + if(c=="{"){ + eatSuffix(stream, 1); + return tokenChain(stream,state,["}"],"string");} + if(c=="<"){ + eatSuffix(stream, 1); + return tokenChain(stream,state,[">"],"string");} + if(/[\^'"!~\/]/.test(c)){ + return tokenChain(stream,state,[stream.eat(c)],"string");}}}} + if(ch=="m"){ + var c=look(stream, -2); + if(!(c&&/\w/.test(c))){ + c=stream.eat(/[(\[{<\^'"!~\/]/); + if(c){ + if(/[\^'"!~\/]/.test(c)){ + return tokenChain(stream,state,[c],RXstyle,RXmodifiers);} + if(c=="("){ + return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);} + if(c=="["){ + return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);} + if(c=="{"){ + return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);} + if(c=="<"){ + return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}}}} + if(ch=="s"){ + var c=/[\/>\]})\w]/.test(look(stream, -2)); + if(!c){ + c=stream.eat(/[(\[{<\^'"!~\/]/); + if(c){ + if(c=="[") + return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers); + if(c=="{") + return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers); + if(c=="<") + return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers); + if(c=="(") + return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers); + return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}} + if(ch=="y"){ + var c=/[\/>\]})\w]/.test(look(stream, -2)); + if(!c){ + c=stream.eat(/[(\[{<\^'"!~\/]/); + if(c){ + if(c=="[") + return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers); + if(c=="{") + return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers); + if(c=="<") + return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers); + if(c=="(") + return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers); + return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}} + if(ch=="t"){ + var c=/[\/>\]})\w]/.test(look(stream, -2)); + if(!c){ + c=stream.eat("r");if(c){ + c=stream.eat(/[(\[{<\^'"!~\/]/); + if(c){ + if(c=="[") + return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers); + if(c=="{") + return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers); + if(c=="<") + return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers); + if(c=="(") + return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers); + return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}} + if(ch=="`"){ + return tokenChain(stream,state,[ch],"variable-2");} + if(ch=="/"){ + if(!/~\s*$/.test(prefix(stream))) + return "operator"; + else + return tokenChain(stream,state,[ch],RXstyle,RXmodifiers);} + if(ch=="$"){ + var p=stream.pos; + if(stream.eatWhile(/\d/)||stream.eat("{")&&stream.eatWhile(/\d/)&&stream.eat("}")) + return "variable-2"; + else + stream.pos=p;} + if(/[$@%]/.test(ch)){ + var p=stream.pos; + if(stream.eat("^")&&stream.eat(/[A-Z]/)||!/[@$%&]/.test(look(stream, -2))&&stream.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){ + var c=stream.current(); + if(PERL[c]) + return "variable-2";} + stream.pos=p;} + if(/[$@%&]/.test(ch)){ + if(stream.eatWhile(/[\w$\[\]]/)||stream.eat("{")&&stream.eatWhile(/[\w$\[\]]/)&&stream.eat("}")){ + var c=stream.current(); + if(PERL[c]) + return "variable-2"; + else + return "variable";}} + if(ch=="#"){ + if(look(stream, -2)!="$"){ + stream.skipToEnd(); + return "comment";}} + if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(ch)){ + var p=stream.pos; + stream.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/); + if(PERL[stream.current()]) + return "operator"; + else + stream.pos=p;} + if(ch=="_"){ + if(stream.pos==1){ + if(suffix(stream, 6)=="_END__"){ + return tokenChain(stream,state,['\0'],"comment");} + else if(suffix(stream, 7)=="_DATA__"){ + return tokenChain(stream,state,['\0'],"variable-2");} + else if(suffix(stream, 7)=="_C__"){ + return tokenChain(stream,state,['\0'],"string");}}} + if(/\w/.test(ch)){ + var p=stream.pos; + if(look(stream, -2)=="{"&&(look(stream, 0)=="}"||stream.eatWhile(/\w/)&&look(stream, 0)=="}")) + return "string"; + else + stream.pos=p;} + if(/[A-Z]/.test(ch)){ + var l=look(stream, -2); + var p=stream.pos; + stream.eatWhile(/[A-Z_]/); + if(/[\da-z]/.test(look(stream, 0))){ + stream.pos=p;} + else{ + var c=PERL[stream.current()]; + if(!c) + return "meta"; + if(c[1]) + c=c[0]; + if(l!=":"){ + if(c==1) + return "keyword"; + else if(c==2) + return "def"; + else if(c==3) + return "atom"; + else if(c==4) + return "operator"; + else if(c==5) + return "variable-2"; + else + return "meta";} + else + return "meta";}} + if(/[a-zA-Z_]/.test(ch)){ + var l=look(stream, -2); + stream.eatWhile(/\w/); + var c=PERL[stream.current()]; + if(!c) + return "meta"; + if(c[1]) + c=c[0]; + if(l!=":"){ + if(c==1) + return "keyword"; + else if(c==2) + return "def"; + else if(c==3) + return "atom"; + else if(c==4) + return "operator"; + else if(c==5) + return "variable-2"; + else + return "meta";} + else + return "meta";} + return null;} + + return { + startState: function() { + return { + tokenize: tokenPerl, + chain: null, + style: null, + tail: null + }; + }, + token: function(stream, state) { + return (state.tokenize || tokenPerl)(stream, state); + }, + lineComment: '#' + }; +}); + +CodeMirror.registerHelper("wordChars", "perl", /[\w$]/); + +CodeMirror.defineMIME("text/x-perl", "perl"); + +// it's like "peek", but need for look-ahead or look-behind if index < 0 +function look(stream, c){ + return stream.string.charAt(stream.pos+(c||0)); +} + +// return a part of prefix of current stream from current position +function prefix(stream, c){ + if(c){ + var x=stream.pos-c; + return stream.string.substr((x>=0?x:0),c);} + else{ + return stream.string.substr(0,stream.pos-1); + } +} + +// return a part of suffix of current stream from current position +function suffix(stream, c){ + var y=stream.string.length; + var x=y-stream.pos+1; + return stream.string.substr(stream.pos,(c&&c=(y=stream.string.length-1)) + stream.pos=y; + else + stream.pos=x; +} + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/index.html new file mode 100644 index 0000000..adf6b1b --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/index.html @@ -0,0 +1,64 @@ + + +CodeMirror: PHP mode + + + + + + + + + + + + + + + +
                              +

                              PHP mode

                              +
                              + + + +

                              Simple HTML/PHP mode based on + the C-like mode. Depends on XML, + JavaScript, CSS, HTMLMixed, and C-like modes.

                              + +

                              MIME types defined: application/x-httpd-php (HTML with PHP code), text/x-php (plain, non-wrapped PHP code).

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/php.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/php.js new file mode 100644 index 0000000..e112d91 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/php.js @@ -0,0 +1,226 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../clike/clike")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../clike/clike"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + function keywords(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + // Helper for stringWithEscapes + function matchSequence(list, end) { + if (list.length == 0) return stringWithEscapes(end); + return function (stream, state) { + var patterns = list[0]; + for (var i = 0; i < patterns.length; i++) if (stream.match(patterns[i][0])) { + state.tokenize = matchSequence(list.slice(1), end); + return patterns[i][1]; + } + state.tokenize = stringWithEscapes(end); + return "string"; + }; + } + function stringWithEscapes(closing) { + return function(stream, state) { return stringWithEscapes_(stream, state, closing); }; + } + function stringWithEscapes_(stream, state, closing) { + // "Complex" syntax + if (stream.match("${", false) || stream.match("{$", false)) { + state.tokenize = null; + return "string"; + } + + // Simple syntax + if (stream.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/)) { + // After the variable name there may appear array or object operator. + if (stream.match("[", false)) { + // Match array operator + state.tokenize = matchSequence([ + [["[", null]], + [[/\d[\w\.]*/, "number"], + [/\$[a-zA-Z_][a-zA-Z0-9_]*/, "variable-2"], + [/[\w\$]+/, "variable"]], + [["]", null]] + ], closing); + } + if (stream.match(/\-\>\w/, false)) { + // Match object operator + state.tokenize = matchSequence([ + [["->", null]], + [[/[\w]+/, "variable"]] + ], closing); + } + return "variable-2"; + } + + var escaped = false; + // Normal string + while (!stream.eol() && + (escaped || (!stream.match("{$", false) && + !stream.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/, false)))) { + if (!escaped && stream.match(closing)) { + state.tokenize = null; + state.tokStack.pop(); state.tokStack.pop(); + break; + } + escaped = stream.next() == "\\" && !escaped; + } + return "string"; + } + + var phpKeywords = "abstract and array as break case catch class clone const continue declare default " + + "do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final " + + "for foreach function global goto if implements interface instanceof namespace " + + "new or private protected public static switch throw trait try use var while xor " + + "die echo empty exit eval include include_once isset list require require_once return " + + "print unset __halt_compiler self static parent yield insteadof finally"; + var phpAtoms = "true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__"; + var phpBuiltin = "func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count"; + CodeMirror.registerHelper("hintWords", "php", [phpKeywords, phpAtoms, phpBuiltin].join(" ").split(" ")); + CodeMirror.registerHelper("wordChars", "php", /[\w$]/); + + var phpConfig = { + name: "clike", + helperType: "php", + keywords: keywords(phpKeywords), + blockKeywords: keywords("catch do else elseif for foreach if switch try while finally"), + atoms: keywords(phpAtoms), + builtin: keywords(phpBuiltin), + multiLineStrings: true, + hooks: { + "$": function(stream) { + stream.eatWhile(/[\w\$_]/); + return "variable-2"; + }, + "<": function(stream, state) { + if (stream.match(/<", false)) stream.next(); + return "comment"; + }, + "/": function(stream) { + if (stream.eat("/")) { + while (!stream.eol() && !stream.match("?>", false)) stream.next(); + return "comment"; + } + return false; + }, + '"': function(_stream, state) { + (state.tokStack || (state.tokStack = [])).push('"', 0); + state.tokenize = stringWithEscapes('"'); + return "string"; + }, + "{": function(_stream, state) { + if (state.tokStack && state.tokStack.length) + state.tokStack[state.tokStack.length - 1]++; + return false; + }, + "}": function(_stream, state) { + if (state.tokStack && state.tokStack.length > 0 && + !--state.tokStack[state.tokStack.length - 1]) { + state.tokenize = stringWithEscapes(state.tokStack[state.tokStack.length - 2]); + } + return false; + } + } + }; + + CodeMirror.defineMode("php", function(config, parserConfig) { + var htmlMode = CodeMirror.getMode(config, "text/html"); + var phpMode = CodeMirror.getMode(config, phpConfig); + + function dispatch(stream, state) { + var isPHP = state.curMode == phpMode; + if (stream.sol() && state.pending && state.pending != '"' && state.pending != "'") state.pending = null; + if (!isPHP) { + if (stream.match(/^<\?\w*/)) { + state.curMode = phpMode; + state.curState = state.php; + return "meta"; + } + if (state.pending == '"' || state.pending == "'") { + while (!stream.eol() && stream.next() != state.pending) {} + var style = "string"; + } else if (state.pending && stream.pos < state.pending.end) { + stream.pos = state.pending.end; + var style = state.pending.style; + } else { + var style = htmlMode.token(stream, state.curState); + } + if (state.pending) state.pending = null; + var cur = stream.current(), openPHP = cur.search(/<\?/), m; + if (openPHP != -1) { + if (style == "string" && (m = cur.match(/[\'\"]$/)) && !/\?>/.test(cur)) state.pending = m[0]; + else state.pending = {end: stream.pos, style: style}; + stream.backUp(cur.length - openPHP); + } + return style; + } else if (isPHP && state.php.tokenize == null && stream.match("?>")) { + state.curMode = htmlMode; + state.curState = state.html; + return "meta"; + } else { + return phpMode.token(stream, state.curState); + } + } + + return { + startState: function() { + var html = CodeMirror.startState(htmlMode), php = CodeMirror.startState(phpMode); + return {html: html, + php: php, + curMode: parserConfig.startOpen ? phpMode : htmlMode, + curState: parserConfig.startOpen ? php : html, + pending: null}; + }, + + copyState: function(state) { + var html = state.html, htmlNew = CodeMirror.copyState(htmlMode, html), + php = state.php, phpNew = CodeMirror.copyState(phpMode, php), cur; + if (state.curMode == htmlMode) cur = htmlNew; + else cur = phpNew; + return {html: htmlNew, php: phpNew, curMode: state.curMode, curState: cur, + pending: state.pending}; + }, + + token: dispatch, + + indent: function(state, textAfter) { + if ((state.curMode != phpMode && /^\s*<\//.test(textAfter)) || + (state.curMode == phpMode && /^\?>/.test(textAfter))) + return htmlMode.indent(state.html, textAfter); + return state.curMode.indent(state.curState, textAfter); + }, + + blockCommentStart: "/*", + blockCommentEnd: "*/", + lineComment: "//", + + innerMode: function(state) { return {state: state.curState, mode: state.curMode}; } + }; + }, "htmlmixed", "clike"); + + CodeMirror.defineMIME("application/x-httpd-php", "php"); + CodeMirror.defineMIME("application/x-httpd-php-open", {name: "php", startOpen: true}); + CodeMirror.defineMIME("text/x-php", phpConfig); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/test.js new file mode 100644 index 0000000..e2ecefc --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/php/test.js @@ -0,0 +1,154 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({indentUnit: 2}, "php"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + MT('simple_test', + '[meta ]'); + + MT('variable_interpolation_non_alphanumeric', + '[meta $/$\\$}$\\\"$:$;$?$|$[[$]]$+$=aaa"]', + '[meta ?>]'); + + MT('variable_interpolation_digits', + '[meta ]'); + + MT('variable_interpolation_simple_syntax_1', + '[meta ]'); + + MT('variable_interpolation_simple_syntax_2', + '[meta ]'); + + MT('variable_interpolation_simple_syntax_3', + '[meta [variable aaaaa][string .aaaaaa"];', + '[keyword echo] [string "aaa][variable-2 $aaaa][string ->][variable-2 $aaaaa][string .aaaaaa"];', + '[keyword echo] [string "aaa][variable-2 $aaaa]->[variable aaaaa][string [[2]].aaaaaa"];', + '[keyword echo] [string "aaa][variable-2 $aaaa]->[variable aaaaa][string ->aaaa2.aaaaaa"];', + '[meta ?>]'); + + MT('variable_interpolation_escaping', + '[meta aaa.aaa"];', + '[keyword echo] [string "aaa\\$aaaa[[2]]aaa.aaa"];', + '[keyword echo] [string "aaa\\$aaaa[[asd]]aaa.aaa"];', + '[keyword echo] [string "aaa{\\$aaaa->aaa.aaa"];', + '[keyword echo] [string "aaa{\\$aaaa[[2]]aaa.aaa"];', + '[keyword echo] [string "aaa{\\aaaaa[[asd]]aaa.aaa"];', + '[keyword echo] [string "aaa\\${aaaa->aaa.aaa"];', + '[keyword echo] [string "aaa\\${aaaa[[2]]aaa.aaa"];', + '[keyword echo] [string "aaa\\${aaaa[[asd]]aaa.aaa"];', + '[meta ?>]'); + + MT('variable_interpolation_complex_syntax_1', + '[meta aaa.aaa"];', + '[keyword echo] [string "aaa][variable-2 $]{[variable-2 $aaaa]}[string ->aaa.aaa"];', + '[keyword echo] [string "aaa][variable-2 $]{[variable-2 $aaaa][[',' [number 42]',']]}[string ->aaa.aaa"];', + '[keyword echo] [string "aaa][variable-2 $]{[variable aaaa][meta ?>]aaaaaa'); + + MT('variable_interpolation_complex_syntax_2', + '[meta } $aaaaaa.aaa"];', + '[keyword echo] [string "][variable-2 $]{[variable aaa][comment /*}?>*/][[',' [string "aaa][variable-2 $aaa][string {}][variable-2 $]{[variable aaa]}[string "]',']]}[string ->aaa.aaa"];', + '[keyword echo] [string "][variable-2 $]{[variable aaa][comment /*} } $aaa } */]}[string ->aaa.aaa"];'); + + + function build_recursive_monsters(nt, t, n){ + var monsters = [t]; + for (var i = 1; i <= n; ++i) + monsters[i] = nt.join(monsters[i - 1]); + return monsters; + } + + var m1 = build_recursive_monsters( + ['[string "][variable-2 $]{[variable aaa] [operator +] ', '}[string "]'], + '[comment /* }?>} */] [string "aaa][variable-2 $aaa][string .aaa"]', + 10 + ); + + MT('variable_interpolation_complex_syntax_3_1', + '[meta ]'); + + var m2 = build_recursive_monsters( + ['[string "a][variable-2 $]{[variable aaa] [operator +] ', ' [operator +] ', '}[string .a"]'], + '[comment /* }?>{{ */] [string "a?>}{{aa][variable-2 $aaa][string .a}a?>a"]', + 5 + ); + + MT('variable_interpolation_complex_syntax_3_2', + '[meta ]'); + + function build_recursive_monsters_2(mf1, mf2, nt, t, n){ + var monsters = [t]; + for (var i = 1; i <= n; ++i) + monsters[i] = nt[0] + mf1[i - 1] + nt[1] + mf2[i - 1] + nt[2] + monsters[i - 1] + nt[3]; + return monsters; + } + + var m3 = build_recursive_monsters_2( + m1, + m2, + ['[string "a][variable-2 $]{[variable aaa] [operator +] ', ' [operator +] ', ' [operator +] ', '}[string .a"]'], + '[comment /* }?>{{ */] [string "a?>}{{aa][variable-2 $aaa][string .a}a?>a"]', + 4 + ); + + MT('variable_interpolation_complex_syntax_3_3', + '[meta ]'); + + MT("variable_interpolation_heredoc", + "[meta + +CodeMirror: Pig Latin mode + + + + + + + + + +
                              +

                              Pig Latin mode

                              +
                              + + + +

                              + Simple mode that handles Pig Latin language. +

                              + +

                              MIME type defined: text/x-pig + (PIG code) + +

                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pig/pig.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pig/pig.js new file mode 100644 index 0000000..c74b2cc --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/pig/pig.js @@ -0,0 +1,188 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/* + * Pig Latin Mode for CodeMirror 2 + * @author Prasanth Jayachandran + * @link https://github.com/prasanthj/pig-codemirror-2 + * This implementation is adapted from PL/SQL mode in CodeMirror 2. + */ +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("pig", function(_config, parserConfig) { + var keywords = parserConfig.keywords, + builtins = parserConfig.builtins, + types = parserConfig.types, + multiLineStrings = parserConfig.multiLineStrings; + + var isOperatorChar = /[*+\-%<>=&?:\/!|]/; + + function chain(stream, state, f) { + state.tokenize = f; + return f(stream, state); + } + + var type; + function ret(tp, style) { + type = tp; + return style; + } + + function tokenComment(stream, state) { + var isEnd = false; + var ch; + while(ch = stream.next()) { + if(ch == "/" && isEnd) { + state.tokenize = tokenBase; + break; + } + isEnd = (ch == "*"); + } + return ret("comment", "comment"); + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while((next = stream.next()) != null) { + if (next == quote && !escaped) { + end = true; break; + } + escaped = !escaped && next == "\\"; + } + if (end || !(escaped || multiLineStrings)) + state.tokenize = tokenBase; + return ret("string", "error"); + }; + } + + function tokenBase(stream, state) { + var ch = stream.next(); + + // is a start of string? + if (ch == '"' || ch == "'") + return chain(stream, state, tokenString(ch)); + // is it one of the special chars + else if(/[\[\]{}\(\),;\.]/.test(ch)) + return ret(ch); + // is it a number? + else if(/\d/.test(ch)) { + stream.eatWhile(/[\w\.]/); + return ret("number", "number"); + } + // multi line comment or operator + else if (ch == "/") { + if (stream.eat("*")) { + return chain(stream, state, tokenComment); + } + else { + stream.eatWhile(isOperatorChar); + return ret("operator", "operator"); + } + } + // single line comment or operator + else if (ch=="-") { + if(stream.eat("-")){ + stream.skipToEnd(); + return ret("comment", "comment"); + } + else { + stream.eatWhile(isOperatorChar); + return ret("operator", "operator"); + } + } + // is it an operator + else if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return ret("operator", "operator"); + } + else { + // get the while word + stream.eatWhile(/[\w\$_]/); + // is it one of the listed keywords? + if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) { + if (stream.eat(")") || stream.eat(".")) { + //keywords can be used as variables like flatten(group), group.$0 etc.. + } + else { + return ("keyword", "keyword"); + } + } + // is it one of the builtin functions? + if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase())) + { + return ("keyword", "variable-2"); + } + // is it one of the listed types? + if (types && types.propertyIsEnumerable(stream.current().toUpperCase())) + return ("keyword", "variable-3"); + // default is a 'variable' + return ret("variable", "pig-word"); + } + } + + // Interface + return { + startState: function() { + return { + tokenize: tokenBase, + startOfLine: true + }; + }, + + token: function(stream, state) { + if(stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + return style; + } + }; +}); + +(function() { + function keywords(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + // builtin funcs taken from trunk revision 1303237 + var pBuiltins = "ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL " + + "CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS " + + "DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG " + + "FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN " + + "INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER " + + "ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS " + + "LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA " + + "PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE " + + "SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG " + + "TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER "; + + // taken from QueryLexer.g + var pKeywords = "VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP " + + "JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL " + + "PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE " + + "SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE " + + "NEQ MATCHES TRUE FALSE DUMP"; + + // data types + var pTypes = "BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP "; + + CodeMirror.defineMIME("text/x-pig", { + name: "pig", + builtins: keywords(pBuiltins), + keywords: keywords(pKeywords), + types: keywords(pTypes) + }); + + CodeMirror.registerHelper("hintWords", "pig", (pBuiltins + pTypes + pKeywords).split(" ")); +}()); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/properties/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/properties/index.html new file mode 100644 index 0000000..f885302 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/properties/index.html @@ -0,0 +1,53 @@ + + +CodeMirror: Properties files mode + + + + + + + + + +
                              +

                              Properties files mode

                              +
                              + + +

                              MIME types defined: text/x-properties, + text/x-ini.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/properties/properties.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/properties/properties.js new file mode 100644 index 0000000..0740084 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/properties/properties.js @@ -0,0 +1,78 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("properties", function() { + return { + token: function(stream, state) { + var sol = stream.sol() || state.afterSection; + var eol = stream.eol(); + + state.afterSection = false; + + if (sol) { + if (state.nextMultiline) { + state.inMultiline = true; + state.nextMultiline = false; + } else { + state.position = "def"; + } + } + + if (eol && ! state.nextMultiline) { + state.inMultiline = false; + state.position = "def"; + } + + if (sol) { + while(stream.eatSpace()); + } + + var ch = stream.next(); + + if (sol && (ch === "#" || ch === "!" || ch === ";")) { + state.position = "comment"; + stream.skipToEnd(); + return "comment"; + } else if (sol && ch === "[") { + state.afterSection = true; + stream.skipTo("]"); stream.eat("]"); + return "header"; + } else if (ch === "=" || ch === ":") { + state.position = "quote"; + return null; + } else if (ch === "\\" && state.position === "quote") { + if (stream.next() !== "u") { // u = Unicode sequence \u1234 + // Multiline value + state.nextMultiline = true; + } + } + + return state.position; + }, + + startState: function() { + return { + position : "def", // Current position, "def", "quote" or "comment" + nextMultiline : false, // Is the next line multiline value + inMultiline : false, // Is the current line a multiline value + afterSection : false // Did we just open a section + }; + } + + }; +}); + +CodeMirror.defineMIME("text/x-properties", "properties"); +CodeMirror.defineMIME("text/x-ini", "properties"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/puppet/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/puppet/index.html new file mode 100644 index 0000000..5614c36 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/puppet/index.html @@ -0,0 +1,121 @@ + + +CodeMirror: Puppet mode + + + + + + + + + + +
                              +

                              Puppet mode

                              +
                              + + +

                              MIME types defined: text/x-puppet.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/puppet/puppet.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/puppet/puppet.js new file mode 100644 index 0000000..e7f799f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/puppet/puppet.js @@ -0,0 +1,220 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("puppet", function () { + // Stores the words from the define method + var words = {}; + // Taken, mostly, from the Puppet official variable standards regex + var variable_regex = /({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/; + + // Takes a string of words separated by spaces and adds them as + // keys with the value of the first argument 'style' + function define(style, string) { + var split = string.split(' '); + for (var i = 0; i < split.length; i++) { + words[split[i]] = style; + } + } + + // Takes commonly known puppet types/words and classifies them to a style + define('keyword', 'class define site node include import inherits'); + define('keyword', 'case if else in and elsif default or'); + define('atom', 'false true running present absent file directory undef'); + define('builtin', 'action augeas burst chain computer cron destination dport exec ' + + 'file filebucket group host icmp iniface interface jump k5login limit log_level ' + + 'log_prefix macauthorization mailalias maillist mcx mount nagios_command ' + + 'nagios_contact nagios_contactgroup nagios_host nagios_hostdependency ' + + 'nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service ' + + 'nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo ' + + 'nagios_servicegroup nagios_timeperiod name notify outiface package proto reject ' + + 'resources router schedule scheduled_task selboolean selmodule service source ' + + 'sport ssh_authorized_key sshkey stage state table tidy todest toports tosource ' + + 'user vlan yumrepo zfs zone zpool'); + + // After finding a start of a string ('|") this function attempts to find the end; + // If a variable is encountered along the way, we display it differently when it + // is encapsulated in a double-quoted string. + function tokenString(stream, state) { + var current, prev, found_var = false; + while (!stream.eol() && (current = stream.next()) != state.pending) { + if (current === '$' && prev != '\\' && state.pending == '"') { + found_var = true; + break; + } + prev = current; + } + if (found_var) { + stream.backUp(1); + } + if (current == state.pending) { + state.continueString = false; + } else { + state.continueString = true; + } + return "string"; + } + + // Main function + function tokenize(stream, state) { + // Matches one whole word + var word = stream.match(/[\w]+/, false); + // Matches attributes (i.e. ensure => present ; 'ensure' would be matched) + var attribute = stream.match(/(\s+)?\w+\s+=>.*/, false); + // Matches non-builtin resource declarations + // (i.e. "apache::vhost {" or "mycustomclasss {" would be matched) + var resource = stream.match(/(\s+)?[\w:_]+(\s+)?{/, false); + // Matches virtual and exported resources (i.e. @@user { ; and the like) + var special_resource = stream.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/, false); + + // Finally advance the stream + var ch = stream.next(); + + // Have we found a variable? + if (ch === '$') { + if (stream.match(variable_regex)) { + // If so, and its in a string, assign it a different color + return state.continueString ? 'variable-2' : 'variable'; + } + // Otherwise return an invalid variable + return "error"; + } + // Should we still be looking for the end of a string? + if (state.continueString) { + // If so, go through the loop again + stream.backUp(1); + return tokenString(stream, state); + } + // Are we in a definition (class, node, define)? + if (state.inDefinition) { + // If so, return def (i.e. for 'class myclass {' ; 'myclass' would be matched) + if (stream.match(/(\s+)?[\w:_]+(\s+)?/)) { + return 'def'; + } + // Match the rest it the next time around + stream.match(/\s+{/); + state.inDefinition = false; + } + // Are we in an 'include' statement? + if (state.inInclude) { + // Match and return the included class + stream.match(/(\s+)?\S+(\s+)?/); + state.inInclude = false; + return 'def'; + } + // Do we just have a function on our hands? + // In 'ensure_resource("myclass")', 'ensure_resource' is matched + if (stream.match(/(\s+)?\w+\(/)) { + stream.backUp(1); + return 'def'; + } + // Have we matched the prior attribute regex? + if (attribute) { + stream.match(/(\s+)?\w+/); + return 'tag'; + } + // Do we have Puppet specific words? + if (word && words.hasOwnProperty(word)) { + // Negates the initial next() + stream.backUp(1); + // Acutally move the stream + stream.match(/[\w]+/); + // We want to process these words differently + // do to the importance they have in Puppet + if (stream.match(/\s+\S+\s+{/, false)) { + state.inDefinition = true; + } + if (word == 'include') { + state.inInclude = true; + } + // Returns their value as state in the prior define methods + return words[word]; + } + // Is there a match on a reference? + if (/(^|\s+)[A-Z][\w:_]+/.test(word)) { + // Negate the next() + stream.backUp(1); + // Match the full reference + stream.match(/(^|\s+)[A-Z][\w:_]+/); + return 'def'; + } + // Have we matched the prior resource regex? + if (resource) { + stream.match(/(\s+)?[\w:_]+/); + return 'def'; + } + // Have we matched the prior special_resource regex? + if (special_resource) { + stream.match(/(\s+)?[@]{1,2}/); + return 'special'; + } + // Match all the comments. All of them. + if (ch == "#") { + stream.skipToEnd(); + return "comment"; + } + // Have we found a string? + if (ch == "'" || ch == '"') { + // Store the type (single or double) + state.pending = ch; + // Perform the looping function to find the end + return tokenString(stream, state); + } + // Match all the brackets + if (ch == '{' || ch == '}') { + return 'bracket'; + } + // Match characters that we are going to assume + // are trying to be regex + if (ch == '/') { + stream.match(/.*?\//); + return 'variable-3'; + } + // Match all the numbers + if (ch.match(/[0-9]/)) { + stream.eatWhile(/[0-9]+/); + return 'number'; + } + // Match the '=' and '=>' operators + if (ch == '=') { + if (stream.peek() == '>') { + stream.next(); + } + return "operator"; + } + // Keep advancing through all the rest + stream.eatWhile(/[\w-]/); + // Return a blank line for everything else + return null; + } + // Start it all + return { + startState: function () { + var state = {}; + state.inDefinition = false; + state.inInclude = false; + state.continueString = false; + state.pending = false; + return state; + }, + token: function (stream, state) { + // Strip the spaces, but regex will account for them eitherway + if (stream.eatSpace()) return null; + // Go through the main process + return tokenize(stream, state); + } + }; +}); + +CodeMirror.defineMIME("text/x-puppet", "puppet"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/python/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/python/index.html new file mode 100644 index 0000000..03cdb04 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/python/index.html @@ -0,0 +1,198 @@ + + +CodeMirror: Python mode + + + + + + + + + + +
                              +

                              Python mode

                              + +
                              + + +

                              Cython mode

                              + +
                              + + +

                              Configuration Options for Python mode:

                              +
                                +
                              • version - 2/3 - The version of Python to recognize. Default is 2.
                              • +
                              • singleLineStringErrors - true/false - If you have a single-line string that is not terminated at the end of the line, this will show subsequent lines as errors if true, otherwise it will consider the newline as the end of the string. Default is false.
                              • +
                              • hangingIndent - int - If you want to write long arguments to a function starting on a new line, how much that line should be indented. Defaults to one normal indentation unit.
                              • +
                              +

                              Advanced Configuration Options:

                              +

                              Usefull for superset of python syntax like Enthought enaml, IPython magics and questionmark help

                              +
                                +
                              • singleOperators - RegEx - Regular Expression for single operator matching, default :
                                ^[\\+\\-\\*/%&|\\^~<>!]
                                including
                                @
                                on Python 3
                              • +
                              • singleDelimiters - RegEx - Regular Expression for single delimiter matching, default :
                                ^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]
                              • +
                              • doubleOperators - RegEx - Regular Expression for double operators matching, default :
                                ^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))
                              • +
                              • doubleDelimiters - RegEx - Regular Expressoin for double delimiters matching, default :
                                ^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))
                              • +
                              • tripleDelimiters - RegEx - Regular Expression for triple delimiters matching, default :
                                ^((//=)|(>>=)|(<<=)|(\\*\\*=))
                              • +
                              • identifiers - RegEx - Regular Expression for identifier, default :
                                ^[_A-Za-z][_A-Za-z0-9]*
                                on Python 2 and
                                ^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*
                                on Python 3.
                              • +
                              • extra_keywords - list of string - List of extra words ton consider as keywords
                              • +
                              • extra_builtins - list of string - List of extra words ton consider as builtins
                              • +
                              + + +

                              MIME types defined: text/x-python and text/x-cython.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/python/python.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/python/python.js new file mode 100644 index 0000000..98c0409 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/python/python.js @@ -0,0 +1,359 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + function wordRegexp(words) { + return new RegExp("^((" + words.join(")|(") + "))\\b"); + } + + var wordOperators = wordRegexp(["and", "or", "not", "is"]); + var commonKeywords = ["as", "assert", "break", "class", "continue", + "def", "del", "elif", "else", "except", "finally", + "for", "from", "global", "if", "import", + "lambda", "pass", "raise", "return", + "try", "while", "with", "yield", "in"]; + var commonBuiltins = ["abs", "all", "any", "bin", "bool", "bytearray", "callable", "chr", + "classmethod", "compile", "complex", "delattr", "dict", "dir", "divmod", + "enumerate", "eval", "filter", "float", "format", "frozenset", + "getattr", "globals", "hasattr", "hash", "help", "hex", "id", + "input", "int", "isinstance", "issubclass", "iter", "len", + "list", "locals", "map", "max", "memoryview", "min", "next", + "object", "oct", "open", "ord", "pow", "property", "range", + "repr", "reversed", "round", "set", "setattr", "slice", + "sorted", "staticmethod", "str", "sum", "super", "tuple", + "type", "vars", "zip", "__import__", "NotImplemented", + "Ellipsis", "__debug__"]; + var py2 = {builtins: ["apply", "basestring", "buffer", "cmp", "coerce", "execfile", + "file", "intern", "long", "raw_input", "reduce", "reload", + "unichr", "unicode", "xrange", "False", "True", "None"], + keywords: ["exec", "print"]}; + var py3 = {builtins: ["ascii", "bytes", "exec", "print"], + keywords: ["nonlocal", "False", "True", "None"]}; + + CodeMirror.registerHelper("hintWords", "python", commonKeywords.concat(commonBuiltins)); + + function top(state) { + return state.scopes[state.scopes.length - 1]; + } + + CodeMirror.defineMode("python", function(conf, parserConf) { + var ERRORCLASS = "error"; + + var singleDelimiters = parserConf.singleDelimiters || new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"); + var doubleOperators = parserConf.doubleOperators || new RegExp("^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"); + var doubleDelimiters = parserConf.doubleDelimiters || new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"); + var tripleDelimiters = parserConf.tripleDelimiters || new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"); + + if (parserConf.version && parseInt(parserConf.version, 10) == 3){ + // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator + var singleOperators = parserConf.singleOperators || new RegExp("^[\\+\\-\\*/%&|\\^~<>!@]"); + var identifiers = parserConf.identifiers|| new RegExp("^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*"); + } else { + var singleOperators = parserConf.singleOperators || new RegExp("^[\\+\\-\\*/%&|\\^~<>!]"); + var identifiers = parserConf.identifiers|| new RegExp("^[_A-Za-z][_A-Za-z0-9]*"); + } + + var hangingIndent = parserConf.hangingIndent || conf.indentUnit; + + var myKeywords = commonKeywords, myBuiltins = commonBuiltins; + if(parserConf.extra_keywords != undefined){ + myKeywords = myKeywords.concat(parserConf.extra_keywords); + } + if(parserConf.extra_builtins != undefined){ + myBuiltins = myBuiltins.concat(parserConf.extra_builtins); + } + if (parserConf.version && parseInt(parserConf.version, 10) == 3) { + myKeywords = myKeywords.concat(py3.keywords); + myBuiltins = myBuiltins.concat(py3.builtins); + var stringPrefixes = new RegExp("^(([rb]|(br))?('{3}|\"{3}|['\"]))", "i"); + } else { + myKeywords = myKeywords.concat(py2.keywords); + myBuiltins = myBuiltins.concat(py2.builtins); + var stringPrefixes = new RegExp("^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i"); + } + var keywords = wordRegexp(myKeywords); + var builtins = wordRegexp(myBuiltins); + + // tokenizers + function tokenBase(stream, state) { + // Handle scope changes + if (stream.sol() && top(state).type == "py") { + var scopeOffset = top(state).offset; + if (stream.eatSpace()) { + var lineOffset = stream.indentation(); + if (lineOffset > scopeOffset) + pushScope(stream, state, "py"); + else if (lineOffset < scopeOffset && dedent(stream, state)) + state.errorToken = true; + return null; + } else { + var style = tokenBaseInner(stream, state); + if (scopeOffset > 0 && dedent(stream, state)) + style += " " + ERRORCLASS; + return style; + } + } + return tokenBaseInner(stream, state); + } + + function tokenBaseInner(stream, state) { + if (stream.eatSpace()) return null; + + var ch = stream.peek(); + + // Handle Comments + if (ch == "#") { + stream.skipToEnd(); + return "comment"; + } + + // Handle Number Literals + if (stream.match(/^[0-9\.]/, false)) { + var floatLiteral = false; + // Floats + if (stream.match(/^\d*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; } + if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; } + if (stream.match(/^\.\d+/)) { floatLiteral = true; } + if (floatLiteral) { + // Float literals may be "imaginary" + stream.eat(/J/i); + return "number"; + } + // Integers + var intLiteral = false; + // Hex + if (stream.match(/^0x[0-9a-f]+/i)) intLiteral = true; + // Binary + if (stream.match(/^0b[01]+/i)) intLiteral = true; + // Octal + if (stream.match(/^0o[0-7]+/i)) intLiteral = true; + // Decimal + if (stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)) { + // Decimal literals may be "imaginary" + stream.eat(/J/i); + // TODO - Can you have imaginary longs? + intLiteral = true; + } + // Zero by itself with no other piece of number. + if (stream.match(/^0(?![\dx])/i)) intLiteral = true; + if (intLiteral) { + // Integer literals may be "long" + stream.eat(/L/i); + return "number"; + } + } + + // Handle Strings + if (stream.match(stringPrefixes)) { + state.tokenize = tokenStringFactory(stream.current()); + return state.tokenize(stream, state); + } + + // Handle operators and Delimiters + if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) + return null; + + if (stream.match(doubleOperators) + || stream.match(singleOperators) + || stream.match(wordOperators)) + return "operator"; + + if (stream.match(singleDelimiters)) + return null; + + if (stream.match(keywords)) + return "keyword"; + + if (stream.match(builtins)) + return "builtin"; + + if (stream.match(/^(self|cls)\b/)) + return "variable-2"; + + if (stream.match(identifiers)) { + if (state.lastToken == "def" || state.lastToken == "class") + return "def"; + return "variable"; + } + + // Handle non-detected items + stream.next(); + return ERRORCLASS; + } + + function tokenStringFactory(delimiter) { + while ("rub".indexOf(delimiter.charAt(0).toLowerCase()) >= 0) + delimiter = delimiter.substr(1); + + var singleline = delimiter.length == 1; + var OUTCLASS = "string"; + + function tokenString(stream, state) { + while (!stream.eol()) { + stream.eatWhile(/[^'"\\]/); + if (stream.eat("\\")) { + stream.next(); + if (singleline && stream.eol()) + return OUTCLASS; + } else if (stream.match(delimiter)) { + state.tokenize = tokenBase; + return OUTCLASS; + } else { + stream.eat(/['"]/); + } + } + if (singleline) { + if (parserConf.singleLineStringErrors) + return ERRORCLASS; + else + state.tokenize = tokenBase; + } + return OUTCLASS; + } + tokenString.isString = true; + return tokenString; + } + + function pushScope(stream, state, type) { + var offset = 0, align = null; + if (type == "py") { + while (top(state).type != "py") + state.scopes.pop(); + } + offset = top(state).offset + (type == "py" ? conf.indentUnit : hangingIndent); + if (type != "py" && !stream.match(/^(\s|#.*)*$/, false)) + align = stream.column() + 1; + state.scopes.push({offset: offset, type: type, align: align}); + } + + function dedent(stream, state) { + var indented = stream.indentation(); + while (top(state).offset > indented) { + if (top(state).type != "py") return true; + state.scopes.pop(); + } + return top(state).offset != indented; + } + + function tokenLexer(stream, state) { + var style = state.tokenize(stream, state); + var current = stream.current(); + + // Handle '.' connected identifiers + if (current == ".") { + style = stream.match(identifiers, false) ? null : ERRORCLASS; + if (style == null && state.lastStyle == "meta") { + // Apply 'meta' style to '.' connected identifiers when + // appropriate. + style = "meta"; + } + return style; + } + + // Handle decorators + if (current == "@"){ + if(parserConf.version && parseInt(parserConf.version, 10) == 3){ + return stream.match(identifiers, false) ? "meta" : "operator"; + } else { + return stream.match(identifiers, false) ? "meta" : ERRORCLASS; + } + } + + if ((style == "variable" || style == "builtin") + && state.lastStyle == "meta") + style = "meta"; + + // Handle scope changes. + if (current == "pass" || current == "return") + state.dedent += 1; + + if (current == "lambda") state.lambda = true; + if (current == ":" && !state.lambda && top(state).type == "py") + pushScope(stream, state, "py"); + + var delimiter_index = current.length == 1 ? "[({".indexOf(current) : -1; + if (delimiter_index != -1) + pushScope(stream, state, "])}".slice(delimiter_index, delimiter_index+1)); + + delimiter_index = "])}".indexOf(current); + if (delimiter_index != -1) { + if (top(state).type == current) state.scopes.pop(); + else return ERRORCLASS; + } + if (state.dedent > 0 && stream.eol() && top(state).type == "py") { + if (state.scopes.length > 1) state.scopes.pop(); + state.dedent -= 1; + } + + return style; + } + + var external = { + startState: function(basecolumn) { + return { + tokenize: tokenBase, + scopes: [{offset: basecolumn || 0, type: "py", align: null}], + lastStyle: null, + lastToken: null, + lambda: false, + dedent: 0 + }; + }, + + token: function(stream, state) { + var addErr = state.errorToken; + if (addErr) state.errorToken = false; + var style = tokenLexer(stream, state); + + state.lastStyle = style; + + var current = stream.current(); + if (current && style) + state.lastToken = current; + + if (stream.eol() && state.lambda) + state.lambda = false; + return addErr ? style + " " + ERRORCLASS : style; + }, + + indent: function(state, textAfter) { + if (state.tokenize != tokenBase) + return state.tokenize.isString ? CodeMirror.Pass : 0; + + var scope = top(state); + var closing = textAfter && textAfter.charAt(0) == scope.type; + if (scope.align != null) + return scope.align - (closing ? 1 : 0); + else if (closing && state.scopes.length > 1) + return state.scopes[state.scopes.length - 2].offset; + else + return scope.offset; + }, + + lineComment: "#", + fold: "indent" + }; + return external; + }); + + CodeMirror.defineMIME("text/x-python", "python"); + + var words = function(str) { return str.split(" "); }; + + CodeMirror.defineMIME("text/x-cython", { + name: "python", + extra_keywords: words("by cdef cimport cpdef ctypedef enum except"+ + "extern gil include nogil property public"+ + "readonly struct union DEF IF ELIF ELSE") + }); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/q/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/q/index.html new file mode 100644 index 0000000..d5785ee --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/q/index.html @@ -0,0 +1,144 @@ + + +CodeMirror: Q mode + + + + + + + + + + +
                              +

                              Q mode

                              + + +
                              + + + +

                              MIME type defined: text/x-q.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/q/q.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/q/q.js new file mode 100644 index 0000000..a4af938 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/q/q.js @@ -0,0 +1,139 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("q",function(config){ + var indentUnit=config.indentUnit, + curPunc, + keywords=buildRE(["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"]), + E=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/; + function buildRE(w){return new RegExp("^("+w.join("|")+")$");} + function tokenBase(stream,state){ + var sol=stream.sol(),c=stream.next(); + curPunc=null; + if(sol) + if(c=="/") + return(state.tokenize=tokenLineComment)(stream,state); + else if(c=="\\"){ + if(stream.eol()||/\s/.test(stream.peek())) + return stream.skipToEnd(),/^\\\s*$/.test(stream.current())?(state.tokenize=tokenCommentToEOF)(stream, state):state.tokenize=tokenBase,"comment"; + else + return state.tokenize=tokenBase,"builtin"; + } + if(/\s/.test(c)) + return stream.peek()=="/"?(stream.skipToEnd(),"comment"):"whitespace"; + if(c=='"') + return(state.tokenize=tokenString)(stream,state); + if(c=='`') + return stream.eatWhile(/[A-Z|a-z|\d|_|:|\/|\.]/),"symbol"; + if(("."==c&&/\d/.test(stream.peek()))||/\d/.test(c)){ + var t=null; + stream.backUp(1); + if(stream.match(/^\d{4}\.\d{2}(m|\.\d{2}([D|T](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/) + || stream.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/) + || stream.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/) + || stream.match(/^\d+[ptuv]{1}/)) + t="temporal"; + else if(stream.match(/^0[NwW]{1}/) + || stream.match(/^0x[\d|a-f|A-F]*/) + || stream.match(/^[0|1]+[b]{1}/) + || stream.match(/^\d+[chijn]{1}/) + || stream.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/)) + t="number"; + return(t&&(!(c=stream.peek())||E.test(c)))?t:(stream.next(),"error"); + } + if(/[A-Z|a-z]|\./.test(c)) + return stream.eatWhile(/[A-Z|a-z|\.|_|\d]/),keywords.test(stream.current())?"keyword":"variable"; + if(/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(c)) + return null; + if(/[{}\(\[\]\)]/.test(c)) + return null; + return"error"; + } + function tokenLineComment(stream,state){ + return stream.skipToEnd(),/\/\s*$/.test(stream.current())?(state.tokenize=tokenBlockComment)(stream,state):(state.tokenize=tokenBase),"comment"; + } + function tokenBlockComment(stream,state){ + var f=stream.sol()&&stream.peek()=="\\"; + stream.skipToEnd(); + if(f&&/^\\\s*$/.test(stream.current())) + state.tokenize=tokenBase; + return"comment"; + } + function tokenCommentToEOF(stream){return stream.skipToEnd(),"comment";} + function tokenString(stream,state){ + var escaped=false,next,end=false; + while((next=stream.next())){ + if(next=="\""&&!escaped){end=true;break;} + escaped=!escaped&&next=="\\"; + } + if(end)state.tokenize=tokenBase; + return"string"; + } + function pushContext(state,type,col){state.context={prev:state.context,indent:state.indent,col:col,type:type};} + function popContext(state){state.indent=state.context.indent;state.context=state.context.prev;} + return{ + startState:function(){ + return{tokenize:tokenBase, + context:null, + indent:0, + col:0}; + }, + token:function(stream,state){ + if(stream.sol()){ + if(state.context&&state.context.align==null) + state.context.align=false; + state.indent=stream.indentation(); + } + //if (stream.eatSpace()) return null; + var style=state.tokenize(stream,state); + if(style!="comment"&&state.context&&state.context.align==null&&state.context.type!="pattern"){ + state.context.align=true; + } + if(curPunc=="(")pushContext(state,")",stream.column()); + else if(curPunc=="[")pushContext(state,"]",stream.column()); + else if(curPunc=="{")pushContext(state,"}",stream.column()); + else if(/[\]\}\)]/.test(curPunc)){ + while(state.context&&state.context.type=="pattern")popContext(state); + if(state.context&&curPunc==state.context.type)popContext(state); + } + else if(curPunc=="."&&state.context&&state.context.type=="pattern")popContext(state); + else if(/atom|string|variable/.test(style)&&state.context){ + if(/[\}\]]/.test(state.context.type)) + pushContext(state,"pattern",stream.column()); + else if(state.context.type=="pattern"&&!state.context.align){ + state.context.align=true; + state.context.col=stream.column(); + } + } + return style; + }, + indent:function(state,textAfter){ + var firstChar=textAfter&&textAfter.charAt(0); + var context=state.context; + if(/[\]\}]/.test(firstChar)) + while (context&&context.type=="pattern")context=context.prev; + var closing=context&&firstChar==context.type; + if(!context) + return 0; + else if(context.type=="pattern") + return context.col; + else if(context.align) + return context.col+(closing?0:1); + else + return context.indent+(closing?0:indentUnit); + } + }; +}); +CodeMirror.defineMIME("text/x-q","q"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/r/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/r/index.html new file mode 100644 index 0000000..6dd9634 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/r/index.html @@ -0,0 +1,85 @@ + + +CodeMirror: R mode + + + + + + + + + +
                              +

                              R mode

                              +
                              + + +

                              MIME types defined: text/x-rsrc.

                              + +

                              Development of the CodeMirror R mode was kindly sponsored + by Ubalo.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/r/r.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/r/r.js new file mode 100644 index 0000000..1ab4a95 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/r/r.js @@ -0,0 +1,162 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("r", function(config) { + function wordObj(str) { + var words = str.split(" "), res = {}; + for (var i = 0; i < words.length; ++i) res[words[i]] = true; + return res; + } + var atoms = wordObj("NULL NA Inf NaN NA_integer_ NA_real_ NA_complex_ NA_character_"); + var builtins = wordObj("list quote bquote eval return call parse deparse"); + var keywords = wordObj("if else repeat while function for in next break"); + var blockkeywords = wordObj("if else repeat while function for"); + var opChars = /[+\-*\/^<>=!&|~$:]/; + var curPunc; + + function tokenBase(stream, state) { + curPunc = null; + var ch = stream.next(); + if (ch == "#") { + stream.skipToEnd(); + return "comment"; + } else if (ch == "0" && stream.eat("x")) { + stream.eatWhile(/[\da-f]/i); + return "number"; + } else if (ch == "." && stream.eat(/\d/)) { + stream.match(/\d*(?:e[+\-]?\d+)?/); + return "number"; + } else if (/\d/.test(ch)) { + stream.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/); + return "number"; + } else if (ch == "'" || ch == '"') { + state.tokenize = tokenString(ch); + return "string"; + } else if (ch == "." && stream.match(/.[.\d]+/)) { + return "keyword"; + } else if (/[\w\.]/.test(ch) && ch != "_") { + stream.eatWhile(/[\w\.]/); + var word = stream.current(); + if (atoms.propertyIsEnumerable(word)) return "atom"; + if (keywords.propertyIsEnumerable(word)) { + // Block keywords start new blocks, except 'else if', which only starts + // one new block for the 'if', no block for the 'else'. + if (blockkeywords.propertyIsEnumerable(word) && + !stream.match(/\s*if(\s+|$)/, false)) + curPunc = "block"; + return "keyword"; + } + if (builtins.propertyIsEnumerable(word)) return "builtin"; + return "variable"; + } else if (ch == "%") { + if (stream.skipTo("%")) stream.next(); + return "variable-2"; + } else if (ch == "<" && stream.eat("-")) { + return "arrow"; + } else if (ch == "=" && state.ctx.argList) { + return "arg-is"; + } else if (opChars.test(ch)) { + if (ch == "$") return "dollar"; + stream.eatWhile(opChars); + return "operator"; + } else if (/[\(\){}\[\];]/.test(ch)) { + curPunc = ch; + if (ch == ";") return "semi"; + return null; + } else { + return null; + } + } + + function tokenString(quote) { + return function(stream, state) { + if (stream.eat("\\")) { + var ch = stream.next(); + if (ch == "x") stream.match(/^[a-f0-9]{2}/i); + else if ((ch == "u" || ch == "U") && stream.eat("{") && stream.skipTo("}")) stream.next(); + else if (ch == "u") stream.match(/^[a-f0-9]{4}/i); + else if (ch == "U") stream.match(/^[a-f0-9]{8}/i); + else if (/[0-7]/.test(ch)) stream.match(/^[0-7]{1,2}/); + return "string-2"; + } else { + var next; + while ((next = stream.next()) != null) { + if (next == quote) { state.tokenize = tokenBase; break; } + if (next == "\\") { stream.backUp(1); break; } + } + return "string"; + } + }; + } + + function push(state, type, stream) { + state.ctx = {type: type, + indent: state.indent, + align: null, + column: stream.column(), + prev: state.ctx}; + } + function pop(state) { + state.indent = state.ctx.indent; + state.ctx = state.ctx.prev; + } + + return { + startState: function() { + return {tokenize: tokenBase, + ctx: {type: "top", + indent: -config.indentUnit, + align: false}, + indent: 0, + afterIdent: false}; + }, + + token: function(stream, state) { + if (stream.sol()) { + if (state.ctx.align == null) state.ctx.align = false; + state.indent = stream.indentation(); + } + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + if (style != "comment" && state.ctx.align == null) state.ctx.align = true; + + var ctype = state.ctx.type; + if ((curPunc == ";" || curPunc == "{" || curPunc == "}") && ctype == "block") pop(state); + if (curPunc == "{") push(state, "}", stream); + else if (curPunc == "(") { + push(state, ")", stream); + if (state.afterIdent) state.ctx.argList = true; + } + else if (curPunc == "[") push(state, "]", stream); + else if (curPunc == "block") push(state, "block", stream); + else if (curPunc == ctype) pop(state); + state.afterIdent = style == "variable" || style == "keyword"; + return style; + }, + + indent: function(state, textAfter) { + if (state.tokenize != tokenBase) return 0; + var firstChar = textAfter && textAfter.charAt(0), ctx = state.ctx, + closing = firstChar == ctx.type; + if (ctx.type == "block") return ctx.indent + (firstChar == "{" ? 0 : config.indentUnit); + else if (ctx.align) return ctx.column + (closing ? 0 : 1); + else return ctx.indent + (closing ? 0 : config.indentUnit); + }, + + lineComment: "#" + }; +}); + +CodeMirror.defineMIME("text/x-rsrc", "r"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/changes/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/changes/index.html new file mode 100644 index 0000000..6e5031b --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/changes/index.html @@ -0,0 +1,66 @@ + + +CodeMirror: RPM changes mode + + + + + + + + + + + +
                              +

                              RPM changes mode

                              + +
                              + + +

                              MIME types defined: text/x-rpm-changes.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/index.html new file mode 100644 index 0000000..2259d53 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/index.html @@ -0,0 +1,149 @@ + + +CodeMirror: RPM changes mode + + + + + + + + + + + +
                              +

                              RPM changes mode

                              + +
                              + + +

                              RPM spec mode

                              + +
                              + + +

                              MIME types defined: text/x-rpm-spec, text/x-rpm-changes.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/rpm.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/rpm.js new file mode 100644 index 0000000..3bb7cd2 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rpm/rpm.js @@ -0,0 +1,101 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("rpm-changes", function() { + var headerSeperator = /^-+$/; + var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /; + var simpleEmail = /^[\w+.-]+@[\w.-]+/; + + return { + token: function(stream) { + if (stream.sol()) { + if (stream.match(headerSeperator)) { return 'tag'; } + if (stream.match(headerLine)) { return 'tag'; } + } + if (stream.match(simpleEmail)) { return 'string'; } + stream.next(); + return null; + } + }; +}); + +CodeMirror.defineMIME("text/x-rpm-changes", "rpm-changes"); + +// Quick and dirty spec file highlighting + +CodeMirror.defineMode("rpm-spec", function() { + var arch = /^(i386|i586|i686|x86_64|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/; + + var preamble = /^(Name|Version|Release|License|Summary|Url|Group|Source|BuildArch|BuildRequires|BuildRoot|AutoReqProv|Provides|Requires(\(\w+\))?|Obsoletes|Conflicts|Recommends|Source\d*|Patch\d*|ExclusiveArch|NoSource|Supplements):/; + var section = /^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pre|post|triggerin|triggerun|pretrans|posttrans|verifyscript|check|triggerpostun|triggerprein|trigger)/; + var control_flow_complex = /^%(ifnarch|ifarch|if)/; // rpm control flow macros + var control_flow_simple = /^%(else|endif)/; // rpm control flow macros + var operators = /^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/; // operators in control flow macros + + return { + startState: function () { + return { + controlFlow: false, + macroParameters: false, + section: false + }; + }, + token: function (stream, state) { + var ch = stream.peek(); + if (ch == "#") { stream.skipToEnd(); return "comment"; } + + if (stream.sol()) { + if (stream.match(preamble)) { return "preamble"; } + if (stream.match(section)) { return "section"; } + } + + if (stream.match(/^\$\w+/)) { return "def"; } // Variables like '$RPM_BUILD_ROOT' + if (stream.match(/^\$\{\w+\}/)) { return "def"; } // Variables like '${RPM_BUILD_ROOT}' + + if (stream.match(control_flow_simple)) { return "keyword"; } + if (stream.match(control_flow_complex)) { + state.controlFlow = true; + return "keyword"; + } + if (state.controlFlow) { + if (stream.match(operators)) { return "operator"; } + if (stream.match(/^(\d+)/)) { return "number"; } + if (stream.eol()) { state.controlFlow = false; } + } + + if (stream.match(arch)) { return "number"; } + + // Macros like '%make_install' or '%attr(0775,root,root)' + if (stream.match(/^%[\w]+/)) { + if (stream.match(/^\(/)) { state.macroParameters = true; } + return "macro"; + } + if (state.macroParameters) { + if (stream.match(/^\d+/)) { return "number";} + if (stream.match(/^\)/)) { + state.macroParameters = false; + return "macro"; + } + } + if (stream.match(/^%\{\??[\w \-]+\}/)) { return "macro"; } // Macros like '%{defined fedora}' + + //TODO: Include bash script sub-parser (CodeMirror supports that) + stream.next(); + return null; + } + }; +}); + +CodeMirror.defineMIME("text/x-rpm-spec", "rpm-spec"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rst/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rst/index.html new file mode 100644 index 0000000..2902dea --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rst/index.html @@ -0,0 +1,535 @@ + + +CodeMirror: reStructuredText mode + + + + + + + + + + +
                              +

                              reStructuredText mode

                              +
                              + + +

                              + The python mode will be used for highlighting blocks + containing Python/IPython terminal sessions: blocks starting with + >>> (for Python) or In [num]: (for + IPython). + + Further, the stex mode will be used for highlighting + blocks containing LaTex code. +

                              + +

                              MIME types defined: text/x-rst.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rst/rst.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rst/rst.js new file mode 100644 index 0000000..bcf110c --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rst/rst.js @@ -0,0 +1,557 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../python/python"), require("../stex/stex"), require("../../addon/mode/overlay")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../python/python", "../stex/stex", "../../addon/mode/overlay"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode('rst', function (config, options) { + + var rx_strong = /^\*\*[^\*\s](?:[^\*]*[^\*\s])?\*\*/; + var rx_emphasis = /^\*[^\*\s](?:[^\*]*[^\*\s])?\*/; + var rx_literal = /^``[^`\s](?:[^`]*[^`\s])``/; + + var rx_number = /^(?:[\d]+(?:[\.,]\d+)*)/; + var rx_positive = /^(?:\s\+[\d]+(?:[\.,]\d+)*)/; + var rx_negative = /^(?:\s\-[\d]+(?:[\.,]\d+)*)/; + + var rx_uri_protocol = "[Hh][Tt][Tt][Pp][Ss]?://"; + var rx_uri_domain = "(?:[\\d\\w.-]+)\\.(?:\\w{2,6})"; + var rx_uri_path = "(?:/[\\d\\w\\#\\%\\&\\-\\.\\,\\/\\:\\=\\?\\~]+)*"; + var rx_uri = new RegExp("^" + rx_uri_protocol + rx_uri_domain + rx_uri_path); + + var overlay = { + token: function (stream) { + + if (stream.match(rx_strong) && stream.match (/\W+|$/, false)) + return 'strong'; + if (stream.match(rx_emphasis) && stream.match (/\W+|$/, false)) + return 'em'; + if (stream.match(rx_literal) && stream.match (/\W+|$/, false)) + return 'string-2'; + if (stream.match(rx_number)) + return 'number'; + if (stream.match(rx_positive)) + return 'positive'; + if (stream.match(rx_negative)) + return 'negative'; + if (stream.match(rx_uri)) + return 'link'; + + while (stream.next() != null) { + if (stream.match(rx_strong, false)) break; + if (stream.match(rx_emphasis, false)) break; + if (stream.match(rx_literal, false)) break; + if (stream.match(rx_number, false)) break; + if (stream.match(rx_positive, false)) break; + if (stream.match(rx_negative, false)) break; + if (stream.match(rx_uri, false)) break; + } + + return null; + } + }; + + var mode = CodeMirror.getMode( + config, options.backdrop || 'rst-base' + ); + + return CodeMirror.overlayMode(mode, overlay, true); // combine +}, 'python', 'stex'); + +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// + +CodeMirror.defineMode('rst-base', function (config) { + + /////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////// + + function format(string) { + var args = Array.prototype.slice.call(arguments, 1); + return string.replace(/{(\d+)}/g, function (match, n) { + return typeof args[n] != 'undefined' ? args[n] : match; + }); + } + + /////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////// + + var mode_python = CodeMirror.getMode(config, 'python'); + var mode_stex = CodeMirror.getMode(config, 'stex'); + + /////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////// + + var SEPA = "\\s+"; + var TAIL = "(?:\\s*|\\W|$)", + rx_TAIL = new RegExp(format('^{0}', TAIL)); + + var NAME = + "(?:[^\\W\\d_](?:[\\w!\"#$%&'()\\*\\+,\\-\\.\/:;<=>\\?]*[^\\W_])?)", + rx_NAME = new RegExp(format('^{0}', NAME)); + var NAME_WWS = + "(?:[^\\W\\d_](?:[\\w\\s!\"#$%&'()\\*\\+,\\-\\.\/:;<=>\\?]*[^\\W_])?)"; + var REF_NAME = format('(?:{0}|`{1}`)', NAME, NAME_WWS); + + var TEXT1 = "(?:[^\\s\\|](?:[^\\|]*[^\\s\\|])?)"; + var TEXT2 = "(?:[^\\`]+)", + rx_TEXT2 = new RegExp(format('^{0}', TEXT2)); + + var rx_section = new RegExp( + "^([!'#$%&\"()*+,-./:;<=>?@\\[\\\\\\]^_`{|}~])\\1{3,}\\s*$"); + var rx_explicit = new RegExp( + format('^\\.\\.{0}', SEPA)); + var rx_link = new RegExp( + format('^_{0}:{1}|^__:{1}', REF_NAME, TAIL)); + var rx_directive = new RegExp( + format('^{0}::{1}', REF_NAME, TAIL)); + var rx_substitution = new RegExp( + format('^\\|{0}\\|{1}{2}::{3}', TEXT1, SEPA, REF_NAME, TAIL)); + var rx_footnote = new RegExp( + format('^\\[(?:\\d+|#{0}?|\\*)]{1}', REF_NAME, TAIL)); + var rx_citation = new RegExp( + format('^\\[{0}\\]{1}', REF_NAME, TAIL)); + + var rx_substitution_ref = new RegExp( + format('^\\|{0}\\|', TEXT1)); + var rx_footnote_ref = new RegExp( + format('^\\[(?:\\d+|#{0}?|\\*)]_', REF_NAME)); + var rx_citation_ref = new RegExp( + format('^\\[{0}\\]_', REF_NAME)); + var rx_link_ref1 = new RegExp( + format('^{0}__?', REF_NAME)); + var rx_link_ref2 = new RegExp( + format('^`{0}`_', TEXT2)); + + var rx_role_pre = new RegExp( + format('^:{0}:`{1}`{2}', NAME, TEXT2, TAIL)); + var rx_role_suf = new RegExp( + format('^`{1}`:{0}:{2}', NAME, TEXT2, TAIL)); + var rx_role = new RegExp( + format('^:{0}:{1}', NAME, TAIL)); + + var rx_directive_name = new RegExp(format('^{0}', REF_NAME)); + var rx_directive_tail = new RegExp(format('^::{0}', TAIL)); + var rx_substitution_text = new RegExp(format('^\\|{0}\\|', TEXT1)); + var rx_substitution_sepa = new RegExp(format('^{0}', SEPA)); + var rx_substitution_name = new RegExp(format('^{0}', REF_NAME)); + var rx_substitution_tail = new RegExp(format('^::{0}', TAIL)); + var rx_link_head = new RegExp("^_"); + var rx_link_name = new RegExp(format('^{0}|_', REF_NAME)); + var rx_link_tail = new RegExp(format('^:{0}', TAIL)); + + var rx_verbatim = new RegExp('^::\\s*$'); + var rx_examples = new RegExp('^\\s+(?:>>>|In \\[\\d+\\]:)\\s'); + + /////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////// + + function to_normal(stream, state) { + var token = null; + + if (stream.sol() && stream.match(rx_examples, false)) { + change(state, to_mode, { + mode: mode_python, local: CodeMirror.startState(mode_python) + }); + } else if (stream.sol() && stream.match(rx_explicit)) { + change(state, to_explicit); + token = 'meta'; + } else if (stream.sol() && stream.match(rx_section)) { + change(state, to_normal); + token = 'header'; + } else if (phase(state) == rx_role_pre || + stream.match(rx_role_pre, false)) { + + switch (stage(state)) { + case 0: + change(state, to_normal, context(rx_role_pre, 1)); + stream.match(/^:/); + token = 'meta'; + break; + case 1: + change(state, to_normal, context(rx_role_pre, 2)); + stream.match(rx_NAME); + token = 'keyword'; + + if (stream.current().match(/^(?:math|latex)/)) { + state.tmp_stex = true; + } + break; + case 2: + change(state, to_normal, context(rx_role_pre, 3)); + stream.match(/^:`/); + token = 'meta'; + break; + case 3: + if (state.tmp_stex) { + state.tmp_stex = undefined; state.tmp = { + mode: mode_stex, local: CodeMirror.startState(mode_stex) + }; + } + + if (state.tmp) { + if (stream.peek() == '`') { + change(state, to_normal, context(rx_role_pre, 4)); + state.tmp = undefined; + break; + } + + token = state.tmp.mode.token(stream, state.tmp.local); + break; + } + + change(state, to_normal, context(rx_role_pre, 4)); + stream.match(rx_TEXT2); + token = 'string'; + break; + case 4: + change(state, to_normal, context(rx_role_pre, 5)); + stream.match(/^`/); + token = 'meta'; + break; + case 5: + change(state, to_normal, context(rx_role_pre, 6)); + stream.match(rx_TAIL); + break; + default: + change(state, to_normal); + } + } else if (phase(state) == rx_role_suf || + stream.match(rx_role_suf, false)) { + + switch (stage(state)) { + case 0: + change(state, to_normal, context(rx_role_suf, 1)); + stream.match(/^`/); + token = 'meta'; + break; + case 1: + change(state, to_normal, context(rx_role_suf, 2)); + stream.match(rx_TEXT2); + token = 'string'; + break; + case 2: + change(state, to_normal, context(rx_role_suf, 3)); + stream.match(/^`:/); + token = 'meta'; + break; + case 3: + change(state, to_normal, context(rx_role_suf, 4)); + stream.match(rx_NAME); + token = 'keyword'; + break; + case 4: + change(state, to_normal, context(rx_role_suf, 5)); + stream.match(/^:/); + token = 'meta'; + break; + case 5: + change(state, to_normal, context(rx_role_suf, 6)); + stream.match(rx_TAIL); + break; + default: + change(state, to_normal); + } + } else if (phase(state) == rx_role || stream.match(rx_role, false)) { + + switch (stage(state)) { + case 0: + change(state, to_normal, context(rx_role, 1)); + stream.match(/^:/); + token = 'meta'; + break; + case 1: + change(state, to_normal, context(rx_role, 2)); + stream.match(rx_NAME); + token = 'keyword'; + break; + case 2: + change(state, to_normal, context(rx_role, 3)); + stream.match(/^:/); + token = 'meta'; + break; + case 3: + change(state, to_normal, context(rx_role, 4)); + stream.match(rx_TAIL); + break; + default: + change(state, to_normal); + } + } else if (phase(state) == rx_substitution_ref || + stream.match(rx_substitution_ref, false)) { + + switch (stage(state)) { + case 0: + change(state, to_normal, context(rx_substitution_ref, 1)); + stream.match(rx_substitution_text); + token = 'variable-2'; + break; + case 1: + change(state, to_normal, context(rx_substitution_ref, 2)); + if (stream.match(/^_?_?/)) token = 'link'; + break; + default: + change(state, to_normal); + } + } else if (stream.match(rx_footnote_ref)) { + change(state, to_normal); + token = 'quote'; + } else if (stream.match(rx_citation_ref)) { + change(state, to_normal); + token = 'quote'; + } else if (stream.match(rx_link_ref1)) { + change(state, to_normal); + if (!stream.peek() || stream.peek().match(/^\W$/)) { + token = 'link'; + } + } else if (phase(state) == rx_link_ref2 || + stream.match(rx_link_ref2, false)) { + + switch (stage(state)) { + case 0: + if (!stream.peek() || stream.peek().match(/^\W$/)) { + change(state, to_normal, context(rx_link_ref2, 1)); + } else { + stream.match(rx_link_ref2); + } + break; + case 1: + change(state, to_normal, context(rx_link_ref2, 2)); + stream.match(/^`/); + token = 'link'; + break; + case 2: + change(state, to_normal, context(rx_link_ref2, 3)); + stream.match(rx_TEXT2); + break; + case 3: + change(state, to_normal, context(rx_link_ref2, 4)); + stream.match(/^`_/); + token = 'link'; + break; + default: + change(state, to_normal); + } + } else if (stream.match(rx_verbatim)) { + change(state, to_verbatim); + } + + else { + if (stream.next()) change(state, to_normal); + } + + return token; + } + + /////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////// + + function to_explicit(stream, state) { + var token = null; + + if (phase(state) == rx_substitution || + stream.match(rx_substitution, false)) { + + switch (stage(state)) { + case 0: + change(state, to_explicit, context(rx_substitution, 1)); + stream.match(rx_substitution_text); + token = 'variable-2'; + break; + case 1: + change(state, to_explicit, context(rx_substitution, 2)); + stream.match(rx_substitution_sepa); + break; + case 2: + change(state, to_explicit, context(rx_substitution, 3)); + stream.match(rx_substitution_name); + token = 'keyword'; + break; + case 3: + change(state, to_explicit, context(rx_substitution, 4)); + stream.match(rx_substitution_tail); + token = 'meta'; + break; + default: + change(state, to_normal); + } + } else if (phase(state) == rx_directive || + stream.match(rx_directive, false)) { + + switch (stage(state)) { + case 0: + change(state, to_explicit, context(rx_directive, 1)); + stream.match(rx_directive_name); + token = 'keyword'; + + if (stream.current().match(/^(?:math|latex)/)) + state.tmp_stex = true; + else if (stream.current().match(/^python/)) + state.tmp_py = true; + break; + case 1: + change(state, to_explicit, context(rx_directive, 2)); + stream.match(rx_directive_tail); + token = 'meta'; + + if (stream.match(/^latex\s*$/) || state.tmp_stex) { + state.tmp_stex = undefined; change(state, to_mode, { + mode: mode_stex, local: CodeMirror.startState(mode_stex) + }); + } + break; + case 2: + change(state, to_explicit, context(rx_directive, 3)); + if (stream.match(/^python\s*$/) || state.tmp_py) { + state.tmp_py = undefined; change(state, to_mode, { + mode: mode_python, local: CodeMirror.startState(mode_python) + }); + } + break; + default: + change(state, to_normal); + } + } else if (phase(state) == rx_link || stream.match(rx_link, false)) { + + switch (stage(state)) { + case 0: + change(state, to_explicit, context(rx_link, 1)); + stream.match(rx_link_head); + stream.match(rx_link_name); + token = 'link'; + break; + case 1: + change(state, to_explicit, context(rx_link, 2)); + stream.match(rx_link_tail); + token = 'meta'; + break; + default: + change(state, to_normal); + } + } else if (stream.match(rx_footnote)) { + change(state, to_normal); + token = 'quote'; + } else if (stream.match(rx_citation)) { + change(state, to_normal); + token = 'quote'; + } + + else { + stream.eatSpace(); + if (stream.eol()) { + change(state, to_normal); + } else { + stream.skipToEnd(); + change(state, to_comment); + token = 'comment'; + } + } + + return token; + } + + /////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////// + + function to_comment(stream, state) { + return as_block(stream, state, 'comment'); + } + + function to_verbatim(stream, state) { + return as_block(stream, state, 'meta'); + } + + function as_block(stream, state, token) { + if (stream.eol() || stream.eatSpace()) { + stream.skipToEnd(); + return token; + } else { + change(state, to_normal); + return null; + } + } + + /////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////// + + function to_mode(stream, state) { + + if (state.ctx.mode && state.ctx.local) { + + if (stream.sol()) { + if (!stream.eatSpace()) change(state, to_normal); + return null; + } + + return state.ctx.mode.token(stream, state.ctx.local); + } + + change(state, to_normal); + return null; + } + + /////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////// + + function context(phase, stage, mode, local) { + return {phase: phase, stage: stage, mode: mode, local: local}; + } + + function change(state, tok, ctx) { + state.tok = tok; + state.ctx = ctx || {}; + } + + function stage(state) { + return state.ctx.stage || 0; + } + + function phase(state) { + return state.ctx.phase; + } + + /////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////// + + return { + startState: function () { + return {tok: to_normal, ctx: context(undefined, 0)}; + }, + + copyState: function (state) { + var ctx = state.ctx, tmp = state.tmp; + if (ctx.local) + ctx = {mode: ctx.mode, local: CodeMirror.copyState(ctx.mode, ctx.local)}; + if (tmp) + tmp = {mode: tmp.mode, local: CodeMirror.copyState(tmp.mode, tmp.local)}; + return {tok: state.tok, ctx: ctx, tmp: tmp}; + }, + + innerMode: function (state) { + return state.tmp ? {state: state.tmp.local, mode: state.tmp.mode} + : state.ctx.mode ? {state: state.ctx.local, mode: state.ctx.mode} + : null; + }, + + token: function (stream, state) { + return state.tok(stream, state); + } + }; +}, 'python', 'stex'); + +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// + +CodeMirror.defineMIME('text/x-rst', 'rst'); + +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/index.html new file mode 100644 index 0000000..06cd1c1 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/index.html @@ -0,0 +1,183 @@ + + +CodeMirror: Ruby mode + + + + + + + + + + +
                              +

                              Ruby mode

                              +
                              + + +

                              MIME types defined: text/x-ruby.

                              + +

                              Development of the CodeMirror Ruby mode was kindly sponsored + by Ubalo.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/ruby.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/ruby.js new file mode 100644 index 0000000..eab9d9d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/ruby.js @@ -0,0 +1,285 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("ruby", function(config) { + function wordObj(words) { + var o = {}; + for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true; + return o; + } + var keywords = wordObj([ + "alias", "and", "BEGIN", "begin", "break", "case", "class", "def", "defined?", "do", "else", + "elsif", "END", "end", "ensure", "false", "for", "if", "in", "module", "next", "not", "or", + "redo", "rescue", "retry", "return", "self", "super", "then", "true", "undef", "unless", + "until", "when", "while", "yield", "nil", "raise", "throw", "catch", "fail", "loop", "callcc", + "caller", "lambda", "proc", "public", "protected", "private", "require", "load", + "require_relative", "extend", "autoload", "__END__", "__FILE__", "__LINE__", "__dir__" + ]); + var indentWords = wordObj(["def", "class", "case", "for", "while", "module", "then", + "catch", "loop", "proc", "begin"]); + var dedentWords = wordObj(["end", "until"]); + var matching = {"[": "]", "{": "}", "(": ")"}; + var curPunc; + + function chain(newtok, stream, state) { + state.tokenize.push(newtok); + return newtok(stream, state); + } + + function tokenBase(stream, state) { + curPunc = null; + if (stream.sol() && stream.match("=begin") && stream.eol()) { + state.tokenize.push(readBlockComment); + return "comment"; + } + if (stream.eatSpace()) return null; + var ch = stream.next(), m; + if (ch == "`" || ch == "'" || ch == '"') { + return chain(readQuoted(ch, "string", ch == '"' || ch == "`"), stream, state); + } else if (ch == "/") { + var currentIndex = stream.current().length; + if (stream.skipTo("/")) { + var search_till = stream.current().length; + stream.backUp(stream.current().length - currentIndex); + var balance = 0; // balance brackets + while (stream.current().length < search_till) { + var chchr = stream.next(); + if (chchr == "(") balance += 1; + else if (chchr == ")") balance -= 1; + if (balance < 0) break; + } + stream.backUp(stream.current().length - currentIndex); + if (balance == 0) + return chain(readQuoted(ch, "string-2", true), stream, state); + } + return "operator"; + } else if (ch == "%") { + var style = "string", embed = true; + if (stream.eat("s")) style = "atom"; + else if (stream.eat(/[WQ]/)) style = "string"; + else if (stream.eat(/[r]/)) style = "string-2"; + else if (stream.eat(/[wxq]/)) { style = "string"; embed = false; } + var delim = stream.eat(/[^\w\s=]/); + if (!delim) return "operator"; + if (matching.propertyIsEnumerable(delim)) delim = matching[delim]; + return chain(readQuoted(delim, style, embed, true), stream, state); + } else if (ch == "#") { + stream.skipToEnd(); + return "comment"; + } else if (ch == "<" && (m = stream.match(/^<-?[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/))) { + return chain(readHereDoc(m[1]), stream, state); + } else if (ch == "0") { + if (stream.eat("x")) stream.eatWhile(/[\da-fA-F]/); + else if (stream.eat("b")) stream.eatWhile(/[01]/); + else stream.eatWhile(/[0-7]/); + return "number"; + } else if (/\d/.test(ch)) { + stream.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/); + return "number"; + } else if (ch == "?") { + while (stream.match(/^\\[CM]-/)) {} + if (stream.eat("\\")) stream.eatWhile(/\w/); + else stream.next(); + return "string"; + } else if (ch == ":") { + if (stream.eat("'")) return chain(readQuoted("'", "atom", false), stream, state); + if (stream.eat('"')) return chain(readQuoted('"', "atom", true), stream, state); + + // :> :>> :< :<< are valid symbols + if (stream.eat(/[\<\>]/)) { + stream.eat(/[\<\>]/); + return "atom"; + } + + // :+ :- :/ :* :| :& :! are valid symbols + if (stream.eat(/[\+\-\*\/\&\|\:\!]/)) { + return "atom"; + } + + // Symbols can't start by a digit + if (stream.eat(/[a-zA-Z$@_\xa1-\uffff]/)) { + stream.eatWhile(/[\w$\xa1-\uffff]/); + // Only one ? ! = is allowed and only as the last character + stream.eat(/[\?\!\=]/); + return "atom"; + } + return "operator"; + } else if (ch == "@" && stream.match(/^@?[a-zA-Z_\xa1-\uffff]/)) { + stream.eat("@"); + stream.eatWhile(/[\w\xa1-\uffff]/); + return "variable-2"; + } else if (ch == "$") { + if (stream.eat(/[a-zA-Z_]/)) { + stream.eatWhile(/[\w]/); + } else if (stream.eat(/\d/)) { + stream.eat(/\d/); + } else { + stream.next(); // Must be a special global like $: or $! + } + return "variable-3"; + } else if (/[a-zA-Z_\xa1-\uffff]/.test(ch)) { + stream.eatWhile(/[\w\xa1-\uffff]/); + stream.eat(/[\?\!]/); + if (stream.eat(":")) return "atom"; + return "ident"; + } else if (ch == "|" && (state.varList || state.lastTok == "{" || state.lastTok == "do")) { + curPunc = "|"; + return null; + } else if (/[\(\)\[\]{}\\;]/.test(ch)) { + curPunc = ch; + return null; + } else if (ch == "-" && stream.eat(">")) { + return "arrow"; + } else if (/[=+\-\/*:\.^%<>~|]/.test(ch)) { + var more = stream.eatWhile(/[=+\-\/*:\.^%<>~|]/); + if (ch == "." && !more) curPunc = "."; + return "operator"; + } else { + return null; + } + } + + function tokenBaseUntilBrace(depth) { + if (!depth) depth = 1; + return function(stream, state) { + if (stream.peek() == "}") { + if (depth == 1) { + state.tokenize.pop(); + return state.tokenize[state.tokenize.length-1](stream, state); + } else { + state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth - 1); + } + } else if (stream.peek() == "{") { + state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth + 1); + } + return tokenBase(stream, state); + }; + } + function tokenBaseOnce() { + var alreadyCalled = false; + return function(stream, state) { + if (alreadyCalled) { + state.tokenize.pop(); + return state.tokenize[state.tokenize.length-1](stream, state); + } + alreadyCalled = true; + return tokenBase(stream, state); + }; + } + function readQuoted(quote, style, embed, unescaped) { + return function(stream, state) { + var escaped = false, ch; + + if (state.context.type === 'read-quoted-paused') { + state.context = state.context.prev; + stream.eat("}"); + } + + while ((ch = stream.next()) != null) { + if (ch == quote && (unescaped || !escaped)) { + state.tokenize.pop(); + break; + } + if (embed && ch == "#" && !escaped) { + if (stream.eat("{")) { + if (quote == "}") { + state.context = {prev: state.context, type: 'read-quoted-paused'}; + } + state.tokenize.push(tokenBaseUntilBrace()); + break; + } else if (/[@\$]/.test(stream.peek())) { + state.tokenize.push(tokenBaseOnce()); + break; + } + } + escaped = !escaped && ch == "\\"; + } + return style; + }; + } + function readHereDoc(phrase) { + return function(stream, state) { + if (stream.match(phrase)) state.tokenize.pop(); + else stream.skipToEnd(); + return "string"; + }; + } + function readBlockComment(stream, state) { + if (stream.sol() && stream.match("=end") && stream.eol()) + state.tokenize.pop(); + stream.skipToEnd(); + return "comment"; + } + + return { + startState: function() { + return {tokenize: [tokenBase], + indented: 0, + context: {type: "top", indented: -config.indentUnit}, + continuedLine: false, + lastTok: null, + varList: false}; + }, + + token: function(stream, state) { + if (stream.sol()) state.indented = stream.indentation(); + var style = state.tokenize[state.tokenize.length-1](stream, state), kwtype; + var thisTok = curPunc; + if (style == "ident") { + var word = stream.current(); + style = state.lastTok == "." ? "property" + : keywords.propertyIsEnumerable(stream.current()) ? "keyword" + : /^[A-Z]/.test(word) ? "tag" + : (state.lastTok == "def" || state.lastTok == "class" || state.varList) ? "def" + : "variable"; + if (style == "keyword") { + thisTok = word; + if (indentWords.propertyIsEnumerable(word)) kwtype = "indent"; + else if (dedentWords.propertyIsEnumerable(word)) kwtype = "dedent"; + else if ((word == "if" || word == "unless") && stream.column() == stream.indentation()) + kwtype = "indent"; + else if (word == "do" && state.context.indented < state.indented) + kwtype = "indent"; + } + } + if (curPunc || (style && style != "comment")) state.lastTok = thisTok; + if (curPunc == "|") state.varList = !state.varList; + + if (kwtype == "indent" || /[\(\[\{]/.test(curPunc)) + state.context = {prev: state.context, type: curPunc || style, indented: state.indented}; + else if ((kwtype == "dedent" || /[\)\]\}]/.test(curPunc)) && state.context.prev) + state.context = state.context.prev; + + if (stream.eol()) + state.continuedLine = (curPunc == "\\" || style == "operator"); + return style; + }, + + indent: function(state, textAfter) { + if (state.tokenize[state.tokenize.length-1] != tokenBase) return 0; + var firstChar = textAfter && textAfter.charAt(0); + var ct = state.context; + var closing = ct.type == matching[firstChar] || + ct.type == "keyword" && /^(?:end|until|else|elsif|when|rescue)\b/.test(textAfter); + return ct.indented + (closing ? 0 : config.indentUnit) + + (state.continuedLine ? config.indentUnit : 0); + }, + + electricChars: "}de", // enD and rescuE + lineComment: "#" + }; +}); + +CodeMirror.defineMIME("text/x-ruby", "ruby"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/test.js new file mode 100644 index 0000000..cade864 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/ruby/test.js @@ -0,0 +1,14 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({indentUnit: 2}, "ruby"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + MT("divide_equal_operator", + "[variable bar] [operator /=] [variable foo]"); + + MT("divide_equal_operator_no_spacing", + "[variable foo][operator /=][number 42]"); + +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rust/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rust/index.html new file mode 100644 index 0000000..407e84f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rust/index.html @@ -0,0 +1,60 @@ + + +CodeMirror: Rust mode + + + + + + + + + +
                              +

                              Rust mode

                              + + +
                              + + + +

                              MIME types defined: text/x-rustsrc.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rust/rust.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rust/rust.js new file mode 100644 index 0000000..2bffa9a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/rust/rust.js @@ -0,0 +1,451 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("rust", function() { + var indentUnit = 4, altIndentUnit = 2; + var valKeywords = { + "if": "if-style", "while": "if-style", "loop": "else-style", "else": "else-style", + "do": "else-style", "ret": "else-style", "fail": "else-style", + "break": "atom", "cont": "atom", "const": "let", "resource": "fn", + "let": "let", "fn": "fn", "for": "for", "alt": "alt", "iface": "iface", + "impl": "impl", "type": "type", "enum": "enum", "mod": "mod", + "as": "op", "true": "atom", "false": "atom", "assert": "op", "check": "op", + "claim": "op", "native": "ignore", "unsafe": "ignore", "import": "else-style", + "export": "else-style", "copy": "op", "log": "op", "log_err": "op", + "use": "op", "bind": "op", "self": "atom", "struct": "enum" + }; + var typeKeywords = function() { + var keywords = {"fn": "fn", "block": "fn", "obj": "obj"}; + var atoms = "bool uint int i8 i16 i32 i64 u8 u16 u32 u64 float f32 f64 str char".split(" "); + for (var i = 0, e = atoms.length; i < e; ++i) keywords[atoms[i]] = "atom"; + return keywords; + }(); + var operatorChar = /[+\-*&%=<>!?|\.@]/; + + // Tokenizer + + // Used as scratch variable to communicate multiple values without + // consing up tons of objects. + var tcat, content; + function r(tc, style) { + tcat = tc; + return style; + } + + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"') { + state.tokenize = tokenString; + return state.tokenize(stream, state); + } + if (ch == "'") { + tcat = "atom"; + if (stream.eat("\\")) { + if (stream.skipTo("'")) { stream.next(); return "string"; } + else { return "error"; } + } else { + stream.next(); + return stream.eat("'") ? "string" : "error"; + } + } + if (ch == "/") { + if (stream.eat("/")) { stream.skipToEnd(); return "comment"; } + if (stream.eat("*")) { + state.tokenize = tokenComment(1); + return state.tokenize(stream, state); + } + } + if (ch == "#") { + if (stream.eat("[")) { tcat = "open-attr"; return null; } + stream.eatWhile(/\w/); + return r("macro", "meta"); + } + if (ch == ":" && stream.match(":<")) { + return r("op", null); + } + if (ch.match(/\d/) || (ch == "." && stream.eat(/\d/))) { + var flp = false; + if (!stream.match(/^x[\da-f]+/i) && !stream.match(/^b[01]+/)) { + stream.eatWhile(/\d/); + if (stream.eat(".")) { flp = true; stream.eatWhile(/\d/); } + if (stream.match(/^e[+\-]?\d+/i)) { flp = true; } + } + if (flp) stream.match(/^f(?:32|64)/); + else stream.match(/^[ui](?:8|16|32|64)/); + return r("atom", "number"); + } + if (ch.match(/[()\[\]{}:;,]/)) return r(ch, null); + if (ch == "-" && stream.eat(">")) return r("->", null); + if (ch.match(operatorChar)) { + stream.eatWhile(operatorChar); + return r("op", null); + } + stream.eatWhile(/\w/); + content = stream.current(); + if (stream.match(/^::\w/)) { + stream.backUp(1); + return r("prefix", "variable-2"); + } + if (state.keywords.propertyIsEnumerable(content)) + return r(state.keywords[content], content.match(/true|false/) ? "atom" : "keyword"); + return r("name", "variable"); + } + + function tokenString(stream, state) { + var ch, escaped = false; + while (ch = stream.next()) { + if (ch == '"' && !escaped) { + state.tokenize = tokenBase; + return r("atom", "string"); + } + escaped = !escaped && ch == "\\"; + } + // Hack to not confuse the parser when a string is split in + // pieces. + return r("op", "string"); + } + + function tokenComment(depth) { + return function(stream, state) { + var lastCh = null, ch; + while (ch = stream.next()) { + if (ch == "/" && lastCh == "*") { + if (depth == 1) { + state.tokenize = tokenBase; + break; + } else { + state.tokenize = tokenComment(depth - 1); + return state.tokenize(stream, state); + } + } + if (ch == "*" && lastCh == "/") { + state.tokenize = tokenComment(depth + 1); + return state.tokenize(stream, state); + } + lastCh = ch; + } + return "comment"; + }; + } + + // Parser + + var cx = {state: null, stream: null, marked: null, cc: null}; + function pass() { + for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); + } + function cont() { + pass.apply(null, arguments); + return true; + } + + function pushlex(type, info) { + var result = function() { + var state = cx.state; + state.lexical = {indented: state.indented, column: cx.stream.column(), + type: type, prev: state.lexical, info: info}; + }; + result.lex = true; + return result; + } + function poplex() { + var state = cx.state; + if (state.lexical.prev) { + if (state.lexical.type == ")") + state.indented = state.lexical.indented; + state.lexical = state.lexical.prev; + } + } + function typecx() { cx.state.keywords = typeKeywords; } + function valcx() { cx.state.keywords = valKeywords; } + poplex.lex = typecx.lex = valcx.lex = true; + + function commasep(comb, end) { + function more(type) { + if (type == ",") return cont(comb, more); + if (type == end) return cont(); + return cont(more); + } + return function(type) { + if (type == end) return cont(); + return pass(comb, more); + }; + } + + function stat_of(comb, tag) { + return cont(pushlex("stat", tag), comb, poplex, block); + } + function block(type) { + if (type == "}") return cont(); + if (type == "let") return stat_of(letdef1, "let"); + if (type == "fn") return stat_of(fndef); + if (type == "type") return cont(pushlex("stat"), tydef, endstatement, poplex, block); + if (type == "enum") return stat_of(enumdef); + if (type == "mod") return stat_of(mod); + if (type == "iface") return stat_of(iface); + if (type == "impl") return stat_of(impl); + if (type == "open-attr") return cont(pushlex("]"), commasep(expression, "]"), poplex); + if (type == "ignore" || type.match(/[\]\);,]/)) return cont(block); + return pass(pushlex("stat"), expression, poplex, endstatement, block); + } + function endstatement(type) { + if (type == ";") return cont(); + return pass(); + } + function expression(type) { + if (type == "atom" || type == "name") return cont(maybeop); + if (type == "{") return cont(pushlex("}"), exprbrace, poplex); + if (type.match(/[\[\(]/)) return matchBrackets(type, expression); + if (type.match(/[\]\)\};,]/)) return pass(); + if (type == "if-style") return cont(expression, expression); + if (type == "else-style" || type == "op") return cont(expression); + if (type == "for") return cont(pattern, maybetype, inop, expression, expression); + if (type == "alt") return cont(expression, altbody); + if (type == "fn") return cont(fndef); + if (type == "macro") return cont(macro); + return cont(); + } + function maybeop(type) { + if (content == ".") return cont(maybeprop); + if (content == "::<"){return cont(typarams, maybeop);} + if (type == "op" || content == ":") return cont(expression); + if (type == "(" || type == "[") return matchBrackets(type, expression); + return pass(); + } + function maybeprop() { + if (content.match(/^\w+$/)) {cx.marked = "variable"; return cont(maybeop);} + return pass(expression); + } + function exprbrace(type) { + if (type == "op") { + if (content == "|") return cont(blockvars, poplex, pushlex("}", "block"), block); + if (content == "||") return cont(poplex, pushlex("}", "block"), block); + } + if (content == "mutable" || (content.match(/^\w+$/) && cx.stream.peek() == ":" + && !cx.stream.match("::", false))) + return pass(record_of(expression)); + return pass(block); + } + function record_of(comb) { + function ro(type) { + if (content == "mutable" || content == "with") {cx.marked = "keyword"; return cont(ro);} + if (content.match(/^\w*$/)) {cx.marked = "variable"; return cont(ro);} + if (type == ":") return cont(comb, ro); + if (type == "}") return cont(); + return cont(ro); + } + return ro; + } + function blockvars(type) { + if (type == "name") {cx.marked = "def"; return cont(blockvars);} + if (type == "op" && content == "|") return cont(); + return cont(blockvars); + } + + function letdef1(type) { + if (type.match(/[\]\)\};]/)) return cont(); + if (content == "=") return cont(expression, letdef2); + if (type == ",") return cont(letdef1); + return pass(pattern, maybetype, letdef1); + } + function letdef2(type) { + if (type.match(/[\]\)\};,]/)) return pass(letdef1); + else return pass(expression, letdef2); + } + function maybetype(type) { + if (type == ":") return cont(typecx, rtype, valcx); + return pass(); + } + function inop(type) { + if (type == "name" && content == "in") {cx.marked = "keyword"; return cont();} + return pass(); + } + function fndef(type) { + if (content == "@" || content == "~") {cx.marked = "keyword"; return cont(fndef);} + if (type == "name") {cx.marked = "def"; return cont(fndef);} + if (content == "<") return cont(typarams, fndef); + if (type == "{") return pass(expression); + if (type == "(") return cont(pushlex(")"), commasep(argdef, ")"), poplex, fndef); + if (type == "->") return cont(typecx, rtype, valcx, fndef); + if (type == ";") return cont(); + return cont(fndef); + } + function tydef(type) { + if (type == "name") {cx.marked = "def"; return cont(tydef);} + if (content == "<") return cont(typarams, tydef); + if (content == "=") return cont(typecx, rtype, valcx); + return cont(tydef); + } + function enumdef(type) { + if (type == "name") {cx.marked = "def"; return cont(enumdef);} + if (content == "<") return cont(typarams, enumdef); + if (content == "=") return cont(typecx, rtype, valcx, endstatement); + if (type == "{") return cont(pushlex("}"), typecx, enumblock, valcx, poplex); + return cont(enumdef); + } + function enumblock(type) { + if (type == "}") return cont(); + if (type == "(") return cont(pushlex(")"), commasep(rtype, ")"), poplex, enumblock); + if (content.match(/^\w+$/)) cx.marked = "def"; + return cont(enumblock); + } + function mod(type) { + if (type == "name") {cx.marked = "def"; return cont(mod);} + if (type == "{") return cont(pushlex("}"), block, poplex); + return pass(); + } + function iface(type) { + if (type == "name") {cx.marked = "def"; return cont(iface);} + if (content == "<") return cont(typarams, iface); + if (type == "{") return cont(pushlex("}"), block, poplex); + return pass(); + } + function impl(type) { + if (content == "<") return cont(typarams, impl); + if (content == "of" || content == "for") {cx.marked = "keyword"; return cont(rtype, impl);} + if (type == "name") {cx.marked = "def"; return cont(impl);} + if (type == "{") return cont(pushlex("}"), block, poplex); + return pass(); + } + function typarams() { + if (content == ">") return cont(); + if (content == ",") return cont(typarams); + if (content == ":") return cont(rtype, typarams); + return pass(rtype, typarams); + } + function argdef(type) { + if (type == "name") {cx.marked = "def"; return cont(argdef);} + if (type == ":") return cont(typecx, rtype, valcx); + return pass(); + } + function rtype(type) { + if (type == "name") {cx.marked = "variable-3"; return cont(rtypemaybeparam); } + if (content == "mutable") {cx.marked = "keyword"; return cont(rtype);} + if (type == "atom") return cont(rtypemaybeparam); + if (type == "op" || type == "obj") return cont(rtype); + if (type == "fn") return cont(fntype); + if (type == "{") return cont(pushlex("{"), record_of(rtype), poplex); + return matchBrackets(type, rtype); + } + function rtypemaybeparam() { + if (content == "<") return cont(typarams); + return pass(); + } + function fntype(type) { + if (type == "(") return cont(pushlex("("), commasep(rtype, ")"), poplex, fntype); + if (type == "->") return cont(rtype); + return pass(); + } + function pattern(type) { + if (type == "name") {cx.marked = "def"; return cont(patternmaybeop);} + if (type == "atom") return cont(patternmaybeop); + if (type == "op") return cont(pattern); + if (type.match(/[\]\)\};,]/)) return pass(); + return matchBrackets(type, pattern); + } + function patternmaybeop(type) { + if (type == "op" && content == ".") return cont(); + if (content == "to") {cx.marked = "keyword"; return cont(pattern);} + else return pass(); + } + function altbody(type) { + if (type == "{") return cont(pushlex("}", "alt"), altblock1, poplex); + return pass(); + } + function altblock1(type) { + if (type == "}") return cont(); + if (type == "|") return cont(altblock1); + if (content == "when") {cx.marked = "keyword"; return cont(expression, altblock2);} + if (type.match(/[\]\);,]/)) return cont(altblock1); + return pass(pattern, altblock2); + } + function altblock2(type) { + if (type == "{") return cont(pushlex("}", "alt"), block, poplex, altblock1); + else return pass(altblock1); + } + + function macro(type) { + if (type.match(/[\[\(\{]/)) return matchBrackets(type, expression); + return pass(); + } + function matchBrackets(type, comb) { + if (type == "[") return cont(pushlex("]"), commasep(comb, "]"), poplex); + if (type == "(") return cont(pushlex(")"), commasep(comb, ")"), poplex); + if (type == "{") return cont(pushlex("}"), commasep(comb, "}"), poplex); + return cont(); + } + + function parse(state, stream, style) { + var cc = state.cc; + // Communicate our context to the combinators. + // (Less wasteful than consing up a hundred closures on every call.) + cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; + + while (true) { + var combinator = cc.length ? cc.pop() : block; + if (combinator(tcat)) { + while(cc.length && cc[cc.length - 1].lex) + cc.pop()(); + return cx.marked || style; + } + } + } + + return { + startState: function() { + return { + tokenize: tokenBase, + cc: [], + lexical: {indented: -indentUnit, column: 0, type: "top", align: false}, + keywords: valKeywords, + indented: 0 + }; + }, + + token: function(stream, state) { + if (stream.sol()) { + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = false; + state.indented = stream.indentation(); + } + if (stream.eatSpace()) return null; + tcat = content = null; + var style = state.tokenize(stream, state); + if (style == "comment") return style; + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = true; + if (tcat == "prefix") return style; + if (!content) content = stream.current(); + return parse(state, stream, style); + }, + + indent: function(state, textAfter) { + if (state.tokenize != tokenBase) return 0; + var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, + type = lexical.type, closing = firstChar == type; + if (type == "stat") return lexical.indented + indentUnit; + if (lexical.align) return lexical.column + (closing ? 0 : 1); + return lexical.indented + (closing ? 0 : (lexical.info == "alt" ? altIndentUnit : indentUnit)); + }, + + electricChars: "{}", + blockCommentStart: "/*", + blockCommentEnd: "*/", + lineComment: "//", + fold: "brace" + }; +}); + +CodeMirror.defineMIME("text/x-rustsrc", "rust"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sass/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sass/index.html new file mode 100644 index 0000000..9f4a790 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sass/index.html @@ -0,0 +1,66 @@ + + +CodeMirror: Sass mode + + + + + + + + + + +
                              +

                              Sass mode

                              +
                              + + +

                              MIME types defined: text/x-sass.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sass/sass.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sass/sass.js new file mode 100644 index 0000000..52a6682 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sass/sass.js @@ -0,0 +1,414 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("sass", function(config) { + function tokenRegexp(words) { + return new RegExp("^" + words.join("|")); + } + + var keywords = ["true", "false", "null", "auto"]; + var keywordsRegexp = new RegExp("^" + keywords.join("|")); + + var operators = ["\\(", "\\)", "=", ">", "<", "==", ">=", "<=", "\\+", "-", + "\\!=", "/", "\\*", "%", "and", "or", "not", ";","\\{","\\}",":"]; + var opRegexp = tokenRegexp(operators); + + var pseudoElementsRegexp = /^::?[a-zA-Z_][\w\-]*/; + + function urlTokens(stream, state) { + var ch = stream.peek(); + + if (ch === ")") { + stream.next(); + state.tokenizer = tokenBase; + return "operator"; + } else if (ch === "(") { + stream.next(); + stream.eatSpace(); + + return "operator"; + } else if (ch === "'" || ch === '"') { + state.tokenizer = buildStringTokenizer(stream.next()); + return "string"; + } else { + state.tokenizer = buildStringTokenizer(")", false); + return "string"; + } + } + function comment(indentation, multiLine) { + return function(stream, state) { + if (stream.sol() && stream.indentation() <= indentation) { + state.tokenizer = tokenBase; + return tokenBase(stream, state); + } + + if (multiLine && stream.skipTo("*/")) { + stream.next(); + stream.next(); + state.tokenizer = tokenBase; + } else { + stream.skipToEnd(); + } + + return "comment"; + }; + } + + function buildStringTokenizer(quote, greedy) { + if (greedy == null) { greedy = true; } + + function stringTokenizer(stream, state) { + var nextChar = stream.next(); + var peekChar = stream.peek(); + var previousChar = stream.string.charAt(stream.pos-2); + + var endingString = ((nextChar !== "\\" && peekChar === quote) || (nextChar === quote && previousChar !== "\\")); + + if (endingString) { + if (nextChar !== quote && greedy) { stream.next(); } + state.tokenizer = tokenBase; + return "string"; + } else if (nextChar === "#" && peekChar === "{") { + state.tokenizer = buildInterpolationTokenizer(stringTokenizer); + stream.next(); + return "operator"; + } else { + return "string"; + } + } + + return stringTokenizer; + } + + function buildInterpolationTokenizer(currentTokenizer) { + return function(stream, state) { + if (stream.peek() === "}") { + stream.next(); + state.tokenizer = currentTokenizer; + return "operator"; + } else { + return tokenBase(stream, state); + } + }; + } + + function indent(state) { + if (state.indentCount == 0) { + state.indentCount++; + var lastScopeOffset = state.scopes[0].offset; + var currentOffset = lastScopeOffset + config.indentUnit; + state.scopes.unshift({ offset:currentOffset }); + } + } + + function dedent(state) { + if (state.scopes.length == 1) return; + + state.scopes.shift(); + } + + function tokenBase(stream, state) { + var ch = stream.peek(); + + // Comment + if (stream.match("/*")) { + state.tokenizer = comment(stream.indentation(), true); + return state.tokenizer(stream, state); + } + if (stream.match("//")) { + state.tokenizer = comment(stream.indentation(), false); + return state.tokenizer(stream, state); + } + + // Interpolation + if (stream.match("#{")) { + state.tokenizer = buildInterpolationTokenizer(tokenBase); + return "operator"; + } + + // Strings + if (ch === '"' || ch === "'") { + stream.next(); + state.tokenizer = buildStringTokenizer(ch); + return "string"; + } + + if(!state.cursorHalf){// state.cursorHalf === 0 + // first half i.e. before : for key-value pairs + // including selectors + + if (ch === ".") { + stream.next(); + if (stream.match(/^[\w-]+/)) { + indent(state); + return "atom"; + } else if (stream.peek() === "#") { + indent(state); + return "atom"; + } + } + + if (ch === "#") { + stream.next(); + // ID selectors + if (stream.match(/^[\w-]+/)) { + indent(state); + return "atom"; + } + if (stream.peek() === "#") { + indent(state); + return "atom"; + } + } + + // Variables + if (ch === "$") { + stream.next(); + stream.eatWhile(/[\w-]/); + return "variable-2"; + } + + // Numbers + if (stream.match(/^-?[0-9\.]+/)) + return "number"; + + // Units + if (stream.match(/^(px|em|in)\b/)) + return "unit"; + + if (stream.match(keywordsRegexp)) + return "keyword"; + + if (stream.match(/^url/) && stream.peek() === "(") { + state.tokenizer = urlTokens; + return "atom"; + } + + if (ch === "=") { + // Match shortcut mixin definition + if (stream.match(/^=[\w-]+/)) { + indent(state); + return "meta"; + } + } + + if (ch === "+") { + // Match shortcut mixin definition + if (stream.match(/^\+[\w-]+/)){ + return "variable-3"; + } + } + + if(ch === "@"){ + if(stream.match(/@extend/)){ + if(!stream.match(/\s*[\w]/)) + dedent(state); + } + } + + + // Indent Directives + if (stream.match(/^@(else if|if|media|else|for|each|while|mixin|function)/)) { + indent(state); + return "meta"; + } + + // Other Directives + if (ch === "@") { + stream.next(); + stream.eatWhile(/[\w-]/); + return "meta"; + } + + if (stream.eatWhile(/[\w-]/)){ + if(stream.match(/ *: *[\w-\+\$#!\("']/,false)){ + return "propery"; + } + else if(stream.match(/ *:/,false)){ + indent(state); + state.cursorHalf = 1; + return "atom"; + } + else if(stream.match(/ *,/,false)){ + return "atom"; + } + else{ + indent(state); + return "atom"; + } + } + + if(ch === ":"){ + if (stream.match(pseudoElementsRegexp)){ // could be a pseudo-element + return "keyword"; + } + stream.next(); + state.cursorHalf=1; + return "operator"; + } + + } // cursorHalf===0 ends here + else{ + + if (ch === "#") { + stream.next(); + // Hex numbers + if (stream.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)){ + if(!stream.peek()){ + state.cursorHalf = 0; + } + return "number"; + } + } + + // Numbers + if (stream.match(/^-?[0-9\.]+/)){ + if(!stream.peek()){ + state.cursorHalf = 0; + } + return "number"; + } + + // Units + if (stream.match(/^(px|em|in)\b/)){ + if(!stream.peek()){ + state.cursorHalf = 0; + } + return "unit"; + } + + if (stream.match(keywordsRegexp)){ + if(!stream.peek()){ + state.cursorHalf = 0; + } + return "keyword"; + } + + if (stream.match(/^url/) && stream.peek() === "(") { + state.tokenizer = urlTokens; + if(!stream.peek()){ + state.cursorHalf = 0; + } + return "atom"; + } + + // Variables + if (ch === "$") { + stream.next(); + stream.eatWhile(/[\w-]/); + if(!stream.peek()){ + state.cursorHalf = 0; + } + return "variable-3"; + } + + // bang character for !important, !default, etc. + if (ch === "!") { + stream.next(); + if(!stream.peek()){ + state.cursorHalf = 0; + } + return stream.match(/^[\w]+/) ? "keyword": "operator"; + } + + if (stream.match(opRegexp)){ + if(!stream.peek()){ + state.cursorHalf = 0; + } + return "operator"; + } + + // attributes + if (stream.eatWhile(/[\w-]/)) { + if(!stream.peek()){ + state.cursorHalf = 0; + } + return "attribute"; + } + + //stream.eatSpace(); + if(!stream.peek()){ + state.cursorHalf = 0; + return null; + } + + } // else ends here + + if (stream.match(opRegexp)) + return "operator"; + + // If we haven't returned by now, we move 1 character + // and return an error + stream.next(); + return null; + } + + function tokenLexer(stream, state) { + if (stream.sol()) state.indentCount = 0; + var style = state.tokenizer(stream, state); + var current = stream.current(); + + if (current === "@return" || current === "}"){ + dedent(state); + } + + if (style !== null) { + var startOfToken = stream.pos - current.length; + + var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount); + + var newScopes = []; + + for (var i = 0; i < state.scopes.length; i++) { + var scope = state.scopes[i]; + + if (scope.offset <= withCurrentIndent) + newScopes.push(scope); + } + + state.scopes = newScopes; + } + + + return style; + } + + return { + startState: function() { + return { + tokenizer: tokenBase, + scopes: [{offset: 0, type: "sass"}], + indentCount: 0, + cursorHalf: 0, // cursor half tells us if cursor lies after (1) + // or before (0) colon (well... more or less) + definedVars: [], + definedMixins: [] + }; + }, + token: function(stream, state) { + var style = tokenLexer(stream, state); + + state.lastToken = { style: style, content: stream.current() }; + + return style; + }, + + indent: function(state) { + return state.scopes[0].offset; + } + }; +}); + +CodeMirror.defineMIME("text/x-sass", "sass"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/scheme/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/scheme/index.html new file mode 100644 index 0000000..04d5c6a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/scheme/index.html @@ -0,0 +1,77 @@ + + +CodeMirror: Scheme mode + + + + + + + + + +
                              +

                              Scheme mode

                              +
                              + + +

                              MIME types defined: text/x-scheme.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/scheme/scheme.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/scheme/scheme.js new file mode 100644 index 0000000..979edc0 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/scheme/scheme.js @@ -0,0 +1,248 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/** + * Author: Koh Zi Han, based on implementation by Koh Zi Chun + */ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("scheme", function () { + var BUILTIN = "builtin", COMMENT = "comment", STRING = "string", + ATOM = "atom", NUMBER = "number", BRACKET = "bracket"; + var INDENT_WORD_SKIP = 2; + + function makeKeywords(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + var keywords = makeKeywords("λ case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"); + var indentKeys = makeKeywords("define let letrec let* lambda"); + + function stateStack(indent, type, prev) { // represents a state stack object + this.indent = indent; + this.type = type; + this.prev = prev; + } + + function pushStack(state, indent, type) { + state.indentStack = new stateStack(indent, type, state.indentStack); + } + + function popStack(state) { + state.indentStack = state.indentStack.prev; + } + + var binaryMatcher = new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i); + var octalMatcher = new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i); + var hexMatcher = new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i); + var decimalMatcher = new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i); + + function isBinaryNumber (stream) { + return stream.match(binaryMatcher); + } + + function isOctalNumber (stream) { + return stream.match(octalMatcher); + } + + function isDecimalNumber (stream, backup) { + if (backup === true) { + stream.backUp(1); + } + return stream.match(decimalMatcher); + } + + function isHexNumber (stream) { + return stream.match(hexMatcher); + } + + return { + startState: function () { + return { + indentStack: null, + indentation: 0, + mode: false, + sExprComment: false + }; + }, + + token: function (stream, state) { + if (state.indentStack == null && stream.sol()) { + // update indentation, but only if indentStack is empty + state.indentation = stream.indentation(); + } + + // skip spaces + if (stream.eatSpace()) { + return null; + } + var returnType = null; + + switch(state.mode){ + case "string": // multi-line string parsing mode + var next, escaped = false; + while ((next = stream.next()) != null) { + if (next == "\"" && !escaped) { + + state.mode = false; + break; + } + escaped = !escaped && next == "\\"; + } + returnType = STRING; // continue on in scheme-string mode + break; + case "comment": // comment parsing mode + var next, maybeEnd = false; + while ((next = stream.next()) != null) { + if (next == "#" && maybeEnd) { + + state.mode = false; + break; + } + maybeEnd = (next == "|"); + } + returnType = COMMENT; + break; + case "s-expr-comment": // s-expr commenting mode + state.mode = false; + if(stream.peek() == "(" || stream.peek() == "["){ + // actually start scheme s-expr commenting mode + state.sExprComment = 0; + }else{ + // if not we just comment the entire of the next token + stream.eatWhile(/[^/s]/); // eat non spaces + returnType = COMMENT; + break; + } + default: // default parsing mode + var ch = stream.next(); + + if (ch == "\"") { + state.mode = "string"; + returnType = STRING; + + } else if (ch == "'") { + returnType = ATOM; + } else if (ch == '#') { + if (stream.eat("|")) { // Multi-line comment + state.mode = "comment"; // toggle to comment mode + returnType = COMMENT; + } else if (stream.eat(/[tf]/i)) { // #t/#f (atom) + returnType = ATOM; + } else if (stream.eat(';')) { // S-Expr comment + state.mode = "s-expr-comment"; + returnType = COMMENT; + } else { + var numTest = null, hasExactness = false, hasRadix = true; + if (stream.eat(/[ei]/i)) { + hasExactness = true; + } else { + stream.backUp(1); // must be radix specifier + } + if (stream.match(/^#b/i)) { + numTest = isBinaryNumber; + } else if (stream.match(/^#o/i)) { + numTest = isOctalNumber; + } else if (stream.match(/^#x/i)) { + numTest = isHexNumber; + } else if (stream.match(/^#d/i)) { + numTest = isDecimalNumber; + } else if (stream.match(/^[-+0-9.]/, false)) { + hasRadix = false; + numTest = isDecimalNumber; + // re-consume the intial # if all matches failed + } else if (!hasExactness) { + stream.eat('#'); + } + if (numTest != null) { + if (hasRadix && !hasExactness) { + // consume optional exactness after radix + stream.match(/^#[ei]/i); + } + if (numTest(stream)) + returnType = NUMBER; + } + } + } else if (/^[-+0-9.]/.test(ch) && isDecimalNumber(stream, true)) { // match non-prefixed number, must be decimal + returnType = NUMBER; + } else if (ch == ";") { // comment + stream.skipToEnd(); // rest of the line is a comment + returnType = COMMENT; + } else if (ch == "(" || ch == "[") { + var keyWord = ''; var indentTemp = stream.column(), letter; + /** + Either + (indent-word .. + (non-indent-word .. + (;something else, bracket, etc. + */ + + while ((letter = stream.eat(/[^\s\(\[\;\)\]]/)) != null) { + keyWord += letter; + } + + if (keyWord.length > 0 && indentKeys.propertyIsEnumerable(keyWord)) { // indent-word + + pushStack(state, indentTemp + INDENT_WORD_SKIP, ch); + } else { // non-indent word + // we continue eating the spaces + stream.eatSpace(); + if (stream.eol() || stream.peek() == ";") { + // nothing significant after + // we restart indentation 1 space after + pushStack(state, indentTemp + 1, ch); + } else { + pushStack(state, indentTemp + stream.current().length, ch); // else we match + } + } + stream.backUp(stream.current().length - 1); // undo all the eating + + if(typeof state.sExprComment == "number") state.sExprComment++; + + returnType = BRACKET; + } else if (ch == ")" || ch == "]") { + returnType = BRACKET; + if (state.indentStack != null && state.indentStack.type == (ch == ")" ? "(" : "[")) { + popStack(state); + + if(typeof state.sExprComment == "number"){ + if(--state.sExprComment == 0){ + returnType = COMMENT; // final closing bracket + state.sExprComment = false; // turn off s-expr commenting mode + } + } + } + } else { + stream.eatWhile(/[\w\$_\-!$%&*+\.\/:<=>?@\^~]/); + + if (keywords && keywords.propertyIsEnumerable(stream.current())) { + returnType = BUILTIN; + } else returnType = "variable"; + } + } + return (typeof state.sExprComment == "number") ? COMMENT : returnType; + }, + + indent: function (state) { + if (state.indentStack == null) return state.indentation; + return state.indentStack.indent; + }, + + lineComment: ";;" + }; +}); + +CodeMirror.defineMIME("text/x-scheme", "scheme"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/index.html new file mode 100644 index 0000000..0b56300 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/index.html @@ -0,0 +1,66 @@ + + +CodeMirror: Shell mode + + + + + + + + + + +
                              +

                              Shell mode

                              + + + + + + +

                              MIME types defined: text/x-sh.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/shell.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/shell.js new file mode 100644 index 0000000..a684e8c --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/shell.js @@ -0,0 +1,139 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode('shell', function() { + + var words = {}; + function define(style, string) { + var split = string.split(' '); + for(var i = 0; i < split.length; i++) { + words[split[i]] = style; + } + }; + + // Atoms + define('atom', 'true false'); + + // Keywords + define('keyword', 'if then do else elif while until for in esac fi fin ' + + 'fil done exit set unset export function'); + + // Commands + define('builtin', 'ab awk bash beep cat cc cd chown chmod chroot clear cp ' + + 'curl cut diff echo find gawk gcc get git grep kill killall ln ls make ' + + 'mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh ' + + 'shopt shred source sort sleep ssh start stop su sudo tee telnet top ' + + 'touch vi vim wall wc wget who write yes zsh'); + + function tokenBase(stream, state) { + if (stream.eatSpace()) return null; + + var sol = stream.sol(); + var ch = stream.next(); + + if (ch === '\\') { + stream.next(); + return null; + } + if (ch === '\'' || ch === '"' || ch === '`') { + state.tokens.unshift(tokenString(ch)); + return tokenize(stream, state); + } + if (ch === '#') { + if (sol && stream.eat('!')) { + stream.skipToEnd(); + return 'meta'; // 'comment'? + } + stream.skipToEnd(); + return 'comment'; + } + if (ch === '$') { + state.tokens.unshift(tokenDollar); + return tokenize(stream, state); + } + if (ch === '+' || ch === '=') { + return 'operator'; + } + if (ch === '-') { + stream.eat('-'); + stream.eatWhile(/\w/); + return 'attribute'; + } + if (/\d/.test(ch)) { + stream.eatWhile(/\d/); + if(stream.eol() || !/\w/.test(stream.peek())) { + return 'number'; + } + } + stream.eatWhile(/[\w-]/); + var cur = stream.current(); + if (stream.peek() === '=' && /\w+/.test(cur)) return 'def'; + return words.hasOwnProperty(cur) ? words[cur] : null; + } + + function tokenString(quote) { + return function(stream, state) { + var next, end = false, escaped = false; + while ((next = stream.next()) != null) { + if (next === quote && !escaped) { + end = true; + break; + } + if (next === '$' && !escaped && quote !== '\'') { + escaped = true; + stream.backUp(1); + state.tokens.unshift(tokenDollar); + break; + } + escaped = !escaped && next === '\\'; + } + if (end || !escaped) { + state.tokens.shift(); + } + return (quote === '`' || quote === ')' ? 'quote' : 'string'); + }; + }; + + var tokenDollar = function(stream, state) { + if (state.tokens.length > 1) stream.eat('$'); + var ch = stream.next(), hungry = /\w/; + if (ch === '{') hungry = /[^}]/; + if (ch === '(') { + state.tokens[0] = tokenString(')'); + return tokenize(stream, state); + } + if (!/\d/.test(ch)) { + stream.eatWhile(hungry); + stream.eat('}'); + } + state.tokens.shift(); + return 'def'; + }; + + function tokenize(stream, state) { + return (state.tokens[0] || tokenBase) (stream, state); + }; + + return { + startState: function() {return {tokens:[]};}, + token: function(stream, state) { + return tokenize(stream, state); + }, + lineComment: '#', + fold: "brace" + }; +}); + +CodeMirror.defineMIME('text/x-sh', 'shell'); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/test.js new file mode 100644 index 0000000..a413b5a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/shell/test.js @@ -0,0 +1,58 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({}, "shell"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + MT("var", + "text [def $var] text"); + MT("varBraces", + "text[def ${var}]text"); + MT("varVar", + "text [def $a$b] text"); + MT("varBracesVarBraces", + "text[def ${a}${b}]text"); + + MT("singleQuotedVar", + "[string 'text $var text']"); + MT("singleQuotedVarBraces", + "[string 'text ${var} text']"); + + MT("doubleQuotedVar", + '[string "text ][def $var][string text"]'); + MT("doubleQuotedVarBraces", + '[string "text][def ${var}][string text"]'); + MT("doubleQuotedVarPunct", + '[string "text ][def $@][string text"]'); + MT("doubleQuotedVarVar", + '[string "][def $a$b][string "]'); + MT("doubleQuotedVarBracesVarBraces", + '[string "][def ${a}${b}][string "]'); + + MT("notAString", + "text\\'text"); + MT("escapes", + "outside\\'\\\"\\`\\\\[string \"inside\\`\\'\\\"\\\\`\\$notAVar\"]outside\\$\\(notASubShell\\)"); + + MT("subshell", + "[builtin echo] [quote $(whoami)] s log, stardate [quote `date`]."); + MT("doubleQuotedSubshell", + "[builtin echo] [string \"][quote $(whoami)][string 's log, stardate `date`.\"]"); + + MT("hashbang", + "[meta #!/bin/bash]"); + MT("comment", + "text [comment # Blurb]"); + + MT("numbers", + "[number 0] [number 1] [number 2]"); + MT("keywords", + "[keyword while] [atom true]; [keyword do]", + " [builtin sleep] [number 3]", + "[keyword done]"); + MT("options", + "[builtin ls] [attribute -l] [attribute --human-readable]"); + MT("operator", + "[def var][operator =]value"); +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sieve/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sieve/index.html new file mode 100644 index 0000000..6f029b6 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sieve/index.html @@ -0,0 +1,93 @@ + + +CodeMirror: Sieve (RFC5228) mode + + + + + + + + + +
                              +

                              Sieve (RFC5228) mode

                              +
                              + + +

                              MIME types defined: application/sieve.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sieve/sieve.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sieve/sieve.js new file mode 100644 index 0000000..f67db2f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sieve/sieve.js @@ -0,0 +1,193 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("sieve", function(config) { + function words(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + var keywords = words("if elsif else stop require"); + var atoms = words("true false not"); + var indentUnit = config.indentUnit; + + function tokenBase(stream, state) { + + var ch = stream.next(); + if (ch == "/" && stream.eat("*")) { + state.tokenize = tokenCComment; + return tokenCComment(stream, state); + } + + if (ch === '#') { + stream.skipToEnd(); + return "comment"; + } + + if (ch == "\"") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + + if (ch == "(") { + state._indent.push("("); + // add virtual angel wings so that editor behaves... + // ...more sane incase of broken brackets + state._indent.push("{"); + return null; + } + + if (ch === "{") { + state._indent.push("{"); + return null; + } + + if (ch == ")") { + state._indent.pop(); + state._indent.pop(); + } + + if (ch === "}") { + state._indent.pop(); + return null; + } + + if (ch == ",") + return null; + + if (ch == ";") + return null; + + + if (/[{}\(\),;]/.test(ch)) + return null; + + // 1*DIGIT "K" / "M" / "G" + if (/\d/.test(ch)) { + stream.eatWhile(/[\d]/); + stream.eat(/[KkMmGg]/); + return "number"; + } + + // ":" (ALPHA / "_") *(ALPHA / DIGIT / "_") + if (ch == ":") { + stream.eatWhile(/[a-zA-Z_]/); + stream.eatWhile(/[a-zA-Z0-9_]/); + + return "operator"; + } + + stream.eatWhile(/\w/); + var cur = stream.current(); + + // "text:" *(SP / HTAB) (hash-comment / CRLF) + // *(multiline-literal / multiline-dotstart) + // "." CRLF + if ((cur == "text") && stream.eat(":")) + { + state.tokenize = tokenMultiLineString; + return "string"; + } + + if (keywords.propertyIsEnumerable(cur)) + return "keyword"; + + if (atoms.propertyIsEnumerable(cur)) + return "atom"; + + return null; + } + + function tokenMultiLineString(stream, state) + { + state._multiLineString = true; + // the first line is special it may contain a comment + if (!stream.sol()) { + stream.eatSpace(); + + if (stream.peek() == "#") { + stream.skipToEnd(); + return "comment"; + } + + stream.skipToEnd(); + return "string"; + } + + if ((stream.next() == ".") && (stream.eol())) + { + state._multiLineString = false; + state.tokenize = tokenBase; + } + + return "string"; + } + + function tokenCComment(stream, state) { + var maybeEnd = false, ch; + while ((ch = stream.next()) != null) { + if (maybeEnd && ch == "/") { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && !escaped) + break; + escaped = !escaped && ch == "\\"; + } + if (!escaped) state.tokenize = tokenBase; + return "string"; + }; + } + + return { + startState: function(base) { + return {tokenize: tokenBase, + baseIndent: base || 0, + _indent: []}; + }, + + token: function(stream, state) { + if (stream.eatSpace()) + return null; + + return (state.tokenize || tokenBase)(stream, state);; + }, + + indent: function(state, _textAfter) { + var length = state._indent.length; + if (_textAfter && (_textAfter[0] == "}")) + length--; + + if (length <0) + length = 0; + + return length * indentUnit; + }, + + electricChars: "}" + }; +}); + +CodeMirror.defineMIME("application/sieve", "sieve"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/index.html new file mode 100644 index 0000000..7fa4e50 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/index.html @@ -0,0 +1,96 @@ + + +CodeMirror: SLIM mode + + + + + + + + + + + + + + + + + + + + +
                              +

                              SLIM mode

                              +
                              + + +

                              MIME types defined: application/x-slim.

                              + +

                              + Parsing/Highlighting Tests: + normal, + verbose. +

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/slim.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/slim.js new file mode 100644 index 0000000..164464d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/slim.js @@ -0,0 +1,575 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +// Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../ruby/ruby")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../ruby/ruby"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + + CodeMirror.defineMode("slim", function(config) { + var htmlMode = CodeMirror.getMode(config, {name: "htmlmixed"}); + var rubyMode = CodeMirror.getMode(config, "ruby"); + var modes = { html: htmlMode, ruby: rubyMode }; + var embedded = { + ruby: "ruby", + javascript: "javascript", + css: "text/css", + sass: "text/x-sass", + scss: "text/x-scss", + less: "text/x-less", + styl: "text/x-styl", // no highlighting so far + coffee: "coffeescript", + asciidoc: "text/x-asciidoc", + markdown: "text/x-markdown", + textile: "text/x-textile", // no highlighting so far + creole: "text/x-creole", // no highlighting so far + wiki: "text/x-wiki", // no highlighting so far + mediawiki: "text/x-mediawiki", // no highlighting so far + rdoc: "text/x-rdoc", // no highlighting so far + builder: "text/x-builder", // no highlighting so far + nokogiri: "text/x-nokogiri", // no highlighting so far + erb: "application/x-erb" + }; + var embeddedRegexp = function(map){ + var arr = []; + for(var key in map) arr.push(key); + return new RegExp("^("+arr.join('|')+"):"); + }(embedded); + + var styleMap = { + "commentLine": "comment", + "slimSwitch": "operator special", + "slimTag": "tag", + "slimId": "attribute def", + "slimClass": "attribute qualifier", + "slimAttribute": "attribute", + "slimSubmode": "keyword special", + "closeAttributeTag": null, + "slimDoctype": null, + "lineContinuation": null + }; + var closing = { + "{": "}", + "[": "]", + "(": ")" + }; + + var nameStartChar = "_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD"; + var nameChar = nameStartChar + "\\-0-9\xB7\u0300-\u036F\u203F-\u2040"; + var nameRegexp = new RegExp("^[:"+nameStartChar+"](?::["+nameChar+"]|["+nameChar+"]*)"); + var attributeNameRegexp = new RegExp("^[:"+nameStartChar+"][:\\."+nameChar+"]*(?=\\s*=)"); + var wrappedAttributeNameRegexp = new RegExp("^[:"+nameStartChar+"][:\\."+nameChar+"]*"); + var classNameRegexp = /^\.-?[_a-zA-Z]+[\w\-]*/; + var classIdRegexp = /^#[_a-zA-Z]+[\w\-]*/; + + function backup(pos, tokenize, style) { + var restore = function(stream, state) { + state.tokenize = tokenize; + if (stream.pos < pos) { + stream.pos = pos; + return style; + } + return state.tokenize(stream, state); + }; + return function(stream, state) { + state.tokenize = restore; + return tokenize(stream, state); + }; + } + + function maybeBackup(stream, state, pat, offset, style) { + var cur = stream.current(); + var idx = cur.search(pat); + if (idx > -1) { + state.tokenize = backup(stream.pos, state.tokenize, style); + stream.backUp(cur.length - idx - offset); + } + return style; + } + + function continueLine(state, column) { + state.stack = { + parent: state.stack, + style: "continuation", + indented: column, + tokenize: state.line + }; + state.line = state.tokenize; + } + function finishContinue(state) { + if (state.line == state.tokenize) { + state.line = state.stack.tokenize; + state.stack = state.stack.parent; + } + } + + function lineContinuable(column, tokenize) { + return function(stream, state) { + finishContinue(state); + if (stream.match(/^\\$/)) { + continueLine(state, column); + return "lineContinuation"; + } + var style = tokenize(stream, state); + if (stream.eol() && stream.current().match(/(?:^|[^\\])(?:\\\\)*\\$/)) { + stream.backUp(1); + } + return style; + }; + } + function commaContinuable(column, tokenize) { + return function(stream, state) { + finishContinue(state); + var style = tokenize(stream, state); + if (stream.eol() && stream.current().match(/,$/)) { + continueLine(state, column); + } + return style; + }; + } + + function rubyInQuote(endQuote, tokenize) { + // TODO: add multi line support + return function(stream, state) { + var ch = stream.peek(); + if (ch == endQuote && state.rubyState.tokenize.length == 1) { + // step out of ruby context as it seems to complete processing all the braces + stream.next(); + state.tokenize = tokenize; + return "closeAttributeTag"; + } else { + return ruby(stream, state); + } + }; + } + function startRubySplat(tokenize) { + var rubyState; + var runSplat = function(stream, state) { + if (state.rubyState.tokenize.length == 1 && !state.rubyState.context.prev) { + stream.backUp(1); + if (stream.eatSpace()) { + state.rubyState = rubyState; + state.tokenize = tokenize; + return tokenize(stream, state); + } + stream.next(); + } + return ruby(stream, state); + }; + return function(stream, state) { + rubyState = state.rubyState; + state.rubyState = rubyMode.startState(); + state.tokenize = runSplat; + return ruby(stream, state); + }; + } + + function ruby(stream, state) { + return rubyMode.token(stream, state.rubyState); + } + + function htmlLine(stream, state) { + if (stream.match(/^\\$/)) { + return "lineContinuation"; + } + return html(stream, state); + } + function html(stream, state) { + if (stream.match(/^#\{/)) { + state.tokenize = rubyInQuote("}", state.tokenize); + return null; + } + return maybeBackup(stream, state, /[^\\]#\{/, 1, htmlMode.token(stream, state.htmlState)); + } + + function startHtmlLine(lastTokenize) { + return function(stream, state) { + var style = htmlLine(stream, state); + if (stream.eol()) state.tokenize = lastTokenize; + return style; + }; + } + + function startHtmlMode(stream, state, offset) { + state.stack = { + parent: state.stack, + style: "html", + indented: stream.column() + offset, // pipe + space + tokenize: state.line + }; + state.line = state.tokenize = html; + return null; + } + + function comment(stream, state) { + stream.skipToEnd(); + return state.stack.style; + } + + function commentMode(stream, state) { + state.stack = { + parent: state.stack, + style: "comment", + indented: state.indented + 1, + tokenize: state.line + }; + state.line = comment; + return comment(stream, state); + } + + function attributeWrapper(stream, state) { + if (stream.eat(state.stack.endQuote)) { + state.line = state.stack.line; + state.tokenize = state.stack.tokenize; + state.stack = state.stack.parent; + return null; + } + if (stream.match(wrappedAttributeNameRegexp)) { + state.tokenize = attributeWrapperAssign; + return "slimAttribute"; + } + stream.next(); + return null; + } + function attributeWrapperAssign(stream, state) { + if (stream.match(/^==?/)) { + state.tokenize = attributeWrapperValue; + return null; + } + return attributeWrapper(stream, state); + } + function attributeWrapperValue(stream, state) { + var ch = stream.peek(); + if (ch == '"' || ch == "\'") { + state.tokenize = readQuoted(ch, "string", true, false, attributeWrapper); + stream.next(); + return state.tokenize(stream, state); + } + if (ch == '[') { + return startRubySplat(attributeWrapper)(stream, state); + } + if (stream.match(/^(true|false|nil)\b/)) { + state.tokenize = attributeWrapper; + return "keyword"; + } + return startRubySplat(attributeWrapper)(stream, state); + } + + function startAttributeWrapperMode(state, endQuote, tokenize) { + state.stack = { + parent: state.stack, + style: "wrapper", + indented: state.indented + 1, + tokenize: tokenize, + line: state.line, + endQuote: endQuote + }; + state.line = state.tokenize = attributeWrapper; + return null; + } + + function sub(stream, state) { + if (stream.match(/^#\{/)) { + state.tokenize = rubyInQuote("}", state.tokenize); + return null; + } + var subStream = new CodeMirror.StringStream(stream.string.slice(state.stack.indented), stream.tabSize); + subStream.pos = stream.pos - state.stack.indented; + subStream.start = stream.start - state.stack.indented; + subStream.lastColumnPos = stream.lastColumnPos - state.stack.indented; + subStream.lastColumnValue = stream.lastColumnValue - state.stack.indented; + var style = state.subMode.token(subStream, state.subState); + stream.pos = subStream.pos + state.stack.indented; + return style; + } + function firstSub(stream, state) { + state.stack.indented = stream.column(); + state.line = state.tokenize = sub; + return state.tokenize(stream, state); + } + + function createMode(mode) { + var query = embedded[mode]; + var spec = CodeMirror.mimeModes[query]; + if (spec) { + return CodeMirror.getMode(config, spec); + } + var factory = CodeMirror.modes[query]; + if (factory) { + return factory(config, {name: query}); + } + return CodeMirror.getMode(config, "null"); + } + + function getMode(mode) { + if (!modes.hasOwnProperty(mode)) { + return modes[mode] = createMode(mode); + } + return modes[mode]; + } + + function startSubMode(mode, state) { + var subMode = getMode(mode); + var subState = subMode.startState && subMode.startState(); + + state.subMode = subMode; + state.subState = subState; + + state.stack = { + parent: state.stack, + style: "sub", + indented: state.indented + 1, + tokenize: state.line + }; + state.line = state.tokenize = firstSub; + return "slimSubmode"; + } + + function doctypeLine(stream, _state) { + stream.skipToEnd(); + return "slimDoctype"; + } + + function startLine(stream, state) { + var ch = stream.peek(); + if (ch == '<') { + return (state.tokenize = startHtmlLine(state.tokenize))(stream, state); + } + if (stream.match(/^[|']/)) { + return startHtmlMode(stream, state, 1); + } + if (stream.match(/^\/(!|\[\w+])?/)) { + return commentMode(stream, state); + } + if (stream.match(/^(-|==?[<>]?)/)) { + state.tokenize = lineContinuable(stream.column(), commaContinuable(stream.column(), ruby)); + return "slimSwitch"; + } + if (stream.match(/^doctype\b/)) { + state.tokenize = doctypeLine; + return "keyword"; + } + + var m = stream.match(embeddedRegexp); + if (m) { + return startSubMode(m[1], state); + } + + return slimTag(stream, state); + } + + function slim(stream, state) { + if (state.startOfLine) { + return startLine(stream, state); + } + return slimTag(stream, state); + } + + function slimTag(stream, state) { + if (stream.eat('*')) { + state.tokenize = startRubySplat(slimTagExtras); + return null; + } + if (stream.match(nameRegexp)) { + state.tokenize = slimTagExtras; + return "slimTag"; + } + return slimClass(stream, state); + } + function slimTagExtras(stream, state) { + if (stream.match(/^(<>?|> state.indented && state.last != "slimSubmode") { + state.line = state.tokenize = state.stack.tokenize; + state.stack = state.stack.parent; + state.subMode = null; + state.subState = null; + } + } + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + state.startOfLine = false; + if (style) state.last = style; + return styleMap.hasOwnProperty(style) ? styleMap[style] : style; + }, + + blankLine: function(state) { + if (state.subMode && state.subMode.blankLine) { + return state.subMode.blankLine(state.subState); + } + }, + + innerMode: function(state) { + if (state.subMode) return {state: state.subState, mode: state.subMode}; + return {state: state, mode: mode}; + } + + //indent: function(state) { + // return state.indented; + //} + }; + return mode; + }, "htmlmixed", "ruby"); + + CodeMirror.defineMIME("text/x-slim", "slim"); + CodeMirror.defineMIME("application/x-slim", "slim"); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/test.js new file mode 100644 index 0000000..be4ddac --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/slim/test.js @@ -0,0 +1,96 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +// Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh + +(function() { + var mode = CodeMirror.getMode({tabSize: 4, indentUnit: 2}, "slim"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + // Requires at least one media query + MT("elementName", + "[tag h1] Hey There"); + + MT("oneElementPerLine", + "[tag h1] Hey There .h2"); + + MT("idShortcut", + "[attribute&def #test] Hey There"); + + MT("tagWithIdShortcuts", + "[tag h1][attribute&def #test] Hey There"); + + MT("classShortcut", + "[attribute&qualifier .hello] Hey There"); + + MT("tagWithIdAndClassShortcuts", + "[tag h1][attribute&def #test][attribute&qualifier .hello] Hey There"); + + MT("docType", + "[keyword doctype] xml"); + + MT("comment", + "[comment / Hello WORLD]"); + + MT("notComment", + "[tag h1] This is not a / comment "); + + MT("attributes", + "[tag a]([attribute title]=[string \"test\"]) [attribute href]=[string \"link\"]}"); + + MT("multiLineAttributes", + "[tag a]([attribute title]=[string \"test\"]", + " ) [attribute href]=[string \"link\"]}"); + + MT("htmlCode", + "[tag&bracket <][tag h1][tag&bracket >]Title[tag&bracket ]"); + + MT("rubyBlock", + "[operator&special =][variable-2 @item]"); + + MT("selectorRubyBlock", + "[tag a][attribute&qualifier .test][operator&special =] [variable-2 @item]"); + + MT("nestedRubyBlock", + "[tag a]", + " [operator&special =][variable puts] [string \"test\"]"); + + MT("multilinePlaintext", + "[tag p]", + " | Hello,", + " World"); + + MT("multilineRuby", + "[tag p]", + " [comment /# this is a comment]", + " [comment and this is a comment too]", + " | Date/Time", + " [operator&special -] [variable now] [operator =] [tag DateTime][operator .][property now]", + " [tag strong][operator&special =] [variable now]", + " [operator&special -] [keyword if] [variable now] [operator >] [tag DateTime][operator .][property parse]([string \"December 31, 2006\"])", + " [operator&special =][string \"Happy\"]", + " [operator&special =][string \"Belated\"]", + " [operator&special =][string \"Birthday\"]"); + + MT("multilineComment", + "[comment /]", + " [comment Multiline]", + " [comment Comment]"); + + MT("hamlAfterRubyTag", + "[attribute&qualifier .block]", + " [tag strong][operator&special =] [variable now]", + " [attribute&qualifier .test]", + " [operator&special =][variable now]", + " [attribute&qualifier .right]"); + + MT("stretchedRuby", + "[operator&special =] [variable puts] [string \"Hello\"],", + " [string \"World\"]"); + + MT("interpolationInHashAttribute", + "[tag div]{[attribute id] = [string \"]#{[variable test]}[string _]#{[variable ting]}[string \"]} test"); + + MT("interpolationInHTMLAttribute", + "[tag div]([attribute title]=[string \"]#{[variable test]}[string _]#{[variable ting]()}[string \"]) Test"); +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smalltalk/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smalltalk/index.html new file mode 100644 index 0000000..140f24a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smalltalk/index.html @@ -0,0 +1,68 @@ + + +CodeMirror: Smalltalk mode + + + + + + + + + + +
                              +

                              Smalltalk mode

                              +
                              + + + +

                              Simple Smalltalk mode.

                              + +

                              MIME types defined: text/x-stsrc.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smalltalk/smalltalk.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smalltalk/smalltalk.js new file mode 100644 index 0000000..bb510ba --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smalltalk/smalltalk.js @@ -0,0 +1,168 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode('smalltalk', function(config) { + + var specialChars = /[+\-\/\\*~<>=@%|&?!.,:;^]/; + var keywords = /true|false|nil|self|super|thisContext/; + + var Context = function(tokenizer, parent) { + this.next = tokenizer; + this.parent = parent; + }; + + var Token = function(name, context, eos) { + this.name = name; + this.context = context; + this.eos = eos; + }; + + var State = function() { + this.context = new Context(next, null); + this.expectVariable = true; + this.indentation = 0; + this.userIndentationDelta = 0; + }; + + State.prototype.userIndent = function(indentation) { + this.userIndentationDelta = indentation > 0 ? (indentation / config.indentUnit - this.indentation) : 0; + }; + + var next = function(stream, context, state) { + var token = new Token(null, context, false); + var aChar = stream.next(); + + if (aChar === '"') { + token = nextComment(stream, new Context(nextComment, context)); + + } else if (aChar === '\'') { + token = nextString(stream, new Context(nextString, context)); + + } else if (aChar === '#') { + if (stream.peek() === '\'') { + stream.next(); + token = nextSymbol(stream, new Context(nextSymbol, context)); + } else { + if (stream.eatWhile(/[^\s.{}\[\]()]/)) + token.name = 'string-2'; + else + token.name = 'meta'; + } + + } else if (aChar === '$') { + if (stream.next() === '<') { + stream.eatWhile(/[^\s>]/); + stream.next(); + } + token.name = 'string-2'; + + } else if (aChar === '|' && state.expectVariable) { + token.context = new Context(nextTemporaries, context); + + } else if (/[\[\]{}()]/.test(aChar)) { + token.name = 'bracket'; + token.eos = /[\[{(]/.test(aChar); + + if (aChar === '[') { + state.indentation++; + } else if (aChar === ']') { + state.indentation = Math.max(0, state.indentation - 1); + } + + } else if (specialChars.test(aChar)) { + stream.eatWhile(specialChars); + token.name = 'operator'; + token.eos = aChar !== ';'; // ; cascaded message expression + + } else if (/\d/.test(aChar)) { + stream.eatWhile(/[\w\d]/); + token.name = 'number'; + + } else if (/[\w_]/.test(aChar)) { + stream.eatWhile(/[\w\d_]/); + token.name = state.expectVariable ? (keywords.test(stream.current()) ? 'keyword' : 'variable') : null; + + } else { + token.eos = state.expectVariable; + } + + return token; + }; + + var nextComment = function(stream, context) { + stream.eatWhile(/[^"]/); + return new Token('comment', stream.eat('"') ? context.parent : context, true); + }; + + var nextString = function(stream, context) { + stream.eatWhile(/[^']/); + return new Token('string', stream.eat('\'') ? context.parent : context, false); + }; + + var nextSymbol = function(stream, context) { + stream.eatWhile(/[^']/); + return new Token('string-2', stream.eat('\'') ? context.parent : context, false); + }; + + var nextTemporaries = function(stream, context) { + var token = new Token(null, context, false); + var aChar = stream.next(); + + if (aChar === '|') { + token.context = context.parent; + token.eos = true; + + } else { + stream.eatWhile(/[^|]/); + token.name = 'variable'; + } + + return token; + }; + + return { + startState: function() { + return new State; + }, + + token: function(stream, state) { + state.userIndent(stream.indentation()); + + if (stream.eatSpace()) { + return null; + } + + var token = state.context.next(stream, state.context, state); + state.context = token.context; + state.expectVariable = token.eos; + + return token.name; + }, + + blankLine: function(state) { + state.userIndent(0); + }, + + indent: function(state, textAfter) { + var i = state.context.next === next && textAfter && textAfter.charAt(0) === ']' ? -1 : state.userIndentationDelta; + return (state.indentation + i) * config.indentUnit; + }, + + electricChars: ']' + }; + +}); + +CodeMirror.defineMIME('text/x-stsrc', {name: 'smalltalk'}); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smarty/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smarty/index.html new file mode 100644 index 0000000..8d88c9a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smarty/index.html @@ -0,0 +1,136 @@ + + +CodeMirror: Smarty mode + + + + + + + + + +
                              +

                              Smarty mode

                              +
                              + + + +
                              + +

                              Smarty 2, custom delimiters

                              +
                              + + + +
                              + +

                              Smarty 3

                              + + + + + + +

                              A plain text/Smarty version 2 or 3 mode, which allows for custom delimiter tags.

                              + +

                              MIME types defined: text/x-smarty

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smarty/smarty.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smarty/smarty.js new file mode 100644 index 0000000..bb05324 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smarty/smarty.js @@ -0,0 +1,221 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/** + * Smarty 2 and 3 mode. + */ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("smarty", function(config) { + "use strict"; + + // our default settings; check to see if they're overridden + var settings = { + rightDelimiter: '}', + leftDelimiter: '{', + smartyVersion: 2 // for backward compatibility + }; + if (config.hasOwnProperty("leftDelimiter")) { + settings.leftDelimiter = config.leftDelimiter; + } + if (config.hasOwnProperty("rightDelimiter")) { + settings.rightDelimiter = config.rightDelimiter; + } + if (config.hasOwnProperty("smartyVersion") && config.smartyVersion === 3) { + settings.smartyVersion = 3; + } + + var keyFunctions = ["debug", "extends", "function", "include", "literal"]; + var last; + var regs = { + operatorChars: /[+\-*&%=<>!?]/, + validIdentifier: /[a-zA-Z0-9_]/, + stringChar: /['"]/ + }; + + var helpers = { + cont: function(style, lastType) { + last = lastType; + return style; + }, + chain: function(stream, state, parser) { + state.tokenize = parser; + return parser(stream, state); + } + }; + + + // our various parsers + var parsers = { + + // the main tokenizer + tokenizer: function(stream, state) { + if (stream.match(settings.leftDelimiter, true)) { + if (stream.eat("*")) { + return helpers.chain(stream, state, parsers.inBlock("comment", "*" + settings.rightDelimiter)); + } else { + // Smarty 3 allows { and } surrounded by whitespace to NOT slip into Smarty mode + state.depth++; + var isEol = stream.eol(); + var isFollowedByWhitespace = /\s/.test(stream.peek()); + if (settings.smartyVersion === 3 && settings.leftDelimiter === "{" && (isEol || isFollowedByWhitespace)) { + state.depth--; + return null; + } else { + state.tokenize = parsers.smarty; + last = "startTag"; + return "tag"; + } + } + } else { + stream.next(); + return null; + } + }, + + // parsing Smarty content + smarty: function(stream, state) { + if (stream.match(settings.rightDelimiter, true)) { + if (settings.smartyVersion === 3) { + state.depth--; + if (state.depth <= 0) { + state.tokenize = parsers.tokenizer; + } + } else { + state.tokenize = parsers.tokenizer; + } + return helpers.cont("tag", null); + } + + if (stream.match(settings.leftDelimiter, true)) { + state.depth++; + return helpers.cont("tag", "startTag"); + } + + var ch = stream.next(); + if (ch == "$") { + stream.eatWhile(regs.validIdentifier); + return helpers.cont("variable-2", "variable"); + } else if (ch == "|") { + return helpers.cont("operator", "pipe"); + } else if (ch == ".") { + return helpers.cont("operator", "property"); + } else if (regs.stringChar.test(ch)) { + state.tokenize = parsers.inAttribute(ch); + return helpers.cont("string", "string"); + } else if (regs.operatorChars.test(ch)) { + stream.eatWhile(regs.operatorChars); + return helpers.cont("operator", "operator"); + } else if (ch == "[" || ch == "]") { + return helpers.cont("bracket", "bracket"); + } else if (ch == "(" || ch == ")") { + return helpers.cont("bracket", "operator"); + } else if (/\d/.test(ch)) { + stream.eatWhile(/\d/); + return helpers.cont("number", "number"); + } else { + + if (state.last == "variable") { + if (ch == "@") { + stream.eatWhile(regs.validIdentifier); + return helpers.cont("property", "property"); + } else if (ch == "|") { + stream.eatWhile(regs.validIdentifier); + return helpers.cont("qualifier", "modifier"); + } + } else if (state.last == "pipe") { + stream.eatWhile(regs.validIdentifier); + return helpers.cont("qualifier", "modifier"); + } else if (state.last == "whitespace") { + stream.eatWhile(regs.validIdentifier); + return helpers.cont("attribute", "modifier"); + } if (state.last == "property") { + stream.eatWhile(regs.validIdentifier); + return helpers.cont("property", null); + } else if (/\s/.test(ch)) { + last = "whitespace"; + return null; + } + + var str = ""; + if (ch != "/") { + str += ch; + } + var c = null; + while (c = stream.eat(regs.validIdentifier)) { + str += c; + } + for (var i=0, j=keyFunctions.length; i + +CodeMirror: Smarty mixed mode + + + + + + + + + + + + + +
                              +

                              Smarty mixed mode

                              +
                              + + + +

                              The Smarty mixed mode depends on the Smarty and HTML mixed modes. HTML + mixed mode itself depends on XML, JavaScript, and CSS modes.

                              + +

                              It takes the same options, as Smarty and HTML mixed modes.

                              + +

                              MIME types defined: text/x-smarty.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smartymixed/smartymixed.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smartymixed/smartymixed.js new file mode 100644 index 0000000..4fc7ca4 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/smartymixed/smartymixed.js @@ -0,0 +1,197 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/** +* @file smartymixed.js +* @brief Smarty Mixed Codemirror mode (Smarty + Mixed HTML) +* @author Ruslan Osmanov +* @version 3.0 +* @date 05.07.2013 +*/ + +// Warning: Don't base other modes on this one. This here is a +// terrible way to write a mixed mode. + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../smarty/smarty")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../smarty/smarty"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("smartymixed", function(config) { + var htmlMixedMode = CodeMirror.getMode(config, "htmlmixed"); + var smartyMode = CodeMirror.getMode(config, "smarty"); + + var settings = { + rightDelimiter: '}', + leftDelimiter: '{' + }; + + if (config.hasOwnProperty("leftDelimiter")) { + settings.leftDelimiter = config.leftDelimiter; + } + if (config.hasOwnProperty("rightDelimiter")) { + settings.rightDelimiter = config.rightDelimiter; + } + + function reEsc(str) { return str.replace(/[^\s\w]/g, "\\$&"); } + + var reLeft = reEsc(settings.leftDelimiter), reRight = reEsc(settings.rightDelimiter); + var regs = { + smartyComment: new RegExp("^" + reRight + "\\*"), + literalOpen: new RegExp(reLeft + "literal" + reRight), + literalClose: new RegExp(reLeft + "\/literal" + reRight), + hasLeftDelimeter: new RegExp(".*" + reLeft), + htmlHasLeftDelimeter: new RegExp("[^<>]*" + reLeft) + }; + + var helpers = { + chain: function(stream, state, parser) { + state.tokenize = parser; + return parser(stream, state); + }, + + cleanChain: function(stream, state, parser) { + state.tokenize = null; + state.localState = null; + state.localMode = null; + return (typeof parser == "string") ? (parser ? parser : null) : parser(stream, state); + }, + + maybeBackup: function(stream, pat, style) { + var cur = stream.current(); + var close = cur.search(pat), + m; + if (close > - 1) stream.backUp(cur.length - close); + else if (m = cur.match(/<\/?$/)) { + stream.backUp(cur.length); + if (!stream.match(pat, false)) stream.match(cur[0]); + } + return style; + } + }; + + var parsers = { + html: function(stream, state) { + var htmlTagName = state.htmlMixedState.htmlState.context && state.htmlMixedState.htmlState.context.tagName + ? state.htmlMixedState.htmlState.context.tagName + : null; + + if (!state.inLiteral && stream.match(regs.htmlHasLeftDelimeter, false) && htmlTagName === null) { + state.tokenize = parsers.smarty; + state.localMode = smartyMode; + state.localState = smartyMode.startState(htmlMixedMode.indent(state.htmlMixedState, "")); + return helpers.maybeBackup(stream, settings.leftDelimiter, smartyMode.token(stream, state.localState)); + } else if (!state.inLiteral && stream.match(settings.leftDelimiter, false)) { + state.tokenize = parsers.smarty; + state.localMode = smartyMode; + state.localState = smartyMode.startState(htmlMixedMode.indent(state.htmlMixedState, "")); + return helpers.maybeBackup(stream, settings.leftDelimiter, smartyMode.token(stream, state.localState)); + } + return htmlMixedMode.token(stream, state.htmlMixedState); + }, + + smarty: function(stream, state) { + if (stream.match(settings.leftDelimiter, false)) { + if (stream.match(regs.smartyComment, false)) { + return helpers.chain(stream, state, parsers.inBlock("comment", "*" + settings.rightDelimiter)); + } + } else if (stream.match(settings.rightDelimiter, false)) { + stream.eat(settings.rightDelimiter); + state.tokenize = parsers.html; + state.localMode = htmlMixedMode; + state.localState = state.htmlMixedState; + return "tag"; + } + + return helpers.maybeBackup(stream, settings.rightDelimiter, smartyMode.token(stream, state.localState)); + }, + + inBlock: function(style, terminator) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.match(terminator)) { + helpers.cleanChain(stream, state, ""); + break; + } + stream.next(); + } + return style; + }; + } + }; + + return { + startState: function() { + var state = htmlMixedMode.startState(); + return { + token: parsers.html, + localMode: null, + localState: null, + htmlMixedState: state, + tokenize: null, + inLiteral: false + }; + }, + + copyState: function(state) { + var local = null, tok = (state.tokenize || state.token); + if (state.localState) { + local = CodeMirror.copyState((tok != parsers.html ? smartyMode : htmlMixedMode), state.localState); + } + return { + token: state.token, + tokenize: state.tokenize, + localMode: state.localMode, + localState: local, + htmlMixedState: CodeMirror.copyState(htmlMixedMode, state.htmlMixedState), + inLiteral: state.inLiteral + }; + }, + + token: function(stream, state) { + if (stream.match(settings.leftDelimiter, false)) { + if (!state.inLiteral && stream.match(regs.literalOpen, true)) { + state.inLiteral = true; + return "keyword"; + } else if (state.inLiteral && stream.match(regs.literalClose, true)) { + state.inLiteral = false; + return "keyword"; + } + } + if (state.inLiteral && state.localState != state.htmlMixedState) { + state.tokenize = parsers.html; + state.localMode = htmlMixedMode; + state.localState = state.htmlMixedState; + } + + var style = (state.tokenize || state.token)(stream, state); + return style; + }, + + indent: function(state, textAfter) { + if (state.localMode == smartyMode + || (state.inLiteral && !state.localMode) + || regs.hasLeftDelimeter.test(textAfter)) { + return CodeMirror.Pass; + } + return htmlMixedMode.indent(state.htmlMixedState, textAfter); + }, + + innerMode: function(state) { + return { + state: state.localState || state.htmlMixedState, + mode: state.localMode || htmlMixedMode + }; + } + }; +}, "htmlmixed", "smarty"); + +CodeMirror.defineMIME("text/x-smarty", "smartymixed"); +// vim: et ts=2 sts=2 sw=2 + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/solr/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/solr/index.html new file mode 100644 index 0000000..4b18c25 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/solr/index.html @@ -0,0 +1,57 @@ + + +CodeMirror: Solr mode + + + + + + + + + +
                              +

                              Solr mode

                              + +
                              + +
                              + + + +

                              MIME types defined: text/x-solr.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/solr/solr.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/solr/solr.js new file mode 100644 index 0000000..f7f7087 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/solr/solr.js @@ -0,0 +1,104 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("solr", function() { + "use strict"; + + var isStringChar = /[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\^\"\\]/; + var isOperatorChar = /[\|\!\+\-\*\?\~\^\&]/; + var isOperatorString = /^(OR|AND|NOT|TO)$/i; + + function isNumber(word) { + return parseFloat(word, 10).toString() === word; + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) break; + escaped = !escaped && next == "\\"; + } + + if (!escaped) state.tokenize = tokenBase; + return "string"; + }; + } + + function tokenOperator(operator) { + return function(stream, state) { + var style = "operator"; + if (operator == "+") + style += " positive"; + else if (operator == "-") + style += " negative"; + else if (operator == "|") + stream.eat(/\|/); + else if (operator == "&") + stream.eat(/\&/); + else if (operator == "^") + style += " boost"; + + state.tokenize = tokenBase; + return style; + }; + } + + function tokenWord(ch) { + return function(stream, state) { + var word = ch; + while ((ch = stream.peek()) && ch.match(isStringChar) != null) { + word += stream.next(); + } + + state.tokenize = tokenBase; + if (isOperatorString.test(word)) + return "operator"; + else if (isNumber(word)) + return "number"; + else if (stream.peek() == ":") + return "field"; + else + return "string"; + }; + } + + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"') + state.tokenize = tokenString(ch); + else if (isOperatorChar.test(ch)) + state.tokenize = tokenOperator(ch); + else if (isStringChar.test(ch)) + state.tokenize = tokenWord(ch); + + return (state.tokenize != tokenBase) ? state.tokenize(stream, state) : null; + } + + return { + startState: function() { + return { + tokenize: tokenBase + }; + }, + + token: function(stream, state) { + if (stream.eatSpace()) return null; + return state.tokenize(stream, state); + } + }; +}); + +CodeMirror.defineMIME("text/x-solr", "solr"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/soy/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/soy/index.html new file mode 100644 index 0000000..f0216f0 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/soy/index.html @@ -0,0 +1,68 @@ + + +CodeMirror: Soy (Closure Template) mode + + + + + + + + + + + + + + +
                              +

                              Soy (Closure Template) mode

                              +
                              + + + +

                              A mode for Closure Templates (Soy).

                              +

                              MIME type defined: text/x-soy.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/soy/soy.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/soy/soy.js new file mode 100644 index 0000000..7e81e8d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/soy/soy.js @@ -0,0 +1,198 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../htmlmixed/htmlmixed"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + var indentingTags = ["template", "literal", "msg", "fallbackmsg", "let", "if", "elseif", + "else", "switch", "case", "default", "foreach", "ifempty", "for", + "call", "param", "deltemplate", "delcall", "log"]; + + CodeMirror.defineMode("soy", function(config) { + var textMode = CodeMirror.getMode(config, "text/plain"); + var modes = { + html: CodeMirror.getMode(config, {name: "text/html", multilineTagIndentFactor: 2, multilineTagIndentPastTag: false}), + attributes: textMode, + text: textMode, + uri: textMode, + css: CodeMirror.getMode(config, "text/css"), + js: CodeMirror.getMode(config, {name: "text/javascript", statementIndent: 2 * config.indentUnit}) + }; + + function last(array) { + return array[array.length - 1]; + } + + function tokenUntil(stream, state, untilRegExp) { + var oldString = stream.string; + var match = untilRegExp.exec(oldString.substr(stream.pos)); + if (match) { + // We don't use backUp because it backs up just the position, not the state. + // This uses an undocumented API. + stream.string = oldString.substr(0, stream.pos + match.index); + } + var result = stream.hideFirstChars(state.indent, function() { + return state.localMode.token(stream, state.localState); + }); + stream.string = oldString; + return result; + } + + return { + startState: function() { + return { + kind: [], + kindTag: [], + soyState: [], + indent: 0, + localMode: modes.html, + localState: CodeMirror.startState(modes.html) + }; + }, + + copyState: function(state) { + return { + tag: state.tag, // Last seen Soy tag. + kind: state.kind.concat([]), // Values of kind="" attributes. + kindTag: state.kindTag.concat([]), // Opened tags with kind="" attributes. + soyState: state.soyState.concat([]), + indent: state.indent, // Indentation of the following line. + localMode: state.localMode, + localState: CodeMirror.copyState(state.localMode, state.localState) + }; + }, + + token: function(stream, state) { + var match; + + switch (last(state.soyState)) { + case "comment": + if (stream.match(/^.*?\*\//)) { + state.soyState.pop(); + } else { + stream.skipToEnd(); + } + return "comment"; + + case "variable": + if (stream.match(/^}/)) { + state.indent -= 2 * config.indentUnit; + state.soyState.pop(); + return "variable-2"; + } + stream.next(); + return null; + + case "tag": + if (stream.match(/^\/?}/)) { + if (state.tag == "/template" || state.tag == "/deltemplate") state.indent = 0; + else state.indent -= (stream.current() == "/}" || indentingTags.indexOf(state.tag) == -1 ? 2 : 1) * config.indentUnit; + state.soyState.pop(); + return "keyword"; + } else if (stream.match(/^(\w+)(?==)/)) { + if (stream.current() == "kind" && (match = stream.match(/^="([^"]+)/, false))) { + var kind = match[1]; + state.kind.push(kind); + state.kindTag.push(state.tag); + state.localMode = modes[kind] || modes.html; + state.localState = CodeMirror.startState(state.localMode); + } + return "attribute"; + } else if (stream.match(/^"/)) { + state.soyState.push("string"); + return "string"; + } + stream.next(); + return null; + + case "literal": + if (stream.match(/^(?=\{\/literal})/)) { + state.indent -= config.indentUnit; + state.soyState.pop(); + return this.token(stream, state); + } + return tokenUntil(stream, state, /\{\/literal}/); + + case "string": + if (stream.match(/^.*?"/)) { + state.soyState.pop(); + } else { + stream.skipToEnd(); + } + return "string"; + } + + if (stream.match(/^\/\*/)) { + state.soyState.push("comment"); + return "comment"; + } else if (stream.match(stream.sol() ? /^\s*\/\/.*/ : /^\s+\/\/.*/)) { + return "comment"; + } else if (stream.match(/^\{\$\w*/)) { + state.indent += 2 * config.indentUnit; + state.soyState.push("variable"); + return "variable-2"; + } else if (stream.match(/^\{literal}/)) { + state.indent += config.indentUnit; + state.soyState.push("literal"); + return "keyword"; + } else if (match = stream.match(/^\{([\/@\\]?\w*)/)) { + if (match[1] != "/switch") + state.indent += (/^(\/|(else|elseif|case|default)$)/.test(match[1]) && state.tag != "switch" ? 1 : 2) * config.indentUnit; + state.tag = match[1]; + if (state.tag == "/" + last(state.kindTag)) { + // We found the tag that opened the current kind="". + state.kind.pop(); + state.kindTag.pop(); + state.localMode = modes[last(state.kind)] || modes.html; + state.localState = CodeMirror.startState(state.localMode); + } + state.soyState.push("tag"); + return "keyword"; + } + + return tokenUntil(stream, state, /\{|\s+\/\/|\/\*/); + }, + + indent: function(state, textAfter) { + var indent = state.indent, top = last(state.soyState); + if (top == "comment") return CodeMirror.Pass; + + if (top == "literal") { + if (/^\{\/literal}/.test(textAfter)) indent -= config.indentUnit; + } else { + if (/^\s*\{\/(template|deltemplate)\b/.test(textAfter)) return 0; + if (/^\{(\/|(fallbackmsg|elseif|else|ifempty)\b)/.test(textAfter)) indent -= config.indentUnit; + if (state.tag != "switch" && /^\{(case|default)\b/.test(textAfter)) indent -= config.indentUnit; + if (/^\{\/switch\b/.test(textAfter)) indent -= config.indentUnit; + } + if (indent && state.localMode.indent) + indent += state.localMode.indent(state.localState, textAfter); + return indent; + }, + + innerMode: function(state) { + if (state.soyState.length && last(state.soyState) != "literal") return null; + else return {state: state.localState, mode: state.localMode}; + }, + + electricInput: /^\s*\{(\/|\/template|\/deltemplate|\/switch|fallbackmsg|elseif|else|case|default|ifempty|\/literal\})$/, + lineComment: "//", + blockCommentStart: "/*", + blockCommentEnd: "*/", + blockCommentContinue: " * ", + fold: "indent" + }; + }, "htmlmixed"); + + CodeMirror.registerHelper("hintWords", "soy", indentingTags.concat( + ["delpackage", "namespace", "alias", "print", "css", "debugger"])); + + CodeMirror.defineMIME("text/x-soy", "soy"); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sparql/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sparql/index.html new file mode 100644 index 0000000..84ef4d3 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sparql/index.html @@ -0,0 +1,61 @@ + + +CodeMirror: SPARQL mode + + + + + + + + + + +
                              +

                              SPARQL mode

                              +
                              + + +

                              MIME types defined: application/sparql-query.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sparql/sparql.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sparql/sparql.js new file mode 100644 index 0000000..bbf8a76 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sparql/sparql.js @@ -0,0 +1,174 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("sparql", function(config) { + var indentUnit = config.indentUnit; + var curPunc; + + function wordRegexp(words) { + return new RegExp("^(?:" + words.join("|") + ")$", "i"); + } + var ops = wordRegexp(["str", "lang", "langmatches", "datatype", "bound", "sameterm", "isiri", "isuri", + "iri", "uri", "bnode", "count", "sum", "min", "max", "avg", "sample", + "group_concat", "rand", "abs", "ceil", "floor", "round", "concat", "substr", "strlen", + "replace", "ucase", "lcase", "encode_for_uri", "contains", "strstarts", "strends", + "strbefore", "strafter", "year", "month", "day", "hours", "minutes", "seconds", + "timezone", "tz", "now", "uuid", "struuid", "md5", "sha1", "sha256", "sha384", + "sha512", "coalesce", "if", "strlang", "strdt", "isnumeric", "regex", "exists", + "isblank", "isliteral", "a"]); + var keywords = wordRegexp(["base", "prefix", "select", "distinct", "reduced", "construct", "describe", + "ask", "from", "named", "where", "order", "limit", "offset", "filter", "optional", + "graph", "by", "asc", "desc", "as", "having", "undef", "values", "group", + "minus", "in", "not", "service", "silent", "using", "insert", "delete", "union", + "true", "false", "with", + "data", "copy", "to", "move", "add", "create", "drop", "clear", "load"]); + var operatorChars = /[*+\-<>=&|\^\/!\?]/; + + function tokenBase(stream, state) { + var ch = stream.next(); + curPunc = null; + if (ch == "$" || ch == "?") { + if(ch == "?" && stream.match(/\s/, false)){ + return "operator"; + } + stream.match(/^[\w\d]*/); + return "variable-2"; + } + else if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) { + stream.match(/^[^\s\u00a0>]*>?/); + return "atom"; + } + else if (ch == "\"" || ch == "'") { + state.tokenize = tokenLiteral(ch); + return state.tokenize(stream, state); + } + else if (/[{}\(\),\.;\[\]]/.test(ch)) { + curPunc = ch; + return "bracket"; + } + else if (ch == "#") { + stream.skipToEnd(); + return "comment"; + } + else if (operatorChars.test(ch)) { + stream.eatWhile(operatorChars); + return "operator"; + } + else if (ch == ":") { + stream.eatWhile(/[\w\d\._\-]/); + return "atom"; + } + else if (ch == "@") { + stream.eatWhile(/[a-z\d\-]/i); + return "meta"; + } + else { + stream.eatWhile(/[_\w\d]/); + if (stream.eat(":")) { + stream.eatWhile(/[\w\d_\-]/); + return "atom"; + } + var word = stream.current(); + if (ops.test(word)) + return "builtin"; + else if (keywords.test(word)) + return "keyword"; + else + return "variable"; + } + } + + function tokenLiteral(quote) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && !escaped) { + state.tokenize = tokenBase; + break; + } + escaped = !escaped && ch == "\\"; + } + return "string"; + }; + } + + function pushContext(state, type, col) { + state.context = {prev: state.context, indent: state.indent, col: col, type: type}; + } + function popContext(state) { + state.indent = state.context.indent; + state.context = state.context.prev; + } + + return { + startState: function() { + return {tokenize: tokenBase, + context: null, + indent: 0, + col: 0}; + }, + + token: function(stream, state) { + if (stream.sol()) { + if (state.context && state.context.align == null) state.context.align = false; + state.indent = stream.indentation(); + } + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + + if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") { + state.context.align = true; + } + + if (curPunc == "(") pushContext(state, ")", stream.column()); + else if (curPunc == "[") pushContext(state, "]", stream.column()); + else if (curPunc == "{") pushContext(state, "}", stream.column()); + else if (/[\]\}\)]/.test(curPunc)) { + while (state.context && state.context.type == "pattern") popContext(state); + if (state.context && curPunc == state.context.type) popContext(state); + } + else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state); + else if (/atom|string|variable/.test(style) && state.context) { + if (/[\}\]]/.test(state.context.type)) + pushContext(state, "pattern", stream.column()); + else if (state.context.type == "pattern" && !state.context.align) { + state.context.align = true; + state.context.col = stream.column(); + } + } + + return style; + }, + + indent: function(state, textAfter) { + var firstChar = textAfter && textAfter.charAt(0); + var context = state.context; + if (/[\]\}]/.test(firstChar)) + while (context && context.type == "pattern") context = context.prev; + + var closing = context && firstChar == context.type; + if (!context) + return 0; + else if (context.type == "pattern") + return context.col; + else if (context.align) + return context.col + (closing ? 0 : 1); + else + return context.indent + (closing ? 0 : indentUnit); + } + }; +}); + +CodeMirror.defineMIME("application/sparql-query", "sparql"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/spreadsheet/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/spreadsheet/index.html new file mode 100644 index 0000000..3b48808 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/spreadsheet/index.html @@ -0,0 +1,42 @@ + + +CodeMirror: Spreadsheet mode + + + + + + + + + + +
                              +

                              Spreadsheet mode

                              +
                              + + + +

                              MIME types defined: text/x-spreadsheet.

                              + +

                              The Spreadsheet Mode

                              +

                              Created by Robert Plummer

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/spreadsheet/spreadsheet.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/spreadsheet/spreadsheet.js new file mode 100644 index 0000000..6fab00f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/spreadsheet/spreadsheet.js @@ -0,0 +1,109 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + CodeMirror.defineMode("spreadsheet", function () { + return { + startState: function () { + return { + stringType: null, + stack: [] + }; + }, + token: function (stream, state) { + if (!stream) return; + + //check for state changes + if (state.stack.length === 0) { + //strings + if ((stream.peek() == '"') || (stream.peek() == "'")) { + state.stringType = stream.peek(); + stream.next(); // Skip quote + state.stack.unshift("string"); + } + } + + //return state + //stack has + switch (state.stack[0]) { + case "string": + while (state.stack[0] === "string" && !stream.eol()) { + if (stream.peek() === state.stringType) { + stream.next(); // Skip quote + state.stack.shift(); // Clear flag + } else if (stream.peek() === "\\") { + stream.next(); + stream.next(); + } else { + stream.match(/^.[^\\\"\']*/); + } + } + return "string"; + + case "characterClass": + while (state.stack[0] === "characterClass" && !stream.eol()) { + if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) + state.stack.shift(); + } + return "operator"; + } + + var peek = stream.peek(); + + //no stack + switch (peek) { + case "[": + stream.next(); + state.stack.unshift("characterClass"); + return "bracket"; + case ":": + stream.next(); + return "operator"; + case "\\": + if (stream.match(/\\[a-z]+/)) return "string-2"; + else return null; + case ".": + case ",": + case ";": + case "*": + case "-": + case "+": + case "^": + case "<": + case "/": + case "=": + stream.next(); + return "atom"; + case "$": + stream.next(); + return "builtin"; + } + + if (stream.match(/\d+/)) { + if (stream.match(/^\w+/)) return "error"; + return "number"; + } else if (stream.match(/^[a-zA-Z_]\w*/)) { + if (stream.match(/(?=[\(.])/, false)) return "keyword"; + return "variable-2"; + } else if (["[", "]", "(", ")", "{", "}"].indexOf(peek) != -1) { + stream.next(); + return "bracket"; + } else if (!stream.eatSpace()) { + stream.next(); + } + return null; + } + }; + }); + + CodeMirror.defineMIME("text/x-spreadsheet", "spreadsheet"); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sql/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sql/index.html new file mode 100644 index 0000000..8c6502d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sql/index.html @@ -0,0 +1,84 @@ + + +CodeMirror: SQL Mode for CodeMirror + + + + + + + + + + + + +
                              +

                              SQL Mode for CodeMirror

                              +
                              + +
                              +

                              MIME types defined: + text/x-sql, + text/x-mysql, + text/x-mariadb, + text/x-cassandra, + text/x-plsql, + text/x-mssql, + text/x-hive. +

                              + + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sql/sql.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sql/sql.js new file mode 100644 index 0000000..f2c2384 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/sql/sql.js @@ -0,0 +1,391 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("sql", function(config, parserConfig) { + "use strict"; + + var client = parserConfig.client || {}, + atoms = parserConfig.atoms || {"false": true, "true": true, "null": true}, + builtin = parserConfig.builtin || {}, + keywords = parserConfig.keywords || {}, + operatorChars = parserConfig.operatorChars || /^[*+\-%<>!=&|~^]/, + support = parserConfig.support || {}, + hooks = parserConfig.hooks || {}, + dateSQL = parserConfig.dateSQL || {"date" : true, "time" : true, "timestamp" : true}; + + function tokenBase(stream, state) { + var ch = stream.next(); + + // call hooks from the mime type + if (hooks[ch]) { + var result = hooks[ch](stream, state); + if (result !== false) return result; + } + + if (support.hexNumber == true && + ((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/)) + || (ch == "x" || ch == "X") && stream.match(/^'[0-9a-fA-F]+'/))) { + // hex + // ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html + return "number"; + } else if (support.binaryNumber == true && + (((ch == "b" || ch == "B") && stream.match(/^'[01]+'/)) + || (ch == "0" && stream.match(/^b[01]+/)))) { + // bitstring + // ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html + return "number"; + } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) { + // numbers + // ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html + stream.match(/^[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/); + support.decimallessFloat == true && stream.eat('.'); + return "number"; + } else if (ch == "?" && (stream.eatSpace() || stream.eol() || stream.eat(";"))) { + // placeholders + return "variable-3"; + } else if (ch == "'" || (ch == '"' && support.doubleQuote)) { + // strings + // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html + state.tokenize = tokenLiteral(ch); + return state.tokenize(stream, state); + } else if ((((support.nCharCast == true && (ch == "n" || ch == "N")) + || (support.charsetCast == true && ch == "_" && stream.match(/[a-z][a-z0-9]*/i))) + && (stream.peek() == "'" || stream.peek() == '"'))) { + // charset casting: _utf8'str', N'str', n'str' + // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html + return "keyword"; + } else if (/^[\(\),\;\[\]]/.test(ch)) { + // no highlightning + return null; + } else if (support.commentSlashSlash && ch == "/" && stream.eat("/")) { + // 1-line comment + stream.skipToEnd(); + return "comment"; + } else if ((support.commentHash && ch == "#") + || (ch == "-" && stream.eat("-") && (!support.commentSpaceRequired || stream.eat(" ")))) { + // 1-line comments + // ref: https://kb.askmonty.org/en/comment-syntax/ + stream.skipToEnd(); + return "comment"; + } else if (ch == "/" && stream.eat("*")) { + // multi-line comments + // ref: https://kb.askmonty.org/en/comment-syntax/ + state.tokenize = tokenComment; + return state.tokenize(stream, state); + } else if (ch == ".") { + // .1 for 0.1 + if (support.zerolessFloat == true && stream.match(/^(?:\d+(?:e[+-]?\d+)?)/i)) { + return "number"; + } + // .table_name (ODBC) + // // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html + if (support.ODBCdotTable == true && stream.match(/^[a-zA-Z_]+/)) { + return "variable-2"; + } + } else if (operatorChars.test(ch)) { + // operators + stream.eatWhile(operatorChars); + return null; + } else if (ch == '{' && + (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/))) { + // dates (weird ODBC syntax) + // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html + return "number"; + } else { + stream.eatWhile(/^[_\w\d]/); + var word = stream.current().toLowerCase(); + // dates (standard SQL syntax) + // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html + if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+"[^"]*"/))) + return "number"; + if (atoms.hasOwnProperty(word)) return "atom"; + if (builtin.hasOwnProperty(word)) return "builtin"; + if (keywords.hasOwnProperty(word)) return "keyword"; + if (client.hasOwnProperty(word)) return "string-2"; + return null; + } + } + + // 'string', with char specified in quote escaped by '\' + function tokenLiteral(quote) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && !escaped) { + state.tokenize = tokenBase; + break; + } + escaped = !escaped && ch == "\\"; + } + return "string"; + }; + } + function tokenComment(stream, state) { + while (true) { + if (stream.skipTo("*")) { + stream.next(); + if (stream.eat("/")) { + state.tokenize = tokenBase; + break; + } + } else { + stream.skipToEnd(); + break; + } + } + return "comment"; + } + + function pushContext(stream, state, type) { + state.context = { + prev: state.context, + indent: stream.indentation(), + col: stream.column(), + type: type + }; + } + + function popContext(state) { + state.indent = state.context.indent; + state.context = state.context.prev; + } + + return { + startState: function() { + return {tokenize: tokenBase, context: null}; + }, + + token: function(stream, state) { + if (stream.sol()) { + if (state.context && state.context.align == null) + state.context.align = false; + } + if (stream.eatSpace()) return null; + + var style = state.tokenize(stream, state); + if (style == "comment") return style; + + if (state.context && state.context.align == null) + state.context.align = true; + + var tok = stream.current(); + if (tok == "(") + pushContext(stream, state, ")"); + else if (tok == "[") + pushContext(stream, state, "]"); + else if (state.context && state.context.type == tok) + popContext(state); + return style; + }, + + indent: function(state, textAfter) { + var cx = state.context; + if (!cx) return 0; + var closing = textAfter.charAt(0) == cx.type; + if (cx.align) return cx.col + (closing ? 0 : 1); + else return cx.indent + (closing ? 0 : config.indentUnit); + }, + + blockCommentStart: "/*", + blockCommentEnd: "*/", + lineComment: support.commentSlashSlash ? "//" : support.commentHash ? "#" : null + }; +}); + +(function() { + "use strict"; + + // `identifier` + function hookIdentifier(stream) { + // MySQL/MariaDB identifiers + // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html + var ch; + while ((ch = stream.next()) != null) { + if (ch == "`" && !stream.eat("`")) return "variable-2"; + } + stream.backUp(stream.current().length - 1); + return stream.eatWhile(/\w/) ? "variable-2" : null; + } + + // variable token + function hookVar(stream) { + // variables + // @@prefix.varName @varName + // varName can be quoted with ` or ' or " + // ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html + if (stream.eat("@")) { + stream.match(/^session\./); + stream.match(/^local\./); + stream.match(/^global\./); + } + + if (stream.eat("'")) { + stream.match(/^.*'/); + return "variable-2"; + } else if (stream.eat('"')) { + stream.match(/^.*"/); + return "variable-2"; + } else if (stream.eat("`")) { + stream.match(/^.*`/); + return "variable-2"; + } else if (stream.match(/^[0-9a-zA-Z$\.\_]+/)) { + return "variable-2"; + } + return null; + }; + + // short client keyword token + function hookClient(stream) { + // \N means NULL + // ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html + if (stream.eat("N")) { + return "atom"; + } + // \g, etc + // ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html + return stream.match(/^[a-zA-Z.#!?]/) ? "variable-2" : null; + } + + // these keywords are used by all SQL dialects (however, a mode can still overwrite it) + var sqlKeywords = "alter and as asc between by count create delete desc distinct drop from having in insert into is join like not on or order select set table union update values where "; + + // turn a space-separated list into an array + function set(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + // A generic SQL Mode. It's not a standard, it just try to support what is generally supported + CodeMirror.defineMIME("text/x-sql", { + name: "sql", + keywords: set(sqlKeywords + "begin"), + builtin: set("bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric"), + atoms: set("false true null unknown"), + operatorChars: /^[*+\-%<>!=]/, + dateSQL: set("date time timestamp"), + support: set("ODBCdotTable doubleQuote binaryNumber hexNumber") + }); + + CodeMirror.defineMIME("text/x-mssql", { + name: "sql", + client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"), + keywords: set(sqlKeywords + "begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered"), + builtin: set("bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table "), + atoms: set("false true null unknown"), + operatorChars: /^[*+\-%<>!=]/, + dateSQL: set("date datetimeoffset datetime2 smalldatetime datetime time"), + hooks: { + "@": hookVar + } + }); + + CodeMirror.defineMIME("text/x-mysql", { + name: "sql", + client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"), + keywords: set(sqlKeywords + "accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group groupby_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"), + builtin: set("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"), + atoms: set("false true null unknown"), + operatorChars: /^[*+\-%<>!=&|^]/, + dateSQL: set("date time timestamp"), + support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"), + hooks: { + "@": hookVar, + "`": hookIdentifier, + "\\": hookClient + } + }); + + CodeMirror.defineMIME("text/x-mariadb", { + name: "sql", + client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"), + keywords: set(sqlKeywords + "accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"), + builtin: set("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"), + atoms: set("false true null unknown"), + operatorChars: /^[*+\-%<>!=&|^]/, + dateSQL: set("date time timestamp"), + support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"), + hooks: { + "@": hookVar, + "`": hookIdentifier, + "\\": hookClient + } + }); + + // the query language used by Apache Cassandra is called CQL, but this mime type + // is called Cassandra to avoid confusion with Contextual Query Language + CodeMirror.defineMIME("text/x-cassandra", { + name: "sql", + client: { }, + keywords: set("use select from using consistency where limit first reversed first and in insert into values using consistency ttl update set delete truncate begin batch apply create keyspace with columnfamily primary key index on drop alter type add any one quorum all local_quorum each_quorum"), + builtin: set("ascii bigint blob boolean counter decimal double float int text timestamp uuid varchar varint"), + atoms: set("false true"), + operatorChars: /^[<>=]/, + dateSQL: { }, + support: set("commentSlashSlash decimallessFloat"), + hooks: { } + }); + + // this is based on Peter Raganitsch's 'plsql' mode + CodeMirror.defineMIME("text/x-plsql", { + name: "sql", + client: set("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"), + keywords: set("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"), + builtin: set("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least lenght lenghtb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"), + operatorChars: /^[*+\-%<>!=~]/, + dateSQL: set("date time timestamp"), + support: set("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber") + }); + + // Created to support specific hive keywords + CodeMirror.defineMIME("text/x-hive", { + name: "sql", + keywords: set("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external false fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger true unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with"), + builtin: set("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype"), + atoms: set("false true null unknown"), + operatorChars: /^[*+\-%<>!=]/, + dateSQL: set("date timestamp"), + support: set("ODBCdotTable doubleQuote binaryNumber hexNumber") + }); +}()); + +}); + +/* + How Properties of Mime Types are used by SQL Mode + ================================================= + + keywords: + A list of keywords you want to be highlighted. + builtin: + A list of builtin types you want to be highlighted (if you want types to be of class "builtin" instead of "keyword"). + operatorChars: + All characters that must be handled as operators. + client: + Commands parsed and executed by the client (not the server). + support: + A list of supported syntaxes which are not common, but are supported by more than 1 DBMS. + * ODBCdotTable: .tableName + * zerolessFloat: .1 + * doubleQuote + * nCharCast: N'string' + * charsetCast: _utf8'string' + * commentHash: use # char for comments + * commentSlashSlash: use // for comments + * commentSpaceRequired: require a space after -- for comments + atoms: + Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others: + UNKNOWN, INFINITY, UNDERFLOW, NaN... + dateSQL: + Used for date/time SQL standard syntax, because not all DBMS's support same temporal types. +*/ diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/index.html new file mode 100644 index 0000000..959de34 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/index.html @@ -0,0 +1,110 @@ + + +CodeMirror: sTeX mode + + + + + + + + + +
                              +

                              sTeX mode

                              +
                              + + +

                              MIME types defined: text/x-stex.

                              + +

                              Parsing/Highlighting Tests: normal, verbose.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/stex.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/stex.js new file mode 100644 index 0000000..835ed46 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/stex.js @@ -0,0 +1,251 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/* + * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de) + * Licence: MIT + */ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + CodeMirror.defineMode("stex", function() { + "use strict"; + + function pushCommand(state, command) { + state.cmdState.push(command); + } + + function peekCommand(state) { + if (state.cmdState.length > 0) { + return state.cmdState[state.cmdState.length - 1]; + } else { + return null; + } + } + + function popCommand(state) { + var plug = state.cmdState.pop(); + if (plug) { + plug.closeBracket(); + } + } + + // returns the non-default plugin closest to the end of the list + function getMostPowerful(state) { + var context = state.cmdState; + for (var i = context.length - 1; i >= 0; i--) { + var plug = context[i]; + if (plug.name == "DEFAULT") { + continue; + } + return plug; + } + return { styleIdentifier: function() { return null; } }; + } + + function addPluginPattern(pluginName, cmdStyle, styles) { + return function () { + this.name = pluginName; + this.bracketNo = 0; + this.style = cmdStyle; + this.styles = styles; + this.argument = null; // \begin and \end have arguments that follow. These are stored in the plugin + + this.styleIdentifier = function() { + return this.styles[this.bracketNo - 1] || null; + }; + this.openBracket = function() { + this.bracketNo++; + return "bracket"; + }; + this.closeBracket = function() {}; + }; + } + + var plugins = {}; + + plugins["importmodule"] = addPluginPattern("importmodule", "tag", ["string", "builtin"]); + plugins["documentclass"] = addPluginPattern("documentclass", "tag", ["", "atom"]); + plugins["usepackage"] = addPluginPattern("usepackage", "tag", ["atom"]); + plugins["begin"] = addPluginPattern("begin", "tag", ["atom"]); + plugins["end"] = addPluginPattern("end", "tag", ["atom"]); + + plugins["DEFAULT"] = function () { + this.name = "DEFAULT"; + this.style = "tag"; + + this.styleIdentifier = this.openBracket = this.closeBracket = function() {}; + }; + + function setState(state, f) { + state.f = f; + } + + // called when in a normal (no environment) context + function normal(source, state) { + var plug; + // Do we look like '\command' ? If so, attempt to apply the plugin 'command' + if (source.match(/^\\[a-zA-Z@]+/)) { + var cmdName = source.current().slice(1); + plug = plugins[cmdName] || plugins["DEFAULT"]; + plug = new plug(); + pushCommand(state, plug); + setState(state, beginParams); + return plug.style; + } + + // escape characters + if (source.match(/^\\[$&%#{}_]/)) { + return "tag"; + } + + // white space control characters + if (source.match(/^\\[,;!\/\\]/)) { + return "tag"; + } + + // find if we're starting various math modes + if (source.match("\\[")) { + setState(state, function(source, state){ return inMathMode(source, state, "\\]"); }); + return "keyword"; + } + if (source.match("$$")) { + setState(state, function(source, state){ return inMathMode(source, state, "$$"); }); + return "keyword"; + } + if (source.match("$")) { + setState(state, function(source, state){ return inMathMode(source, state, "$"); }); + return "keyword"; + } + + var ch = source.next(); + if (ch == "%") { + source.skipToEnd(); + return "comment"; + } else if (ch == '}' || ch == ']') { + plug = peekCommand(state); + if (plug) { + plug.closeBracket(ch); + setState(state, beginParams); + } else { + return "error"; + } + return "bracket"; + } else if (ch == '{' || ch == '[') { + plug = plugins["DEFAULT"]; + plug = new plug(); + pushCommand(state, plug); + return "bracket"; + } else if (/\d/.test(ch)) { + source.eatWhile(/[\w.%]/); + return "atom"; + } else { + source.eatWhile(/[\w\-_]/); + plug = getMostPowerful(state); + if (plug.name == 'begin') { + plug.argument = source.current(); + } + return plug.styleIdentifier(); + } + } + + function inMathMode(source, state, endModeSeq) { + if (source.eatSpace()) { + return null; + } + if (source.match(endModeSeq)) { + setState(state, normal); + return "keyword"; + } + if (source.match(/^\\[a-zA-Z@]+/)) { + return "tag"; + } + if (source.match(/^[a-zA-Z]+/)) { + return "variable-2"; + } + // escape characters + if (source.match(/^\\[$&%#{}_]/)) { + return "tag"; + } + // white space control characters + if (source.match(/^\\[,;!\/]/)) { + return "tag"; + } + // special math-mode characters + if (source.match(/^[\^_&]/)) { + return "tag"; + } + // non-special characters + if (source.match(/^[+\-<>|=,\/@!*:;'"`~#?]/)) { + return null; + } + if (source.match(/^(\d+\.\d*|\d*\.\d+|\d+)/)) { + return "number"; + } + var ch = source.next(); + if (ch == "{" || ch == "}" || ch == "[" || ch == "]" || ch == "(" || ch == ")") { + return "bracket"; + } + + if (ch == "%") { + source.skipToEnd(); + return "comment"; + } + return "error"; + } + + function beginParams(source, state) { + var ch = source.peek(), lastPlug; + if (ch == '{' || ch == '[') { + lastPlug = peekCommand(state); + lastPlug.openBracket(ch); + source.eat(ch); + setState(state, normal); + return "bracket"; + } + if (/[ \t\r]/.test(ch)) { + source.eat(ch); + return null; + } + setState(state, normal); + popCommand(state); + + return normal(source, state); + } + + return { + startState: function() { + return { + cmdState: [], + f: normal + }; + }, + copyState: function(s) { + return { + cmdState: s.cmdState.slice(), + f: s.f + }; + }, + token: function(stream, state) { + return state.f(stream, state); + }, + blankLine: function(state) { + state.f = normal; + state.cmdState.length = 0; + }, + lineComment: "%" + }; + }); + + CodeMirror.defineMIME("text/x-stex", "stex"); + CodeMirror.defineMIME("text/x-latex", "stex"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/test.js new file mode 100644 index 0000000..22f027e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/stex/test.js @@ -0,0 +1,123 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({tabSize: 4}, "stex"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + MT("word", + "foo"); + + MT("twoWords", + "foo bar"); + + MT("beginEndDocument", + "[tag \\begin][bracket {][atom document][bracket }]", + "[tag \\end][bracket {][atom document][bracket }]"); + + MT("beginEndEquation", + "[tag \\begin][bracket {][atom equation][bracket }]", + " E=mc^2", + "[tag \\end][bracket {][atom equation][bracket }]"); + + MT("beginModule", + "[tag \\begin][bracket {][atom module][bracket }[[]]]"); + + MT("beginModuleId", + "[tag \\begin][bracket {][atom module][bracket }[[]id=bbt-size[bracket ]]]"); + + MT("importModule", + "[tag \\importmodule][bracket [[][string b-b-t][bracket ]]{][builtin b-b-t][bracket }]"); + + MT("importModulePath", + "[tag \\importmodule][bracket [[][tag \\KWARCslides][bracket {][string dmath/en/cardinality][bracket }]]{][builtin card][bracket }]"); + + MT("psForPDF", + "[tag \\PSforPDF][bracket [[][atom 1][bracket ]]{]#1[bracket }]"); + + MT("comment", + "[comment % foo]"); + + MT("tagComment", + "[tag \\item][comment % bar]"); + + MT("commentTag", + " [comment % \\item]"); + + MT("commentLineBreak", + "[comment %]", + "foo"); + + MT("tagErrorCurly", + "[tag \\begin][error }][bracket {]"); + + MT("tagErrorSquare", + "[tag \\item][error ]]][bracket {]"); + + MT("commentCurly", + "[comment % }]"); + + MT("tagHash", + "the [tag \\#] key"); + + MT("tagNumber", + "a [tag \\$][atom 5] stetson"); + + MT("tagPercent", + "[atom 100][tag \\%] beef"); + + MT("tagAmpersand", + "L [tag \\&] N"); + + MT("tagUnderscore", + "foo[tag \\_]bar"); + + MT("tagBracketOpen", + "[tag \\emph][bracket {][tag \\{][bracket }]"); + + MT("tagBracketClose", + "[tag \\emph][bracket {][tag \\}][bracket }]"); + + MT("tagLetterNumber", + "section [tag \\S][atom 1]"); + + MT("textTagNumber", + "para [tag \\P][atom 2]"); + + MT("thinspace", + "x[tag \\,]y"); + + MT("thickspace", + "x[tag \\;]y"); + + MT("negativeThinspace", + "x[tag \\!]y"); + + MT("periodNotSentence", + "J.\\ L.\\ is"); + + MT("periodSentence", + "X[tag \\@]. The"); + + MT("italicCorrection", + "[bracket {][tag \\em] If[tag \\/][bracket }] I"); + + MT("tagBracket", + "[tag \\newcommand][bracket {][tag \\pop][bracket }]"); + + MT("inlineMathTagFollowedByNumber", + "[keyword $][tag \\pi][number 2][keyword $]"); + + MT("inlineMath", + "[keyword $][number 3][variable-2 x][tag ^][number 2.45]-[tag \\sqrt][bracket {][tag \\$\\alpha][bracket }] = [number 2][keyword $] other text"); + + MT("displayMath", + "More [keyword $$]\t[variable-2 S][tag ^][variable-2 n][tag \\sum] [variable-2 i][keyword $$] other text"); + + MT("mathWithComment", + "[keyword $][variable-2 x] [comment % $]", + "[variable-2 y][keyword $] other text"); + + MT("lineBreakArgument", + "[tag \\\\][bracket [[][atom 1cm][bracket ]]]"); +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tcl/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tcl/index.html new file mode 100644 index 0000000..ce4ad34 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tcl/index.html @@ -0,0 +1,142 @@ + + +CodeMirror: Tcl mode + + + + + + + + + + +
                              +

                              Tcl mode

                              +
                              + + +

                              MIME types defined: text/x-tcl.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tcl/tcl.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tcl/tcl.js new file mode 100644 index 0000000..056accb --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tcl/tcl.js @@ -0,0 +1,147 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +//tcl mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("tcl", function() { + function parseWords(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + var keywords = parseWords("Tcl safe after append array auto_execok auto_import auto_load " + + "auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror " + + "binary break catch cd close concat continue dde eof encoding error " + + "eval exec exit expr fblocked fconfigure fcopy file fileevent filename " + + "filename flush for foreach format gets glob global history http if " + + "incr info interp join lappend lindex linsert list llength load lrange " + + "lreplace lsearch lset lsort memory msgcat namespace open package parray " + + "pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp " + + "registry regsub rename resource return scan seek set socket source split " + + "string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord " + + "tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest " + + "tclvars tell time trace unknown unset update uplevel upvar variable " + + "vwait"); + var functions = parseWords("if elseif else and not or eq ne in ni for foreach while switch"); + var isOperatorChar = /[+\-*&%=<>!?^\/\|]/; + function chain(stream, state, f) { + state.tokenize = f; + return f(stream, state); + } + function tokenBase(stream, state) { + var beforeParams = state.beforeParams; + state.beforeParams = false; + var ch = stream.next(); + if ((ch == '"' || ch == "'") && state.inParams) + return chain(stream, state, tokenString(ch)); + else if (/[\[\]{}\(\),;\.]/.test(ch)) { + if (ch == "(" && beforeParams) state.inParams = true; + else if (ch == ")") state.inParams = false; + return null; + } + else if (/\d/.test(ch)) { + stream.eatWhile(/[\w\.]/); + return "number"; + } + else if (ch == "#" && stream.eat("*")) { + return chain(stream, state, tokenComment); + } + else if (ch == "#" && stream.match(/ *\[ *\[/)) { + return chain(stream, state, tokenUnparsed); + } + else if (ch == "#" && stream.eat("#")) { + stream.skipToEnd(); + return "comment"; + } + else if (ch == '"') { + stream.skipTo(/"/); + return "comment"; + } + else if (ch == "$") { + stream.eatWhile(/[$_a-z0-9A-Z\.{:]/); + stream.eatWhile(/}/); + state.beforeParams = true; + return "builtin"; + } + else if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return "comment"; + } + else { + stream.eatWhile(/[\w\$_{}\xa1-\uffff]/); + var word = stream.current().toLowerCase(); + if (keywords && keywords.propertyIsEnumerable(word)) + return "keyword"; + if (functions && functions.propertyIsEnumerable(word)) { + state.beforeParams = true; + return "keyword"; + } + return null; + } + } + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) { + end = true; + break; + } + escaped = !escaped && next == "\\"; + } + if (end) state.tokenize = tokenBase; + return "string"; + }; + } + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "#" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + function tokenUnparsed(stream, state) { + var maybeEnd = 0, ch; + while (ch = stream.next()) { + if (ch == "#" && maybeEnd == 2) { + state.tokenize = tokenBase; + break; + } + if (ch == "]") + maybeEnd++; + else if (ch != " ") + maybeEnd = 0; + } + return "meta"; + } + return { + startState: function() { + return { + tokenize: tokenBase, + beforeParams: false, + inParams: false + }; + }, + token: function(stream, state) { + if (stream.eatSpace()) return null; + return state.tokenize(stream, state); + } + }; +}); +CodeMirror.defineMIME("text/x-tcl", "tcl"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/index.html new file mode 100644 index 0000000..42b156b --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/index.html @@ -0,0 +1,191 @@ + + +CodeMirror: Textile mode + + + + + + + + + +
                              +

                              Textile mode

                              +
                              + + +

                              MIME types defined: text/x-textile.

                              + +

                              Parsing/Highlighting Tests: normal, verbose.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/test.js new file mode 100644 index 0000000..49cdaf9 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/test.js @@ -0,0 +1,417 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({tabSize: 4}, 'textile'); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + MT('simpleParagraphs', + 'Some text.', + '', + 'Some more text.'); + + /* + * Phrase Modifiers + */ + + MT('em', + 'foo [em _bar_]'); + + MT('emBoogus', + 'code_mirror'); + + MT('strong', + 'foo [strong *bar*]'); + + MT('strongBogus', + '3 * 3 = 9'); + + MT('italic', + 'foo [em __bar__]'); + + MT('italicBogus', + 'code__mirror'); + + MT('bold', + 'foo [strong **bar**]'); + + MT('boldBogus', + '3 ** 3 = 27'); + + MT('simpleLink', + '[link "CodeMirror":http://codemirror.net]'); + + MT('referenceLink', + '[link "CodeMirror":code_mirror]', + 'Normal Text.', + '[link [[code_mirror]]http://codemirror.net]'); + + MT('footCite', + 'foo bar[qualifier [[1]]]'); + + MT('footCiteBogus', + 'foo bar[[1a2]]'); + + MT('special-characters', + 'Registered [tag (r)], ' + + 'Trademark [tag (tm)], and ' + + 'Copyright [tag (c)] 2008'); + + MT('cite', + "A book is [keyword ??The Count of Monte Cristo??] by Dumas."); + + MT('additionAndDeletion', + 'The news networks declared [negative -Al Gore-] ' + + '[positive +George W. Bush+] the winner in Florida.'); + + MT('subAndSup', + 'f(x, n) = log [builtin ~4~] x [builtin ^n^]'); + + MT('spanAndCode', + 'A [quote %span element%] and [atom @code element@]'); + + MT('spanBogus', + 'Percentage 25% is not a span.'); + + MT('citeBogus', + 'Question? is not a citation.'); + + MT('codeBogus', + 'user@example.com'); + + MT('subBogus', + '~username'); + + MT('supBogus', + 'foo ^ bar'); + + MT('deletionBogus', + '3 - 3 = 0'); + + MT('additionBogus', + '3 + 3 = 6'); + + MT('image', + 'An image: [string !http://www.example.com/image.png!]'); + + MT('imageWithAltText', + 'An image: [string !http://www.example.com/image.png (Alt Text)!]'); + + MT('imageWithUrl', + 'An image: [string !http://www.example.com/image.png!:http://www.example.com/]'); + + /* + * Headers + */ + + MT('h1', + '[header&header-1 h1. foo]'); + + MT('h2', + '[header&header-2 h2. foo]'); + + MT('h3', + '[header&header-3 h3. foo]'); + + MT('h4', + '[header&header-4 h4. foo]'); + + MT('h5', + '[header&header-5 h5. foo]'); + + MT('h6', + '[header&header-6 h6. foo]'); + + MT('h7Bogus', + 'h7. foo'); + + MT('multipleHeaders', + '[header&header-1 h1. Heading 1]', + '', + 'Some text.', + '', + '[header&header-2 h2. Heading 2]', + '', + 'More text.'); + + MT('h1inline', + '[header&header-1 h1. foo ][header&header-1&em _bar_][header&header-1 baz]'); + + /* + * Lists + */ + + MT('ul', + 'foo', + 'bar', + '', + '[variable-2 * foo]', + '[variable-2 * bar]'); + + MT('ulNoBlank', + 'foo', + 'bar', + '[variable-2 * foo]', + '[variable-2 * bar]'); + + MT('ol', + 'foo', + 'bar', + '', + '[variable-2 # foo]', + '[variable-2 # bar]'); + + MT('olNoBlank', + 'foo', + 'bar', + '[variable-2 # foo]', + '[variable-2 # bar]'); + + MT('ulFormatting', + '[variable-2 * ][variable-2&em _foo_][variable-2 bar]', + '[variable-2 * ][variable-2&strong *][variable-2&em&strong _foo_]' + + '[variable-2&strong *][variable-2 bar]', + '[variable-2 * ][variable-2&strong *foo*][variable-2 bar]'); + + MT('olFormatting', + '[variable-2 # ][variable-2&em _foo_][variable-2 bar]', + '[variable-2 # ][variable-2&strong *][variable-2&em&strong _foo_]' + + '[variable-2&strong *][variable-2 bar]', + '[variable-2 # ][variable-2&strong *foo*][variable-2 bar]'); + + MT('ulNested', + '[variable-2 * foo]', + '[variable-3 ** bar]', + '[keyword *** bar]', + '[variable-2 **** bar]', + '[variable-3 ** bar]'); + + MT('olNested', + '[variable-2 # foo]', + '[variable-3 ## bar]', + '[keyword ### bar]', + '[variable-2 #### bar]', + '[variable-3 ## bar]'); + + MT('ulNestedWithOl', + '[variable-2 * foo]', + '[variable-3 ## bar]', + '[keyword *** bar]', + '[variable-2 #### bar]', + '[variable-3 ** bar]'); + + MT('olNestedWithUl', + '[variable-2 # foo]', + '[variable-3 ** bar]', + '[keyword ### bar]', + '[variable-2 **** bar]', + '[variable-3 ## bar]'); + + MT('definitionList', + '[number - coffee := Hot ][number&em _and_][number black]', + '', + 'Normal text.'); + + MT('definitionListSpan', + '[number - coffee :=]', + '', + '[number Hot ][number&em _and_][number black =:]', + '', + 'Normal text.'); + + MT('boo', + '[number - dog := woof woof]', + '[number - cat := meow meow]', + '[number - whale :=]', + '[number Whale noises.]', + '', + '[number Also, ][number&em _splashing_][number . =:]'); + + /* + * Attributes + */ + + MT('divWithAttribute', + '[punctuation div][punctuation&attribute (#my-id)][punctuation . foo bar]'); + + MT('divWithAttributeAnd2emRightPadding', + '[punctuation div][punctuation&attribute (#my-id)((][punctuation . foo bar]'); + + MT('divWithClassAndId', + '[punctuation div][punctuation&attribute (my-class#my-id)][punctuation . foo bar]'); + + MT('paragraphWithCss', + 'p[attribute {color:red;}]. foo bar'); + + MT('paragraphNestedStyles', + 'p. [strong *foo ][strong&em _bar_][strong *]'); + + MT('paragraphWithLanguage', + 'p[attribute [[fr]]]. Parlez-vous français?'); + + MT('paragraphLeftAlign', + 'p[attribute <]. Left'); + + MT('paragraphRightAlign', + 'p[attribute >]. Right'); + + MT('paragraphRightAlign', + 'p[attribute =]. Center'); + + MT('paragraphJustified', + 'p[attribute <>]. Justified'); + + MT('paragraphWithLeftIndent1em', + 'p[attribute (]. Left'); + + MT('paragraphWithRightIndent1em', + 'p[attribute )]. Right'); + + MT('paragraphWithLeftIndent2em', + 'p[attribute ((]. Left'); + + MT('paragraphWithRightIndent2em', + 'p[attribute ))]. Right'); + + MT('paragraphWithLeftIndent3emRightIndent2em', + 'p[attribute ((())]. Right'); + + MT('divFormatting', + '[punctuation div. ][punctuation&strong *foo ]' + + '[punctuation&strong&em _bar_][punctuation&strong *]'); + + MT('phraseModifierAttributes', + 'p[attribute (my-class)]. This is a paragraph that has a class and' + + ' this [em _][em&attribute (#special-phrase)][em emphasized phrase_]' + + ' has an id.'); + + MT('linkWithClass', + '[link "(my-class). This is a link with class":http://redcloth.org]'); + + /* + * Layouts + */ + + MT('paragraphLayouts', + 'p. This is one paragraph.', + '', + 'p. This is another.'); + + MT('div', + '[punctuation div. foo bar]'); + + MT('pre', + '[operator pre. Text]'); + + MT('bq.', + '[bracket bq. foo bar]', + '', + 'Normal text.'); + + MT('footnote', + '[variable fn123. foo ][variable&strong *bar*]'); + + /* + * Spanning Layouts + */ + + MT('bq..ThenParagraph', + '[bracket bq.. foo bar]', + '', + '[bracket More quote.]', + 'p. Normal Text'); + + MT('bq..ThenH1', + '[bracket bq.. foo bar]', + '', + '[bracket More quote.]', + '[header&header-1 h1. Header Text]'); + + MT('bc..ThenParagraph', + '[atom bc.. # Some ruby code]', + '[atom obj = {foo: :bar}]', + '[atom puts obj]', + '', + '[atom obj[[:love]] = "*love*"]', + '[atom puts obj.love.upcase]', + '', + 'p. Normal text.'); + + MT('fn1..ThenParagraph', + '[variable fn1.. foo bar]', + '', + '[variable More.]', + 'p. Normal Text'); + + MT('pre..ThenParagraph', + '[operator pre.. foo bar]', + '', + '[operator More.]', + 'p. Normal Text'); + + /* + * Tables + */ + + MT('table', + '[variable-3&operator |_. name |_. age|]', + '[variable-3 |][variable-3&strong *Walter*][variable-3 | 5 |]', + '[variable-3 |Florence| 6 |]', + '', + 'p. Normal text.'); + + MT('tableWithAttributes', + '[variable-3&operator |_. name |_. age|]', + '[variable-3 |][variable-3&attribute /2.][variable-3 Jim |]', + '[variable-3 |][variable-3&attribute \\2{color: red}.][variable-3 Sam |]'); + + /* + * HTML + */ + + MT('html', + '[comment
                              ]', + '[comment
                              ]', + '', + '[header&header-1 h1. Welcome]', + '', + '[variable-2 * Item one]', + '[variable-2 * Item two]', + '', + '[comment Example]', + '', + '[comment
                              ]', + '[comment
                              ]'); + + MT('inlineHtml', + 'I can use HTML directly in my [comment Textile].'); + + /* + * No-Textile + */ + + MT('notextile', + '[string-2 notextile. *No* formatting]'); + + MT('notextileInline', + 'Use [string-2 ==*asterisks*==] for [strong *strong*] text.'); + + MT('notextileWithPre', + '[operator pre. *No* formatting]'); + + MT('notextileWithSpanningPre', + '[operator pre.. *No* formatting]', + '', + '[operator *No* formatting]'); + + /* Only toggling phrases between non-word chars. */ + + MT('phrase-in-word', + 'foo_bar_baz'); + + MT('phrase-non-word', + '[negative -x-] aaa-bbb ccc-ddd [negative -eee-] fff [negative -ggg-]'); + + MT('phrase-lone-dash', + 'foo - bar - baz'); +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/textile.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/textile.js new file mode 100644 index 0000000..a6f7576 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/textile/textile.js @@ -0,0 +1,469 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") { // CommonJS + mod(require("../../lib/codemirror")); + } else if (typeof define == "function" && define.amd) { // AMD + define(["../../lib/codemirror"], mod); + } else { // Plain browser env + mod(CodeMirror); + } +})(function(CodeMirror) { + "use strict"; + + var TOKEN_STYLES = { + addition: "positive", + attributes: "attribute", + bold: "strong", + cite: "keyword", + code: "atom", + definitionList: "number", + deletion: "negative", + div: "punctuation", + em: "em", + footnote: "variable", + footCite: "qualifier", + header: "header", + html: "comment", + image: "string", + italic: "em", + link: "link", + linkDefinition: "link", + list1: "variable-2", + list2: "variable-3", + list3: "keyword", + notextile: "string-2", + pre: "operator", + p: "property", + quote: "bracket", + span: "quote", + specialChar: "tag", + strong: "strong", + sub: "builtin", + sup: "builtin", + table: "variable-3", + tableHeading: "operator" + }; + + function startNewLine(stream, state) { + state.mode = Modes.newLayout; + state.tableHeading = false; + + if (state.layoutType === "definitionList" && state.spanningLayout && + stream.match(RE("definitionListEnd"), false)) + state.spanningLayout = false; + } + + function handlePhraseModifier(stream, state, ch) { + if (ch === "_") { + if (stream.eat("_")) + return togglePhraseModifier(stream, state, "italic", /__/, 2); + else + return togglePhraseModifier(stream, state, "em", /_/, 1); + } + + if (ch === "*") { + if (stream.eat("*")) { + return togglePhraseModifier(stream, state, "bold", /\*\*/, 2); + } + return togglePhraseModifier(stream, state, "strong", /\*/, 1); + } + + if (ch === "[") { + if (stream.match(/\d+\]/)) state.footCite = true; + return tokenStyles(state); + } + + if (ch === "(") { + var spec = stream.match(/^(r|tm|c)\)/); + if (spec) + return tokenStylesWith(state, TOKEN_STYLES.specialChar); + } + + if (ch === "<" && stream.match(/(\w+)[^>]+>[^<]+<\/\1>/)) + return tokenStylesWith(state, TOKEN_STYLES.html); + + if (ch === "?" && stream.eat("?")) + return togglePhraseModifier(stream, state, "cite", /\?\?/, 2); + + if (ch === "=" && stream.eat("=")) + return togglePhraseModifier(stream, state, "notextile", /==/, 2); + + if (ch === "-" && !stream.eat("-")) + return togglePhraseModifier(stream, state, "deletion", /-/, 1); + + if (ch === "+") + return togglePhraseModifier(stream, state, "addition", /\+/, 1); + + if (ch === "~") + return togglePhraseModifier(stream, state, "sub", /~/, 1); + + if (ch === "^") + return togglePhraseModifier(stream, state, "sup", /\^/, 1); + + if (ch === "%") + return togglePhraseModifier(stream, state, "span", /%/, 1); + + if (ch === "@") + return togglePhraseModifier(stream, state, "code", /@/, 1); + + if (ch === "!") { + var type = togglePhraseModifier(stream, state, "image", /(?:\([^\)]+\))?!/, 1); + stream.match(/^:\S+/); // optional Url portion + return type; + } + return tokenStyles(state); + } + + function togglePhraseModifier(stream, state, phraseModifier, closeRE, openSize) { + var charBefore = stream.pos > openSize ? stream.string.charAt(stream.pos - openSize - 1) : null; + var charAfter = stream.peek(); + if (state[phraseModifier]) { + if ((!charAfter || /\W/.test(charAfter)) && charBefore && /\S/.test(charBefore)) { + var type = tokenStyles(state); + state[phraseModifier] = false; + return type; + } + } else if ((!charBefore || /\W/.test(charBefore)) && charAfter && /\S/.test(charAfter) && + stream.match(new RegExp("^.*\\S" + closeRE.source + "(?:\\W|$)"), false)) { + state[phraseModifier] = true; + state.mode = Modes.attributes; + } + return tokenStyles(state); + }; + + function tokenStyles(state) { + var disabled = textileDisabled(state); + if (disabled) return disabled; + + var styles = []; + if (state.layoutType) styles.push(TOKEN_STYLES[state.layoutType]); + + styles = styles.concat(activeStyles( + state, "addition", "bold", "cite", "code", "deletion", "em", "footCite", + "image", "italic", "link", "span", "strong", "sub", "sup", "table", "tableHeading")); + + if (state.layoutType === "header") + styles.push(TOKEN_STYLES.header + "-" + state.header); + + return styles.length ? styles.join(" ") : null; + } + + function textileDisabled(state) { + var type = state.layoutType; + + switch(type) { + case "notextile": + case "code": + case "pre": + return TOKEN_STYLES[type]; + default: + if (state.notextile) + return TOKEN_STYLES.notextile + (type ? (" " + TOKEN_STYLES[type]) : ""); + return null; + } + } + + function tokenStylesWith(state, extraStyles) { + var disabled = textileDisabled(state); + if (disabled) return disabled; + + var type = tokenStyles(state); + if (extraStyles) + return type ? (type + " " + extraStyles) : extraStyles; + else + return type; + } + + function activeStyles(state) { + var styles = []; + for (var i = 1; i < arguments.length; ++i) { + if (state[arguments[i]]) + styles.push(TOKEN_STYLES[arguments[i]]); + } + return styles; + } + + function blankLine(state) { + var spanningLayout = state.spanningLayout, type = state.layoutType; + + for (var key in state) if (state.hasOwnProperty(key)) + delete state[key]; + + state.mode = Modes.newLayout; + if (spanningLayout) { + state.layoutType = type; + state.spanningLayout = true; + } + } + + var REs = { + cache: {}, + single: { + bc: "bc", + bq: "bq", + definitionList: /- [^(?::=)]+:=+/, + definitionListEnd: /.*=:\s*$/, + div: "div", + drawTable: /\|.*\|/, + foot: /fn\d+/, + header: /h[1-6]/, + html: /\s*<(?:\/)?(\w+)(?:[^>]+)?>(?:[^<]+<\/\1>)?/, + link: /[^"]+":\S/, + linkDefinition: /\[[^\s\]]+\]\S+/, + list: /(?:#+|\*+)/, + notextile: "notextile", + para: "p", + pre: "pre", + table: "table", + tableCellAttributes: /[\/\\]\d+/, + tableHeading: /\|_\./, + tableText: /[^"_\*\[\(\?\+~\^%@|-]+/, + text: /[^!"_=\*\[\(<\?\+~\^%@-]+/ + }, + attributes: { + align: /(?:<>|<|>|=)/, + selector: /\([^\(][^\)]+\)/, + lang: /\[[^\[\]]+\]/, + pad: /(?:\(+|\)+){1,2}/, + css: /\{[^\}]+\}/ + }, + createRe: function(name) { + switch (name) { + case "drawTable": + return REs.makeRe("^", REs.single.drawTable, "$"); + case "html": + return REs.makeRe("^", REs.single.html, "(?:", REs.single.html, ")*", "$"); + case "linkDefinition": + return REs.makeRe("^", REs.single.linkDefinition, "$"); + case "listLayout": + return REs.makeRe("^", REs.single.list, RE("allAttributes"), "*\\s+"); + case "tableCellAttributes": + return REs.makeRe("^", REs.choiceRe(REs.single.tableCellAttributes, + RE("allAttributes")), "+\\."); + case "type": + return REs.makeRe("^", RE("allTypes")); + case "typeLayout": + return REs.makeRe("^", RE("allTypes"), RE("allAttributes"), + "*\\.\\.?", "(\\s+|$)"); + case "attributes": + return REs.makeRe("^", RE("allAttributes"), "+"); + + case "allTypes": + return REs.choiceRe(REs.single.div, REs.single.foot, + REs.single.header, REs.single.bc, REs.single.bq, + REs.single.notextile, REs.single.pre, REs.single.table, + REs.single.para); + + case "allAttributes": + return REs.choiceRe(REs.attributes.selector, REs.attributes.css, + REs.attributes.lang, REs.attributes.align, REs.attributes.pad); + + default: + return REs.makeRe("^", REs.single[name]); + } + }, + makeRe: function() { + var pattern = ""; + for (var i = 0; i < arguments.length; ++i) { + var arg = arguments[i]; + pattern += (typeof arg === "string") ? arg : arg.source; + } + return new RegExp(pattern); + }, + choiceRe: function() { + var parts = [arguments[0]]; + for (var i = 1; i < arguments.length; ++i) { + parts[i * 2 - 1] = "|"; + parts[i * 2] = arguments[i]; + } + + parts.unshift("(?:"); + parts.push(")"); + return REs.makeRe.apply(null, parts); + } + }; + + function RE(name) { + return (REs.cache[name] || (REs.cache[name] = REs.createRe(name))); + } + + var Modes = { + newLayout: function(stream, state) { + if (stream.match(RE("typeLayout"), false)) { + state.spanningLayout = false; + return (state.mode = Modes.blockType)(stream, state); + } + var newMode; + if (!textileDisabled(state)) { + if (stream.match(RE("listLayout"), false)) + newMode = Modes.list; + else if (stream.match(RE("drawTable"), false)) + newMode = Modes.table; + else if (stream.match(RE("linkDefinition"), false)) + newMode = Modes.linkDefinition; + else if (stream.match(RE("definitionList"))) + newMode = Modes.definitionList; + else if (stream.match(RE("html"), false)) + newMode = Modes.html; + } + return (state.mode = (newMode || Modes.text))(stream, state); + }, + + blockType: function(stream, state) { + var match, type; + state.layoutType = null; + + if (match = stream.match(RE("type"))) + type = match[0]; + else + return (state.mode = Modes.text)(stream, state); + + if (match = type.match(RE("header"))) { + state.layoutType = "header"; + state.header = parseInt(match[0][1]); + } else if (type.match(RE("bq"))) { + state.layoutType = "quote"; + } else if (type.match(RE("bc"))) { + state.layoutType = "code"; + } else if (type.match(RE("foot"))) { + state.layoutType = "footnote"; + } else if (type.match(RE("notextile"))) { + state.layoutType = "notextile"; + } else if (type.match(RE("pre"))) { + state.layoutType = "pre"; + } else if (type.match(RE("div"))) { + state.layoutType = "div"; + } else if (type.match(RE("table"))) { + state.layoutType = "table"; + } + + state.mode = Modes.attributes; + return tokenStyles(state); + }, + + text: function(stream, state) { + if (stream.match(RE("text"))) return tokenStyles(state); + + var ch = stream.next(); + if (ch === '"') + return (state.mode = Modes.link)(stream, state); + return handlePhraseModifier(stream, state, ch); + }, + + attributes: function(stream, state) { + state.mode = Modes.layoutLength; + + if (stream.match(RE("attributes"))) + return tokenStylesWith(state, TOKEN_STYLES.attributes); + else + return tokenStyles(state); + }, + + layoutLength: function(stream, state) { + if (stream.eat(".") && stream.eat(".")) + state.spanningLayout = true; + + state.mode = Modes.text; + return tokenStyles(state); + }, + + list: function(stream, state) { + var match = stream.match(RE("list")); + state.listDepth = match[0].length; + var listMod = (state.listDepth - 1) % 3; + if (!listMod) + state.layoutType = "list1"; + else if (listMod === 1) + state.layoutType = "list2"; + else + state.layoutType = "list3"; + + state.mode = Modes.attributes; + return tokenStyles(state); + }, + + link: function(stream, state) { + state.mode = Modes.text; + if (stream.match(RE("link"))) { + stream.match(/\S+/); + return tokenStylesWith(state, TOKEN_STYLES.link); + } + return tokenStyles(state); + }, + + linkDefinition: function(stream, state) { + stream.skipToEnd(); + return tokenStylesWith(state, TOKEN_STYLES.linkDefinition); + }, + + definitionList: function(stream, state) { + stream.match(RE("definitionList")); + + state.layoutType = "definitionList"; + + if (stream.match(/\s*$/)) + state.spanningLayout = true; + else + state.mode = Modes.attributes; + + return tokenStyles(state); + }, + + html: function(stream, state) { + stream.skipToEnd(); + return tokenStylesWith(state, TOKEN_STYLES.html); + }, + + table: function(stream, state) { + state.layoutType = "table"; + return (state.mode = Modes.tableCell)(stream, state); + }, + + tableCell: function(stream, state) { + if (stream.match(RE("tableHeading"))) + state.tableHeading = true; + else + stream.eat("|"); + + state.mode = Modes.tableCellAttributes; + return tokenStyles(state); + }, + + tableCellAttributes: function(stream, state) { + state.mode = Modes.tableText; + + if (stream.match(RE("tableCellAttributes"))) + return tokenStylesWith(state, TOKEN_STYLES.attributes); + else + return tokenStyles(state); + }, + + tableText: function(stream, state) { + if (stream.match(RE("tableText"))) + return tokenStyles(state); + + if (stream.peek() === "|") { // end of cell + state.mode = Modes.tableCell; + return tokenStyles(state); + } + return handlePhraseModifier(stream, state, stream.next()); + } + }; + + CodeMirror.defineMode("textile", function() { + return { + startState: function() { + return { mode: Modes.newLayout }; + }, + token: function(stream, state) { + if (stream.sol()) startNewLine(stream, state); + return state.mode(stream, state); + }, + blankLine: blankLine + }; + }); + + CodeMirror.defineMIME("text/x-textile", "textile"); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/index.html new file mode 100644 index 0000000..3dd3dd6 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/index.html @@ -0,0 +1,154 @@ + + +CodeMirror: TiddlyWiki mode + + + + + + + + + + + +
                              +

                              TiddlyWiki mode

                              + + +
                              + + + +

                              TiddlyWiki mode supports a single configuration.

                              + +

                              MIME types defined: text/x-tiddlywiki.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/tiddlywiki.css b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/tiddlywiki.css new file mode 100644 index 0000000..9a69b63 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/tiddlywiki.css @@ -0,0 +1,14 @@ +span.cm-underlined { + text-decoration: underline; +} +span.cm-strikethrough { + text-decoration: line-through; +} +span.cm-brace { + color: #170; + font-weight: bold; +} +span.cm-table { + color: blue; + font-weight: bold; +} diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/tiddlywiki.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/tiddlywiki.js new file mode 100644 index 0000000..88c9768 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiddlywiki/tiddlywiki.js @@ -0,0 +1,369 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/*** + |''Name''|tiddlywiki.js| + |''Description''|Enables TiddlyWikiy syntax highlighting using CodeMirror| + |''Author''|PMario| + |''Version''|0.1.7| + |''Status''|''stable''| + |''Source''|[[GitHub|https://github.com/pmario/CodeMirror2/blob/tw-syntax/mode/tiddlywiki]]| + |''Documentation''|http://codemirror.tiddlyspace.com/| + |''License''|[[MIT License|http://www.opensource.org/licenses/mit-license.php]]| + |''CoreVersion''|2.5.0| + |''Requires''|codemirror.js| + |''Keywords''|syntax highlighting color code mirror codemirror| + ! Info + CoreVersion parameter is needed for TiddlyWiki only! +***/ +//{{{ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("tiddlywiki", function () { + // Tokenizer + var textwords = {}; + + var keywords = function () { + function kw(type) { + return { type: type, style: "macro"}; + } + return { + "allTags": kw('allTags'), "closeAll": kw('closeAll'), "list": kw('list'), + "newJournal": kw('newJournal'), "newTiddler": kw('newTiddler'), + "permaview": kw('permaview'), "saveChanges": kw('saveChanges'), + "search": kw('search'), "slider": kw('slider'), "tabs": kw('tabs'), + "tag": kw('tag'), "tagging": kw('tagging'), "tags": kw('tags'), + "tiddler": kw('tiddler'), "timeline": kw('timeline'), + "today": kw('today'), "version": kw('version'), "option": kw('option'), + + "with": kw('with'), + "filter": kw('filter') + }; + }(); + + var isSpaceName = /[\w_\-]/i, + reHR = /^\-\-\-\-+$/, //
                              + reWikiCommentStart = /^\/\*\*\*$/, // /*** + reWikiCommentStop = /^\*\*\*\/$/, // ***/ + reBlockQuote = /^<<<$/, + + reJsCodeStart = /^\/\/\{\{\{$/, // //{{{ js block start + reJsCodeStop = /^\/\/\}\}\}$/, // //}}} js stop + reXmlCodeStart = /^$/, // xml block start + reXmlCodeStop = /^$/, // xml stop + + reCodeBlockStart = /^\{\{\{$/, // {{{ TW text div block start + reCodeBlockStop = /^\}\}\}$/, // }}} TW text stop + + reUntilCodeStop = /.*?\}\}\}/; + + function chain(stream, state, f) { + state.tokenize = f; + return f(stream, state); + } + + // Used as scratch variables to communicate multiple values without + // consing up tons of objects. + var type, content; + + function ret(tp, style, cont) { + type = tp; + content = cont; + return style; + } + + function jsTokenBase(stream, state) { + var sol = stream.sol(), ch; + + state.block = false; // indicates the start of a code block. + + ch = stream.peek(); // don't eat, to make matching simpler + + // check start of blocks + if (sol && /[<\/\*{}\-]/.test(ch)) { + if (stream.match(reCodeBlockStart)) { + state.block = true; + return chain(stream, state, twTokenCode); + } + if (stream.match(reBlockQuote)) { + return ret('quote', 'quote'); + } + if (stream.match(reWikiCommentStart) || stream.match(reWikiCommentStop)) { + return ret('code', 'comment'); + } + if (stream.match(reJsCodeStart) || stream.match(reJsCodeStop) || stream.match(reXmlCodeStart) || stream.match(reXmlCodeStop)) { + return ret('code', 'comment'); + } + if (stream.match(reHR)) { + return ret('hr', 'hr'); + } + } // sol + ch = stream.next(); + + if (sol && /[\/\*!#;:>|]/.test(ch)) { + if (ch == "!") { // tw header + stream.skipToEnd(); + return ret("header", "header"); + } + if (ch == "*") { // tw list + stream.eatWhile('*'); + return ret("list", "comment"); + } + if (ch == "#") { // tw numbered list + stream.eatWhile('#'); + return ret("list", "comment"); + } + if (ch == ";") { // definition list, term + stream.eatWhile(';'); + return ret("list", "comment"); + } + if (ch == ":") { // definition list, description + stream.eatWhile(':'); + return ret("list", "comment"); + } + if (ch == ">") { // single line quote + stream.eatWhile(">"); + return ret("quote", "quote"); + } + if (ch == '|') { + return ret('table', 'header'); + } + } + + if (ch == '{' && stream.match(/\{\{/)) { + return chain(stream, state, twTokenCode); + } + + // rudimentary html:// file:// link matching. TW knows much more ... + if (/[hf]/i.test(ch)) { + if (/[ti]/i.test(stream.peek()) && stream.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i)) { + return ret("link", "link"); + } + } + // just a little string indicator, don't want to have the whole string covered + if (ch == '"') { + return ret('string', 'string'); + } + if (ch == '~') { // _no_ CamelCase indicator should be bold + return ret('text', 'brace'); + } + if (/[\[\]]/.test(ch)) { // check for [[..]] + if (stream.peek() == ch) { + stream.next(); + return ret('brace', 'brace'); + } + } + if (ch == "@") { // check for space link. TODO fix @@...@@ highlighting + stream.eatWhile(isSpaceName); + return ret("link", "link"); + } + if (/\d/.test(ch)) { // numbers + stream.eatWhile(/\d/); + return ret("number", "number"); + } + if (ch == "/") { // tw invisible comment + if (stream.eat("%")) { + return chain(stream, state, twTokenComment); + } + else if (stream.eat("/")) { // + return chain(stream, state, twTokenEm); + } + } + if (ch == "_") { // tw underline + if (stream.eat("_")) { + return chain(stream, state, twTokenUnderline); + } + } + // strikethrough and mdash handling + if (ch == "-") { + if (stream.eat("-")) { + // if strikethrough looks ugly, change CSS. + if (stream.peek() != ' ') + return chain(stream, state, twTokenStrike); + // mdash + if (stream.peek() == ' ') + return ret('text', 'brace'); + } + } + if (ch == "'") { // tw bold + if (stream.eat("'")) { + return chain(stream, state, twTokenStrong); + } + } + if (ch == "<") { // tw macro + if (stream.eat("<")) { + return chain(stream, state, twTokenMacro); + } + } + else { + return ret(ch); + } + + // core macro handling + stream.eatWhile(/[\w\$_]/); + var word = stream.current(), + known = textwords.propertyIsEnumerable(word) && textwords[word]; + + return known ? ret(known.type, known.style, word) : ret("text", null, word); + + } // jsTokenBase() + + // tw invisible comment + function twTokenComment(stream, state) { + var maybeEnd = false, + ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = jsTokenBase; + break; + } + maybeEnd = (ch == "%"); + } + return ret("comment", "comment"); + } + + // tw strong / bold + function twTokenStrong(stream, state) { + var maybeEnd = false, + ch; + while (ch = stream.next()) { + if (ch == "'" && maybeEnd) { + state.tokenize = jsTokenBase; + break; + } + maybeEnd = (ch == "'"); + } + return ret("text", "strong"); + } + + // tw code + function twTokenCode(stream, state) { + var ch, sb = state.block; + + if (sb && stream.current()) { + return ret("code", "comment"); + } + + if (!sb && stream.match(reUntilCodeStop)) { + state.tokenize = jsTokenBase; + return ret("code", "comment"); + } + + if (sb && stream.sol() && stream.match(reCodeBlockStop)) { + state.tokenize = jsTokenBase; + return ret("code", "comment"); + } + + ch = stream.next(); + return (sb) ? ret("code", "comment") : ret("code", "comment"); + } + + // tw em / italic + function twTokenEm(stream, state) { + var maybeEnd = false, + ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = jsTokenBase; + break; + } + maybeEnd = (ch == "/"); + } + return ret("text", "em"); + } + + // tw underlined text + function twTokenUnderline(stream, state) { + var maybeEnd = false, + ch; + while (ch = stream.next()) { + if (ch == "_" && maybeEnd) { + state.tokenize = jsTokenBase; + break; + } + maybeEnd = (ch == "_"); + } + return ret("text", "underlined"); + } + + // tw strike through text looks ugly + // change CSS if needed + function twTokenStrike(stream, state) { + var maybeEnd = false, ch; + + while (ch = stream.next()) { + if (ch == "-" && maybeEnd) { + state.tokenize = jsTokenBase; + break; + } + maybeEnd = (ch == "-"); + } + return ret("text", "strikethrough"); + } + + // macro + function twTokenMacro(stream, state) { + var ch, word, known; + + if (stream.current() == '<<') { + return ret('brace', 'macro'); + } + + ch = stream.next(); + if (!ch) { + state.tokenize = jsTokenBase; + return ret(ch); + } + if (ch == ">") { + if (stream.peek() == '>') { + stream.next(); + state.tokenize = jsTokenBase; + return ret("brace", "macro"); + } + } + + stream.eatWhile(/[\w\$_]/); + word = stream.current(); + known = keywords.propertyIsEnumerable(word) && keywords[word]; + + if (known) { + return ret(known.type, known.style, word); + } + else { + return ret("macro", null, word); + } + } + + // Interface + return { + startState: function () { + return { + tokenize: jsTokenBase, + indented: 0, + level: 0 + }; + }, + + token: function (stream, state) { + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + return style; + }, + + electricChars: "" + }; +}); + +CodeMirror.defineMIME("text/x-tiddlywiki", "tiddlywiki"); +}); + +//}}} diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/index.html new file mode 100644 index 0000000..7cd93d1 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/index.html @@ -0,0 +1,95 @@ + + +CodeMirror: Tiki wiki mode + + + + + + + + + + +
                              +

                              Tiki wiki mode

                              + + +
                              + + + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/tiki.css b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/tiki.css new file mode 100644 index 0000000..6e970fb --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/tiki.css @@ -0,0 +1,26 @@ +.cm-tw-syntaxerror { + color: #FFF; + background-color: #900; +} + +.cm-tw-deleted { + text-decoration: line-through; +} + +.cm-tw-header5 { + font-weight: bold; +} +.cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ + padding-left: 10px; +} + +.cm-tw-box { + border-top-width: 0px ! important; + border-style: solid; + border-width: 1px; + border-color: inherit; +} + +.cm-tw-underline { + text-decoration: underline; +} diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/tiki.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/tiki.js new file mode 100644 index 0000000..c90aac9 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tiki/tiki.js @@ -0,0 +1,323 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode('tiki', function(config) { + function inBlock(style, terminator, returnTokenizer) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.match(terminator)) { + state.tokenize = inText; + break; + } + stream.next(); + } + + if (returnTokenizer) state.tokenize = returnTokenizer; + + return style; + }; + } + + function inLine(style) { + return function(stream, state) { + while(!stream.eol()) { + stream.next(); + } + state.tokenize = inText; + return style; + }; + } + + function inText(stream, state) { + function chain(parser) { + state.tokenize = parser; + return parser(stream, state); + } + + var sol = stream.sol(); + var ch = stream.next(); + + //non start of line + switch (ch) { //switch is generally much faster than if, so it is used here + case "{": //plugin + stream.eat("/"); + stream.eatSpace(); + var tagName = ""; + var c; + while ((c = stream.eat(/[^\s\u00a0=\"\'\/?(}]/))) tagName += c; + state.tokenize = inPlugin; + return "tag"; + break; + case "_": //bold + if (stream.eat("_")) { + return chain(inBlock("strong", "__", inText)); + } + break; + case "'": //italics + if (stream.eat("'")) { + // Italic text + return chain(inBlock("em", "''", inText)); + } + break; + case "(":// Wiki Link + if (stream.eat("(")) { + return chain(inBlock("variable-2", "))", inText)); + } + break; + case "[":// Weblink + return chain(inBlock("variable-3", "]", inText)); + break; + case "|": //table + if (stream.eat("|")) { + return chain(inBlock("comment", "||")); + } + break; + case "-": + if (stream.eat("=")) {//titleBar + return chain(inBlock("header string", "=-", inText)); + } else if (stream.eat("-")) {//deleted + return chain(inBlock("error tw-deleted", "--", inText)); + } + break; + case "=": //underline + if (stream.match("==")) { + return chain(inBlock("tw-underline", "===", inText)); + } + break; + case ":": + if (stream.eat(":")) { + return chain(inBlock("comment", "::")); + } + break; + case "^": //box + return chain(inBlock("tw-box", "^")); + break; + case "~": //np + if (stream.match("np~")) { + return chain(inBlock("meta", "~/np~")); + } + break; + } + + //start of line types + if (sol) { + switch (ch) { + case "!": //header at start of line + if (stream.match('!!!!!')) { + return chain(inLine("header string")); + } else if (stream.match('!!!!')) { + return chain(inLine("header string")); + } else if (stream.match('!!!')) { + return chain(inLine("header string")); + } else if (stream.match('!!')) { + return chain(inLine("header string")); + } else { + return chain(inLine("header string")); + } + break; + case "*": //unordered list line item, or
                            • at start of line + case "#": //ordered list line item, or
                            • at start of line + case "+": //ordered list line item, or
                            • at start of line + return chain(inLine("tw-listitem bracket")); + break; + } + } + + //stream.eatWhile(/[&{]/); was eating up plugins, turned off to act less like html and more like tiki + return null; + } + + var indentUnit = config.indentUnit; + + // Return variables for tokenizers + var pluginName, type; + function inPlugin(stream, state) { + var ch = stream.next(); + var peek = stream.peek(); + + if (ch == "}") { + state.tokenize = inText; + //type = ch == ")" ? "endPlugin" : "selfclosePlugin"; inPlugin + return "tag"; + } else if (ch == "(" || ch == ")") { + return "bracket"; + } else if (ch == "=") { + type = "equals"; + + if (peek == ">") { + ch = stream.next(); + peek = stream.peek(); + } + + //here we detect values directly after equal character with no quotes + if (!/[\'\"]/.test(peek)) { + state.tokenize = inAttributeNoQuote(); + } + //end detect values + + return "operator"; + } else if (/[\'\"]/.test(ch)) { + state.tokenize = inAttribute(ch); + return state.tokenize(stream, state); + } else { + stream.eatWhile(/[^\s\u00a0=\"\'\/?]/); + return "keyword"; + } + } + + function inAttribute(quote) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.next() == quote) { + state.tokenize = inPlugin; + break; + } + } + return "string"; + }; + } + + function inAttributeNoQuote() { + return function(stream, state) { + while (!stream.eol()) { + var ch = stream.next(); + var peek = stream.peek(); + if (ch == " " || ch == "," || /[ )}]/.test(peek)) { + state.tokenize = inPlugin; + break; + } + } + return "string"; +}; + } + +var curState, setStyle; +function pass() { + for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]); +} + +function cont() { + pass.apply(null, arguments); + return true; +} + +function pushContext(pluginName, startOfLine) { + var noIndent = curState.context && curState.context.noIndent; + curState.context = { + prev: curState.context, + pluginName: pluginName, + indent: curState.indented, + startOfLine: startOfLine, + noIndent: noIndent + }; +} + +function popContext() { + if (curState.context) curState.context = curState.context.prev; +} + +function element(type) { + if (type == "openPlugin") {curState.pluginName = pluginName; return cont(attributes, endplugin(curState.startOfLine));} + else if (type == "closePlugin") { + var err = false; + if (curState.context) { + err = curState.context.pluginName != pluginName; + popContext(); + } else { + err = true; + } + if (err) setStyle = "error"; + return cont(endcloseplugin(err)); + } + else if (type == "string") { + if (!curState.context || curState.context.name != "!cdata") pushContext("!cdata"); + if (curState.tokenize == inText) popContext(); + return cont(); + } + else return cont(); +} + +function endplugin(startOfLine) { + return function(type) { + if ( + type == "selfclosePlugin" || + type == "endPlugin" + ) + return cont(); + if (type == "endPlugin") {pushContext(curState.pluginName, startOfLine); return cont();} + return cont(); + }; +} + +function endcloseplugin(err) { + return function(type) { + if (err) setStyle = "error"; + if (type == "endPlugin") return cont(); + return pass(); + }; +} + +function attributes(type) { + if (type == "keyword") {setStyle = "attribute"; return cont(attributes);} + if (type == "equals") return cont(attvalue, attributes); + return pass(); +} +function attvalue(type) { + if (type == "keyword") {setStyle = "string"; return cont();} + if (type == "string") return cont(attvaluemaybe); + return pass(); +} +function attvaluemaybe(type) { + if (type == "string") return cont(attvaluemaybe); + else return pass(); +} +return { + startState: function() { + return {tokenize: inText, cc: [], indented: 0, startOfLine: true, pluginName: null, context: null}; + }, + token: function(stream, state) { + if (stream.sol()) { + state.startOfLine = true; + state.indented = stream.indentation(); + } + if (stream.eatSpace()) return null; + + setStyle = type = pluginName = null; + var style = state.tokenize(stream, state); + if ((style || type) && style != "comment") { + curState = state; + while (true) { + var comb = state.cc.pop() || element; + if (comb(type || style)) break; + } + } + state.startOfLine = false; + return setStyle || style; + }, + indent: function(state, textAfter) { + var context = state.context; + if (context && context.noIndent) return 0; + if (context && /^{\//.test(textAfter)) + context = context.prev; + while (context && !context.startOfLine) + context = context.prev; + if (context) return context.indent + indentUnit; + else return 0; + }, + electricChars: "/" + }; +}); + +CodeMirror.defineMIME("text/tiki", "tiki"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/toml/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/toml/index.html new file mode 100644 index 0000000..477c561 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/toml/index.html @@ -0,0 +1,73 @@ + + +CodeMirror: TOML Mode + + + + + + + + + +
                              +

                              TOML Mode

                              +
                              + +

                              The TOML Mode

                              +

                              Created by Forbes Lindesay.

                              +

                              MIME type defined: text/x-toml.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/toml/toml.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/toml/toml.js new file mode 100644 index 0000000..baeca15 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/toml/toml.js @@ -0,0 +1,88 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("toml", function () { + return { + startState: function () { + return { + inString: false, + stringType: "", + lhs: true, + inArray: 0 + }; + }, + token: function (stream, state) { + //check for state changes + if (!state.inString && ((stream.peek() == '"') || (stream.peek() == "'"))) { + state.stringType = stream.peek(); + stream.next(); // Skip quote + state.inString = true; // Update state + } + if (stream.sol() && state.inArray === 0) { + state.lhs = true; + } + //return state + if (state.inString) { + while (state.inString && !stream.eol()) { + if (stream.peek() === state.stringType) { + stream.next(); // Skip quote + state.inString = false; // Clear flag + } else if (stream.peek() === '\\') { + stream.next(); + stream.next(); + } else { + stream.match(/^.[^\\\"\']*/); + } + } + return state.lhs ? "property string" : "string"; // Token style + } else if (state.inArray && stream.peek() === ']') { + stream.next(); + state.inArray--; + return 'bracket'; + } else if (state.lhs && stream.peek() === '[' && stream.skipTo(']')) { + stream.next();//skip closing ] + // array of objects has an extra open & close [] + if (stream.peek() === ']') stream.next(); + return "atom"; + } else if (stream.peek() === "#") { + stream.skipToEnd(); + return "comment"; + } else if (stream.eatSpace()) { + return null; + } else if (state.lhs && stream.eatWhile(function (c) { return c != '=' && c != ' '; })) { + return "property"; + } else if (state.lhs && stream.peek() === "=") { + stream.next(); + state.lhs = false; + return null; + } else if (!state.lhs && stream.match(/^\d\d\d\d[\d\-\:\.T]*Z/)) { + return 'atom'; //date + } else if (!state.lhs && (stream.match('true') || stream.match('false'))) { + return 'atom'; + } else if (!state.lhs && stream.peek() === '[') { + state.inArray++; + stream.next(); + return 'bracket'; + } else if (!state.lhs && stream.match(/^\-?\d+(?:\.\d+)?/)) { + return 'number'; + } else if (!stream.eatSpace()) { + stream.next(); + } + return null; + } + }; +}); + +CodeMirror.defineMIME('text/x-toml', 'toml'); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tornado/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tornado/index.html new file mode 100644 index 0000000..af072fa --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tornado/index.html @@ -0,0 +1,63 @@ + + +CodeMirror: Tornado template mode + + + + + + + + + + + + +
                              +

                              Tornado template mode

                              +
                              + + + +

                              Mode for HTML with embedded Tornado template markup.

                              + +

                              MIME types defined: text/x-tornado

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tornado/tornado.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tornado/tornado.js new file mode 100644 index 0000000..dbfbc34 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/tornado/tornado.js @@ -0,0 +1,68 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), + require("../../addon/mode/overlay")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../htmlmixed/htmlmixed", + "../../addon/mode/overlay"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + CodeMirror.defineMode("tornado:inner", function() { + var keywords = ["and","as","assert","autoescape","block","break","class","comment","context", + "continue","datetime","def","del","elif","else","end","escape","except", + "exec","extends","false","finally","for","from","global","if","import","in", + "include","is","json_encode","lambda","length","linkify","load","module", + "none","not","or","pass","print","put","raise","raw","return","self","set", + "squeeze","super","true","try","url_escape","while","with","without","xhtml_escape","yield"]; + keywords = new RegExp("^((" + keywords.join(")|(") + "))\\b"); + + function tokenBase (stream, state) { + stream.eatWhile(/[^\{]/); + var ch = stream.next(); + if (ch == "{") { + if (ch = stream.eat(/\{|%|#/)) { + state.tokenize = inTag(ch); + return "tag"; + } + } + } + function inTag (close) { + if (close == "{") { + close = "}"; + } + return function (stream, state) { + var ch = stream.next(); + if ((ch == close) && stream.eat("}")) { + state.tokenize = tokenBase; + return "tag"; + } + if (stream.match(keywords)) { + return "keyword"; + } + return close == "#" ? "comment" : "string"; + }; + } + return { + startState: function () { + return {tokenize: tokenBase}; + }, + token: function (stream, state) { + return state.tokenize(stream, state); + } + }; + }); + + CodeMirror.defineMode("tornado", function(config) { + var htmlBase = CodeMirror.getMode(config, "text/html"); + var tornadoInner = CodeMirror.getMode(config, "tornado:inner"); + return CodeMirror.overlayMode(htmlBase, tornadoInner); + }); + + CodeMirror.defineMIME("text/x-tornado", "tornado"); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/turtle/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/turtle/index.html new file mode 100644 index 0000000..9482691 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/turtle/index.html @@ -0,0 +1,50 @@ + + +CodeMirror: Turtle mode + + + + + + + + + +
                              +

                              Turtle mode

                              +
                              + + +

                              MIME types defined: text/turtle.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/turtle/turtle.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/turtle/turtle.js new file mode 100644 index 0000000..0988f0a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/turtle/turtle.js @@ -0,0 +1,162 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("turtle", function(config) { + var indentUnit = config.indentUnit; + var curPunc; + + function wordRegexp(words) { + return new RegExp("^(?:" + words.join("|") + ")$", "i"); + } + var ops = wordRegexp([]); + var keywords = wordRegexp(["@prefix", "@base", "a"]); + var operatorChars = /[*+\-<>=&|]/; + + function tokenBase(stream, state) { + var ch = stream.next(); + curPunc = null; + if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) { + stream.match(/^[^\s\u00a0>]*>?/); + return "atom"; + } + else if (ch == "\"" || ch == "'") { + state.tokenize = tokenLiteral(ch); + return state.tokenize(stream, state); + } + else if (/[{}\(\),\.;\[\]]/.test(ch)) { + curPunc = ch; + return null; + } + else if (ch == "#") { + stream.skipToEnd(); + return "comment"; + } + else if (operatorChars.test(ch)) { + stream.eatWhile(operatorChars); + return null; + } + else if (ch == ":") { + return "operator"; + } else { + stream.eatWhile(/[_\w\d]/); + if(stream.peek() == ":") { + return "variable-3"; + } else { + var word = stream.current(); + + if(keywords.test(word)) { + return "meta"; + } + + if(ch >= "A" && ch <= "Z") { + return "comment"; + } else { + return "keyword"; + } + } + var word = stream.current(); + if (ops.test(word)) + return null; + else if (keywords.test(word)) + return "meta"; + else + return "variable"; + } + } + + function tokenLiteral(quote) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && !escaped) { + state.tokenize = tokenBase; + break; + } + escaped = !escaped && ch == "\\"; + } + return "string"; + }; + } + + function pushContext(state, type, col) { + state.context = {prev: state.context, indent: state.indent, col: col, type: type}; + } + function popContext(state) { + state.indent = state.context.indent; + state.context = state.context.prev; + } + + return { + startState: function() { + return {tokenize: tokenBase, + context: null, + indent: 0, + col: 0}; + }, + + token: function(stream, state) { + if (stream.sol()) { + if (state.context && state.context.align == null) state.context.align = false; + state.indent = stream.indentation(); + } + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + + if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") { + state.context.align = true; + } + + if (curPunc == "(") pushContext(state, ")", stream.column()); + else if (curPunc == "[") pushContext(state, "]", stream.column()); + else if (curPunc == "{") pushContext(state, "}", stream.column()); + else if (/[\]\}\)]/.test(curPunc)) { + while (state.context && state.context.type == "pattern") popContext(state); + if (state.context && curPunc == state.context.type) popContext(state); + } + else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state); + else if (/atom|string|variable/.test(style) && state.context) { + if (/[\}\]]/.test(state.context.type)) + pushContext(state, "pattern", stream.column()); + else if (state.context.type == "pattern" && !state.context.align) { + state.context.align = true; + state.context.col = stream.column(); + } + } + + return style; + }, + + indent: function(state, textAfter) { + var firstChar = textAfter && textAfter.charAt(0); + var context = state.context; + if (/[\]\}]/.test(firstChar)) + while (context && context.type == "pattern") context = context.prev; + + var closing = context && firstChar == context.type; + if (!context) + return 0; + else if (context.type == "pattern") + return context.col; + else if (context.align) + return context.col + (closing ? 0 : 1); + else + return context.indent + (closing ? 0 : indentUnit); + }, + + lineComment: "#" + }; +}); + +CodeMirror.defineMIME("text/turtle", "turtle"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vb/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vb/index.html new file mode 100644 index 0000000..116dd2e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vb/index.html @@ -0,0 +1,102 @@ + + +CodeMirror: VB.NET mode + + + + + + + + + + + +
                              +

                              VB.NET mode

                              + + + +
                              + +
                              +
                              
                              +  

                              MIME type defined: text/x-vb.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vb/vb.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vb/vb.js new file mode 100644 index 0000000..902203e --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vb/vb.js @@ -0,0 +1,274 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("vb", function(conf, parserConf) { + var ERRORCLASS = 'error'; + + function wordRegexp(words) { + return new RegExp("^((" + words.join(")|(") + "))\\b", "i"); + } + + var singleOperators = new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"); + var singleDelimiters = new RegExp('^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]'); + var doubleOperators = new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"); + var doubleDelimiters = new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"); + var tripleDelimiters = new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"); + var identifiers = new RegExp("^[_A-Za-z][_A-Za-z0-9]*"); + + var openingKeywords = ['class','module', 'sub','enum','select','while','if','function', 'get','set','property', 'try']; + var middleKeywords = ['else','elseif','case', 'catch']; + var endKeywords = ['next','loop']; + + var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'in']); + var commonkeywords = ['as', 'dim', 'break', 'continue','optional', 'then', 'until', + 'goto', 'byval','byref','new','handles','property', 'return', + 'const','private', 'protected', 'friend', 'public', 'shared', 'static', 'true','false']; + var commontypes = ['integer','string','double','decimal','boolean','short','char', 'float','single']; + + var keywords = wordRegexp(commonkeywords); + var types = wordRegexp(commontypes); + var stringPrefixes = '"'; + + var opening = wordRegexp(openingKeywords); + var middle = wordRegexp(middleKeywords); + var closing = wordRegexp(endKeywords); + var doubleClosing = wordRegexp(['end']); + var doOpening = wordRegexp(['do']); + + var indentInfo = null; + + + + + function indent(_stream, state) { + state.currentIndent++; + } + + function dedent(_stream, state) { + state.currentIndent--; + } + // tokenizers + function tokenBase(stream, state) { + if (stream.eatSpace()) { + return null; + } + + var ch = stream.peek(); + + // Handle Comments + if (ch === "'") { + stream.skipToEnd(); + return 'comment'; + } + + + // Handle Number Literals + if (stream.match(/^((&H)|(&O))?[0-9\.a-f]/i, false)) { + var floatLiteral = false; + // Floats + if (stream.match(/^\d*\.\d+F?/i)) { floatLiteral = true; } + else if (stream.match(/^\d+\.\d*F?/)) { floatLiteral = true; } + else if (stream.match(/^\.\d+F?/)) { floatLiteral = true; } + + if (floatLiteral) { + // Float literals may be "imaginary" + stream.eat(/J/i); + return 'number'; + } + // Integers + var intLiteral = false; + // Hex + if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; } + // Octal + else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; } + // Decimal + else if (stream.match(/^[1-9]\d*F?/)) { + // Decimal literals may be "imaginary" + stream.eat(/J/i); + // TODO - Can you have imaginary longs? + intLiteral = true; + } + // Zero by itself with no other piece of number. + else if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; } + if (intLiteral) { + // Integer literals may be "long" + stream.eat(/L/i); + return 'number'; + } + } + + // Handle Strings + if (stream.match(stringPrefixes)) { + state.tokenize = tokenStringFactory(stream.current()); + return state.tokenize(stream, state); + } + + // Handle operators and Delimiters + if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) { + return null; + } + if (stream.match(doubleOperators) + || stream.match(singleOperators) + || stream.match(wordOperators)) { + return 'operator'; + } + if (stream.match(singleDelimiters)) { + return null; + } + if (stream.match(doOpening)) { + indent(stream,state); + state.doInCurrentLine = true; + return 'keyword'; + } + if (stream.match(opening)) { + if (! state.doInCurrentLine) + indent(stream,state); + else + state.doInCurrentLine = false; + return 'keyword'; + } + if (stream.match(middle)) { + return 'keyword'; + } + + if (stream.match(doubleClosing)) { + dedent(stream,state); + dedent(stream,state); + return 'keyword'; + } + if (stream.match(closing)) { + dedent(stream,state); + return 'keyword'; + } + + if (stream.match(types)) { + return 'keyword'; + } + + if (stream.match(keywords)) { + return 'keyword'; + } + + if (stream.match(identifiers)) { + return 'variable'; + } + + // Handle non-detected items + stream.next(); + return ERRORCLASS; + } + + function tokenStringFactory(delimiter) { + var singleline = delimiter.length == 1; + var OUTCLASS = 'string'; + + return function(stream, state) { + while (!stream.eol()) { + stream.eatWhile(/[^'"]/); + if (stream.match(delimiter)) { + state.tokenize = tokenBase; + return OUTCLASS; + } else { + stream.eat(/['"]/); + } + } + if (singleline) { + if (parserConf.singleLineStringErrors) { + return ERRORCLASS; + } else { + state.tokenize = tokenBase; + } + } + return OUTCLASS; + }; + } + + + function tokenLexer(stream, state) { + var style = state.tokenize(stream, state); + var current = stream.current(); + + // Handle '.' connected identifiers + if (current === '.') { + style = state.tokenize(stream, state); + current = stream.current(); + if (style === 'variable') { + return 'variable'; + } else { + return ERRORCLASS; + } + } + + + var delimiter_index = '[({'.indexOf(current); + if (delimiter_index !== -1) { + indent(stream, state ); + } + if (indentInfo === 'dedent') { + if (dedent(stream, state)) { + return ERRORCLASS; + } + } + delimiter_index = '])}'.indexOf(current); + if (delimiter_index !== -1) { + if (dedent(stream, state)) { + return ERRORCLASS; + } + } + + return style; + } + + var external = { + electricChars:"dDpPtTfFeE ", + startState: function() { + return { + tokenize: tokenBase, + lastToken: null, + currentIndent: 0, + nextLineIndent: 0, + doInCurrentLine: false + + + }; + }, + + token: function(stream, state) { + if (stream.sol()) { + state.currentIndent += state.nextLineIndent; + state.nextLineIndent = 0; + state.doInCurrentLine = 0; + } + var style = tokenLexer(stream, state); + + state.lastToken = {style:style, content: stream.current()}; + + + + return style; + }, + + indent: function(state, textAfter) { + var trueText = textAfter.replace(/^\s+|\s+$/g, '') ; + if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1); + if(state.currentIndent < 0) return 0; + return state.currentIndent * conf.indentUnit; + } + + }; + return external; +}); + +CodeMirror.defineMIME("text/x-vb", "vb"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vbscript/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vbscript/index.html new file mode 100644 index 0000000..ad7532d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vbscript/index.html @@ -0,0 +1,55 @@ + + +CodeMirror: VBScript mode + + + + + + + + + +
                              +

                              VBScript mode

                              + + +
                              + + + +

                              MIME types defined: text/vbscript.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vbscript/vbscript.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vbscript/vbscript.js new file mode 100644 index 0000000..b66df22 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/vbscript/vbscript.js @@ -0,0 +1,350 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +/* +For extra ASP classic objects, initialize CodeMirror instance with this option: + isASP: true + +E.G.: + var editor = CodeMirror.fromTextArea(document.getElementById("code"), { + lineNumbers: true, + isASP: true + }); +*/ + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("vbscript", function(conf, parserConf) { + var ERRORCLASS = 'error'; + + function wordRegexp(words) { + return new RegExp("^((" + words.join(")|(") + "))\\b", "i"); + } + + var singleOperators = new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"); + var doubleOperators = new RegExp("^((<>)|(<=)|(>=))"); + var singleDelimiters = new RegExp('^[\\.,]'); + var brakets = new RegExp('^[\\(\\)]'); + var identifiers = new RegExp("^[A-Za-z][_A-Za-z0-9]*"); + + var openingKeywords = ['class','sub','select','while','if','function', 'property', 'with', 'for']; + var middleKeywords = ['else','elseif','case']; + var endKeywords = ['next','loop','wend']; + + var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'is', 'mod', 'eqv', 'imp']); + var commonkeywords = ['dim', 'redim', 'then', 'until', 'randomize', + 'byval','byref','new','property', 'exit', 'in', + 'const','private', 'public', + 'get','set','let', 'stop', 'on error resume next', 'on error goto 0', 'option explicit', 'call', 'me']; + + //This list was from: http://msdn.microsoft.com/en-us/library/f8tbc79x(v=vs.84).aspx + var atomWords = ['true', 'false', 'nothing', 'empty', 'null']; + //This list was from: http://msdn.microsoft.com/en-us/library/3ca8tfek(v=vs.84).aspx + var builtinFuncsWords = ['abs', 'array', 'asc', 'atn', 'cbool', 'cbyte', 'ccur', 'cdate', 'cdbl', 'chr', 'cint', 'clng', 'cos', 'csng', 'cstr', 'date', 'dateadd', 'datediff', 'datepart', + 'dateserial', 'datevalue', 'day', 'escape', 'eval', 'execute', 'exp', 'filter', 'formatcurrency', 'formatdatetime', 'formatnumber', 'formatpercent', 'getlocale', 'getobject', + 'getref', 'hex', 'hour', 'inputbox', 'instr', 'instrrev', 'int', 'fix', 'isarray', 'isdate', 'isempty', 'isnull', 'isnumeric', 'isobject', 'join', 'lbound', 'lcase', 'left', + 'len', 'loadpicture', 'log', 'ltrim', 'rtrim', 'trim', 'maths', 'mid', 'minute', 'month', 'monthname', 'msgbox', 'now', 'oct', 'replace', 'rgb', 'right', 'rnd', 'round', + 'scriptengine', 'scriptenginebuildversion', 'scriptenginemajorversion', 'scriptengineminorversion', 'second', 'setlocale', 'sgn', 'sin', 'space', 'split', 'sqr', 'strcomp', + 'string', 'strreverse', 'tan', 'time', 'timer', 'timeserial', 'timevalue', 'typename', 'ubound', 'ucase', 'unescape', 'vartype', 'weekday', 'weekdayname', 'year']; + + //This list was from: http://msdn.microsoft.com/en-us/library/ydz4cfk3(v=vs.84).aspx + var builtinConsts = ['vbBlack', 'vbRed', 'vbGreen', 'vbYellow', 'vbBlue', 'vbMagenta', 'vbCyan', 'vbWhite', 'vbBinaryCompare', 'vbTextCompare', + 'vbSunday', 'vbMonday', 'vbTuesday', 'vbWednesday', 'vbThursday', 'vbFriday', 'vbSaturday', 'vbUseSystemDayOfWeek', 'vbFirstJan1', 'vbFirstFourDays', 'vbFirstFullWeek', + 'vbGeneralDate', 'vbLongDate', 'vbShortDate', 'vbLongTime', 'vbShortTime', 'vbObjectError', + 'vbOKOnly', 'vbOKCancel', 'vbAbortRetryIgnore', 'vbYesNoCancel', 'vbYesNo', 'vbRetryCancel', 'vbCritical', 'vbQuestion', 'vbExclamation', 'vbInformation', 'vbDefaultButton1', 'vbDefaultButton2', + 'vbDefaultButton3', 'vbDefaultButton4', 'vbApplicationModal', 'vbSystemModal', 'vbOK', 'vbCancel', 'vbAbort', 'vbRetry', 'vbIgnore', 'vbYes', 'vbNo', + 'vbCr', 'VbCrLf', 'vbFormFeed', 'vbLf', 'vbNewLine', 'vbNullChar', 'vbNullString', 'vbTab', 'vbVerticalTab', 'vbUseDefault', 'vbTrue', 'vbFalse', + 'vbEmpty', 'vbNull', 'vbInteger', 'vbLong', 'vbSingle', 'vbDouble', 'vbCurrency', 'vbDate', 'vbString', 'vbObject', 'vbError', 'vbBoolean', 'vbVariant', 'vbDataObject', 'vbDecimal', 'vbByte', 'vbArray']; + //This list was from: http://msdn.microsoft.com/en-us/library/hkc375ea(v=vs.84).aspx + var builtinObjsWords = ['WScript', 'err', 'debug', 'RegExp']; + var knownProperties = ['description', 'firstindex', 'global', 'helpcontext', 'helpfile', 'ignorecase', 'length', 'number', 'pattern', 'source', 'value', 'count']; + var knownMethods = ['clear', 'execute', 'raise', 'replace', 'test', 'write', 'writeline', 'close', 'open', 'state', 'eof', 'update', 'addnew', 'end', 'createobject', 'quit']; + + var aspBuiltinObjsWords = ['server', 'response', 'request', 'session', 'application']; + var aspKnownProperties = ['buffer', 'cachecontrol', 'charset', 'contenttype', 'expires', 'expiresabsolute', 'isclientconnected', 'pics', 'status', //response + 'clientcertificate', 'cookies', 'form', 'querystring', 'servervariables', 'totalbytes', //request + 'contents', 'staticobjects', //application + 'codepage', 'lcid', 'sessionid', 'timeout', //session + 'scripttimeout']; //server + var aspKnownMethods = ['addheader', 'appendtolog', 'binarywrite', 'end', 'flush', 'redirect', //response + 'binaryread', //request + 'remove', 'removeall', 'lock', 'unlock', //application + 'abandon', //session + 'getlasterror', 'htmlencode', 'mappath', 'transfer', 'urlencode']; //server + + var knownWords = knownMethods.concat(knownProperties); + + builtinObjsWords = builtinObjsWords.concat(builtinConsts); + + if (conf.isASP){ + builtinObjsWords = builtinObjsWords.concat(aspBuiltinObjsWords); + knownWords = knownWords.concat(aspKnownMethods, aspKnownProperties); + }; + + var keywords = wordRegexp(commonkeywords); + var atoms = wordRegexp(atomWords); + var builtinFuncs = wordRegexp(builtinFuncsWords); + var builtinObjs = wordRegexp(builtinObjsWords); + var known = wordRegexp(knownWords); + var stringPrefixes = '"'; + + var opening = wordRegexp(openingKeywords); + var middle = wordRegexp(middleKeywords); + var closing = wordRegexp(endKeywords); + var doubleClosing = wordRegexp(['end']); + var doOpening = wordRegexp(['do']); + var noIndentWords = wordRegexp(['on error resume next', 'exit']); + var comment = wordRegexp(['rem']); + + + function indent(_stream, state) { + state.currentIndent++; + } + + function dedent(_stream, state) { + state.currentIndent--; + } + // tokenizers + function tokenBase(stream, state) { + if (stream.eatSpace()) { + return 'space'; + //return null; + } + + var ch = stream.peek(); + + // Handle Comments + if (ch === "'") { + stream.skipToEnd(); + return 'comment'; + } + if (stream.match(comment)){ + stream.skipToEnd(); + return 'comment'; + } + + + // Handle Number Literals + if (stream.match(/^((&H)|(&O))?[0-9\.]/i, false) && !stream.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i, false)) { + var floatLiteral = false; + // Floats + if (stream.match(/^\d*\.\d+/i)) { floatLiteral = true; } + else if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; } + else if (stream.match(/^\.\d+/)) { floatLiteral = true; } + + if (floatLiteral) { + // Float literals may be "imaginary" + stream.eat(/J/i); + return 'number'; + } + // Integers + var intLiteral = false; + // Hex + if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; } + // Octal + else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; } + // Decimal + else if (stream.match(/^[1-9]\d*F?/)) { + // Decimal literals may be "imaginary" + stream.eat(/J/i); + // TODO - Can you have imaginary longs? + intLiteral = true; + } + // Zero by itself with no other piece of number. + else if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; } + if (intLiteral) { + // Integer literals may be "long" + stream.eat(/L/i); + return 'number'; + } + } + + // Handle Strings + if (stream.match(stringPrefixes)) { + state.tokenize = tokenStringFactory(stream.current()); + return state.tokenize(stream, state); + } + + // Handle operators and Delimiters + if (stream.match(doubleOperators) + || stream.match(singleOperators) + || stream.match(wordOperators)) { + return 'operator'; + } + if (stream.match(singleDelimiters)) { + return null; + } + + if (stream.match(brakets)) { + return "bracket"; + } + + if (stream.match(noIndentWords)) { + state.doInCurrentLine = true; + + return 'keyword'; + } + + if (stream.match(doOpening)) { + indent(stream,state); + state.doInCurrentLine = true; + + return 'keyword'; + } + if (stream.match(opening)) { + if (! state.doInCurrentLine) + indent(stream,state); + else + state.doInCurrentLine = false; + + return 'keyword'; + } + if (stream.match(middle)) { + return 'keyword'; + } + + + if (stream.match(doubleClosing)) { + dedent(stream,state); + dedent(stream,state); + + return 'keyword'; + } + if (stream.match(closing)) { + if (! state.doInCurrentLine) + dedent(stream,state); + else + state.doInCurrentLine = false; + + return 'keyword'; + } + + if (stream.match(keywords)) { + return 'keyword'; + } + + if (stream.match(atoms)) { + return 'atom'; + } + + if (stream.match(known)) { + return 'variable-2'; + } + + if (stream.match(builtinFuncs)) { + return 'builtin'; + } + + if (stream.match(builtinObjs)){ + return 'variable-2'; + } + + if (stream.match(identifiers)) { + return 'variable'; + } + + // Handle non-detected items + stream.next(); + return ERRORCLASS; + } + + function tokenStringFactory(delimiter) { + var singleline = delimiter.length == 1; + var OUTCLASS = 'string'; + + return function(stream, state) { + while (!stream.eol()) { + stream.eatWhile(/[^'"]/); + if (stream.match(delimiter)) { + state.tokenize = tokenBase; + return OUTCLASS; + } else { + stream.eat(/['"]/); + } + } + if (singleline) { + if (parserConf.singleLineStringErrors) { + return ERRORCLASS; + } else { + state.tokenize = tokenBase; + } + } + return OUTCLASS; + }; + } + + + function tokenLexer(stream, state) { + var style = state.tokenize(stream, state); + var current = stream.current(); + + // Handle '.' connected identifiers + if (current === '.') { + style = state.tokenize(stream, state); + + current = stream.current(); + if (style && (style.substr(0, 8) === 'variable' || style==='builtin' || style==='keyword')){//|| knownWords.indexOf(current.substring(1)) > -1) { + if (style === 'builtin' || style === 'keyword') style='variable'; + if (knownWords.indexOf(current.substr(1)) > -1) style='variable-2'; + + return style; + } else { + return ERRORCLASS; + } + } + + return style; + } + + var external = { + electricChars:"dDpPtTfFeE ", + startState: function() { + return { + tokenize: tokenBase, + lastToken: null, + currentIndent: 0, + nextLineIndent: 0, + doInCurrentLine: false, + ignoreKeyword: false + + + }; + }, + + token: function(stream, state) { + if (stream.sol()) { + state.currentIndent += state.nextLineIndent; + state.nextLineIndent = 0; + state.doInCurrentLine = 0; + } + var style = tokenLexer(stream, state); + + state.lastToken = {style:style, content: stream.current()}; + + if (style==='space') style=null; + + return style; + }, + + indent: function(state, textAfter) { + var trueText = textAfter.replace(/^\s+|\s+$/g, '') ; + if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1); + if(state.currentIndent < 0) return 0; + return state.currentIndent * conf.indentUnit; + } + + }; + return external; +}); + +CodeMirror.defineMIME("text/vbscript", "vbscript"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/velocity/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/velocity/index.html new file mode 100644 index 0000000..2747878 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/velocity/index.html @@ -0,0 +1,118 @@ + + +CodeMirror: Velocity mode + + + + + + + + + + +
                              +

                              Velocity mode

                              +
                              + + +

                              MIME types defined: text/velocity.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/velocity/velocity.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/velocity/velocity.js new file mode 100644 index 0000000..8fc4f95 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/velocity/velocity.js @@ -0,0 +1,201 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("velocity", function() { + function parseWords(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + var keywords = parseWords("#end #else #break #stop #[[ #]] " + + "#{end} #{else} #{break} #{stop}"); + var functions = parseWords("#if #elseif #foreach #set #include #parse #macro #define #evaluate " + + "#{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}"); + var specials = parseWords("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent"); + var isOperatorChar = /[+\-*&%=<>!?:\/|]/; + + function chain(stream, state, f) { + state.tokenize = f; + return f(stream, state); + } + function tokenBase(stream, state) { + var beforeParams = state.beforeParams; + state.beforeParams = false; + var ch = stream.next(); + // start of unparsed string? + if ((ch == "'") && state.inParams) { + state.lastTokenWasBuiltin = false; + return chain(stream, state, tokenString(ch)); + } + // start of parsed string? + else if ((ch == '"')) { + state.lastTokenWasBuiltin = false; + if (state.inString) { + state.inString = false; + return "string"; + } + else if (state.inParams) + return chain(stream, state, tokenString(ch)); + } + // is it one of the special signs []{}().,;? Seperator? + else if (/[\[\]{}\(\),;\.]/.test(ch)) { + if (ch == "(" && beforeParams) + state.inParams = true; + else if (ch == ")") { + state.inParams = false; + state.lastTokenWasBuiltin = true; + } + return null; + } + // start of a number value? + else if (/\d/.test(ch)) { + state.lastTokenWasBuiltin = false; + stream.eatWhile(/[\w\.]/); + return "number"; + } + // multi line comment? + else if (ch == "#" && stream.eat("*")) { + state.lastTokenWasBuiltin = false; + return chain(stream, state, tokenComment); + } + // unparsed content? + else if (ch == "#" && stream.match(/ *\[ *\[/)) { + state.lastTokenWasBuiltin = false; + return chain(stream, state, tokenUnparsed); + } + // single line comment? + else if (ch == "#" && stream.eat("#")) { + state.lastTokenWasBuiltin = false; + stream.skipToEnd(); + return "comment"; + } + // variable? + else if (ch == "$") { + stream.eatWhile(/[\w\d\$_\.{}]/); + // is it one of the specials? + if (specials && specials.propertyIsEnumerable(stream.current())) { + return "keyword"; + } + else { + state.lastTokenWasBuiltin = true; + state.beforeParams = true; + return "builtin"; + } + } + // is it a operator? + else if (isOperatorChar.test(ch)) { + state.lastTokenWasBuiltin = false; + stream.eatWhile(isOperatorChar); + return "operator"; + } + else { + // get the whole word + stream.eatWhile(/[\w\$_{}@]/); + var word = stream.current(); + // is it one of the listed keywords? + if (keywords && keywords.propertyIsEnumerable(word)) + return "keyword"; + // is it one of the listed functions? + if (functions && functions.propertyIsEnumerable(word) || + (stream.current().match(/^#@?[a-z0-9_]+ *$/i) && stream.peek()=="(") && + !(functions && functions.propertyIsEnumerable(word.toLowerCase()))) { + state.beforeParams = true; + state.lastTokenWasBuiltin = false; + return "keyword"; + } + if (state.inString) { + state.lastTokenWasBuiltin = false; + return "string"; + } + if (stream.pos > word.length && stream.string.charAt(stream.pos-word.length-1)=="." && state.lastTokenWasBuiltin) + return "builtin"; + // default: just a "word" + state.lastTokenWasBuiltin = false; + return null; + } + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while ((next = stream.next()) != null) { + if ((next == quote) && !escaped) { + end = true; + break; + } + if (quote=='"' && stream.peek() == '$' && !escaped) { + state.inString = true; + end = true; + break; + } + escaped = !escaped && next == "\\"; + } + if (end) state.tokenize = tokenBase; + return "string"; + }; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "#" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function tokenUnparsed(stream, state) { + var maybeEnd = 0, ch; + while (ch = stream.next()) { + if (ch == "#" && maybeEnd == 2) { + state.tokenize = tokenBase; + break; + } + if (ch == "]") + maybeEnd++; + else if (ch != " ") + maybeEnd = 0; + } + return "meta"; + } + // Interface + + return { + startState: function() { + return { + tokenize: tokenBase, + beforeParams: false, + inParams: false, + inString: false, + lastTokenWasBuiltin: false + }; + }, + + token: function(stream, state) { + if (stream.eatSpace()) return null; + return state.tokenize(stream, state); + }, + blockCommentStart: "#*", + blockCommentEnd: "*#", + lineComment: "##", + fold: "velocity" + }; +}); + +CodeMirror.defineMIME("text/velocity", "velocity"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/index.html new file mode 100644 index 0000000..2bac1c8 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/index.html @@ -0,0 +1,120 @@ + + +CodeMirror: Verilog/SystemVerilog mode + + + + + + + + + + +
                              +

                              SystemVerilog mode

                              + +
                              + + + +

                              +Syntax highlighting and indentation for the Verilog and SystemVerilog languages (IEEE 1800). +

                              Configuration options:

                              +
                                +
                              • noIndentKeywords - List of keywords which should not cause identation to increase. E.g. ["package", "module"]. Default: None
                              • +
                              +

                              + +

                              MIME types defined: text/x-verilog and text/x-systemverilog.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/test.js new file mode 100644 index 0000000..9c8c094 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/test.js @@ -0,0 +1,273 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({indentUnit: 4}, "verilog"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + MT("binary_literals", + "[number 1'b0]", + "[number 1'b1]", + "[number 1'bx]", + "[number 1'bz]", + "[number 1'bX]", + "[number 1'bZ]", + "[number 1'B0]", + "[number 1'B1]", + "[number 1'Bx]", + "[number 1'Bz]", + "[number 1'BX]", + "[number 1'BZ]", + "[number 1'b0]", + "[number 1'b1]", + "[number 2'b01]", + "[number 2'bxz]", + "[number 2'b11]", + "[number 2'b10]", + "[number 2'b1Z]", + "[number 12'b0101_0101_0101]", + "[number 1'b 0]", + "[number 'b0101]" + ); + + MT("octal_literals", + "[number 3'o7]", + "[number 3'O7]", + "[number 3'so7]", + "[number 3'SO7]" + ); + + MT("decimal_literals", + "[number 0]", + "[number 1]", + "[number 7]", + "[number 123_456]", + "[number 'd33]", + "[number 8'd255]", + "[number 8'D255]", + "[number 8'sd255]", + "[number 8'SD255]", + "[number 32'd123]", + "[number 32 'd123]", + "[number 32 'd 123]" + ); + + MT("hex_literals", + "[number 4'h0]", + "[number 4'ha]", + "[number 4'hF]", + "[number 4'hx]", + "[number 4'hz]", + "[number 4'hX]", + "[number 4'hZ]", + "[number 32'hdc78]", + "[number 32'hDC78]", + "[number 32 'hDC78]", + "[number 32'h DC78]", + "[number 32 'h DC78]", + "[number 32'h44x7]", + "[number 32'hFFF?]" + ); + + MT("real_number_literals", + "[number 1.2]", + "[number 0.1]", + "[number 2394.26331]", + "[number 1.2E12]", + "[number 1.2e12]", + "[number 1.30e-2]", + "[number 0.1e-0]", + "[number 23E10]", + "[number 29E-2]", + "[number 236.123_763_e-12]" + ); + + MT("operators", + "[meta ^]" + ); + + MT("keywords", + "[keyword logic]", + "[keyword logic] [variable foo]", + "[keyword reg] [variable abc]" + ); + + MT("variables", + "[variable _leading_underscore]", + "[variable _if]", + "[number 12] [variable foo]", + "[variable foo] [number 14]" + ); + + MT("tick_defines", + "[def `FOO]", + "[def `foo]", + "[def `FOO_bar]" + ); + + MT("system_calls", + "[meta $display]", + "[meta $vpi_printf]" + ); + + MT("line_comment", "[comment // Hello world]"); + + // Alignment tests + MT("align_port_map_style1", + /** + * mod mod(.a(a), + * .b(b) + * ); + */ + "[variable mod] [variable mod][bracket (].[variable a][bracket (][variable a][bracket )],", + " .[variable b][bracket (][variable b][bracket )]", + " [bracket )];", + "" + ); + + MT("align_port_map_style2", + /** + * mod mod( + * .a(a), + * .b(b) + * ); + */ + "[variable mod] [variable mod][bracket (]", + " .[variable a][bracket (][variable a][bracket )],", + " .[variable b][bracket (][variable b][bracket )]", + "[bracket )];", + "" + ); + + // Indentation tests + MT("indent_single_statement_if", + "[keyword if] [bracket (][variable foo][bracket )]", + " [keyword break];", + "" + ); + + MT("no_indent_after_single_line_if", + "[keyword if] [bracket (][variable foo][bracket )] [keyword break];", + "" + ); + + MT("indent_after_if_begin_same_line", + "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]", + " [keyword break];", + " [keyword break];", + "[keyword end]", + "" + ); + + MT("indent_after_if_begin_next_line", + "[keyword if] [bracket (][variable foo][bracket )]", + " [keyword begin]", + " [keyword break];", + " [keyword break];", + " [keyword end]", + "" + ); + + MT("indent_single_statement_if_else", + "[keyword if] [bracket (][variable foo][bracket )]", + " [keyword break];", + "[keyword else]", + " [keyword break];", + "" + ); + + MT("indent_if_else_begin_same_line", + "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]", + " [keyword break];", + " [keyword break];", + "[keyword end] [keyword else] [keyword begin]", + " [keyword break];", + " [keyword break];", + "[keyword end]", + "" + ); + + MT("indent_if_else_begin_next_line", + "[keyword if] [bracket (][variable foo][bracket )]", + " [keyword begin]", + " [keyword break];", + " [keyword break];", + " [keyword end]", + "[keyword else]", + " [keyword begin]", + " [keyword break];", + " [keyword break];", + " [keyword end]", + "" + ); + + MT("indent_if_nested_without_begin", + "[keyword if] [bracket (][variable foo][bracket )]", + " [keyword if] [bracket (][variable foo][bracket )]", + " [keyword if] [bracket (][variable foo][bracket )]", + " [keyword break];", + "" + ); + + MT("indent_case", + "[keyword case] [bracket (][variable state][bracket )]", + " [variable FOO]:", + " [keyword break];", + " [variable BAR]:", + " [keyword break];", + "[keyword endcase]", + "" + ); + + MT("unindent_after_end_with_preceding_text", + "[keyword begin]", + " [keyword break]; [keyword end]", + "" + ); + + MT("export_function_one_line_does_not_indent", + "[keyword export] [string \"DPI-C\"] [keyword function] [variable helloFromSV];", + "" + ); + + MT("export_task_one_line_does_not_indent", + "[keyword export] [string \"DPI-C\"] [keyword task] [variable helloFromSV];", + "" + ); + + MT("export_function_two_lines_indents_properly", + "[keyword export]", + " [string \"DPI-C\"] [keyword function] [variable helloFromSV];", + "" + ); + + MT("export_task_two_lines_indents_properly", + "[keyword export]", + " [string \"DPI-C\"] [keyword task] [variable helloFromSV];", + "" + ); + + MT("import_function_one_line_does_not_indent", + "[keyword import] [string \"DPI-C\"] [keyword function] [variable helloFromC];", + "" + ); + + MT("import_task_one_line_does_not_indent", + "[keyword import] [string \"DPI-C\"] [keyword task] [variable helloFromC];", + "" + ); + + MT("import_package_single_line_does_not_indent", + "[keyword import] [variable p]::[variable x];", + "[keyword import] [variable p]::[variable y];", + "" + ); + + MT("covergoup_with_function_indents_properly", + "[keyword covergroup] [variable cg] [keyword with] [keyword function] [variable sample][bracket (][keyword bit] [variable b][bracket )];", + " [variable c] : [keyword coverpoint] [variable c];", + "[keyword endgroup]: [variable cg]", + "" + ); + +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/verilog.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/verilog.js new file mode 100644 index 0000000..8fc9ea4 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/verilog/verilog.js @@ -0,0 +1,364 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("verilog", function(config, parserConfig) { + + var indentUnit = config.indentUnit, + statementIndentUnit = parserConfig.statementIndentUnit || indentUnit, + dontAlignCalls = parserConfig.dontAlignCalls, + noIndentKeywords = parserConfig.noIndentKeywords || [], + multiLineStrings = parserConfig.multiLineStrings; + + function words(str) { + var obj = {}, words = str.split(" "); + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + /** + * Keywords from IEEE 1800-2012 + */ + var keywords = words( + "accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind " + + "bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config " + + "const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable " + + "dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup " + + "endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask " + + "enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin " + + "function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import " + + "incdir include initial inout input inside instance int integer interconnect interface intersect join join_any " + + "join_none large let liblist library local localparam logic longint macromodule matches medium modport module " + + "nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed " + + "parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup " + + "pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg " + + "reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime " + + "s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify " + + "specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on " + + "table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior " + + "trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void " + + "wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor"); + + /** Operators from IEEE 1800-2012 + unary_operator ::= + + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~ + binary_operator ::= + + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | ** + | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<< + | -> | <-> + inc_or_dec_operator ::= ++ | -- + unary_module_path_operator ::= + ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~ + binary_module_path_operator ::= + == | != | && | || | & | | | ^ | ^~ | ~^ + */ + var isOperatorChar = /[\+\-\*\/!~&|^%=?:]/; + var isBracketChar = /[\[\]{}()]/; + + var unsignedNumber = /\d[0-9_]*/; + var decimalLiteral = /\d*\s*'s?d\s*\d[0-9_]*/i; + var binaryLiteral = /\d*\s*'s?b\s*[xz01][xz01_]*/i; + var octLiteral = /\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i; + var hexLiteral = /\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i; + var realLiteral = /(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i; + + var closingBracketOrWord = /^((\w+)|[)}\]])/; + var closingBracket = /[)}\]]/; + + var curPunc; + var curKeyword; + + // Block openings which are closed by a matching keyword in the form of ("end" + keyword) + // E.g. "task" => "endtask" + var blockKeywords = words( + "case checker class clocking config function generate interface module package" + + "primitive program property specify sequence table task" + ); + + // Opening/closing pairs + var openClose = {}; + for (var keyword in blockKeywords) { + openClose[keyword] = "end" + keyword; + } + openClose["begin"] = "end"; + openClose["casex"] = "endcase"; + openClose["casez"] = "endcase"; + openClose["do" ] = "while"; + openClose["fork" ] = "join;join_any;join_none"; + openClose["covergroup"] = "endgroup"; + + for (var i in noIndentKeywords) { + var keyword = noIndentKeywords[i]; + if (openClose[keyword]) { + openClose[keyword] = undefined; + } + } + + // Keywords which open statements that are ended with a semi-colon + var statementKeywords = words("always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while"); + + function tokenBase(stream, state) { + var ch = stream.peek(); + if (/[,;:\.]/.test(ch)) { + curPunc = stream.next(); + return null; + } + if (isBracketChar.test(ch)) { + curPunc = stream.next(); + return "bracket"; + } + // Macros (tick-defines) + if (ch == '`') { + stream.next(); + if (stream.eatWhile(/[\w\$_]/)) { + return "def"; + } else { + return null; + } + } + // System calls + if (ch == '$') { + stream.next(); + if (stream.eatWhile(/[\w\$_]/)) { + return "meta"; + } else { + return null; + } + } + // Time literals + if (ch == '#') { + stream.next(); + stream.eatWhile(/[\d_.]/); + return "def"; + } + // Strings + if (ch == '"') { + stream.next(); + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + // Comments + if (ch == "/") { + stream.next(); + if (stream.eat("*")) { + state.tokenize = tokenComment; + return tokenComment(stream, state); + } + if (stream.eat("/")) { + stream.skipToEnd(); + return "comment"; + } + stream.backUp(1); + } + + // Numeric literals + if (stream.match(realLiteral) || + stream.match(decimalLiteral) || + stream.match(binaryLiteral) || + stream.match(octLiteral) || + stream.match(hexLiteral) || + stream.match(unsignedNumber) || + stream.match(realLiteral)) { + return "number"; + } + + // Operators + if (stream.eatWhile(isOperatorChar)) { + return "meta"; + } + + // Keywords / plain variables + if (stream.eatWhile(/[\w\$_]/)) { + var cur = stream.current(); + if (keywords[cur]) { + if (openClose[cur]) { + curPunc = "newblock"; + } + if (statementKeywords[cur]) { + curPunc = "newstatement"; + } + curKeyword = cur; + return "keyword"; + } + return "variable"; + } + + stream.next(); + return null; + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next, end = false; + while ((next = stream.next()) != null) { + if (next == quote && !escaped) {end = true; break;} + escaped = !escaped && next == "\\"; + } + if (end || !(escaped || multiLineStrings)) + state.tokenize = tokenBase; + return "string"; + }; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return "comment"; + } + + function Context(indented, column, type, align, prev) { + this.indented = indented; + this.column = column; + this.type = type; + this.align = align; + this.prev = prev; + } + function pushContext(state, col, type) { + var indent = state.indented; + var c = new Context(indent, col, type, null, state.context); + return state.context = c; + } + function popContext(state) { + var t = state.context.type; + if (t == ")" || t == "]" || t == "}") { + state.indented = state.context.indented; + } + return state.context = state.context.prev; + } + + function isClosing(text, contextClosing) { + if (text == contextClosing) { + return true; + } else { + // contextClosing may be mulitple keywords separated by ; + var closingKeywords = contextClosing.split(";"); + for (var i in closingKeywords) { + if (text == closingKeywords[i]) { + return true; + } + } + return false; + } + } + + function buildElectricInputRegEx() { + // Reindentation should occur on any bracket char: {}()[] + // or on a match of any of the block closing keywords, at + // the end of a line + var allClosings = []; + for (var i in openClose) { + if (openClose[i]) { + var closings = openClose[i].split(";"); + for (var j in closings) { + allClosings.push(closings[j]); + } + } + } + var re = new RegExp("[{}()\\[\\]]|(" + allClosings.join("|") + ")$"); + return re; + } + + // Interface + return { + + // Regex to force current line to reindent + electricInput: buildElectricInputRegEx(), + + startState: function(basecolumn) { + return { + tokenize: null, + context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), + indented: 0, + startOfLine: true + }; + }, + + token: function(stream, state) { + var ctx = state.context; + if (stream.sol()) { + if (ctx.align == null) ctx.align = false; + state.indented = stream.indentation(); + state.startOfLine = true; + } + if (stream.eatSpace()) return null; + curPunc = null; + curKeyword = null; + var style = (state.tokenize || tokenBase)(stream, state); + if (style == "comment" || style == "meta" || style == "variable") return style; + if (ctx.align == null) ctx.align = true; + + if (curPunc == ctx.type) { + popContext(state); + } + else if ((curPunc == ";" && ctx.type == "statement") || + (ctx.type && isClosing(curKeyword, ctx.type))) { + ctx = popContext(state); + while (ctx && ctx.type == "statement") ctx = popContext(state); + } + else if (curPunc == "{") { pushContext(state, stream.column(), "}"); } + else if (curPunc == "[") { pushContext(state, stream.column(), "]"); } + else if (curPunc == "(") { pushContext(state, stream.column(), ")"); } + else if (ctx && ctx.type == "endcase" && curPunc == ":") { pushContext(state, stream.column(), "statement"); } + else if (curPunc == "newstatement") { + pushContext(state, stream.column(), "statement"); + } else if (curPunc == "newblock") { + if (curKeyword == "function" && ctx && (ctx.type == "statement" || ctx.type == "endgroup")) { + // The 'function' keyword can appear in some other contexts where it actually does not + // indicate a function (import/export DPI and covergroup definitions). + // Do nothing in this case + } else if (curKeyword == "task" && ctx && ctx.type == "statement") { + // Same thing for task + } else { + var close = openClose[curKeyword]; + pushContext(state, stream.column(), close); + } + } + + state.startOfLine = false; + return style; + }, + + indent: function(state, textAfter) { + if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass; + var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); + if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev; + var closing = false; + var possibleClosing = textAfter.match(closingBracketOrWord); + if (possibleClosing) { + closing = isClosing(possibleClosing[0], ctx.type); + } + if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit); + else if (closingBracket.test(ctx.type) && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1); + else if (ctx.type == ")" && !closing) return ctx.indented + statementIndentUnit; + else return ctx.indented + (closing ? 0 : indentUnit); + }, + + blockCommentStart: "/*", + blockCommentEnd: "*/", + lineComment: "//" + }; +}); + +CodeMirror.defineMIME("text/x-verilog", { + name: "verilog" +}); +CodeMirror.defineMIME("text/x-systemverilog", { + name: "systemverilog" +}); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/index.html new file mode 100644 index 0000000..7149f06 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/index.html @@ -0,0 +1,57 @@ + + +CodeMirror: XML mode + + + + + + + + + +
                              +

                              XML mode

                              +
                              + +

                              The XML mode supports two configuration parameters:

                              +
                              +
                              htmlMode (boolean)
                              +
                              This switches the mode to parse HTML instead of XML. This + means attributes do not have to be quoted, and some elements + (such as br) do not require a closing tag.
                              +
                              alignCDATA (boolean)
                              +
                              Setting this to true will force the opening tag of CDATA + blocks to not be indented.
                              +
                              + +

                              MIME types defined: application/xml, text/html.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/test.js new file mode 100644 index 0000000..f48156b --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/test.js @@ -0,0 +1,51 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function() { + var mode = CodeMirror.getMode({indentUnit: 2}, "xml"), mname = "xml"; + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); } + + MT("matching", + "[tag&bracket <][tag top][tag&bracket >]", + " text", + " [tag&bracket <][tag inner][tag&bracket />]", + "[tag&bracket ]"); + + MT("nonmatching", + "[tag&bracket <][tag top][tag&bracket >]", + " [tag&bracket <][tag inner][tag&bracket />]", + " [tag&bracket ]"); + + MT("doctype", + "[meta ]", + "[tag&bracket <][tag top][tag&bracket />]"); + + MT("cdata", + "[tag&bracket <][tag top][tag&bracket >]", + " [atom ]", + "[tag&bracket ]"); + + // HTML tests + mode = CodeMirror.getMode({indentUnit: 2}, "text/html"); + + MT("selfclose", + "[tag&bracket <][tag html][tag&bracket >]", + " [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \"/foobar\"][tag&bracket >]", + "[tag&bracket ]"); + + MT("list", + "[tag&bracket <][tag ol][tag&bracket >]", + " [tag&bracket <][tag li][tag&bracket >]one", + " [tag&bracket <][tag li][tag&bracket >]two", + "[tag&bracket ]"); + + MT("valueless", + "[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]"); + + MT("pThenArticle", + "[tag&bracket <][tag p][tag&bracket >]", + " foo", + "[tag&bracket <][tag article][tag&bracket >]bar"); + +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/xml.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/xml.js new file mode 100644 index 0000000..2f3b8f8 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xml/xml.js @@ -0,0 +1,384 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("xml", function(config, parserConfig) { + var indentUnit = config.indentUnit; + var multilineTagIndentFactor = parserConfig.multilineTagIndentFactor || 1; + var multilineTagIndentPastTag = parserConfig.multilineTagIndentPastTag; + if (multilineTagIndentPastTag == null) multilineTagIndentPastTag = true; + + var Kludges = parserConfig.htmlMode ? { + autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true, + 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true, + 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true, + 'track': true, 'wbr': true, 'menuitem': true}, + implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true, + 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true, + 'th': true, 'tr': true}, + contextGrabbers: { + 'dd': {'dd': true, 'dt': true}, + 'dt': {'dd': true, 'dt': true}, + 'li': {'li': true}, + 'option': {'option': true, 'optgroup': true}, + 'optgroup': {'optgroup': true}, + 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true, + 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true, + 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true, + 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true, + 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true}, + 'rp': {'rp': true, 'rt': true}, + 'rt': {'rp': true, 'rt': true}, + 'tbody': {'tbody': true, 'tfoot': true}, + 'td': {'td': true, 'th': true}, + 'tfoot': {'tbody': true}, + 'th': {'td': true, 'th': true}, + 'thead': {'tbody': true, 'tfoot': true}, + 'tr': {'tr': true} + }, + doNotIndent: {"pre": true}, + allowUnquoted: true, + allowMissing: true, + caseFold: true + } : { + autoSelfClosers: {}, + implicitlyClosed: {}, + contextGrabbers: {}, + doNotIndent: {}, + allowUnquoted: false, + allowMissing: false, + caseFold: false + }; + var alignCDATA = parserConfig.alignCDATA; + + // Return variables for tokenizers + var type, setStyle; + + function inText(stream, state) { + function chain(parser) { + state.tokenize = parser; + return parser(stream, state); + } + + var ch = stream.next(); + if (ch == "<") { + if (stream.eat("!")) { + if (stream.eat("[")) { + if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>")); + else return null; + } else if (stream.match("--")) { + return chain(inBlock("comment", "-->")); + } else if (stream.match("DOCTYPE", true, true)) { + stream.eatWhile(/[\w\._\-]/); + return chain(doctype(1)); + } else { + return null; + } + } else if (stream.eat("?")) { + stream.eatWhile(/[\w\._\-]/); + state.tokenize = inBlock("meta", "?>"); + return "meta"; + } else { + type = stream.eat("/") ? "closeTag" : "openTag"; + state.tokenize = inTag; + return "tag bracket"; + } + } else if (ch == "&") { + var ok; + if (stream.eat("#")) { + if (stream.eat("x")) { + ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";"); + } else { + ok = stream.eatWhile(/[\d]/) && stream.eat(";"); + } + } else { + ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";"); + } + return ok ? "atom" : "error"; + } else { + stream.eatWhile(/[^&<]/); + return null; + } + } + + function inTag(stream, state) { + var ch = stream.next(); + if (ch == ">" || (ch == "/" && stream.eat(">"))) { + state.tokenize = inText; + type = ch == ">" ? "endTag" : "selfcloseTag"; + return "tag bracket"; + } else if (ch == "=") { + type = "equals"; + return null; + } else if (ch == "<") { + state.tokenize = inText; + state.state = baseState; + state.tagName = state.tagStart = null; + var next = state.tokenize(stream, state); + return next ? next + " tag error" : "tag error"; + } else if (/[\'\"]/.test(ch)) { + state.tokenize = inAttribute(ch); + state.stringStartCol = stream.column(); + return state.tokenize(stream, state); + } else { + stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/); + return "word"; + } + } + + function inAttribute(quote) { + var closure = function(stream, state) { + while (!stream.eol()) { + if (stream.next() == quote) { + state.tokenize = inTag; + break; + } + } + return "string"; + }; + closure.isInAttribute = true; + return closure; + } + + function inBlock(style, terminator) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.match(terminator)) { + state.tokenize = inText; + break; + } + stream.next(); + } + return style; + }; + } + function doctype(depth) { + return function(stream, state) { + var ch; + while ((ch = stream.next()) != null) { + if (ch == "<") { + state.tokenize = doctype(depth + 1); + return state.tokenize(stream, state); + } else if (ch == ">") { + if (depth == 1) { + state.tokenize = inText; + break; + } else { + state.tokenize = doctype(depth - 1); + return state.tokenize(stream, state); + } + } + } + return "meta"; + }; + } + + function Context(state, tagName, startOfLine) { + this.prev = state.context; + this.tagName = tagName; + this.indent = state.indented; + this.startOfLine = startOfLine; + if (Kludges.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent)) + this.noIndent = true; + } + function popContext(state) { + if (state.context) state.context = state.context.prev; + } + function maybePopContext(state, nextTagName) { + var parentTagName; + while (true) { + if (!state.context) { + return; + } + parentTagName = state.context.tagName; + if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) || + !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) { + return; + } + popContext(state); + } + } + + function baseState(type, stream, state) { + if (type == "openTag") { + state.tagStart = stream.column(); + return tagNameState; + } else if (type == "closeTag") { + return closeTagNameState; + } else { + return baseState; + } + } + function tagNameState(type, stream, state) { + if (type == "word") { + state.tagName = stream.current(); + setStyle = "tag"; + return attrState; + } else { + setStyle = "error"; + return tagNameState; + } + } + function closeTagNameState(type, stream, state) { + if (type == "word") { + var tagName = stream.current(); + if (state.context && state.context.tagName != tagName && + Kludges.implicitlyClosed.hasOwnProperty(state.context.tagName)) + popContext(state); + if (state.context && state.context.tagName == tagName) { + setStyle = "tag"; + return closeState; + } else { + setStyle = "tag error"; + return closeStateErr; + } + } else { + setStyle = "error"; + return closeStateErr; + } + } + + function closeState(type, _stream, state) { + if (type != "endTag") { + setStyle = "error"; + return closeState; + } + popContext(state); + return baseState; + } + function closeStateErr(type, stream, state) { + setStyle = "error"; + return closeState(type, stream, state); + } + + function attrState(type, _stream, state) { + if (type == "word") { + setStyle = "attribute"; + return attrEqState; + } else if (type == "endTag" || type == "selfcloseTag") { + var tagName = state.tagName, tagStart = state.tagStart; + state.tagName = state.tagStart = null; + if (type == "selfcloseTag" || + Kludges.autoSelfClosers.hasOwnProperty(tagName)) { + maybePopContext(state, tagName); + } else { + maybePopContext(state, tagName); + state.context = new Context(state, tagName, tagStart == state.indented); + } + return baseState; + } + setStyle = "error"; + return attrState; + } + function attrEqState(type, stream, state) { + if (type == "equals") return attrValueState; + if (!Kludges.allowMissing) setStyle = "error"; + return attrState(type, stream, state); + } + function attrValueState(type, stream, state) { + if (type == "string") return attrContinuedState; + if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return attrState;} + setStyle = "error"; + return attrState(type, stream, state); + } + function attrContinuedState(type, stream, state) { + if (type == "string") return attrContinuedState; + return attrState(type, stream, state); + } + + return { + startState: function() { + return {tokenize: inText, + state: baseState, + indented: 0, + tagName: null, tagStart: null, + context: null}; + }, + + token: function(stream, state) { + if (!state.tagName && stream.sol()) + state.indented = stream.indentation(); + + if (stream.eatSpace()) return null; + type = null; + var style = state.tokenize(stream, state); + if ((style || type) && style != "comment") { + setStyle = null; + state.state = state.state(type || style, stream, state); + if (setStyle) + style = setStyle == "error" ? style + " error" : setStyle; + } + return style; + }, + + indent: function(state, textAfter, fullLine) { + var context = state.context; + // Indent multi-line strings (e.g. css). + if (state.tokenize.isInAttribute) { + if (state.tagStart == state.indented) + return state.stringStartCol + 1; + else + return state.indented + indentUnit; + } + if (context && context.noIndent) return CodeMirror.Pass; + if (state.tokenize != inTag && state.tokenize != inText) + return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0; + // Indent the starts of attribute names. + if (state.tagName) { + if (multilineTagIndentPastTag) + return state.tagStart + state.tagName.length + 2; + else + return state.tagStart + indentUnit * multilineTagIndentFactor; + } + if (alignCDATA && /$/, + blockCommentStart: "", + + configuration: parserConfig.htmlMode ? "html" : "xml", + helperType: parserConfig.htmlMode ? "html" : "xml" + }; +}); + +CodeMirror.defineMIME("text/xml", "xml"); +CodeMirror.defineMIME("application/xml", "xml"); +if (!CodeMirror.mimeModes.hasOwnProperty("text/html")) + CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true}); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/index.html new file mode 100644 index 0000000..50c3eb3 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/index.html @@ -0,0 +1,210 @@ + + +CodeMirror: XQuery mode + + + + + + + + + + +
                              +

                              XQuery mode

                              + + +
                              + +
                              + + + +

                              MIME types defined: application/xquery.

                              + +

                              Development of the CodeMirror XQuery mode was sponsored by + MarkLogic and developed by + Mike Brevoort. +

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/test.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/test.js new file mode 100644 index 0000000..1f148cd --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/test.js @@ -0,0 +1,67 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +// Don't take these too seriously -- the expected results appear to be +// based on the results of actual runs without any serious manual +// verification. If a change you made causes them to fail, the test is +// as likely to wrong as the code. + +(function() { + var mode = CodeMirror.getMode({tabSize: 4}, "xquery"); + function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } + + MT("eviltest", + "[keyword xquery] [keyword version] [variable "1][keyword .][atom 0][keyword -][variable ml"][def&variable ;] [comment (: this is : a \"comment\" :)]", + " [keyword let] [variable $let] [keyword :=] [variable <x] [variable attr][keyword =][variable "value">"test"<func>][def&variable ;function]() [variable $var] {[keyword function]()} {[variable $var]}[variable <][keyword /][variable func><][keyword /][variable x>]", + " [keyword let] [variable $joe][keyword :=][atom 1]", + " [keyword return] [keyword element] [variable element] {", + " [keyword attribute] [variable attribute] { [atom 1] },", + " [keyword element] [variable test] { [variable 'a'] }, [keyword attribute] [variable foo] { [variable "bar"] },", + " [def&variable fn:doc]()[[ [variable foo][keyword /][variable @bar] [keyword eq] [variable $let] ]],", + " [keyword //][variable x] } [comment (: a more 'evil' test :)]", + " [comment (: Modified Blakeley example (: with nested comment :) ... :)]", + " [keyword declare] [keyword private] [keyword function] [def&variable local:declare]() {()}[variable ;]", + " [keyword declare] [keyword private] [keyword function] [def&variable local:private]() {()}[variable ;]", + " [keyword declare] [keyword private] [keyword function] [def&variable local:function]() {()}[variable ;]", + " [keyword declare] [keyword private] [keyword function] [def&variable local:local]() {()}[variable ;]", + " [keyword let] [variable $let] [keyword :=] [variable <let>let] [variable $let] [keyword :=] [variable "let"<][keyword /let][variable >]", + " [keyword return] [keyword element] [variable element] {", + " [keyword attribute] [variable attribute] { [keyword try] { [def&variable xdmp:version]() } [keyword catch]([variable $e]) { [def&variable xdmp:log]([variable $e]) } },", + " [keyword attribute] [variable fn:doc] { [variable "bar"] [variable castable] [keyword as] [atom xs:string] },", + " [keyword element] [variable text] { [keyword text] { [variable "text"] } },", + " [def&variable fn:doc]()[[ [qualifier child::][variable eq][keyword /]([variable @bar] [keyword |] [qualifier attribute::][variable attribute]) [keyword eq] [variable $let] ]],", + " [keyword //][variable fn:doc]", + " }"); + + MT("testEmptySequenceKeyword", + "[string \"foo\"] [keyword instance] [keyword of] [keyword empty-sequence]()"); + + MT("testMultiAttr", + "[tag

                              ][variable hello] [variable world][tag

                              ]"); + + MT("test namespaced variable", + "[keyword declare] [keyword namespace] [variable e] [keyword =] [string \"http://example.com/ANamespace\"][variable ;declare] [keyword variable] [variable $e:exampleComThisVarIsNotRecognized] [keyword as] [keyword element]([keyword *]) [variable external;]"); + + MT("test EQName variable", + "[keyword declare] [keyword variable] [variable $\"http://www.example.com/ns/my\":var] [keyword :=] [atom 12][variable ;]", + "[tag ]{[variable $\"http://www.example.com/ns/my\":var]}[tag ]"); + + MT("test EQName function", + "[keyword declare] [keyword function] [def&variable \"http://www.example.com/ns/my\":fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {", + " [variable $a] [keyword +] [atom 2]", + "}[variable ;]", + "[tag ]{[def&variable \"http://www.example.com/ns/my\":fn]([atom 12])}[tag ]"); + + MT("test EQName function with single quotes", + "[keyword declare] [keyword function] [def&variable 'http://www.example.com/ns/my':fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {", + " [variable $a] [keyword +] [atom 2]", + "}[variable ;]", + "[tag ]{[def&variable 'http://www.example.com/ns/my':fn]([atom 12])}[tag ]"); + + MT("testProcessingInstructions", + "[def&variable data]([comment&meta ]) [keyword instance] [keyword of] [atom xs:string]"); + + MT("testQuoteEscapeDouble", + "[keyword let] [variable $rootfolder] [keyword :=] [string \"c:\\builds\\winnt\\HEAD\\qa\\scripts\\\"]", + "[keyword let] [variable $keysfolder] [keyword :=] [def&variable concat]([variable $rootfolder], [string \"keys\\\"])"); +})(); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/xquery.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/xquery.js new file mode 100644 index 0000000..c8f3d90 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/xquery/xquery.js @@ -0,0 +1,447 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("xquery", function() { + + // The keywords object is set to the result of this self executing + // function. Each keyword is a property of the keywords object whose + // value is {type: atype, style: astyle} + var keywords = function(){ + // conveinence functions used to build keywords object + function kw(type) {return {type: type, style: "keyword"};} + var A = kw("keyword a") + , B = kw("keyword b") + , C = kw("keyword c") + , operator = kw("operator") + , atom = {type: "atom", style: "atom"} + , punctuation = {type: "punctuation", style: null} + , qualifier = {type: "axis_specifier", style: "qualifier"}; + + // kwObj is what is return from this function at the end + var kwObj = { + 'if': A, 'switch': A, 'while': A, 'for': A, + 'else': B, 'then': B, 'try': B, 'finally': B, 'catch': B, + 'element': C, 'attribute': C, 'let': C, 'implements': C, 'import': C, 'module': C, 'namespace': C, + 'return': C, 'super': C, 'this': C, 'throws': C, 'where': C, 'private': C, + ',': punctuation, + 'null': atom, 'fn:false()': atom, 'fn:true()': atom + }; + + // a list of 'basic' keywords. For each add a property to kwObj with the value of + // {type: basic[i], style: "keyword"} e.g. 'after' --> {type: "after", style: "keyword"} + var basic = ['after','ancestor','ancestor-or-self','and','as','ascending','assert','attribute','before', + 'by','case','cast','child','comment','declare','default','define','descendant','descendant-or-self', + 'descending','document','document-node','element','else','eq','every','except','external','following', + 'following-sibling','follows','for','function','if','import','in','instance','intersect','item', + 'let','module','namespace','node','node','of','only','or','order','parent','precedes','preceding', + 'preceding-sibling','processing-instruction','ref','return','returns','satisfies','schema','schema-element', + 'self','some','sortby','stable','text','then','to','treat','typeswitch','union','variable','version','where', + 'xquery', 'empty-sequence']; + for(var i=0, l=basic.length; i < l; i++) { kwObj[basic[i]] = kw(basic[i]);}; + + // a list of types. For each add a property to kwObj with the value of + // {type: "atom", style: "atom"} + var types = ['xs:string', 'xs:float', 'xs:decimal', 'xs:double', 'xs:integer', 'xs:boolean', 'xs:date', 'xs:dateTime', + 'xs:time', 'xs:duration', 'xs:dayTimeDuration', 'xs:time', 'xs:yearMonthDuration', 'numeric', 'xs:hexBinary', + 'xs:base64Binary', 'xs:anyURI', 'xs:QName', 'xs:byte','xs:boolean','xs:anyURI','xf:yearMonthDuration']; + for(var i=0, l=types.length; i < l; i++) { kwObj[types[i]] = atom;}; + + // each operator will add a property to kwObj with value of {type: "operator", style: "keyword"} + var operators = ['eq', 'ne', 'lt', 'le', 'gt', 'ge', ':=', '=', '>', '>=', '<', '<=', '.', '|', '?', 'and', 'or', 'div', 'idiv', 'mod', '*', '/', '+', '-']; + for(var i=0, l=operators.length; i < l; i++) { kwObj[operators[i]] = operator;}; + + // each axis_specifiers will add a property to kwObj with value of {type: "axis_specifier", style: "qualifier"} + var axis_specifiers = ["self::", "attribute::", "child::", "descendant::", "descendant-or-self::", "parent::", + "ancestor::", "ancestor-or-self::", "following::", "preceding::", "following-sibling::", "preceding-sibling::"]; + for(var i=0, l=axis_specifiers.length; i < l; i++) { kwObj[axis_specifiers[i]] = qualifier; }; + + return kwObj; + }(); + + // Used as scratch variables to communicate multiple values without + // consing up tons of objects. + var type, content; + + function ret(tp, style, cont) { + type = tp; content = cont; + return style; + } + + function chain(stream, state, f) { + state.tokenize = f; + return f(stream, state); + } + + // the primary mode tokenizer + function tokenBase(stream, state) { + var ch = stream.next(), + mightBeFunction = false, + isEQName = isEQNameAhead(stream); + + // an XML tag (if not in some sub, chained tokenizer) + if (ch == "<") { + if(stream.match("!--", true)) + return chain(stream, state, tokenXMLComment); + + if(stream.match("![CDATA", false)) { + state.tokenize = tokenCDATA; + return ret("tag", "tag"); + } + + if(stream.match("?", false)) { + return chain(stream, state, tokenPreProcessing); + } + + var isclose = stream.eat("/"); + stream.eatSpace(); + var tagName = "", c; + while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c; + + return chain(stream, state, tokenTag(tagName, isclose)); + } + // start code block + else if(ch == "{") { + pushStateStack(state,{ type: "codeblock"}); + return ret("", null); + } + // end code block + else if(ch == "}") { + popStateStack(state); + return ret("", null); + } + // if we're in an XML block + else if(isInXmlBlock(state)) { + if(ch == ">") + return ret("tag", "tag"); + else if(ch == "/" && stream.eat(">")) { + popStateStack(state); + return ret("tag", "tag"); + } + else + return ret("word", "variable"); + } + // if a number + else if (/\d/.test(ch)) { + stream.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/); + return ret("number", "atom"); + } + // comment start + else if (ch === "(" && stream.eat(":")) { + pushStateStack(state, { type: "comment"}); + return chain(stream, state, tokenComment); + } + // quoted string + else if ( !isEQName && (ch === '"' || ch === "'")) + return chain(stream, state, tokenString(ch)); + // variable + else if(ch === "$") { + return chain(stream, state, tokenVariable); + } + // assignment + else if(ch ===":" && stream.eat("=")) { + return ret("operator", "keyword"); + } + // open paren + else if(ch === "(") { + pushStateStack(state, { type: "paren"}); + return ret("", null); + } + // close paren + else if(ch === ")") { + popStateStack(state); + return ret("", null); + } + // open paren + else if(ch === "[") { + pushStateStack(state, { type: "bracket"}); + return ret("", null); + } + // close paren + else if(ch === "]") { + popStateStack(state); + return ret("", null); + } + else { + var known = keywords.propertyIsEnumerable(ch) && keywords[ch]; + + // if there's a EQName ahead, consume the rest of the string portion, it's likely a function + if(isEQName && ch === '\"') while(stream.next() !== '"'){} + if(isEQName && ch === '\'') while(stream.next() !== '\''){} + + // gobble up a word if the character is not known + if(!known) stream.eatWhile(/[\w\$_-]/); + + // gobble a colon in the case that is a lib func type call fn:doc + var foundColon = stream.eat(":"); + + // if there's not a second colon, gobble another word. Otherwise, it's probably an axis specifier + // which should get matched as a keyword + if(!stream.eat(":") && foundColon) { + stream.eatWhile(/[\w\$_-]/); + } + // if the next non whitespace character is an open paren, this is probably a function (if not a keyword of other sort) + if(stream.match(/^[ \t]*\(/, false)) { + mightBeFunction = true; + } + // is the word a keyword? + var word = stream.current(); + known = keywords.propertyIsEnumerable(word) && keywords[word]; + + // if we think it's a function call but not yet known, + // set style to variable for now for lack of something better + if(mightBeFunction && !known) known = {type: "function_call", style: "variable def"}; + + // if the previous word was element, attribute, axis specifier, this word should be the name of that + if(isInXmlConstructor(state)) { + popStateStack(state); + return ret("word", "variable", word); + } + // as previously checked, if the word is element,attribute, axis specifier, call it an "xmlconstructor" and + // push the stack so we know to look for it on the next word + if(word == "element" || word == "attribute" || known.type == "axis_specifier") pushStateStack(state, {type: "xmlconstructor"}); + + // if the word is known, return the details of that else just call this a generic 'word' + return known ? ret(known.type, known.style, word) : + ret("word", "variable", word); + } + } + + // handle comments, including nested + function tokenComment(stream, state) { + var maybeEnd = false, maybeNested = false, nestedCount = 0, ch; + while (ch = stream.next()) { + if (ch == ")" && maybeEnd) { + if(nestedCount > 0) + nestedCount--; + else { + popStateStack(state); + break; + } + } + else if(ch == ":" && maybeNested) { + nestedCount++; + } + maybeEnd = (ch == ":"); + maybeNested = (ch == "("); + } + + return ret("comment", "comment"); + } + + // tokenizer for string literals + // optionally pass a tokenizer function to set state.tokenize back to when finished + function tokenString(quote, f) { + return function(stream, state) { + var ch; + + if(isInString(state) && stream.current() == quote) { + popStateStack(state); + if(f) state.tokenize = f; + return ret("string", "string"); + } + + pushStateStack(state, { type: "string", name: quote, tokenize: tokenString(quote, f) }); + + // if we're in a string and in an XML block, allow an embedded code block + if(stream.match("{", false) && isInXmlAttributeBlock(state)) { + state.tokenize = tokenBase; + return ret("string", "string"); + } + + + while (ch = stream.next()) { + if (ch == quote) { + popStateStack(state); + if(f) state.tokenize = f; + break; + } + else { + // if we're in a string and in an XML block, allow an embedded code block in an attribute + if(stream.match("{", false) && isInXmlAttributeBlock(state)) { + state.tokenize = tokenBase; + return ret("string", "string"); + } + + } + } + + return ret("string", "string"); + }; + } + + // tokenizer for variables + function tokenVariable(stream, state) { + var isVariableChar = /[\w\$_-]/; + + // a variable may start with a quoted EQName so if the next character is quote, consume to the next quote + if(stream.eat("\"")) { + while(stream.next() !== '\"'){}; + stream.eat(":"); + } else { + stream.eatWhile(isVariableChar); + if(!stream.match(":=", false)) stream.eat(":"); + } + stream.eatWhile(isVariableChar); + state.tokenize = tokenBase; + return ret("variable", "variable"); + } + + // tokenizer for XML tags + function tokenTag(name, isclose) { + return function(stream, state) { + stream.eatSpace(); + if(isclose && stream.eat(">")) { + popStateStack(state); + state.tokenize = tokenBase; + return ret("tag", "tag"); + } + // self closing tag without attributes? + if(!stream.eat("/")) + pushStateStack(state, { type: "tag", name: name, tokenize: tokenBase}); + if(!stream.eat(">")) { + state.tokenize = tokenAttribute; + return ret("tag", "tag"); + } + else { + state.tokenize = tokenBase; + } + return ret("tag", "tag"); + }; + } + + // tokenizer for XML attributes + function tokenAttribute(stream, state) { + var ch = stream.next(); + + if(ch == "/" && stream.eat(">")) { + if(isInXmlAttributeBlock(state)) popStateStack(state); + if(isInXmlBlock(state)) popStateStack(state); + return ret("tag", "tag"); + } + if(ch == ">") { + if(isInXmlAttributeBlock(state)) popStateStack(state); + return ret("tag", "tag"); + } + if(ch == "=") + return ret("", null); + // quoted string + if (ch == '"' || ch == "'") + return chain(stream, state, tokenString(ch, tokenAttribute)); + + if(!isInXmlAttributeBlock(state)) + pushStateStack(state, { type: "attribute", tokenize: tokenAttribute}); + + stream.eat(/[a-zA-Z_:]/); + stream.eatWhile(/[-a-zA-Z0-9_:.]/); + stream.eatSpace(); + + // the case where the attribute has not value and the tag was closed + if(stream.match(">", false) || stream.match("/", false)) { + popStateStack(state); + state.tokenize = tokenBase; + } + + return ret("attribute", "attribute"); + } + + // handle comments, including nested + function tokenXMLComment(stream, state) { + var ch; + while (ch = stream.next()) { + if (ch == "-" && stream.match("->", true)) { + state.tokenize = tokenBase; + return ret("comment", "comment"); + } + } + } + + + // handle CDATA + function tokenCDATA(stream, state) { + var ch; + while (ch = stream.next()) { + if (ch == "]" && stream.match("]", true)) { + state.tokenize = tokenBase; + return ret("comment", "comment"); + } + } + } + + // handle preprocessing instructions + function tokenPreProcessing(stream, state) { + var ch; + while (ch = stream.next()) { + if (ch == "?" && stream.match(">", true)) { + state.tokenize = tokenBase; + return ret("comment", "comment meta"); + } + } + } + + + // functions to test the current context of the state + function isInXmlBlock(state) { return isIn(state, "tag"); } + function isInXmlAttributeBlock(state) { return isIn(state, "attribute"); } + function isInXmlConstructor(state) { return isIn(state, "xmlconstructor"); } + function isInString(state) { return isIn(state, "string"); } + + function isEQNameAhead(stream) { + // assume we've already eaten a quote (") + if(stream.current() === '"') + return stream.match(/^[^\"]+\"\:/, false); + else if(stream.current() === '\'') + return stream.match(/^[^\"]+\'\:/, false); + else + return false; + } + + function isIn(state, type) { + return (state.stack.length && state.stack[state.stack.length - 1].type == type); + } + + function pushStateStack(state, newState) { + state.stack.push(newState); + } + + function popStateStack(state) { + state.stack.pop(); + var reinstateTokenize = state.stack.length && state.stack[state.stack.length-1].tokenize; + state.tokenize = reinstateTokenize || tokenBase; + } + + // the interface for the mode API + return { + startState: function() { + return { + tokenize: tokenBase, + cc: [], + stack: [] + }; + }, + + token: function(stream, state) { + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + return style; + }, + + blockCommentStart: "(:", + blockCommentEnd: ":)" + + }; + +}); + +CodeMirror.defineMIME("application/xquery", "xquery"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/yaml/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/yaml/index.html new file mode 100644 index 0000000..be9b632 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/yaml/index.html @@ -0,0 +1,80 @@ + + +CodeMirror: YAML mode + + + + + + + + + +
                              +

                              YAML mode

                              +
                              + + +

                              MIME types defined: text/x-yaml.

                              + +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/yaml/yaml.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/yaml/yaml.js new file mode 100644 index 0000000..b7015e5 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/yaml/yaml.js @@ -0,0 +1,117 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("yaml", function() { + + var cons = ['true', 'false', 'on', 'off', 'yes', 'no']; + var keywordRegex = new RegExp("\\b(("+cons.join(")|(")+"))$", 'i'); + + return { + token: function(stream, state) { + var ch = stream.peek(); + var esc = state.escaped; + state.escaped = false; + /* comments */ + if (ch == "#" && (stream.pos == 0 || /\s/.test(stream.string.charAt(stream.pos - 1)))) { + stream.skipToEnd(); + return "comment"; + } + + if (stream.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/)) + return "string"; + + if (state.literal && stream.indentation() > state.keyCol) { + stream.skipToEnd(); return "string"; + } else if (state.literal) { state.literal = false; } + if (stream.sol()) { + state.keyCol = 0; + state.pair = false; + state.pairStart = false; + /* document start */ + if(stream.match(/---/)) { return "def"; } + /* document end */ + if (stream.match(/\.\.\./)) { return "def"; } + /* array list item */ + if (stream.match(/\s*-\s+/)) { return 'meta'; } + } + /* inline pairs/lists */ + if (stream.match(/^(\{|\}|\[|\])/)) { + if (ch == '{') + state.inlinePairs++; + else if (ch == '}') + state.inlinePairs--; + else if (ch == '[') + state.inlineList++; + else + state.inlineList--; + return 'meta'; + } + + /* list seperator */ + if (state.inlineList > 0 && !esc && ch == ',') { + stream.next(); + return 'meta'; + } + /* pairs seperator */ + if (state.inlinePairs > 0 && !esc && ch == ',') { + state.keyCol = 0; + state.pair = false; + state.pairStart = false; + stream.next(); + return 'meta'; + } + + /* start of value of a pair */ + if (state.pairStart) { + /* block literals */ + if (stream.match(/^\s*(\||\>)\s*/)) { state.literal = true; return 'meta'; }; + /* references */ + if (stream.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i)) { return 'variable-2'; } + /* numbers */ + if (state.inlinePairs == 0 && stream.match(/^\s*-?[0-9\.\,]+\s?$/)) { return 'number'; } + if (state.inlinePairs > 0 && stream.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/)) { return 'number'; } + /* keywords */ + if (stream.match(keywordRegex)) { return 'keyword'; } + } + + /* pairs (associative arrays) -> key */ + if (!state.pair && stream.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)) { + state.pair = true; + state.keyCol = stream.indentation(); + return "atom"; + } + if (state.pair && stream.match(/^:\s*/)) { state.pairStart = true; return 'meta'; } + + /* nothing found, continue */ + state.pairStart = false; + state.escaped = (ch == '\\'); + stream.next(); + return null; + }, + startState: function() { + return { + pair: false, + pairStart: false, + keyCol: 0, + inlinePairs: 0, + inlineList: 0, + literal: false, + escaped: false + }; + } + }; +}); + +CodeMirror.defineMIME("text/x-yaml", "yaml"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/z80/index.html b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/z80/index.html new file mode 100644 index 0000000..1ad3ace --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/z80/index.html @@ -0,0 +1,52 @@ + + +CodeMirror: Z80 assembly mode + + + + + + + + + +
                              +

                              Z80 assembly mode

                              + + +
                              + + + +

                              MIME type defined: text/x-z80.

                              +
                              diff --git a/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/z80/z80.js b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/z80/z80.js new file mode 100644 index 0000000..ec41d05 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/codemirror/mode/z80/z80.js @@ -0,0 +1,100 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode('z80', function() { + var keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i; + var keywords2 = /^(call|j[pr]|ret[in]?)\b/i; + var keywords3 = /^b_?(call|jump)\b/i; + var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i; + var variables2 = /^(n?[zc]|p[oe]?|m)\b/i; + var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\b/i; + var numbers = /^([\da-f]+h|[0-7]+o|[01]+b|\d+)\b/i; + + return { + startState: function() { + return {context: 0}; + }, + token: function(stream, state) { + if (!stream.column()) + state.context = 0; + + if (stream.eatSpace()) + return null; + + var w; + + if (stream.eatWhile(/\w/)) { + w = stream.current(); + + if (stream.indentation()) { + if (state.context == 1 && variables1.test(w)) + return 'variable-2'; + + if (state.context == 2 && variables2.test(w)) + return 'variable-3'; + + if (keywords1.test(w)) { + state.context = 1; + return 'keyword'; + } else if (keywords2.test(w)) { + state.context = 2; + return 'keyword'; + } else if (keywords3.test(w)) { + state.context = 3; + return 'keyword'; + } + + if (errors.test(w)) + return 'error'; + } else if (numbers.test(w)) { + return 'number'; + } else { + return null; + } + } else if (stream.eat(';')) { + stream.skipToEnd(); + return 'comment'; + } else if (stream.eat('"')) { + while (w = stream.next()) { + if (w == '"') + break; + + if (w == '\\') + stream.next(); + } + return 'string'; + } else if (stream.eat('\'')) { + if (stream.match(/\\?.'/)) + return 'number'; + } else if (stream.eat('.') || stream.sol() && stream.eat('#')) { + state.context = 4; + + if (stream.eatWhile(/\w/)) + return 'def'; + } else if (stream.eat('$')) { + if (stream.eatWhile(/[\da-f]/i)) + return 'number'; + } else if (stream.eat('%')) { + if (stream.eatWhile(/[01]/)) + return 'number'; + } else { + stream.next(); + } + return null; + } + }; +}); + +CodeMirror.defineMIME("text/x-z80", "z80"); + +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/colorpicker/bootstrap-colorpicker.min.js b/novel-admin/src/main/resources/static/js/plugins/colorpicker/bootstrap-colorpicker.min.js new file mode 100644 index 0000000..5537fa2 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/colorpicker/bootstrap-colorpicker.min.js @@ -0,0 +1 @@ +!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):window.jQuery&&!window.jQuery.fn.colorpicker&&a(window.jQuery)}(function(a){"use strict";var b=function(a){this.value={h:0,s:0,b:0,a:1},this.origFormat=null,a&&(void 0!==a.toLowerCase?this.setColor(a):void 0!==a.h&&(this.value=a))};b.prototype={constructor:b,colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4","indianred ":"#cd5c5c","indigo ":"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},_sanitizeNumber:function(a){return"number"==typeof a?a:isNaN(a)||null===a||""===a||void 0===a?1:void 0!==a.toLowerCase?parseFloat(a):1},setColor:function(a){a=a.toLowerCase(),this.value=this.stringToHSB(a)||{h:0,s:0,b:0,a:1}},stringToHSB:function(b){b=b.toLowerCase();var c=this,d=!1;return a.each(this.stringParsers,function(a,e){var f=e.re.exec(b),g=f&&e.parse.apply(c,[f]),h=e.format||"rgba";return g?(d=h.match(/hsla?/)?c.RGBtoHSB.apply(c,c.HSLtoRGB.apply(c,g)):c.RGBtoHSB.apply(c,g),c.origFormat=h,!1):!0}),d},setHue:function(a){this.value.h=1-a},setSaturation:function(a){this.value.s=a},setBrightness:function(a){this.value.b=1-a},setAlpha:function(a){this.value.a=parseInt(100*(1-a),10)/100},toRGB:function(a,b,c,d){a||(a=this.value.h,b=this.value.s,c=this.value.b),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Math.abs(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],{r:Math.round(255*e),g:Math.round(255*f),b:Math.round(255*g),a:d||this.value.a}},toHex:function(a,b,c,d){var e=this.toRGB(a,b,c,d);return"#"+(1<<24|parseInt(e.r)<<16|parseInt(e.g)<<8|parseInt(e.b)).toString(16).substr(1)},toHSL:function(a,b,c,d){a=a||this.value.h,b=b||this.value.s,c=c||this.value.b,d=d||this.value.a;var e=a,f=(2-b)*c,g=b*c;return g/=f>0&&1>=f?f:2-f,f/=2,g>1&&(g=1),{h:isNaN(e)?0:e,s:isNaN(g)?0:g,l:isNaN(f)?0:f,a:isNaN(d)?0:d}},toAlias:function(a,b,c,d){var e=this.toHex(a,b,c,d);for(var f in this.colors)if(this.colors[f]==e)return f;return!1},RGBtoHSB:function(a,b,c,d){a/=255,b/=255,c/=255;var e,f,g,h;return g=Math.max(a,b,c),h=g-Math.min(a,b,c),e=0===h?null:g===a?(b-c)/h:g===b?(c-a)/h+2:(a-b)/h+4,e=(e+360)%6*60/360,f=0===h?0:h/g,{h:this._sanitizeNumber(e),s:f,b:g,a:this._sanitizeNumber(d)}},HueToRGB:function(a,b,c){return 0>c?c+=1:c>1&&(c-=1),1>6*c?a+(b-a)*c*6:1>2*c?b:2>3*c?a+(b-a)*(2/3-c)*6:a},HSLtoRGB:function(a,b,c,d){0>b&&(b=0);var e;e=.5>=c?c*(1+b):c+b-c*b;var f=2*c-e,g=a+1/3,h=a,i=a-1/3,j=Math.round(255*this.HueToRGB(f,e,g)),k=Math.round(255*this.HueToRGB(f,e,h)),l=Math.round(255*this.HueToRGB(f,e,i));return[j,k,l,this._sanitizeNumber(d)]},toString:function(a){switch(a=a||"rgba"){case"rgb":var b=this.toRGB();return"rgb("+b.r+","+b.g+","+b.b+")";case"rgba":var b=this.toRGB();return"rgba("+b.r+","+b.g+","+b.b+","+b.a+")";case"hsl":var c=this.toHSL();return"hsl("+Math.round(360*c.h)+","+Math.round(100*c.s)+"%,"+Math.round(100*c.l)+"%)";case"hsla":var c=this.toHSL();return"hsla("+Math.round(360*c.h)+","+Math.round(100*c.s)+"%,"+Math.round(100*c.l)+"%,"+c.a+")";case"hex":return this.toHex();case"alias":return this.toAlias()||this.toHex();default:return!1}},stringParsers:[{re:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,format:"hex",parse:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16),1]}},{re:/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,format:"hex",parse:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16),1]}},{re:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*?\)/,format:"rgb",parse:function(a){return[a[1],a[2],a[3],1]}},{re:/rgb\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*?\)/,format:"rgb",parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],1]}},{re:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,format:"rgba",parse:function(a){return[a[1],a[2],a[3],a[4]]}},{re:/rgba\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,format:"rgba",parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],a[4]]}},{re:/hsl\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*?\)/,format:"hsl",parse:function(a){return[a[1]/360,a[2]/100,a[3]/100,a[4]]}},{re:/hsla\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,format:"hsla",parse:function(a){return[a[1]/360,a[2]/100,a[3]/100,a[4]]}},{re:/^([a-z]{3,})$/,format:"alias",parse:function(a){var b=this.colorNameToHex(a[0])||"#000000",c=this.stringParsers[0].re.exec(b),d=c&&this.stringParsers[0].parse.apply(this,[c]);return d}}],colorNameToHex:function(a){return"undefined"!=typeof this.colors[a.toLowerCase()]?this.colors[a.toLowerCase()]:!1}};var c={horizontal:!1,inline:!1,color:!1,format:!1,input:"input",container:!1,component:".add-on, .input-group-addon",sliders:{saturation:{maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setBrightness"},hue:{maxLeft:0,maxTop:100,callLeft:!1,callTop:"setHue"},alpha:{maxLeft:0,maxTop:100,callLeft:!1,callTop:"setAlpha"}},slidersHorz:{saturation:{maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setBrightness"},hue:{maxLeft:100,maxTop:0,callLeft:"setHue",callTop:!1},alpha:{maxLeft:100,maxTop:0,callLeft:"setAlpha",callTop:!1}},template:'
                            • ', { + 'class': classes.sPageButton + ' ' + btnClass, + 'aria-controls': settings.sTableId, + 'tabindex': settings.iTabIndex, + 'id': idx === 0 && typeof button === 'string' ? settings.sTableId + '_' + button : null + }) + .append($('', { + 'href': '#' + }) + .html(btnDisplay) + ) + .appendTo(container); + + settings.oApi._fnBindAction( + node, { + action: button + }, clickHandler + ); + } + } + } + }; + + attach( + $(host).empty().html('
                                ').children('ul'), + buttons + ); + } +} else { + // Integration for 1.9- + $.fn.dataTable.defaults.sPaginationType = 'bootstrap'; + + /* API method to get paging information */ + $.fn.dataTableExt.oApi.fnPagingInfo = function(oSettings) { + return { + "iStart": oSettings._iDisplayStart, + "iEnd": oSettings.fnDisplayEnd(), + "iLength": oSettings._iDisplayLength, + "iTotal": oSettings.fnRecordsTotal(), + "iFilteredTotal": oSettings.fnRecordsDisplay(), + "iPage": oSettings._iDisplayLength === -1 ? 0 : Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength), + "iTotalPages": oSettings._iDisplayLength === -1 ? 0 : Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength) + }; + }; + + /* Bootstrap style pagination control */ + $.extend($.fn.dataTableExt.oPagination, { + "bootstrap": { + "fnInit": function(oSettings, nPaging, fnDraw) { + var oLang = oSettings.oLanguage.oPaginate; + var fnClickHandler = function(e) { + e.preventDefault(); + if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) { + fnDraw(oSettings); + } + }; + + $(nPaging).append( + '' + ); + var els = $('a', nPaging); + $(els[0]).bind('click.DT', { + action: "previous" + }, fnClickHandler); + $(els[1]).bind('click.DT', { + action: "next" + }, fnClickHandler); + }, + + "fnUpdate": function(oSettings, fnDraw) { + var iListLength = 5; + var oPaging = oSettings.oInstance.fnPagingInfo(); + var an = oSettings.aanFeatures.p; + var i, ien, j, sClass, iStart, iEnd, iHalf = Math.floor(iListLength / 2); + + if (oPaging.iTotalPages < iListLength) { + iStart = 1; + iEnd = oPaging.iTotalPages; + } else if (oPaging.iPage <= iHalf) { + iStart = 1; + iEnd = iListLength; + } else if (oPaging.iPage >= (oPaging.iTotalPages - iHalf)) { + iStart = oPaging.iTotalPages - iListLength + 1; + iEnd = oPaging.iTotalPages; + } else { + iStart = oPaging.iPage - iHalf + 1; + iEnd = iStart + iListLength - 1; + } + + for (i = 0, ien = an.length; i < ien; i++) { + // Remove the middle elements + $('li:gt(0)', an[i]).filter(':not(:last)').remove(); + + // Add the new list items and their event handlers + for (j = iStart; j <= iEnd; j++) { + sClass = (j == oPaging.iPage + 1) ? 'class="active"' : ''; + $('
                              • ' + j + '
                              • ') + .insertBefore($('li:last', an[i])[0]) + .bind('click', function(e) { + e.preventDefault(); + oSettings._iDisplayStart = (parseInt($('a', this).text(), 10) - 1) * oPaging.iLength; + fnDraw(oSettings); + }); + } + + // Add / remove disabled classes from the static elements + if (oPaging.iPage === 0) { + $('li:first', an[i]).addClass('disabled'); + } else { + $('li:first', an[i]).removeClass('disabled'); + } + + if (oPaging.iPage === oPaging.iTotalPages - 1 || oPaging.iTotalPages === 0) { + $('li:last', an[i]).addClass('disabled'); + } else { + $('li:last', an[i]).removeClass('disabled'); + } + } + } + } + }); +} + + +/* + * TableTools Bootstrap compatibility + * Required TableTools 2.1+ + */ +if ($.fn.DataTable.TableTools) { + // Set the classes that TableTools uses to something suitable for Bootstrap + $.extend(true, $.fn.DataTable.TableTools.classes, { + "container": "DTTT btn-group", + "buttons": { + "normal": "btn btn-default", + "disabled": "disabled" + }, + "collection": { + "container": "DTTT_dropdown dropdown-menu", + "buttons": { + "normal": "", + "disabled": "disabled" + } + }, + "print": { + "info": "DTTT_print_info modal" + }, + "select": { + "row": "active" + } + }); + + // Have the collection use a bootstrap compatible dropdown + $.extend(true, $.fn.DataTable.TableTools.DEFAULTS.oTags, { + "collection": { + "container": "ul", + "button": "li", + "liner": "a" + } + }); +} diff --git a/novel-admin/src/main/resources/static/js/plugins/dataTables/jquery.dataTables.js b/novel-admin/src/main/resources/static/js/plugins/dataTables/jquery.dataTables.js new file mode 100644 index 0000000..f2fd8bf --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/dataTables/jquery.dataTables.js @@ -0,0 +1,14013 @@ +/*! DataTables 1.10.0-dev + * ©2008-2013 SpryMedia Ltd - datatables.net/license + */ + +/** + * @summary DataTables + * @description Paginate, search and order HTML tables + * @version 1.10.0-dev + * @file jquery.dataTables.js + * @author SpryMedia Ltd (www.sprymedia.co.uk) + * @contact www.sprymedia.co.uk/contact + * @copyright Copyright 2008-2013 SpryMedia Ltd. + * + * This source file is free software, available under the following license: + * MIT license - http://datatables.net/license + * + * This source file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. + * + * For details please refer to: http://www.datatables.net + */ + +/*jslint evil: true, undef: true, browser: true */ +/*globals $,require,jQuery,define,_selector_run,_selector_opts,_selector_first,_selector_row_indexes,_ext,_Api,_api_register,_api_registerPlural,_re_new_lines,_re_html,_re_formatted_numeric,_empty,_intVal,_isNumber,_isHtml,_htmlNumeric,_pluck,_pluck_order,_range,_stripHtml,_unique,_fnBuildAjax,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnAjaxDataSrc,_fnAddColumn,_fnColumnOptions,_fnAdjustColumnSizing,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnVisbleColumns,_fnGetColumns,_fnColumnTypes,_fnApplyColumnDefs,_fnHungarianMap,_fnCamelToHungarian,_fnLanguageCompat,_fnBrowserDetect,_fnAddData,_fnAddTr,_fnNodeToDataIndex,_fnNodeToColumnIndex,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnSplitObjNotation,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnGetDataMaster,_fnClearTable,_fnDeleteIndex,_fnInvalidateRow,_fnGetRowElements,_fnCreateTr,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAddOptionsHtml,_fnDetectHeader,_fnGetUniqueThs,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnFilterCreateSearch,_fnEscapeRegex,_fnFilterData,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnInfoMacros,_fnInitialise,_fnInitComplete,_fnLengthChange,_fnFeatureHtmlLength,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnFeatureHtmlTable,_fnScrollDraw,_fnApplyToChildren,_fnCalculateColumnWidths,_fnThrottle,_fnConvertToWidth,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnScrollBarWidth,_fnSortFlatten,_fnSort,_fnSortAria,_fnSortListener,_fnSortAttachListener,_fnSortingClasses,_fnSortData,_fnSaveState,_fnLoadState,_fnSettingsFromNode,_fnLog,_fnMap,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnLengthOverflow,_fnRenderer,_fnDataSource,_fnRowAttributes*/ + +(/** @lends */function( window, document, $, undefined ) { + +(function( factory ) { + "use strict"; + + // Define as an AMD module if possible + if ( typeof define === 'function' && define.amd ) + { + define( 'datatables', ['jquery'], factory ); + } + /* Define using browser globals otherwise + * Prevent multiple instantiations if the script is loaded twice + */ + else if ( jQuery && !jQuery.fn.dataTable ) + { + factory( jQuery ); + } +} +(/** @lends */function( $ ) { + "use strict"; + + /** + * DataTables is a plug-in for the jQuery Javascript library. It is a highly + * flexible tool, based upon the foundations of progressive enhancement, + * which will add advanced interaction controls to any HTML table. For a + * full list of features please refer to + * [DataTables.net](href="http://datatables.net). + * + * Note that the `DataTable` object is not a global variable but is aliased + * to `jQuery.fn.DataTable` and `jQuery.fn.dataTable` through which it may + * be accessed. + * + * @class + * @param {object} [init={}] Configuration object for DataTables. Options + * are defined by {@link DataTable.defaults} + * @requires jQuery 1.3+ + * + * @example + * // Basic initialisation + * $(document).ready( function { + * $('#example').dataTable(); + * } ); + * + * @example + * // Initialisation with configuration options - in this case, disable + * // pagination and sorting. + * $(document).ready( function { + * $('#example').dataTable( { + * "paginate": false, + * "sort": false + * } ); + * } ); + */ + var DataTable; + + + /* + * It is useful to have variables which are scoped locally so only the + * DataTables functions can access them and they don't leak into global space. + * At the same time these functions are often useful over multiple files in the + * core and API, so we list, or at least document, all variables which are used + * by DataTables as private variables here. This also ensures that there is no + * clashing of variable names and that they can easily referenced for reuse. + */ + + + // Defined else where + // _selector_run + // _selector_opts + // _selector_first + // _selector_row_indexes + + var _ext; // DataTable.ext + var _Api; // DataTable.Api + var _api_register; // DataTable.Api.register + var _api_registerPlural; // DataTable.Api.registerPlural + + var _re_new_lines = /[\r\n]/g; + var _re_html = /<.*?>/g; + var _re_formatted_numeric = /[',$£€¥%]/g; + var _re_date_start = /^[\d\+\-a-zA-Z]/; + + + + + var _empty = function ( d ) { + return !d || d === '-' ? true : false; + }; + + + var _intVal = function ( s ) { + var integer = parseInt( s, 10 ); + return !isNaN(integer) && isFinite(s) ? integer : null; + }; + + + var _isNumber = function ( d, formatted ) { + if ( formatted && typeof d === 'string' ) { + d = d.replace( _re_formatted_numeric, '' ); + } + + return !d || d==='-' || (!isNaN( parseFloat(d) ) && isFinite( d )); + }; + + + // A string without HTML in it can be considered to be HTML still + var _isHtml = function ( d ) { + return !d || typeof d === 'string'; + }; + + + var _htmlNumeric = function ( d, formatted ) { + if ( _empty( d ) ) { + return true; + } + + var html = _isHtml( d ); + return ! html ? + null : + _isNumber( _stripHtml( d ), formatted ) ? + true : + null; + }; + + + var _pluck = function ( a, prop, prop2 ) { + var out = []; + var i=0, ien=a.length; + + // Could have the test in the loop for slightly smaller code, but speed + // is essential here + if ( prop2 !== undefined ) { + for ( ; i') + .css( { + position: 'absolute', + top: 0, + left: 0, + height: 1, + width: 1, + overflow: 'hidden' + } ) + .append( + $('
                                ') + .css( { + position: 'absolute', + top: 1, + left: 1, + width: 100, + overflow: 'scroll' + } ) + .append( + $('
                                ') + .css( { + width: '100%', + height: 10 + } ) + ) + ) + .appendTo( 'body' ); + + var test = n.find('.test'); + + // IE6/7 will oversize a width 100% element inside a scrolling element, to + // include the width of the scrollbar, while other browsers ensure the inner + // element is contained without forcing scrolling + browser.bScrollOversize = test[0].offsetWidth === 100; + + // In rtl text layout, some browsers (most, but not all) will place the + // scrollbar on the left, rather than the right. + browser.bScrollbarLeft = test.offset().left !== 1; + + n.remove(); + } + + /** + * Add a column to the list used for the table with default values + * @param {object} oSettings dataTables settings object + * @param {node} nTh The th element for this column + * @memberof DataTable#oApi + */ + function _fnAddColumn( oSettings, nTh ) + { + var oDefaults = DataTable.defaults.column; + var iCol = oSettings.aoColumns.length; + var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { + "sSortingClass": oSettings.oClasses.sSortable, + "sSortingClassJUI": oSettings.oClasses.sSortJUI, + "nTh": nTh ? nTh : document.createElement('th'), + "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', + "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], + "mData": oDefaults.mData ? oDefaults.mData : iCol + } ); + oSettings.aoColumns.push( oCol ); + + /* Add a column specific filter */ + if ( oSettings.aoPreSearchCols[ iCol ] === undefined || oSettings.aoPreSearchCols[ iCol ] === null ) + { + oSettings.aoPreSearchCols[ iCol ] = $.extend( true, {}, DataTable.models.oSearch ); + } + else + { + var oPre = oSettings.aoPreSearchCols[ iCol ]; + + /* Don't require that the user must specify bRegex, bSmart or bCaseInsensitive */ + if ( oPre.bRegex === undefined ) + { + oPre.bRegex = true; + } + + if ( oPre.bSmart === undefined ) + { + oPre.bSmart = true; + } + + if ( oPre.bCaseInsensitive === undefined ) + { + oPre.bCaseInsensitive = true; + } + } + + /* Use the column options function to initialise classes etc */ + _fnColumnOptions( oSettings, iCol, null ); + } + + + /** + * Apply options for a column + * @param {object} oSettings dataTables settings object + * @param {int} iCol column index to consider + * @param {object} oOptions object with sType, bVisible and bSearchable etc + * @memberof DataTable#oApi + */ + function _fnColumnOptions( oSettings, iCol, oOptions ) + { + var oCol = oSettings.aoColumns[ iCol ]; + var oClasses = oSettings.oClasses; + + /* User specified column options */ + if ( oOptions !== undefined && oOptions !== null ) + { + // Backwards compatibility + _fnCompatCols( oOptions ); + + // Map camel case parameters to their Hungarian counterparts + _fnCamelToHungarian( DataTable.defaults.column, oOptions ); + + /* Backwards compatibility for mDataProp */ + if ( oOptions.mDataProp !== undefined && !oOptions.mData ) + { + oOptions.mData = oOptions.mDataProp; + } + + oCol._sManualType = oOptions.sType; + + // `class` is a reserved word in Javascript, so we need to provide + // the ability to use a valid name for the camel case input + if ( oOptions.className && ! oOptions.sClass ) + { + oOptions.sClass = oOptions.className; + } + + $.extend( oCol, oOptions ); + _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); + + /* iDataSort to be applied (backwards compatibility), but aDataSort will take + * priority if defined + */ + if ( typeof oOptions.iDataSort === 'number' ) + { + oCol.aDataSort = [ oOptions.iDataSort ]; + } + _fnMap( oCol, oOptions, "aDataSort" ); + } + + /* Cache the data get and set functions for speed */ + var mDataSrc = oCol.mData; + var mData = _fnGetObjectDataFn( mDataSrc ); + var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; + + var attrTest = function( src ) { + return typeof src === 'string' && src.indexOf('@') !== -1; + }; + oCol._bAttrSrc = $.isPlainObject( mDataSrc ) && ( + attrTest(mDataSrc.sort) || attrTest(mDataSrc.type) || attrTest(mDataSrc.filter) + ); + + oCol.fnGetData = function (oData, sSpecific) { + var innerData = mData( oData, sSpecific ); + + if ( oCol.mRender && (sSpecific && sSpecific !== '') ) + { + return mRender( innerData, sSpecific, oData ); + } + return innerData; + }; + oCol.fnSetData = _fnSetObjectDataFn( mDataSrc ); + + /* Feature sorting overrides column specific when off */ + if ( !oSettings.oFeatures.bSort ) + { + oCol.bSortable = false; + } + + /* Check that the class assignment is correct for sorting */ + var bAsc = $.inArray('asc', oCol.asSorting) !== -1; + var bDesc = $.inArray('desc', oCol.asSorting) !== -1; + if ( !oCol.bSortable || (!bAsc && !bDesc) ) + { + oCol.sSortingClass = oClasses.sSortableNone; + oCol.sSortingClassJUI = ""; + } + else if ( bAsc && !bDesc ) + { + oCol.sSortingClass = oClasses.sSortableAsc; + oCol.sSortingClassJUI = oClasses.sSortJUIAscAllowed; + } + else if ( !bAsc && bDesc ) + { + oCol.sSortingClass = oClasses.sSortableDesc; + oCol.sSortingClassJUI = oClasses.sSortJUIDescAllowed; + } + } + + + /** + * Adjust the table column widths for new data. Note: you would probably want to + * do a redraw after calling this function! + * @param {object} settings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnAdjustColumnSizing ( settings ) + { + /* Not interested in doing column width calculation if auto-width is disabled */ + if ( settings.oFeatures.bAutoWidth !== false ) + { + var columns = settings.aoColumns; + + _fnCalculateColumnWidths( settings ); + for ( var i=0 , iLen=columns.length ; i
                                ')[0]; + + /* Check to see if we should append an id and/or a class name to the container */ + cNext = aDom[i+1]; + if ( cNext == "'" || cNext == '"' ) + { + sAttr = ""; + j = 2; + while ( aDom[i+j] != cNext ) + { + sAttr += aDom[i+j]; + j++; + } + + /* Replace jQuery UI constants @todo depreciated */ + if ( sAttr == "H" ) + { + sAttr = oSettings.oClasses.sJUIHeader; + } + else if ( sAttr == "F" ) + { + sAttr = oSettings.oClasses.sJUIFooter; + } + + /* The attribute can be in the format of "#id.class", "#id" or "class" This logic + * breaks the string into parts and applies them as needed + */ + if ( sAttr.indexOf('.') != -1 ) + { + var aSplit = sAttr.split('.'); + nNewNode.id = aSplit[0].substr(1, aSplit[0].length-1); + nNewNode.className = aSplit[1]; + } + else if ( sAttr.charAt(0) == "#" ) + { + nNewNode.id = sAttr.substr(1, sAttr.length-1); + } + else + { + nNewNode.className = sAttr; + } + + i += j; /* Move along the position array */ + } + + nInsertNode.appendChild( nNewNode ); + nInsertNode = nNewNode; + } + else if ( cOption == '>' ) + { + /* End container div */ + nInsertNode = nInsertNode.parentNode; + } + // @todo Move options into their own plugins? + else if ( cOption == 'l' && oSettings.oFeatures.bPaginate && oSettings.oFeatures.bLengthChange ) + { + /* Length */ + nTmp = _fnFeatureHtmlLength( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'f' && oSettings.oFeatures.bFilter ) + { + /* Filter */ + nTmp = _fnFeatureHtmlFilter( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'r' && oSettings.oFeatures.bProcessing ) + { + /* pRocessing */ + nTmp = _fnFeatureHtmlProcessing( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 't' ) + { + /* Table */ + nTmp = _fnFeatureHtmlTable( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'i' && oSettings.oFeatures.bInfo ) + { + /* Info */ + nTmp = _fnFeatureHtmlInfo( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'p' && oSettings.oFeatures.bPaginate ) + { + /* Pagination */ + nTmp = _fnFeatureHtmlPaginate( oSettings ); + iPushFeature = 1; + } + else if ( DataTable.ext.feature.length !== 0 ) + { + /* Plug-in features */ + var aoFeatures = DataTable.ext.feature; + for ( var k=0, kLen=aoFeatures.length ; k'; + + var str = settings.oLanguage.sSearch; + str = str.match(/_INPUT_/) ? + str.replace('_INPUT_', input) : + str+input; + + var filter = $('
                                ', { + 'id': ! features.f ? tableId+'_filter' : null, + 'class': classes.sFilter + } ) + .append( $('
                              + * @param {bool} [redraw=true] redraw the table or not + * @returns {array} An array of integers, representing the list of indexes in + * aoData ({@link DataTable.models.oSettings}) that have been added to + * the table. + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * // Global var for counter + * var giCount = 2; + * + * $(document).ready(function() { + * $('#example').dataTable(); + * } ); + * + * function fnClickAddRow() { + * $('#example').dataTable().fnAddData( [ + * giCount+".1", + * giCount+".2", + * giCount+".3", + * giCount+".4" ] + * ); + * + * giCount++; + * } + */ + this.fnAddData = function( data, redraw ) + { + var api = this.api( true ); + + /* Check if we want to add multiple rows or not */ + var rows = $.isArray(data) && ( $.isArray(data[0]) || $.isPlainObject(data[0]) ) ? + api.rows.add( data ) : + api.row.add( data ); + + if ( redraw === undefined || redraw ) { + api.draw(); + } + + return rows.flatten().toArray(); + }; + + + /** + * This function will make DataTables recalculate the column sizes, based on the data + * contained in the table and the sizes applied to the columns (in the DOM, CSS or + * through the sWidth parameter). This can be useful when the width of the table's + * parent element changes (for example a window resize). + * @param {boolean} [bRedraw=true] Redraw the table or not, you will typically want to + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable( { + * "sScrollY": "200px", + * "bPaginate": false + * } ); + * + * $(window).bind('resize', function () { + * oTable.fnAdjustColumnSizing(); + * } ); + * } ); + */ + this.fnAdjustColumnSizing = function ( bRedraw ) + { + var api = this.api( true ).columns.adjust(); + var settings = api.settings()[0]; + var scroll = settings.oScroll; + + if ( bRedraw === undefined || bRedraw ) { + api.draw( false ); + } + else if ( scroll.sX !== "" || scroll.sY !== "" ) { + /* If not redrawing, but scrolling, we want to apply the new column sizes anyway */ + _fnScrollDraw( settings ); + } + }; + + + /** + * Quickly and simply clear a table + * @param {bool} [bRedraw=true] redraw the table or not + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Immediately 'nuke' the current rows (perhaps waiting for an Ajax callback...) + * oTable.fnClearTable(); + * } ); + */ + this.fnClearTable = function( bRedraw ) + { + var api = this.api( true ).clear(); + + if ( bRedraw === undefined || bRedraw ) { + api.draw(); + } + }; + + + /** + * The exact opposite of 'opening' a row, this function will close any rows which + * are currently 'open'. + * @param {node} nTr the table row to 'close' + * @returns {int} 0 on success, or 1 if failed (can't find the row) + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable; + * + * // 'open' an information row when a row is clicked on + * $('#example tbody tr').click( function () { + * if ( oTable.fnIsOpen(this) ) { + * oTable.fnClose( this ); + * } else { + * oTable.fnOpen( this, "Temporary row opened", "info_row" ); + * } + * } ); + * + * oTable = $('#example').dataTable(); + * } ); + */ + this.fnClose = function( nTr ) + { + this.api( true ).row( nTr ).child.hide(); + }; + + + /** + * Remove a row for the table + * @param {mixed} target The index of the row from aoData to be deleted, or + * the TR element you want to delete + * @param {function|null} [callBack] Callback function + * @param {bool} [redraw=true] Redraw the table or not + * @returns {array} The row that was deleted + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Immediately remove the first row + * oTable.fnDeleteRow( 0 ); + * } ); + */ + this.fnDeleteRow = function( target, callback, redraw ) + { + var api = this.api( true ); + var rows = api.rows( target ); + var settings = rows.settings()[0]; + var data = settings.aoData[ rows[0][0] ]; + + rows.remove(); + + if ( callback ) { + callback.call( this, settings, data ); + } + + if ( redraw === undefined || redraw ) { + api.draw(); + } + + return data; + }; + + + /** + * Restore the table to it's original state in the DOM by removing all of DataTables + * enhancements, alterations to the DOM structure of the table and event listeners. + * @param {boolean} [remove=false] Completely remove the table from the DOM + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * // This example is fairly pointless in reality, but shows how fnDestroy can be used + * var oTable = $('#example').dataTable(); + * oTable.fnDestroy(); + * } ); + */ + this.fnDestroy = function ( remove ) + { + this.api( true ).destroy( remove ); + }; + + + /** + * Redraw the table + * @param {bool} [complete=true] Re-filter and resort (if enabled) the table before the draw. + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Re-draw the table - you wouldn't want to do it here, but it's an example :-) + * oTable.fnDraw(); + * } ); + */ + this.fnDraw = function( complete ) + { + // Note that this isn't an exact match to the old call to _fnDraw - it takes + // into account the new data, but can old position. + this.api( true ).draw( ! complete ); + }; + + + /** + * Filter the input based on data + * @param {string} sInput String to filter the table on + * @param {int|null} [iColumn] Column to limit filtering to + * @param {bool} [bRegex=false] Treat as regular expression or not + * @param {bool} [bSmart=true] Perform smart filtering or not + * @param {bool} [bShowGlobal=true] Show the input global filter in it's input box(es) + * @param {bool} [bCaseInsensitive=true] Do case-insensitive matching (true) or not (false) + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Sometime later - filter... + * oTable.fnFilter( 'test string' ); + * } ); + */ + this.fnFilter = function( sInput, iColumn, bRegex, bSmart, bShowGlobal, bCaseInsensitive ) + { + var api = this.api( true ); + + if ( iColumn === null || iColumn === undefined ) { + api.search( sInput, bRegex, bSmart, bCaseInsensitive ); + } + else { + api.column( iColumn ).search( sInput, bRegex, bSmart, bCaseInsensitive ); + } + + api.draw(); + }; + + + /** + * Get the data for the whole table, an individual row or an individual cell based on the + * provided parameters. + * @param {int|node} [src] A TR row node, TD/TH cell node or an integer. If given as + * a TR node then the data source for the whole row will be returned. If given as a + * TD/TH cell node then iCol will be automatically calculated and the data for the + * cell returned. If given as an integer, then this is treated as the aoData internal + * data index for the row (see fnGetPosition) and the data for that row used. + * @param {int} [col] Optional column index that you want the data of. + * @returns {array|object|string} If mRow is undefined, then the data for all rows is + * returned. If mRow is defined, just data for that row, and is iCol is + * defined, only data for the designated cell is returned. + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * // Row data + * $(document).ready(function() { + * oTable = $('#example').dataTable(); + * + * oTable.$('tr').click( function () { + * var data = oTable.fnGetData( this ); + * // ... do something with the array / object of data for the row + * } ); + * } ); + * + * @example + * // Individual cell data + * $(document).ready(function() { + * oTable = $('#example').dataTable(); + * + * oTable.$('td').click( function () { + * var sData = oTable.fnGetData( this ); + * alert( 'The cell clicked on had the value of '+sData ); + * } ); + * } ); + */ + this.fnGetData = function( src, col ) + { + var api = this.api( true ); + + if ( src !== undefined ) { + var type = src.nodeName ? src.nodeName.toLowerCase() : ''; + + return col !== undefined || type == 'td' || type == 'th' ? + api.cell( src, col ).data() : + api.row( src ).data(); + } + + return api.data().toArray(); + }; + + + /** + * Get an array of the TR nodes that are used in the table's body. Note that you will + * typically want to use the '$' API method in preference to this as it is more + * flexible. + * @param {int} [iRow] Optional row index for the TR element you want + * @returns {array|node} If iRow is undefined, returns an array of all TR elements + * in the table's body, or iRow is defined, just the TR element requested. + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Get the nodes from the table + * var nNodes = oTable.fnGetNodes( ); + * } ); + */ + this.fnGetNodes = function( iRow ) + { + var api = this.api( true ); + + return iRow !== undefined ? + api.row( iRow ).node() : + api.rows().nodes().toArray(); + }; + + + /** + * Get the array indexes of a particular cell from it's DOM element + * and column index including hidden columns + * @param {node} node this can either be a TR, TD or TH in the table's body + * @returns {int} If nNode is given as a TR, then a single index is returned, or + * if given as a cell, an array of [row index, column index (visible), + * column index (all)] is given. + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * $('#example tbody td').click( function () { + * // Get the position of the current data from the node + * var aPos = oTable.fnGetPosition( this ); + * + * // Get the data array for this row + * var aData = oTable.fnGetData( aPos[0] ); + * + * // Update the data array and return the value + * aData[ aPos[1] ] = 'clicked'; + * this.innerHTML = 'clicked'; + * } ); + * + * // Init DataTables + * oTable = $('#example').dataTable(); + * } ); + */ + this.fnGetPosition = function( node ) + { + var api = this.api( true ); + var nodeName = node.nodeName.toUpperCase(); + + if ( nodeName == 'TR' ) { + return api.row( node ).index(); + } + else if ( nodeName == 'TD' || nodeName == 'TH' ) { + var cell = api.cell( node ).index(); + + return [ + cell.row, + cell.columnVisible, + cell.column + ]; + } + return null; + }; + + + /** + * Check to see if a row is 'open' or not. + * @param {node} nTr the table row to check + * @returns {boolean} true if the row is currently open, false otherwise + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable; + * + * // 'open' an information row when a row is clicked on + * $('#example tbody tr').click( function () { + * if ( oTable.fnIsOpen(this) ) { + * oTable.fnClose( this ); + * } else { + * oTable.fnOpen( this, "Temporary row opened", "info_row" ); + * } + * } ); + * + * oTable = $('#example').dataTable(); + * } ); + */ + this.fnIsOpen = function( nTr ) + { + return this.api( true ).row( nTr ).child.isShown(); + }; + + + /** + * This function will place a new row directly after a row which is currently + * on display on the page, with the HTML contents that is passed into the + * function. This can be used, for example, to ask for confirmation that a + * particular record should be deleted. + * @param {node} nTr The table row to 'open' + * @param {string|node|jQuery} mHtml The HTML to put into the row + * @param {string} sClass Class to give the new TD cell + * @returns {node} The row opened. Note that if the table row passed in as the + * first parameter, is not found in the table, this method will silently + * return. + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable; + * + * // 'open' an information row when a row is clicked on + * $('#example tbody tr').click( function () { + * if ( oTable.fnIsOpen(this) ) { + * oTable.fnClose( this ); + * } else { + * oTable.fnOpen( this, "Temporary row opened", "info_row" ); + * } + * } ); + * + * oTable = $('#example').dataTable(); + * } ); + */ + this.fnOpen = function( nTr, mHtml, sClass ) + { + return this.api( true ).row( nTr ).child( mHtml, sClass ).show(); + }; + + + /** + * Change the pagination - provides the internal logic for pagination in a simple API + * function. With this function you can have a DataTables table go to the next, + * previous, first or last pages. + * @param {string|int} mAction Paging action to take: "first", "previous", "next" or "last" + * or page number to jump to (integer), note that page 0 is the first page. + * @param {bool} [bRedraw=true] Redraw the table or not + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * oTable.fnPageChange( 'next' ); + * } ); + */ + this.fnPageChange = function ( mAction, bRedraw ) + { + var api = this.api( true ).page( mAction ); + + if ( bRedraw === undefined || bRedraw ) { + api.draw(false); + } + }; + + + /** + * Show a particular column + * @param {int} iCol The column whose display should be changed + * @param {bool} bShow Show (true) or hide (false) the column + * @param {bool} [bRedraw=true] Redraw the table or not + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Hide the second column after initialisation + * oTable.fnSetColumnVis( 1, false ); + * } ); + */ + this.fnSetColumnVis = function ( iCol, bShow, bRedraw ) + { + var api = this.api( true ).column( iCol ).visible( bShow ); + + if ( bRedraw === undefined || bRedraw ) { + api.columns.adjust().draw(); + } + }; + + + /** + * Get the settings for a particular table for external manipulation + * @returns {object} DataTables settings object. See + * {@link DataTable.models.oSettings} + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * var oSettings = oTable.fnSettings(); + * + * // Show an example parameter from the settings + * alert( oSettings._iDisplayStart ); + * } ); + */ + this.fnSettings = function() + { + return _fnSettingsFromNode( this[_ext.iApiIndex] ); + }; + + + /** + * Sort the table by a particular column + * @param {int} iCol the data index to sort on. Note that this will not match the + * 'display index' if you have hidden data entries + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Sort immediately with columns 0 and 1 + * oTable.fnSort( [ [0,'asc'], [1,'asc'] ] ); + * } ); + */ + this.fnSort = function( aaSort ) + { + this.api( true ).order( aaSort ).draw(); + }; + + + /** + * Attach a sort listener to an element for a given column + * @param {node} nNode the element to attach the sort listener to + * @param {int} iColumn the column that a click on this node will sort on + * @param {function} [fnCallback] callback function when sort is run + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Sort on column 1, when 'sorter' is clicked on + * oTable.fnSortListener( document.getElementById('sorter'), 1 ); + * } ); + */ + this.fnSortListener = function( nNode, iColumn, fnCallback ) + { + this.api( true ).order.listener( nNode, iColumn, fnCallback ); + }; + + + /** + * Update a table cell or row - this method will accept either a single value to + * update the cell with, an array of values with one element for each column or + * an object in the same format as the original data source. The function is + * self-referencing in order to make the multi column updates easier. + * @param {object|array|string} mData Data to update the cell/row with + * @param {node|int} mRow TR element you want to update or the aoData index + * @param {int} [iColumn] The column to update, give as null or undefined to + * update a whole row. + * @param {bool} [bRedraw=true] Redraw the table or not + * @param {bool} [bAction=true] Perform pre-draw actions or not + * @returns {int} 0 on success, 1 on error + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * oTable.fnUpdate( 'Example update', 0, 0 ); // Single cell + * oTable.fnUpdate( ['a', 'b', 'c', 'd', 'e'], $('tbody tr')[0] ); // Row + * } ); + */ + this.fnUpdate = function( mData, mRow, iColumn, bRedraw, bAction ) + { + var api = this.api( true ); + + if ( iColumn === undefined || iColumn === null ) { + api.row( mRow ).data( mData ); + } + else { + api.cell( mRow, iColumn ).data( mData ); + } + + if ( bAction === undefined || bAction ) { + api.columns.adjust(); + } + + if ( bRedraw === undefined || bRedraw ) { + api.draw(); + } + return 0; + }; + + + /** + * Provide a common method for plug-ins to check the version of DataTables being used, in order + * to ensure compatibility. + * @param {string} sVersion Version string to check for, in the format "X.Y.Z". Note that the + * formats "X" and "X.Y" are also acceptable. + * @returns {boolean} true if this version of DataTables is greater or equal to the required + * version, or false if this version of DataTales is not suitable + * @method + * @dtopt API + * @deprecated Since v1.10 + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * alert( oTable.fnVersionCheck( '1.9.0' ) ); + * } ); + */ + this.fnVersionCheck = _ext.fnVersionCheck; + + + /* + * This is really a good bit rubbish this method of exposing the internal methods + * publicly... - To be fixed in 2.0 using methods on the prototype + */ + + + /** + * Create a wrapper function for exporting an internal functions to an external API. + * @param {string} fn API function name + * @returns {function} wrapped function + * @memberof DataTable#internal + */ + function _fnExternApiFunc (fn) + { + return function() { + var args = [_fnSettingsFromNode( this[DataTable.ext.iApiIndex] )].concat( + Array.prototype.slice.call(arguments) + ); + return DataTable.ext.internal[fn].apply( this, args ); + }; + } + + + /** + * Reference to internal functions for use by plug-in developers. Note that + * these methods are references to internal functions and are considered to be + * private. If you use these methods, be aware that they are liable to change + * between versions. + * @namespace + */ + this.oApi = this.internal = { + _fnExternApiFunc: _fnExternApiFunc, + _fnBuildAjax: _fnBuildAjax, + _fnAjaxUpdate: _fnAjaxUpdate, + _fnAjaxParameters: _fnAjaxParameters, + _fnAjaxUpdateDraw: _fnAjaxUpdateDraw, + _fnAjaxDataSrc: _fnAjaxDataSrc, + _fnAddColumn: _fnAddColumn, + _fnColumnOptions: _fnColumnOptions, + _fnAdjustColumnSizing: _fnAdjustColumnSizing, + _fnVisibleToColumnIndex: _fnVisibleToColumnIndex, + _fnColumnIndexToVisible: _fnColumnIndexToVisible, + _fnVisbleColumns: _fnVisbleColumns, + _fnGetColumns: _fnGetColumns, + _fnColumnTypes: _fnColumnTypes, + _fnApplyColumnDefs: _fnApplyColumnDefs, + _fnHungarianMap: _fnHungarianMap, + _fnCamelToHungarian: _fnCamelToHungarian, + _fnLanguageCompat: _fnLanguageCompat, + _fnBrowserDetect: _fnBrowserDetect, + _fnAddData: _fnAddData, + _fnAddTr: _fnAddTr, + _fnNodeToDataIndex: _fnNodeToDataIndex, + _fnNodeToColumnIndex: _fnNodeToColumnIndex, + _fnGetRowData: _fnGetRowData, + _fnGetCellData: _fnGetCellData, + _fnSetCellData: _fnSetCellData, + _fnSplitObjNotation: _fnSplitObjNotation, + _fnGetObjectDataFn: _fnGetObjectDataFn, + _fnSetObjectDataFn: _fnSetObjectDataFn, + _fnGetDataMaster: _fnGetDataMaster, + _fnClearTable: _fnClearTable, + _fnDeleteIndex: _fnDeleteIndex, + _fnInvalidateRow: _fnInvalidateRow, + _fnGetRowElements: _fnGetRowElements, + _fnCreateTr: _fnCreateTr, + _fnBuildHead: _fnBuildHead, + _fnDrawHead: _fnDrawHead, + _fnDraw: _fnDraw, + _fnReDraw: _fnReDraw, + _fnAddOptionsHtml: _fnAddOptionsHtml, + _fnDetectHeader: _fnDetectHeader, + _fnGetUniqueThs: _fnGetUniqueThs, + _fnFeatureHtmlFilter: _fnFeatureHtmlFilter, + _fnFilterComplete: _fnFilterComplete, + _fnFilterCustom: _fnFilterCustom, + _fnFilterColumn: _fnFilterColumn, + _fnFilter: _fnFilter, + _fnFilterCreateSearch: _fnFilterCreateSearch, + _fnEscapeRegex: _fnEscapeRegex, + _fnFilterData: _fnFilterData, + _fnFeatureHtmlInfo: _fnFeatureHtmlInfo, + _fnUpdateInfo: _fnUpdateInfo, + _fnInfoMacros: _fnInfoMacros, + _fnInitialise: _fnInitialise, + _fnInitComplete: _fnInitComplete, + _fnLengthChange: _fnLengthChange, + _fnFeatureHtmlLength: _fnFeatureHtmlLength, + _fnFeatureHtmlPaginate: _fnFeatureHtmlPaginate, + _fnPageChange: _fnPageChange, + _fnFeatureHtmlProcessing: _fnFeatureHtmlProcessing, + _fnProcessingDisplay: _fnProcessingDisplay, + _fnFeatureHtmlTable: _fnFeatureHtmlTable, + _fnScrollDraw: _fnScrollDraw, + _fnApplyToChildren: _fnApplyToChildren, + _fnCalculateColumnWidths: _fnCalculateColumnWidths, + _fnThrottle: _fnThrottle, + _fnConvertToWidth: _fnConvertToWidth, + _fnScrollingWidthAdjust: _fnScrollingWidthAdjust, + _fnGetWidestNode: _fnGetWidestNode, + _fnGetMaxLenString: _fnGetMaxLenString, + _fnStringToCss: _fnStringToCss, + _fnScrollBarWidth: _fnScrollBarWidth, + _fnSortFlatten: _fnSortFlatten, + _fnSort: _fnSort, + _fnSortAria: _fnSortAria, + _fnSortListener: _fnSortListener, + _fnSortAttachListener: _fnSortAttachListener, + _fnSortingClasses: _fnSortingClasses, + _fnSortData: _fnSortData, + _fnSaveState: _fnSaveState, + _fnLoadState: _fnLoadState, + _fnSettingsFromNode: _fnSettingsFromNode, + _fnLog: _fnLog, + _fnMap: _fnMap, + _fnBindAction: _fnBindAction, + _fnCallbackReg: _fnCallbackReg, + _fnCallbackFire: _fnCallbackFire, + _fnLengthOverflow: _fnLengthOverflow, + _fnRenderer: _fnRenderer, + _fnDataSource: _fnDataSource, + _fnRowAttributes: _fnRowAttributes + }; + + $.extend( DataTable.ext.internal, this.internal ); + + for ( var fn in DataTable.ext.internal ) { + if ( fn ) { + this[fn] = _fnExternApiFunc(fn); + } + } + + + var _that = this; + var emptyInit = options === undefined; + var len = this.length; + + if ( emptyInit ) { + options = {}; + } + + this.each(function() { + // For each initialisation we want to give it a clean initialisation + // object that can be bashed around + var o = {}; + var oInit = len > 1 ? // optimisation for single table case + _fnExtend( o, options, true ) : + options; + + /*global oInit,_that,emptyInit*/ + var i=0, iLen, j, jLen, k, kLen; + var sId = this.getAttribute( 'id' ); + var bInitHandedOff = false; + var defaults = DataTable.defaults; + + + /* Sanity check */ + if ( this.nodeName.toLowerCase() != 'table' ) + { + _fnLog( null, 0, 'Non-table node initialisation ('+this.nodeName+')', 2 ); + return; + } + + /* Backwards compatibility for the defaults */ + _fnCompatOpts( defaults ); + _fnCompatCols( defaults.column ); + + /* Convert the camel-case defaults to Hungarian */ + _fnCamelToHungarian( defaults, defaults, true ); + _fnCamelToHungarian( defaults.column, defaults.column, true ); + + /* Setting up the initialisation object */ + _fnCamelToHungarian( defaults, oInit ); + + /* Check to see if we are re-initialising a table */ + var allSettings = DataTable.settings; + for ( i=0, iLen=allSettings.length ; i').appendTo(this); + } + oSettings.nTHead = thead[0]; + + var tbody = $(this).children('tbody'); + if ( tbody.length === 0 ) + { + tbody = $('').appendTo(this); + } + oSettings.nTBody = tbody[0]; + + var tfoot = $(this).children('tfoot'); + if ( tfoot.length === 0 && captions.length > 0 && (oSettings.oScroll.sX !== "" || oSettings.oScroll.sY !== "") ) + { + // If we are a scrolling table, and no footer has been given, then we need to create + // a tfoot element for the caption element to be appended to + tfoot = $('').appendTo(this); + } + + if ( tfoot.length === 0 || tfoot.children().length === 0 ) { + $(this).addClass( oSettings.oClasses.sNoFooter ); + } + else if ( tfoot.length > 0 ) { + oSettings.nTFoot = tfoot[0]; + _fnDetectHeader( oSettings.aoFooter, oSettings.nTFoot ); + } + + /* Check if there is data passing into the constructor */ + if ( oInit.aaData ) + { + for ( i=0 ; i 1 ) { + value = init; + isSet = true; + } + + for ( var i=0, ien=this.length ; i 1 ) { + value = init; + isSet = true; + } + + for ( var i=this.length-1 ; i>=0 ; i-- ) { + if ( ! this.hasOwnProperty(i) ) { + continue; + } + + value = isSet ? + fn( value, this[i], i, this ) : + this[i]; + + isSet = true; + } + + return value; + }, + + reverse: __arrayProto.reverse, + + + // Object with rows, columns and opts + selector: null, + + + shift: __arrayProto.shift, + + + sort: __arrayProto.sort, // ? name - order? + + + splice: __arrayProto.splice, + + + toArray: function () + { + return __arrayProto.slice.call( this ); + }, + + + to$: function () + { + return $( this ); + }, + + + toJQuery: function () + { + return $( this ); + }, + + + unique: function () + { + return new _Api( this.context, _unique(this) ); + }, + + + unshift: __arrayProto.unshift + }; + + + + + _Api.extend = function ( scope, obj, ext ) + { + // Only extend API instances and static properties of the API + if ( ! obj || ( ! (obj instanceof _Api) && ! obj.__dt_wrapper ) ) { + return; + } + + var + i, ien, + j, jen, + struct, inner, + methodScoping = function ( fn, struc ) { + return function () { + var ret = fn.apply( scope, arguments ); + + // Method extension + _Api.extend( ret, ret, struc.methodExt ); + return ret; + }; + }; + + for ( i=0, ien=ext.length ; i 0 ) { + return ctx[0].json; + } + + // else return undefined; + } ); + + + /** + * Reload tables from the Ajax data source. Note that this function will + * automatically re-draw the table when the remote data has been loaded. + * + * @param {boolean} [reset=true] Reset (default) or hold the current paging + * position. A full re-sort and re-filter is performed when this method is + * called, which is why the pagination reset is the default action. + * @returns {DataTables.Api} this + */ + _api_register( 'ajax.reload()', function ( callback, resetPaging ) { + return this.iterator( 'table', function (settings) { + __reload( settings, resetPaging===false, callback ); + } ); + } ); + + + /** + * Get the current Ajax URL. Note that this returns the URL from the first + * table in the current context. + * + * @return {string} Current Ajax source URL + *//** + * Set the Ajax URL. Note that this will set the URL for all tables in the + * current context. + * + * @param {string} url URL to set. + * @returns {DataTables.Api} this + */ + _api_register( 'ajax.url()', function ( url ) { + var ctx = this.context; + + if ( url === undefined ) { + // get + if ( ctx.length === 0 ) { + return undefined; + } + ctx = ctx[0]; + + return ctx.ajax ? + $.isPlainObject( ctx.ajax ) ? + ctx.ajax.url : + ctx.ajax : + ctx.sAjaxSource; + } + + // set + return this.iterator( 'table', function ( settings ) { + if ( $.isPlainObject( settings.ajax ) ) { + settings.ajax.url = url; + } + else { + settings.ajax = url; + } + // No need to consider sAjaxSource here since DataTables gives priority + // to `ajax` over `sAjaxSource`. So setting `ajax` here, renders any + // value of `sAjaxSource` redundant. + } ); + } ); + + + /** + * Load data from the newly set Ajax URL. Note that this method is only + * available when `ajax.url()` is used to set a URL. Additionally, this method + * has the same effect as calling `ajax.reload()` but is provided for + * convenience when setting a new URL. Like `ajax.reload()` it will + * automatically redraw the table once the remote data has been loaded. + * + * @returns {DataTables.Api} this + */ + _api_register( 'ajax.url().load()', function ( callback, resetPaging ) { + // Same as a reload, but makes sense to present it for easy access after a + // url change + return this.iterator( 'table', function ( ctx ) { + __reload( ctx, resetPaging===false, callback ); + } ); + } ); + + + + + var _selector_run = function ( selector, select ) + { + var + out = [], res, + a, i, ien, j, jen; + + if ( ! $.isArray( selector ) ) { + selector = [ selector ]; + } + + for ( i=0, ien=selector.length ; i 0 ) { + // Assign the first element to the first item in the instance + // and truncate the instance and context + inst[0] = inst[i]; + inst.length = 1; + inst.context = [ inst.context[i] ]; + + return inst; + } + } + + // Not found - return an empty instance + inst.length = 0; + return inst; + }; + + + var _selector_row_indexes = function ( settings, opts ) + { + var + i, ien, tmp, a=[], + displayFiltered = settings.aiDisplay, + displayMaster = settings.aiDisplayMaster; + + var + search = opts.search, // none, applied, removed + order = opts.order, // applied, current, index (original - compatibility with 1.9) + page = opts.page; // all, current + + // Current page implies that order=current and fitler=applied, since it is + // fairly senseless otherwise, regardless of what order and search actually + // are + if ( page == 'current' ) + { + for ( i=settings._iDisplayStart, ien=settings.fnDisplayEnd() ; i').find('td').html( r ).parent(); + } + + $('td', r).addClass( k )[0].colSpan = _fnVisbleColumns( ctx ); + rows.push( r[0] ); + }; + + if ( $.isArray( data ) || data instanceof $ ) { + for ( var i=0, ien=data.length ; i 0 ) { + // On each draw, insert the required elements into the document + table.on('draw.DT_details', function () { + table.find('tbody tr').each( function () { + // Look up the row index for each row and append open row + var rowIdx = _fnNodeToDataIndex( settings, this ); + var row = settings.aoData[ rowIdx ]; + + if ( row._detailsShow ) { + row._details.insertAfter( this ); + } + } ); + } ); + + // Column visibility change - update the colspan + table.on( 'column-visibility.DT_details', function ( e, settings, idx, vis ) { + // Update the colspan for the details rows (note, only if it already has + // a colspan) + var row, visible = _fnVisbleColumns( settings ); + + for ( var i=0, ien=settings.aoData.length ; i=0 count from left, <0 count from right) + * "{integer}:visIdx" - visible column index (i.e. translate to column index) (>=0 count from left, <0 count from right) + * "{integer}:visible" - alias for {integer}:visIdx (>=0 count from left, <0 count from right) + * "{string}:name" - column name + * "{string}" - jQuery selector on column header nodes + * + */ + + // can be an array of these items, comma separated list, or an array of comma + // separated lists + + var __re_column_selector = /^(.*):(name|visIdx|visible)$/; + + var __column_selector = function ( settings, selector, opts ) + { + var + columns = settings.aoColumns, + names = _pluck( columns, 'sName' ), + nodes = _pluck( columns, 'nTh' ); + + return _selector_run( selector, function ( s ) { + var selInt = _intVal( s ); + + if ( s === '' ) { + // All columns + return _range( settings.aoColumns.length ); + } + else if ( selInt !== null ) { + // Integer selector + return [ selInt >= 0 ? + selInt : // Count from left + columns.length + selInt // Count from right (+ because its a negative value) + ]; + } + else { + var match = s.match( __re_column_selector ); + + if ( match ) { + switch( match[2] ) { + case 'visIdx': + case 'visible': + var idx = parseInt( match[1], 10 ); + // Visible index given, convert to column index + if ( idx < 0 ) { + // Counting from the right + var visColumns = $.map( columns, function (col,i) { + return col.bVisible ? i : null; + } ); + return [ visColumns[ visColumns.length + idx ] ]; + } + // Counting from the left + return [ _fnVisibleToColumnIndex( settings, idx ) ]; + + case 'name': + // match by name. `names` is column index complete and in order + return $.map( names, function (name, i) { + return name === match[1] ? i : null; + } ); + } + } + else { + // jQuery selector on the TH elements for the columns + return $( nodes ) + .filter( s ) + .map( function () { + return $.inArray( this, nodes ); // `nodes` is column index complete and in order + } ) + .toArray(); + } + } + } ); + }; + + + + + + var __setColumnVis = function ( settings, column, vis ) { + var + cols = settings.aoColumns, + col = cols[ column ], + data = settings.aoData, + row, cells, i, ien, tr; + + // Get + if ( vis === undefined ) { + return col.bVisible; + } + + // Set + // No change + if ( col.bVisible === vis ) { + return; + } + + if ( vis ) { + // Insert column + // Need to decide if we should use appendChild or insertBefore + var insertBefore = $.inArray( true, _pluck(cols, 'bVisible'), column+1 ); + + for ( i=0, ien=data.length ; i iThat; + } + + return true; + }; + + + /** + * Check if a `` node is a DataTable table already or not. + * + * @param {node|jquery|string} table Table node, jQuery object or jQuery + * selector for the table to test. Note that if more than more than one + * table is passed on, only the first will be checked + * @returns {boolean} true the table given is a DataTable, or false otherwise + * @static + * @dtopt API-Static + * + * @example + * if ( ! $.fn.DataTable.isDataTable( '#example' ) ) { + * $('#example').dataTable(); + * } + */ + DataTable.isDataTable = DataTable.fnIsDataTable = function ( table ) + { + var t = $(table).get(0); + var is = false; + + $.each( DataTable.settings, function (i, o) { + if ( o.nTable === t || o.nScrollHead === t || o.nScrollFoot === t ) { + is = true; + } + } ); + + return is; + }; + + + /** + * Get all DataTable tables that have been initialised - optionally you can + * select to get only currently visible tables. + * + * @param {boolean} [visible=false] Flag to indicate if you want all (default) + * or visible tables only. + * @returns {array} Array of `table` nodes (not DataTable instances) which are + * DataTables + * @static + * @dtopt API-Static + * + * @example + * $.each( $.fn.dataTable.tables(true), function () { + * $(table).DataTable().columns.adjust(); + * } ); + */ + DataTable.tables = DataTable.fnTables = function ( visible ) + { + return jQuery.map( DataTable.settings, function (o) { + if ( !visible || (visible && $(o.nTable).is(':visible')) ) { + return o.nTable; + } + } ); + }; + + + + /** + * + */ + _api_register( '$()', function ( selector, opts ) { + var + rows = this.rows( opts ).nodes(), // Get all rows + jqRows = $(rows); + + return $( [].concat( + jqRows.filter( selector ).toArray(), + jqRows.find( selector ).toArray() + ) ); + } ); + + + // jQuery functions to operate on the tables + $.each( [ 'on', 'one', 'off' ], function (i, key) { + _api_register( key+'()', function ( /* event, handler */ ) { + var args = Array.prototype.slice.call(arguments); + + // Add the `dt` namespace automatically if it isn't already present + if ( args[0].indexOf( '.dt' ) === -1 ) { + args[0] += '.dt'; + } + + var inst = $( this.tables().nodes() ); + inst[key].apply( inst, args ); + return this; + } ); + } ); + + + _api_register( 'clear()', function () { + return this.iterator( 'table', function ( settings ) { + _fnClearTable( settings ); + } ); + } ); + + + _api_register( 'settings()', function () { + return new _Api( this.context, this.context ); + } ); + + + _api_register( 'data()', function () { + return this.iterator( 'table', function ( settings ) { + return _pluck( settings.aoData, '_aData' ); + } ).flatten(); + } ); + + + _api_register( 'destroy()', function ( remove ) { + remove = remove || false; + + return this.iterator( 'table', function ( settings ) { + var orig = settings.nTableWrapper.parentNode; + var classes = settings.oClasses; + var table = settings.nTable; + var tbody = settings.nTBody; + var thead = settings.nTHead; + var tfoot = settings.nTFoot; + var jqTable = $(table); + var jqTbody = $(tbody); + var jqWrapper = $(settings.nTableWrapper); + var rows = $.map( settings.aoData, function (r) { return r.nTr; } ); + var i, ien; + + // Flag to note that the table is currently being destroyed - no action + // should be taken + settings.bDestroying = true; + + // Fire off the destroy callbacks for plug-ins etc + _fnCallbackFire( settings, "aoDestroyCallback", "destroy", [settings] ); + + // If not being removed from the document, make all columns visible + if ( ! remove ) { + new _Api( settings ).columns().visible( true ); + } + + // Blitz all DT events + jqWrapper.unbind('.DT').find(':not(tbody *)').unbind('.DT'); + $(window).unbind('.DT-'+settings.sInstance); + + // When scrolling we had to break the table up - restore it + if ( table != thead.parentNode ) { + jqTable.children('thead').remove(); + jqTable.append( thead ); + } + + if ( tfoot && table != tfoot.parentNode ) { + jqTable.children('tfoot').remove(); + jqTable.append( tfoot ); + } + + // Remove the DataTables generated nodes, events and classes + jqTable.remove(); + jqWrapper.remove(); + + settings.aaSorting = []; + settings.aaSortingFixed = []; + _fnSortingClasses( settings ); + + $( rows ).removeClass( settings.asStripeClasses.join(' ') ); + + $('th, td', thead).removeClass( classes.sSortable+' '+ + classes.sSortableAsc+' '+classes.sSortableDesc+' '+classes.sSortableNone + ); + + if ( settings.bJUI ) { + $('th span.'+classes.sSortIcon+ ', td span.'+classes.sSortIcon, thead).remove(); + $('th, td', thead).each( function () { + var wrapper = $('div.'+classes.sSortJUIWrapper, this); + $(this).append( wrapper.contents() ); + wrapper.remove(); + } ); + } + + if ( ! remove ) { + // insertBefore acts like appendChild if !arg[1] + orig.insertBefore( table, settings.nTableReinsertBefore ); + } + + // Add the TR elements back into the table in their original order + jqTbody.children().detach(); + jqTbody.append( rows ); + + // Restore the width of the original table - was read from the style property, + // so we can restore directly to that + jqTable + .css( 'width', settings.sDestroyWidth ) + .removeClass( classes.sTable ); + + // If the were originally stripe classes - then we add them back here. + // Note this is not fool proof (for example if not all rows had stripe + // classes - but it's a good effort without getting carried away + ien = settings.asDestroyStripes.length; + + if ( ien ) { + jqTbody.children().each( function (i) { + $(this).addClass( settings.asDestroyStripes[i % ien] ); + } ); + } + + /* Remove the settings object from the settings array */ + var idx = $.inArray( settings, DataTable.settings ); + if ( idx !== -1 ) { + DataTable.settings.splice( idx, 1 ); + } + } ); + } ); + + + /** + * Version string for plug-ins to check compatibility. Allowed format is + * `a.b.c-d` where: a:int, b:int, c:int, d:string(dev|beta|alpha). `d` is used + * only for non-release builds. See http://semver.org/ for more information. + * @member + * @type string + * @default Version number + */ + DataTable.version = "1.10.0-dev"; + + /** + * Private data store, containing all of the settings objects that are + * created for the tables on a given page. + * + * Note that the `DataTable.settings` object is aliased to + * `jQuery.fn.dataTableExt` through which it may be accessed and + * manipulated, or `jQuery.fn.dataTable.settings`. + * @member + * @type array + * @default [] + * @private + */ + DataTable.settings = []; + + /** + * Object models container, for the various models that DataTables has + * available to it. These models define the objects that are used to hold + * the active state and configuration of the table. + * @namespace + */ + DataTable.models = {}; + + + + /** + * Template object for the way in which DataTables holds information about + * search information for the global filter and individual column filters. + * @namespace + */ + DataTable.models.oSearch = { + /** + * Flag to indicate if the filtering should be case insensitive or not + * @type boolean + * @default true + */ + "bCaseInsensitive": true, + + /** + * Applied search term + * @type string + * @default Empty string + */ + "sSearch": "", + + /** + * Flag to indicate if the search term should be interpreted as a + * regular expression (true) or not (false) and therefore and special + * regex characters escaped. + * @type boolean + * @default false + */ + "bRegex": false, + + /** + * Flag to indicate if DataTables is to use its smart filtering or not. + * @type boolean + * @default true + */ + "bSmart": true + }; + + + + + /** + * Template object for the way in which DataTables holds information about + * each individual row. This is the object format used for the settings + * aoData array. + * @namespace + */ + DataTable.models.oRow = { + /** + * TR element for the row + * @type node + * @default null + */ + "nTr": null, + + /** + * Array of TD elements for each row. This is null until the row has been + * created. + * @type array nodes + * @default [] + */ + "anCells": null, + + /** + * Data object from the original data source for the row. This is either + * an array if using the traditional form of DataTables, or an object if + * using mData options. The exact type will depend on the passed in + * data from the data source, or will be an array if using DOM a data + * source. + * @type array|object + * @default [] + */ + "_aData": [], + + /** + * Sorting data cache - this array is ostensibly the same length as the + * number of columns (although each index is generated only as it is + * needed), and holds the data that is used for sorting each column in the + * row. We do this cache generation at the start of the sort in order that + * the formatting of the sort data need be done only once for each cell + * per sort. This array should not be read from or written to by anything + * other than the master sorting methods. + * @type array + * @default null + * @private + */ + "_aSortData": null, + + /** + * Per cell filtering data cache. As per the sort data cache, used to + * increase the performance of the filtering in DataTables + * @type array + * @default null + * @private + */ + "_aFilterData": null, + + /** + * Filtering data cache. This is the same as the cell filtering cache, but + * in this case a string rather than an array. This is easily computed with + * a join on `_aFilterData`, but is provided as a cache so the join isn't + * needed on every search (memory traded for performance) + * @type array + * @default null + * @private + */ + "_sFilterRow": null, + + /** + * Cache of the class name that DataTables has applied to the row, so we + * can quickly look at this variable rather than needing to do a DOM check + * on className for the nTr property. + * @type string + * @default Empty string + * @private + */ + "_sRowStripe": "", + + /** + * Denote if the original data source was from the DOM, or the data source + * object. This is used for invalidating data, so DataTables can + * automatically read data from the original source, unless uninstructed + * otherwise. + * @type string + * @default null + * @private + */ + "src": null + }; + + + + /** + * Template object for the column information object in DataTables. This object + * is held in the settings aoColumns array and contains all the information that + * DataTables needs about each individual column. + * + * Note that this object is related to {@link DataTable.defaults.column} + * but this one is the internal data store for DataTables's cache of columns. + * It should NOT be manipulated outside of DataTables. Any configuration should + * be done through the initialisation options. + * @namespace + */ + DataTable.models.oColumn = { + /** + * A list of the columns that sorting should occur on when this column + * is sorted. That this property is an array allows multi-column sorting + * to be defined for a column (for example first name / last name columns + * would benefit from this). The values are integers pointing to the + * columns to be sorted on (typically it will be a single integer pointing + * at itself, but that doesn't need to be the case). + * @type array + */ + "aDataSort": null, + + /** + * Define the sorting directions that are applied to the column, in sequence + * as the column is repeatedly sorted upon - i.e. the first value is used + * as the sorting direction when the column if first sorted (clicked on). + * Sort it again (click again) and it will move on to the next index. + * Repeat until loop. + * @type array + */ + "asSorting": null, + + /** + * Flag to indicate if the column is searchable, and thus should be included + * in the filtering or not. + * @type boolean + */ + "bSearchable": null, + + /** + * Flag to indicate if the column is sortable or not. + * @type boolean + */ + "bSortable": null, + + /** + * Flag to indicate if the column is currently visible in the table or not + * @type boolean + */ + "bVisible": null, + + /** + * Store for manual type assignment using the `column.type` option. This + * is held in store so we can manipulate the column's `sType` property. + * @type string + * @default null + * @private + */ + "_sManualType": null, + + /** + * Flag to indicate if HTML5 data attributes should be used as the data + * source for filtering or sorting. True is either are. + * @type boolean + * @default false + * @private + */ + "_bAttrSrc": false, + + /** + * Developer definable function that is called whenever a cell is created (Ajax source, + * etc) or processed for input (DOM source). This can be used as a compliment to mRender + * allowing you to modify the DOM element (add background colour for example) when the + * element is available. + * @type function + * @param {element} nTd The TD node that has been created + * @param {*} sData The Data for the cell + * @param {array|object} oData The data for the whole row + * @param {int} iRow The row index for the aoData data store + * @default null + */ + "fnCreatedCell": null, + + /** + * Function to get data from a cell in a column. You should never + * access data directly through _aData internally in DataTables - always use + * the method attached to this property. It allows mData to function as + * required. This function is automatically assigned by the column + * initialisation method + * @type function + * @param {array|object} oData The data array/object for the array + * (i.e. aoData[]._aData) + * @param {string} sSpecific The specific data type you want to get - + * 'display', 'type' 'filter' 'sort' + * @returns {*} The data for the cell from the given row's data + * @default null + */ + "fnGetData": null, + + /** + * Function to set data for a cell in the column. You should never + * set the data directly to _aData internally in DataTables - always use + * this method. It allows mData to function as required. This function + * is automatically assigned by the column initialisation method + * @type function + * @param {array|object} oData The data array/object for the array + * (i.e. aoData[]._aData) + * @param {*} sValue Value to set + * @default null + */ + "fnSetData": null, + + /** + * Property to read the value for the cells in the column from the data + * source array / object. If null, then the default content is used, if a + * function is given then the return from the function is used. + * @type function|int|string|null + * @default null + */ + "mData": null, + + /** + * Partner property to mData which is used (only when defined) to get + * the data - i.e. it is basically the same as mData, but without the + * 'set' option, and also the data fed to it is the result from mData. + * This is the rendering method to match the data method of mData. + * @type function|int|string|null + * @default null + */ + "mRender": null, + + /** + * Unique header TH/TD element for this column - this is what the sorting + * listener is attached to (if sorting is enabled.) + * @type node + * @default null + */ + "nTh": null, + + /** + * Unique footer TH/TD element for this column (if there is one). Not used + * in DataTables as such, but can be used for plug-ins to reference the + * footer for each column. + * @type node + * @default null + */ + "nTf": null, + + /** + * The class to apply to all TD elements in the table's TBODY for the column + * @type string + * @default null + */ + "sClass": null, + + /** + * When DataTables calculates the column widths to assign to each column, + * it finds the longest string in each column and then constructs a + * temporary table and reads the widths from that. The problem with this + * is that "mmm" is much wider then "iiii", but the latter is a longer + * string - thus the calculation can go wrong (doing it properly and putting + * it into an DOM object and measuring that is horribly(!) slow). Thus as + * a "work around" we provide this option. It will append its value to the + * text that is found to be the longest string for the column - i.e. padding. + * @type string + */ + "sContentPadding": null, + + /** + * Allows a default value to be given for a column's data, and will be used + * whenever a null data source is encountered (this can be because mData + * is set to null, or because the data source itself is null). + * @type string + * @default null + */ + "sDefaultContent": null, + + /** + * Name for the column, allowing reference to the column by name as well as + * by index (needs a lookup to work by name). + * @type string + */ + "sName": null, + + /** + * Custom sorting data type - defines which of the available plug-ins in + * afnSortData the custom sorting will use - if any is defined. + * @type string + * @default std + */ + "sSortDataType": 'std', + + /** + * Class to be applied to the header element when sorting on this column + * @type string + * @default null + */ + "sSortingClass": null, + + /** + * Class to be applied to the header element when sorting on this column - + * when jQuery UI theming is used. + * @type string + * @default null + */ + "sSortingClassJUI": null, + + /** + * Title of the column - what is seen in the TH element (nTh). + * @type string + */ + "sTitle": null, + + /** + * Column sorting and filtering type + * @type string + * @default null + */ + "sType": null, + + /** + * Width of the column + * @type string + * @default null + */ + "sWidth": null, + + /** + * Width of the column when it was first "encountered" + * @type string + * @default null + */ + "sWidthOrig": null + }; + + + /* + * Developer note: The properties of the object below are given in Hungarian + * notation, that was used as the interface for DataTables prior to v1.10, however + * from v1.10 onwards the primary interface is camel case. In order to avoid + * breaking backwards compatibility utterly with this change, the Hungarian + * version is still, internally the primary interface, but is is not documented + * - hence the @name tags in each doc comment. This allows a Javascript function + * to create a map from Hungarian notation to camel case (going the other direction + * would require each property to be listed, which would at around 3K to the size + * of DataTables, while this method is about a 0.5K hit. + * + * Ultimately this does pave the way for Hungarian notation to be dropped + * completely, but that is a massive amount of work and will break current + * installs (therefore is on-hold until v2). + */ + + /** + * Initialisation options that can be given to DataTables at initialisation + * time. + * @namespace + */ + DataTable.defaults = { + /** + * An array of data to use for the table, passed in at initialisation which + * will be used in preference to any data which is already in the DOM. This is + * particularly useful for constructing tables purely in Javascript, for + * example with a custom Ajax call. + * @type array + * @default null + * + * @dtopt Option + * @name DataTable.defaults.data + * + * @example + * // Using a 2D array data source + * $(document).ready( function () { + * $('#example').dataTable( { + * "data": [ + * ['Trident', 'Internet Explorer 4.0', 'Win 95+', 4, 'X'], + * ['Trident', 'Internet Explorer 5.0', 'Win 95+', 5, 'C'], + * ], + * "columns": [ + * { "title": "Engine" }, + * { "title": "Browser" }, + * { "title": "Platform" }, + * { "title": "Version" }, + * { "title": "Grade" } + * ] + * } ); + * } ); + * + * @example + * // Using an array of objects as a data source (`data`) + * $(document).ready( function () { + * $('#example').dataTable( { + * "data": [ + * { + * "engine": "Trident", + * "browser": "Internet Explorer 4.0", + * "platform": "Win 95+", + * "version": 4, + * "grade": "X" + * }, + * { + * "engine": "Trident", + * "browser": "Internet Explorer 5.0", + * "platform": "Win 95+", + * "version": 5, + * "grade": "C" + * } + * ], + * "columns": [ + * { "title": "Engine", "data": "engine" }, + * { "title": "Browser", "data": "browser" }, + * { "title": "Platform", "data": "platform" }, + * { "title": "Version", "data": "version" }, + * { "title": "Grade", "data": "grade" } + * ] + * } ); + * } ); + */ + "aaData": null, + + + /** + * If ordering is enabled, then DataTables will perform a first pass sort on + * initialisation. You can define which column(s) the sort is performed + * upon, and the sorting direction, with this variable. The `sorting` array + * should contain an array for each column to be sorted initially containing + * the column's index and a direction string ('asc' or 'desc'). + * @type array + * @default [[0,'asc']] + * + * @dtopt Option + * @name DataTable.defaults.order + * + * @example + * // Sort by 3rd column first, and then 4th column + * $(document).ready( function() { + * $('#example').dataTable( { + * "order": [[2,'asc'], [3,'desc']] + * } ); + * } ); + * + * // No initial sorting + * $(document).ready( function() { + * $('#example').dataTable( { + * "order": [] + * } ); + * } ); + */ + "aaSorting": [[0,'asc']], + + + /** + * This parameter is basically identical to the `sorting` parameter, but + * cannot be overridden by user interaction with the table. What this means + * is that you could have a column (visible or hidden) which the sorting + * will always be forced on first - any sorting after that (from the user) + * will then be performed as required. This can be useful for grouping rows + * together. + * @type array + * @default null + * + * @dtopt Option + * @name DataTable.defaults.orderFixed + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "orderFixed": [[0,'asc']] + * } ); + * } ) + */ + "aaSortingFixed": [], + + + /** + * DataTables can be instructed to load data to display in the table from a + * Ajax source. This option defines how that Ajax call is made and where to. + * + * The `ajax` property has three different modes of operation, depending on + * how it is defined. These are: + * + * * `string` - Set the URL from where the data should be loaded from. + * * `object` - Define properties for `jQuery.ajax`. + * * `function` - Custom data get function + * + * `string` + * -------- + * + * As a string, the `ajax` property simply defines the URL from which + * DataTables will load data. + * + * `object` + * -------- + * + * As an object, the parameters in the object are passed to + * [jQuery.ajax](http://api.jquery.com/jQuery.ajax/) allowing fine control + * of the Ajax request. DataTables has a number of default parameters which + * you can override using this option. Please refer to the jQuery + * documentation for a full description of the options available, although + * the following parameters provide additional options in DataTables or + * require special consideration: + * + * * `data` - As with jQuery, `data` can be provided as an object, but it + * can also be used as a function to manipulate the data DataTables sends + * to the server. The function takes a single parameter, an object of + * parameters with the values that DataTables has readied for sending. An + * object may be returned which will be merged into the DataTables + * defaults, or you can add the items to the object that was passed in and + * not return anything from the function. This supersedes `fnServerParams` + * from DataTables 1.9-. + * + * * `dataSrc` - By default DataTables will look for the property `data` (or + * `aaData` for compatibility with DataTables 1.9-) when obtaining data + * from an Ajax source or for server-side processing - this parameter + * allows that property to be changed. You can use Javascript dotted + * object notation to get a data source for multiple levels of nesting, or + * it my be used as a function. As a function it takes a single parameter, + * the JSON returned from the server, which can be manipulated as + * required, with the returned value being that used by DataTables as the + * data source for the table. This supersedes `sAjaxDataProp` from + * DataTables 1.9-. + * + * * `success` - Should not be overridden it is used internally in + * DataTables. To manipulate / transform the data returned by the server + * use `ajax.dataSrc`, or use `ajax` as a function (see below). + * + * `function` + * ---------- + * + * As a function, making the Ajax call is left up to yourself allowing + * complete control of the Ajax request. Indeed, if desired, a method other + * than Ajax could be used to obtain the required data, such as Web storage + * or an AIR database. + * + * The function is given four parameters and no return is required. The + * parameters are: + * + * 1. _object_ - Data to send to the server + * 2. _function_ - Callback function that must be executed when the required + * data has been obtained. That data should be passed into the callback + * as the only parameter + * 3. _object_ - DataTables settings object for the table + * + * Note that this supersedes `fnServerData` from DataTables 1.9-. + * + * @type string|object|function + * @default null + * + * @dtopt Option + * @name DataTable.defaults.ajax + * @since 1.10.0 + * + * @example + * // Get JSON data from a file via Ajax. + * // Note DataTables expects data in the form `{ data: [ ...data... ] }` by default). + * $('#example').dataTable( { + * "ajax": "data.json" + * } ); + * + * @example + * // Get JSON data from a file via Ajax, using `dataSrc` to change + * // `data` to `tableData` (i.e. `{ tableData: [ ...data... ] }`) + * $('#example').dataTable( { + * "ajax": { + * "url": "data.json", + * "dataSrc": "tableData" + * } + * } ); + * + * @example + * // Get JSON data from a file via Ajax, using `dataSrc` to read data + * // from a plain array rather than an array in an object + * $('#example').dataTable( { + * "ajax": { + * "url": "data.json", + * "dataSrc": "" + * } + * } ); + * + * @example + * // Manipulate the data returned from the server - add a link to data + * // (note this can, should, be done using `render` for the column - this + * // is just a simple example of how the data can be manipulated). + * $('#example').dataTable( { + * "ajax": { + * "url": "data.json", + * "dataSrc": function ( json ) { + * for ( var i=0, ien=json.length ; iView message'; + * } + * return json; + * } + * } + * } ); + * + * @example + * // Add data to the request + * $('#example').dataTable( { + * "ajax": { + * "url": "data.json", + * "data": function ( d ) { + * return { + * "extra_search": $('#extra').val() + * }; + * } + * } + * } ); + * + * @example + * // Send request as POST + * $('#example').dataTable( { + * "ajax": { + * "url": "data.json", + * "type": "POST" + * } + * } ); + * + * @example + * // Get the data from localStorage (could interface with a form for + * // adding, editing and removing rows). + * $('#example').dataTable( { + * "ajax": function (data, callback, settings) { + * callback( + * JSON.parse( localStorage.getItem('dataTablesData') ) + * ); + * } + * } ); + */ + "ajax": null, + + + /** + * This parameter allows you to readily specify the entries in the length drop + * down menu that DataTables shows when pagination is enabled. It can be + * either a 1D array of options which will be used for both the displayed + * option and the value, or a 2D array which will use the array in the first + * position as the value, and the array in the second position as the + * displayed options (useful for language strings such as 'All'). + * + * Note that the `pageLength` property will be automatically set to the + * first value given in this array, unless `pageLength` is also provided. + * @type array + * @default [ 10, 25, 50, 100 ] + * + * @dtopt Option + * @name DataTable.defaults.lengthMenu + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]] + * } ); + * } ); + */ + "aLengthMenu": [ 10, 25, 50, 100 ], + + + /** + * The `columns` option in the initialisation parameter allows you to define + * details about the way individual columns behave. For a full list of + * column options that can be set, please see + * {@link DataTable.defaults.column}. Note that if you use `columns` to + * define your columns, you must have an entry in the array for every single + * column that you have in your table (these can be null if you don't which + * to specify any options). + * @member + * + * @name DataTable.defaults.column + */ + "aoColumns": null, + + /** + * Very similar to `columns`, `columnDefs` allows you to target a specific + * column, multiple columns, or all columns, using the `targets` property of + * each object in the array. This allows great flexibility when creating + * tables, as the `columnDefs` arrays can be of any length, targeting the + * columns you specifically want. `columnDefs` may use any of the column + * options available: {@link DataTable.defaults.column}, but it _must_ + * have `targets` defined in each object in the array. Values in the `targets` + * array may be: + *
                                + *
                              • a string - class name will be matched on the TH for the column
                              • + *
                              • 0 or a positive integer - column index counting from the left
                              • + *
                              • a negative integer - column index counting from the right
                              • + *
                              • the string "_all" - all columns (i.e. assign a default)
                              • + *
                              + * @member + * + * @name DataTable.defaults.columnDefs + */ + "aoColumnDefs": null, + + + /** + * Basically the same as `search`, this parameter defines the individual column + * filtering state at initialisation time. The array must be of the same size + * as the number of columns, and each element be an object with the parameters + * `search` and `escapeRegex` (the latter is optional). 'null' is also + * accepted and the default will be used. + * @type array + * @default [] + * + * @dtopt Option + * @name DataTable.defaults.searchCols + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "searchCols": [ + * null, + * { "search": "My filter" }, + * null, + * { "search": "^[0-9]", "escapeRegex": false } + * ] + * } ); + * } ) + */ + "aoSearchCols": [], + + + /** + * An array of CSS classes that should be applied to displayed rows. This + * array may be of any length, and DataTables will apply each class + * sequentially, looping when required. + * @type array + * @default null Will take the values determined by the `oClasses.stripe*` + * options + * + * @dtopt Option + * @name DataTable.defaults.stripeClasses + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "stripeClasses": [ 'strip1', 'strip2', 'strip3' ] + * } ); + * } ) + */ + "asStripeClasses": null, + + + /** + * Enable or disable automatic column width calculation. This can be disabled + * as an optimisation (it takes some time to calculate the widths) if the + * tables widths are passed in using `columns`. + * @type boolean + * @default true + * + * @dtopt Features + * @name DataTable.defaults.autoWidth + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "autoWidth": false + * } ); + * } ); + */ + "bAutoWidth": true, + + + /** + * Deferred rendering can provide DataTables with a huge speed boost when you + * are using an Ajax or JS data source for the table. This option, when set to + * true, will cause DataTables to defer the creation of the table elements for + * each row until they are needed for a draw - saving a significant amount of + * time. + * @type boolean + * @default false + * + * @dtopt Features + * @name DataTable.defaults.deferRender + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "ajax": "sources/arrays.txt", + * "deferRender": true + * } ); + * } ); + */ + "bDeferRender": false, + + + /** + * Replace a DataTable which matches the given selector and replace it with + * one which has the properties of the new initialisation object passed. If no + * table matches the selector, then the new DataTable will be constructed as + * per normal. + * @type boolean + * @default false + * + * @dtopt Options + * @name DataTable.defaults.destroy + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "srollY": "200px", + * "paginate": false + * } ); + * + * // Some time later.... + * $('#example').dataTable( { + * "filter": false, + * "destroy": true + * } ); + * } ); + */ + "bDestroy": false, + + + /** + * Enable or disable filtering of data. Filtering in DataTables is "smart" in + * that it allows the end user to input multiple words (space separated) and + * will match a row containing those words, even if not in the order that was + * specified (this allow matching across multiple columns). Note that if you + * wish to use filtering in DataTables this must remain 'true' - to remove the + * default filtering input box and retain filtering abilities, please use + * {@link DataTable.defaults.dom}. + * @type boolean + * @default true + * + * @dtopt Features + * @name DataTable.defaults.searching + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "searching": false + * } ); + * } ); + */ + "bFilter": true, + + + /** + * Enable or disable the table information display. This shows information + * about the data that is currently visible on the page, including information + * about filtered data if that action is being performed. + * @type boolean + * @default true + * + * @dtopt Features + * @name DataTable.defaults.info + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "info": false + * } ); + * } ); + */ + "bInfo": true, + + + /** + * Enable jQuery UI ThemeRoller support (required as ThemeRoller requires some + * slightly different and additional mark-up from what DataTables has + * traditionally used). + * @type boolean + * @default false + * + * @dtopt Features + * @name DataTable.defaults.jQueryUI + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "jQueryUI": true + * } ); + * } ); + */ + "bJQueryUI": false, + + + /** + * Allows the end user to select the size of a formatted page from a select + * menu (sizes are 10, 25, 50 and 100). Requires pagination (`paginate`). + * @type boolean + * @default true + * + * @dtopt Features + * @name DataTable.defaults.lengthChange + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "lengthChange": false + * } ); + * } ); + */ + "bLengthChange": true, + + + /** + * Enable or disable pagination. + * @type boolean + * @default true + * + * @dtopt Features + * @name DataTable.defaults.paging + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "paging": false + * } ); + * } ); + */ + "bPaginate": true, + + + /** + * Enable or disable the display of a 'processing' indicator when the table is + * being processed (e.g. a sort). This is particularly useful for tables with + * large amounts of data where it can take a noticeable amount of time to sort + * the entries. + * @type boolean + * @default false + * + * @dtopt Features + * @name DataTable.defaults.processing + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "processing": true + * } ); + * } ); + */ + "bProcessing": false, + + + /** + * Retrieve the DataTables object for the given selector. Note that if the + * table has already been initialised, this parameter will cause DataTables + * to simply return the object that has already been set up - it will not take + * account of any changes you might have made to the initialisation object + * passed to DataTables (setting this parameter to true is an acknowledgement + * that you understand this). `destroy` can be used to reinitialise a table if + * you need. + * @type boolean + * @default false + * + * @dtopt Options + * @name DataTable.defaults.retrieve + * + * @example + * $(document).ready( function() { + * initTable(); + * tableActions(); + * } ); + * + * function initTable () + * { + * return $('#example').dataTable( { + * "scrollY": "200px", + * "paginate": false, + * "retrieve": true + * } ); + * } + * + * function tableActions () + * { + * var table = initTable(); + * // perform API operations with oTable + * } + */ + "bRetrieve": false, + + + /** + * When vertical (y) scrolling is enabled, DataTables will force the height of + * the table's viewport to the given height at all times (useful for layout). + * However, this can look odd when filtering data down to a small data set, + * and the footer is left "floating" further down. This parameter (when + * enabled) will cause DataTables to collapse the table's viewport down when + * the result set will fit within the given Y height. + * @type boolean + * @default false + * + * @dtopt Options + * @name DataTable.defaults.scrollCollapse + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "scrollY": "200", + * "scrollCollapse": true + * } ); + * } ); + */ + "bScrollCollapse": false, + + + /** + * Configure DataTables to use server-side processing. Note that the + * `ajax` parameter must also be given in order to give DataTables a + * source to obtain the required data for each draw. + * @type boolean + * @default false + * + * @dtopt Features + * @dtopt Server-side + * @name DataTable.defaults.serverSide + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "serverSide": true, + * "ajax": "xhr.php" + * } ); + * } ); + */ + "bServerSide": false, + + + /** + * Enable or disable sorting of columns. Sorting of individual columns can be + * disabled by the `sortable` option for each column. + * @type boolean + * @default true + * + * @dtopt Features + * @name DataTable.defaults.ordering + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "ordering": false + * } ); + * } ); + */ + "bSort": true, + + + /** + * Enable or display DataTables' ability to sort multiple columns at the + * same time (activated by shift-click by the user). + * @type boolean + * @default true + * + * @dtopt Options + * @name DataTable.defaults.orderMulti + * + * @example + * // Disable multiple column sorting ability + * $(document).ready( function () { + * $('#example').dataTable( { + * "orderMulti": false + * } ); + * } ); + */ + "bSortMulti": true, + + + /** + * Allows control over whether DataTables should use the top (true) unique + * cell that is found for a single column, or the bottom (false - default). + * This is useful when using complex headers. + * @type boolean + * @default false + * + * @dtopt Options + * @name DataTable.defaults.orderCellsTop + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "orderCellsTop": true + * } ); + * } ); + */ + "bSortCellsTop": false, + + + /** + * Enable or disable the addition of the classes `sorting\_1`, `sorting\_2` and + * `sorting\_3` to the columns which are currently being sorted on. This is + * presented as a feature switch as it can increase processing time (while + * classes are removed and added) so for large data sets you might want to + * turn this off. + * @type boolean + * @default true + * + * @dtopt Features + * @name DataTable.defaults.orderClasses + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "orderClasses": false + * } ); + * } ); + */ + "bSortClasses": true, + + + /** + * Enable or disable state saving. When enabled HTML5 `localStorage` will be + * used to save table display information such as pagination information, + * display length, filtering and sorting. As such when the end user reloads + * the page the display display will match what thy had previously set up. + * + * Due to the use of `localStorage` the default state saving is not supported + * in IE6 or 7. If state saving is required in those browsers, use + * `stateSaveCallback` to provide a storage solution such as cookies. + * @type boolean + * @default false + * + * @dtopt Features + * @name DataTable.defaults.stateSave + * + * @example + * $(document).ready( function () { + * $('#example').dataTable( { + * "stateSave": true + * } ); + * } ); + */ + "bStateSave": false, + + + /** + * This function is called when a TR element is created (and all TD child + * elements have been inserted), or registered if using a DOM source, allowing + * manipulation of the TR element (adding classes etc). + * @type function + * @param {node} row "TR" element for the current row + * @param {array} data Raw data array for this row + * @param {int} dataIndex The index of this row in the internal aoData array + * + * @dtopt Callbacks + * @name DataTable.defaults.createdRow + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "createdRow": function( row, data, dataIndex ) { + * // Bold the grade for all 'A' grade browsers + * if ( data[4] == "A" ) + * { + * $('td:eq(4)', row).html( 'A' ); + * } + * } + * } ); + * } ); + */ + "fnCreatedRow": null, + + + /** + * This function is called on every 'draw' event, and allows you to + * dynamically modify any aspect you want about the created DOM. + * @type function + * @param {object} settings DataTables settings object + * + * @dtopt Callbacks + * @name DataTable.defaults.drawCallback + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "drawCallback": function( settings ) { + * alert( 'DataTables has redrawn the table' ); + * } + * } ); + * } ); + */ + "fnDrawCallback": null, + + + /** + * Identical to fnHeaderCallback() but for the table footer this function + * allows you to modify the table footer on every 'draw' event. + * @type function + * @param {node} foot "TR" element for the footer + * @param {array} data Full table data (as derived from the original HTML) + * @param {int} start Index for the current display starting point in the + * display array + * @param {int} end Index for the current display ending point in the + * display array + * @param {array int} display Index array to translate the visual position + * to the full data array + * + * @dtopt Callbacks + * @name DataTable.defaults.footerCallback + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "footerCallback": function( tfoot, data, start, end, display ) { + * tfoot.getElementsByTagName('th')[0].innerHTML = "Starting index is "+start; + * } + * } ); + * } ) + */ + "fnFooterCallback": null, + + + /** + * When rendering large numbers in the information element for the table + * (i.e. "Showing 1 to 10 of 57 entries") DataTables will render large numbers + * to have a comma separator for the 'thousands' units (e.g. 1 million is + * rendered as "1,000,000") to help readability for the end user. This + * function will override the default method DataTables uses. + * @type function + * @member + * @param {int} toFormat number to be formatted + * @returns {string} formatted string for DataTables to show the number + * + * @dtopt Callbacks + * @name DataTable.defaults.formatNumber + * + * @example + * // Format a number using a single quote for the separator (note that + * // this can also be done with the language.infoThousands option) + * $(document).ready( function() { + * $('#example').dataTable( { + * "formatNumber": function ( toFormat ) { + * return toFormat.toString().replace( + * /\B(?=(\d{3})+(?!\d))/g, "'" + * ); + * }; + * } ); + * } ); + */ + "fnFormatNumber": function ( toFormat ) { + return toFormat.toString().replace( + /\B(?=(\d{3})+(?!\d))/g, + this.oLanguage.sInfoThousands + ); + }, + + + /** + * This function is called on every 'draw' event, and allows you to + * dynamically modify the header row. This can be used to calculate and + * display useful information about the table. + * @type function + * @param {node} head "TR" element for the header + * @param {array} data Full table data (as derived from the original HTML) + * @param {int} start Index for the current display starting point in the + * display array + * @param {int} end Index for the current display ending point in the + * display array + * @param {array int} display Index array to translate the visual position + * to the full data array + * + * @dtopt Callbacks + * @name DataTable.defaults.headerCallback + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "fheaderCallback": function( head, data, start, end, display ) { + * head.getElementsByTagName('th')[0].innerHTML = "Displaying "+(end-start)+" records"; + * } + * } ); + * } ) + */ + "fnHeaderCallback": null, + + + /** + * The information element can be used to convey information about the current + * state of the table. Although the internationalisation options presented by + * DataTables are quite capable of dealing with most customisations, there may + * be times where you wish to customise the string further. This callback + * allows you to do exactly that. + * @type function + * @param {object} oSettings DataTables settings object + * @param {int} start Starting position in data for the draw + * @param {int} end End position in data for the draw + * @param {int} max Total number of rows in the table (regardless of + * filtering) + * @param {int} total Total number of rows in the data set, after filtering + * @param {string} pre The string that DataTables has formatted using it's + * own rules + * @returns {string} The string to be displayed in the information element. + * + * @dtopt Callbacks + * @name DataTable.defaults.infoCallback + * + * @example + * $('#example').dataTable( { + * "infoCallback": function( settings, start, end, max, total, pre ) { + * return start +" to "+ end; + * } + * } ); + */ + "fnInfoCallback": null, + + + /** + * Called when the table has been initialised. Normally DataTables will + * initialise sequentially and there will be no need for this function, + * however, this does not hold true when using external language information + * since that is obtained using an async XHR call. + * @type function + * @param {object} settings DataTables settings object + * @param {object} json The JSON object request from the server - only + * present if client-side Ajax sourced data is used + * + * @dtopt Callbacks + * @name DataTable.defaults.initComplete + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "initComplete": function(settings, json) { + * alert( 'DataTables has finished its initialisation.' ); + * } + * } ); + * } ) + */ + "fnInitComplete": null, + + + /** + * Called at the very start of each table draw and can be used to cancel the + * draw by returning false, any other return (including undefined) results in + * the full draw occurring). + * @type function + * @param {object} settings DataTables settings object + * @returns {boolean} False will cancel the draw, anything else (including no + * return) will allow it to complete. + * + * @dtopt Callbacks + * @name DataTable.defaults.preDrawCallback + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "preDrawCallback": function( settings ) { + * if ( $('#test').val() == 1 ) { + * return false; + * } + * } + * } ); + * } ); + */ + "fnPreDrawCallback": null, + + + /** + * This function allows you to 'post process' each row after it have been + * generated for each table draw, but before it is rendered on screen. This + * function might be used for setting the row class name etc. + * @type function + * @param {node} row "TR" element for the current row + * @param {array} data Raw data array for this row + * @param {int} displayIndex The display index for the current table draw + * @param {int} displayIndexFull The index of the data in the full list of + * rows (after filtering) + * + * @dtopt Callbacks + * @name DataTable.defaults.rowCallback + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "rowCallback": function( row, data, displayIndex, displayIndexFull ) { + * // Bold the grade for all 'A' grade browsers + * if ( data[4] == "A" ) { + * $('td:eq(4)', row).html( 'A' ); + * } + * } + * } ); + * } ); + */ + "fnRowCallback": null, + + + /** + * __Deprecated__ The functionality provided by this parameter has now been + * superseded by that provided through `ajax`, which should be used instead. + * + * This parameter allows you to override the default function which obtains + * the data from the server so something more suitable for your application. + * For example you could use POST data, or pull information from a Gears or + * AIR database. + * @type function + * @member + * @param {string} source HTTP source to obtain the data from (`ajax`) + * @param {array} data A key/value pair object containing the data to send + * to the server + * @param {function} callback to be called on completion of the data get + * process that will draw the data on the page. + * @param {object} settings DataTables settings object + * + * @dtopt Callbacks + * @dtopt Server-side + * @name DataTable.defaults.serverData + * + * @deprecated 1.10. Please use `ajax` for this functionality now. + */ + "fnServerData": null, + + + /** + * __Deprecated__ The functionality provided by this parameter has now been + * superseded by that provided through `ajax`, which should be used instead. + * + * It is often useful to send extra data to the server when making an Ajax + * request - for example custom filtering information, and this callback + * function makes it trivial to send extra information to the server. The + * passed in parameter is the data set that has been constructed by + * DataTables, and you can add to this or modify it as you require. + * @type function + * @param {array} data Data array (array of objects which are name/value + * pairs) that has been constructed by DataTables and will be sent to the + * server. In the case of Ajax sourced data with server-side processing + * this will be an empty array, for server-side processing there will be a + * significant number of parameters! + * @returns {undefined} Ensure that you modify the data array passed in, + * as this is passed by reference. + * + * @dtopt Callbacks + * @dtopt Server-side + * @name DataTable.defaults.serverParams + * + * @deprecated 1.10. Please use `ajax` for this functionality now. + */ + "fnServerParams": null, + + + /** + * Load the table state. With this function you can define from where, and how, the + * state of a table is loaded. By default DataTables will load from `localStorage` + * but you might wish to use a server-side database or cookies. + * @type function + * @member + * @param {object} settings DataTables settings object + * @return {object} The DataTables state object to be loaded + * + * @dtopt Callbacks + * @name DataTable.defaults.stateLoadCallback + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "stateSave": true, + * "stateLoadCallback": function (settings) { + * var o; + * + * // Send an Ajax request to the server to get the data. Note that + * // this is a synchronous request. + * $.ajax( { + * "url": "/state_load", + * "async": false, + * "dataType": "json", + * "success": function (json) { + * o = json; + * } + * } ); + * + * return o; + * } + * } ); + * } ); + */ + "fnStateLoadCallback": function ( settings ) { + try { + return JSON.parse( + localStorage.getItem('DataTables_'+settings.sInstance+'_'+window.location.pathname) + ); + } catch (e) {} + }, + + + /** + * Callback which allows modification of the saved state prior to loading that state. + * This callback is called when the table is loading state from the stored data, but + * prior to the settings object being modified by the saved state. Note that for + * plug-in authors, you should use the `stateLoadParams` event to load parameters for + * a plug-in. + * @type function + * @param {object} settings DataTables settings object + * @param {object} data The state object that is to be loaded + * + * @dtopt Callbacks + * @name DataTable.defaults.stateLoadParams + * + * @example + * // Remove a saved filter, so filtering is never loaded + * $(document).ready( function() { + * $('#example').dataTable( { + * "stateSave": true, + * "stateLoadParams": function (settings, data) { + * data.oSearch.sSearch = ""; + * } + * } ); + * } ); + * + * @example + * // Disallow state loading by returning false + * $(document).ready( function() { + * $('#example').dataTable( { + * "stateSave": true, + * "stateLoadParams": function (settings, data) { + * return false; + * } + * } ); + * } ); + */ + "fnStateLoadParams": null, + + + /** + * Callback that is called when the state has been loaded from the state saving method + * and the DataTables settings object has been modified as a result of the loaded state. + * @type function + * @param {object} settings DataTables settings object + * @param {object} data The state object that was loaded + * + * @dtopt Callbacks + * @name DataTable.defaults.stateLoaded + * + * @example + * // Show an alert with the filtering value that was saved + * $(document).ready( function() { + * $('#example').dataTable( { + * "stateSave": true, + * "stateLoaded": function (settings, data) { + * alert( 'Saved filter was: '+data.oSearch.sSearch ); + * } + * } ); + * } ); + */ + "fnStateLoaded": null, + + + /** + * Save the table state. This function allows you to define where and how the state + * information for the table is stored By default DataTables will use `localStorage` + * but you might wish to use a server-side database or cookies. + * @type function + * @member + * @param {object} settings DataTables settings object + * @param {object} data The state object to be saved + * + * @dtopt Callbacks + * @name DataTable.defaults.stateSaveCallback + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "stateSave": true, + * "stateSaveCallback": function (settings, data) { + * // Send an Ajax request to the server with the state object + * $.ajax( { + * "url": "/state_save", + * "data": data, + * "dataType": "json", + * "method": "POST" + * "success": function () {} + * } ); + * } + * } ); + * } ); + */ + "fnStateSaveCallback": function ( settings, data ) { + try { + localStorage.setItem( + 'DataTables_'+settings.sInstance+'_'+window.location.pathname, + JSON.stringify(data) + ); + } catch (e) {} + }, + + + /** + * Callback which allows modification of the state to be saved. Called when the table + * has changed state a new state save is required. This method allows modification of + * the state saving object prior to actually doing the save, including addition or + * other state properties or modification. Note that for plug-in authors, you should + * use the `stateSaveParams` event to save parameters for a plug-in. + * @type function + * @param {object} settings DataTables settings object + * @param {object} data The state object to be saved + * + * @dtopt Callbacks + * @name DataTable.defaults.stateSaveParams + * + * @example + * // Remove a saved filter, so filtering is never saved + * $(document).ready( function() { + * $('#example').dataTable( { + * "stateSave": true, + * "stateSaveParams": function (settings, data) { + * data.oSearch.sSearch = ""; + * } + * } ); + * } ); + */ + "fnStateSaveParams": null, + + + /** + * Duration for which the saved state information is considered valid. After this period + * has elapsed the state will be returned to the default. + * Value is given in seconds. + * @type int + * @default 7200 (2 hours) + * + * @dtopt Options + * @name DataTable.defaults.stateDuration + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "stateDuration": 60*60*24; // 1 day + * } ); + * } ) + */ + "iStateDuration": 7200, + + + /** + * When enabled DataTables will not make a request to the server for the first + * page draw - rather it will use the data already on the page (no sorting etc + * will be applied to it), thus saving on an XHR at load time. `deferLoading` + * is used to indicate that deferred loading is required, but it is also used + * to tell DataTables how many records there are in the full table (allowing + * the information element and pagination to be displayed correctly). In the case + * where a filtering is applied to the table on initial load, this can be + * indicated by giving the parameter as an array, where the first element is + * the number of records available after filtering and the second element is the + * number of records without filtering (allowing the table information element + * to be shown correctly). + * @type int | array + * @default null + * + * @dtopt Options + * @name DataTable.defaults.deferLoading + * + * @example + * // 57 records available in the table, no filtering applied + * $(document).ready( function() { + * $('#example').dataTable( { + * "serverSide": true, + * "ajax": "scripts/server_processing.php", + * "deferLoading": 57 + * } ); + * } ); + * + * @example + * // 57 records after filtering, 100 without filtering (an initial filter applied) + * $(document).ready( function() { + * $('#example').dataTable( { + * "serverSide": true, + * "ajax": "scripts/server_processing.php", + * "deferLoading": [ 57, 100 ], + * "search": { + * "search": "my_filter" + * } + * } ); + * } ); + */ + "iDeferLoading": null, + + + /** + * Number of rows to display on a single page when using pagination. If + * feature enabled (`lengthChange`) then the end user will be able to override + * this to a custom setting using a pop-up menu. + * @type int + * @default 10 + * + * @dtopt Options + * @name DataTable.defaults.pageLength + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "pageLength": 50 + * } ); + * } ) + */ + "iDisplayLength": 10, + + + /** + * Define the starting point for data display when using DataTables with + * pagination. Note that this parameter is the number of records, rather than + * the page number, so if you have 10 records per page and want to start on + * the third page, it should be "20". + * @type int + * @default 0 + * + * @dtopt Options + * @name DataTable.defaults.displayStart + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "displayStart": 20 + * } ); + * } ) + */ + "iDisplayStart": 0, + + + /** + * By default DataTables allows keyboard navigation of the table (sorting, paging, + * and filtering) by adding a `tabindex` attribute to the required elements. This + * allows you to tab through the controls and press the enter key to activate them. + * The tabindex is default 0, meaning that the tab follows the flow of the document. + * You can overrule this using this parameter if you wish. Use a value of -1 to + * disable built-in keyboard navigation. + * @type int + * @default 0 + * + * @dtopt Options + * @name DataTable.defaults.tabIndex + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "tabIndex": 1 + * } ); + * } ); + */ + "iTabIndex": 0, + + + /** + * Classes that DataTables assigns to the various components and features + * that it adds to the HTML table. This allows classes to be configured + * during initialisation in addition to through the static + * {@link DataTable.ext.oStdClasses} object). + * @namespace + * @name DataTable.defaults.classes + */ + "oClasses": {}, + + + /** + * All strings that DataTables uses in the user interface that it creates + * are defined in this object, allowing you to modified them individually or + * completely replace them all as required. + * @namespace + * @name DataTable.defaults.language + */ + "oLanguage": { + /** + * Strings that are used for WAI-ARIA labels and controls only (these are not + * actually visible on the page, but will be read by screenreaders, and thus + * must be internationalised as well). + * @namespace + * @name DataTable.defaults.language.aria + */ + "oAria": { + /** + * ARIA label that is added to the table headers when the column may be + * sorted ascending by activing the column (click or return when focused). + * Note that the column header is prefixed to this string. + * @type string + * @default : activate to sort column ascending + * + * @dtopt Language + * @name DataTable.defaults.language.aria.sortAscending + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "aria": { + * "sortAscending": " - click/return to sort ascending" + * } + * } + * } ); + * } ); + */ + "sSortAscending": ":激活排序列升序", + + /** + * ARIA label that is added to the table headers when the column may be + * sorted descending by activing the column (click or return when focused). + * Note that the column header is prefixed to this string. + * @type string + * @default : activate to sort column ascending + * + * @dtopt Language + * @name DataTable.defaults.language.aria.sortDescending + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "aria": { + * "sortDescending": " - click/return to sort descending" + * } + * } + * } ); + * } ); + */ + "sSortDescending": ":激活排序列降序" + }, + + /** + * Pagination string used by DataTables for the built-in pagination + * control types. + * @namespace + * @name DataTable.defaults.language.paginate + */ + "oPaginate": { + /** + * Text to use when using the 'full_numbers' type of pagination for the + * button to take the user to the first page. + * @type string + * @default First + * + * @dtopt Language + * @name DataTable.defaults.language.paginate.first + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "paginate": { + * "first": "First page" + * } + * } + * } ); + * } ); + */ + "sFirst": "第一页", + + + /** + * Text to use when using the 'full_numbers' type of pagination for the + * button to take the user to the last page. + * @type string + * @default Last + * + * @dtopt Language + * @name DataTable.defaults.language.paginate.last + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "paginate": { + * "last": "Last page" + * } + * } + * } ); + * } ); + */ + "sLast": "最后一页", + + + /** + * Text to use for the 'next' pagination button (to take the user to the + * next page). + * @type string + * @default Next + * + * @dtopt Language + * @name DataTable.defaults.language.paginate.next + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "paginate": { + * "next": "Next page" + * } + * } + * } ); + * } ); + */ + "sNext": "下一页", + + + /** + * Text to use for the 'previous' pagination button (to take the user to + * the previous page). + * @type string + * @default Previous + * + * @dtopt Language + * @name DataTable.defaults.language.paginate.previous + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "paginate": { + * "previous": "Previous page" + * } + * } + * } ); + * } ); + */ + "sPrevious": "上一页" + }, + + /** + * This string is shown in preference to `zeroRecords` when the table is + * empty of data (regardless of filtering). Note that this is an optional + * parameter - if it is not given, the value of `zeroRecords` will be used + * instead (either the default or given value). + * @type string + * @default No data available in table + * + * @dtopt Language + * @name DataTable.defaults.language.emptyTable + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "emptyTable": "No data available in table" + * } + * } ); + * } ); + */ + "sEmptyTable": "没有数据", + + + /** + * This string gives information to the end user about the information + * that is current on display on the page. The following tokens can be + * used in the string and will be dynamically replaced as the table + * display updates. This tokens can be placed anywhere in the string, or + * removed as needed by the language requires: + * + * * `\_START\_` - Display index of the first record on the current page + * * `\_END\_` - Display index of the last record on the current page + * * `\_TOTAL\_` - Number of records in the table after filtering + * * `\_MAX\_` - Number of records in the table without filtering + * * `\_PAGE\_` - Current page number + * * `\_PAGES\_` - Total number of pages of data in the table + * + * @type string + * @default Showing _START_ to _END_ of _TOTAL_ entries + * + * @dtopt Language + * @name DataTable.defaults.language.info + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "info": "Showing page _PAGE_ of _PAGES_" + * } + * } ); + * } ); + */ + "sInfo": "显示 _START_ 到 _END_ 项,共 _TOTAL_ 项", + + + /** + * Display information string for when the table is empty. Typically the + * format of this string should match `info`. + * @type string + * @default Showing 0 to 0 of 0 entries + * + * @dtopt Language + * @name DataTable.defaults.language.infoEmpty + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "infoEmpty": "No entries to show" + * } + * } ); + * } ); + */ + "sInfoEmpty": "显示0项", + + + /** + * When a user filters the information in a table, this string is appended + * to the information (`info`) to give an idea of how strong the filtering + * is. The variable _MAX_ is dynamically updated. + * @type string + * @default (filtered from _MAX_ total entries) + * + * @dtopt Language + * @name DataTable.defaults.language.infoFiltered + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "infoFiltered": " - filtering from _MAX_ records" + * } + * } ); + * } ); + */ + "sInfoFiltered": "(从 _MAX_ 中筛选)", + + + /** + * If can be useful to append extra information to the info string at times, + * and this variable does exactly that. This information will be appended to + * the `info` (`infoEmpty` and `infoFiltered` in whatever combination they are + * being used) at all times. + * @type string + * @default Empty string + * + * @dtopt Language + * @name DataTable.defaults.language.infoPostFix + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "infoPostFix": "All records shown are derived from real information." + * } + * } ); + * } ); + */ + "sInfoPostFix": "", + + + /** + * DataTables has a build in number formatter (`formatNumber`) which is used + * to format large numbers that are used in the table information. By + * default a comma is used, but this can be trivially changed to any + * character you wish with this parameter. + * @type string + * @default , + * + * @dtopt Language + * @name DataTable.defaults.language.infoThousands + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "infoThousands": "'" + * } + * } ); + * } ); + */ + "sInfoThousands": ",", + + + /** + * Detail the action that will be taken when the drop down menu for the + * pagination length option is changed. The '_MENU_' variable is replaced + * with a default select list of 10, 25, 50 and 100, and can be replaced + * with a custom select box if required. + * @type string + * @default Show _MENU_ entries + * + * @dtopt Language + * @name DataTable.defaults.language.lengthMenu + * + * @example + * // Language change only + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "lengthMenu": "Display _MENU_ records" + * } + * } ); + * } ); + * + * @example + * // Language and options change + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "lengthMenu": 'Display records' + * } + * } ); + * } ); + */ + "sLengthMenu": "显示 _MENU_ entries", + + + /** + * When using Ajax sourced data and during the first draw when DataTables is + * gathering the data, this message is shown in an empty row in the table to + * indicate to the end user the the data is being loaded. Note that this + * parameter is not used when loading data by server-side processing, just + * Ajax sourced data with client-side processing. + * @type string + * @default Loading... + * + * @dtopt Language + * @name DataTable.defaults.language.loadingRecords + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "loadingRecords": "Please wait - loading..." + * } + * } ); + * } ); + */ + "sLoadingRecords": "加载中…", + + + /** + * Text which is displayed when the table is processing a user action + * (usually a sort command or similar). + * @type string + * @default Processing... + * + * @dtopt Language + * @name DataTable.defaults.language.processing + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "processing": "DataTables is currently busy" + * } + * } ); + * } ); + */ + "sProcessing": "处理中…", + + + /** + * Details the actions that will be taken when the user types into the + * filtering input text box. The variable "_INPUT_", if used in the string, + * is replaced with the HTML text box for the filtering input allowing + * control over where it appears in the string. If "_INPUT_" is not given + * then the input box is appended to the string automatically. + * @type string + * @default Search: + * + * @dtopt Language + * @name DataTable.defaults.language.search + * + * @example + * // Input text box will be appended at the end automatically + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "search": "Filter records:" + * } + * } ); + * } ); + * + * @example + * // Specify where the filter should appear + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "search": "Apply filter _INPUT_ to table" + * } + * } ); + * } ); + */ + "sSearch": "查找:", + + + /** + * All of the language information can be stored in a file on the + * server-side, which DataTables will look up if this parameter is passed. + * It must store the URL of the language file, which is in a JSON format, + * and the object has the same properties as the oLanguage object in the + * initialiser object (i.e. the above parameters). Please refer to one of + * the example language files to see how this works in action. + * @type string + * @default Empty string - i.e. disabled + * + * @dtopt Language + * @name DataTable.defaults.language.url + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "url": "http://www.sprymedia.co.uk/dataTables/lang.txt" + * } + * } ); + * } ); + */ + "sUrl": "", + + + /** + * Text shown inside the table records when the is no information to be + * displayed after filtering. `emptyTable` is shown when there is simply no + * information in the table at all (regardless of filtering). + * @type string + * @default No matching records found + * + * @dtopt Language + * @name DataTable.defaults.language.zeroRecords + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "language": { + * "zeroRecords": "No records to display" + * } + * } ); + * } ); + */ + "sZeroRecords": "没有找到符合条件的记录" + }, + + + /** + * This parameter allows you to have define the global filtering state at + * initialisation time. As an object the `search` parameter must be + * defined, but all other parameters are optional. When `regex` is true, + * the search string will be treated as a regular expression, when false + * (default) it will be treated as a straight string. When `smart` + * DataTables will use it's smart filtering methods (to word match at + * any point in the data), when false this will not be done. + * @namespace + * @extends DataTable.models.oSearch + * + * @dtopt Options + * @name DataTable.defaults.search + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "search": {"search": "Initial search"} + * } ); + * } ) + */ + "oSearch": $.extend( {}, DataTable.models.oSearch ), + + + /** + * __Deprecated__ The functionality provided by this parameter has now been + * superseded by that provided through `ajax`, which should be used instead. + * + * By default DataTables will look for the property `data` (or `aaData` for + * compatibility with DataTables 1.9-) when obtaining data from an Ajax + * source or for server-side processing - this parameter allows that + * property to be changed. You can use Javascript dotted object notation to + * get a data source for multiple levels of nesting. + * @type string + * @default data + * + * @dtopt Options + * @dtopt Server-side + * @name DataTable.defaults.ajaxDataProp + * + * @deprecated 1.10. Please use `ajax` for this functionality now. + */ + "sAjaxDataProp": "data", + + + /** + * __Deprecated__ The functionality provided by this parameter has now been + * superseded by that provided through `ajax`, which should be used instead. + * + * You can instruct DataTables to load data from an external + * source using this parameter (use aData if you want to pass data in you + * already have). Simply provide a url a JSON object can be obtained from. + * @type string + * @default null + * + * @dtopt Options + * @dtopt Server-side + * @name DataTable.defaults.ajaxSource + * + * @deprecated 1.10. Please use `ajax` for this functionality now. + */ + "sAjaxSource": null, + + + /** + * This initialisation variable allows you to specify exactly where in the + * DOM you want DataTables to inject the various controls it adds to the page + * (for example you might want the pagination controls at the top of the + * table). DIV elements (with or without a custom class) can also be added to + * aid styling. The follow syntax is used: + *
                                + *
                              • The following options are allowed: + *
                                  + *
                                • 'l' - Length changing
                                • + *
                                • 'f' - Filtering input
                                • + *
                                • 't' - The table!
                                • + *
                                • 'i' - Information
                                • + *
                                • 'p' - Pagination
                                • + *
                                • 'r' - pRocessing
                                • + *
                                + *
                              • + *
                              • The following constants are allowed: + *
                                  + *
                                • 'H' - jQueryUI theme "header" classes ('fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix')
                                • + *
                                • 'F' - jQueryUI theme "footer" classes ('fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix')
                                • + *
                                + *
                              • + *
                              • The following syntax is expected: + *
                                  + *
                                • '<' and '>' - div elements
                                • + *
                                • '<"class" and '>' - div with a class
                                • + *
                                • '<"#id" and '>' - div with an ID
                                • + *
                                + *
                              • + *
                              • Examples: + *
                                  + *
                                • '<"wrapper"flipt>'
                                • + *
                                • '<lf<t>ip>'
                                • + *
                                + *
                              • + *
                              + * @type string + * @default lfrtip (when `jQueryUI` is false) or + * <"H"lfr>t<"F"ip> (when `jQueryUI` is true) + * + * @dtopt Options + * @name DataTable.defaults.dom + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "dom": '<"top"i>rt<"bottom"flp><"clear">' + * } ); + * } ); + */ + "sDom": "lfrtip", + + + /** + * DataTables features four different built-in options for the buttons to + * display for pagination control: + * + * * `simple` - 'Previous' and 'Next' buttons only + * * 'simple_numbers` - 'Previous' and 'Next' buttons, plus page numbers + * * `full` - 'First', 'Previous', 'Next' and 'Last' buttons + * * `full_numbers` - 'First', 'Previous', 'Next' and 'Last' buttons, plus + * page numbers + * + * Further methods can be added using {@link DataTable.ext.oPagination}. + * @type string + * @default simple_numbers + * + * @dtopt Options + * @name DataTable.defaults.pagingType + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "pagingType": "full_numbers" + * } ); + * } ) + */ + "sPaginationType": "simple_numbers", + + + /** + * Enable horizontal scrolling. When a table is too wide to fit into a + * certain layout, or you have a large number of columns in the table, you + * can enable x-scrolling to show the table in a viewport, which can be + * scrolled. This property can be `true` which will allow the table to + * scroll horizontally when needed, or any CSS unit, or a number (in which + * case it will be treated as a pixel measurement). Setting as simply `true` + * is recommended. + * @type boolean|string + * @default blank string - i.e. disabled + * + * @dtopt Features + * @name DataTable.defaults.scrollX + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "scrollX": true, + * "scrollCollapse": true + * } ); + * } ); + */ + "sScrollX": "", + + + /** + * This property can be used to force a DataTable to use more width than it + * might otherwise do when x-scrolling is enabled. For example if you have a + * table which requires to be well spaced, this parameter is useful for + * "over-sizing" the table, and thus forcing scrolling. This property can by + * any CSS unit, or a number (in which case it will be treated as a pixel + * measurement). + * @type string + * @default blank string - i.e. disabled + * + * @dtopt Options + * @name DataTable.defaults.scrollXInner + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "scrollX": "100%", + * "scrollXInner": "110%" + * } ); + * } ); + */ + "sScrollXInner": "", + + + /** + * Enable vertical scrolling. Vertical scrolling will constrain the DataTable + * to the given height, and enable scrolling for any data which overflows the + * current viewport. This can be used as an alternative to paging to display + * a lot of data in a small area (although paging and scrolling can both be + * enabled at the same time). This property can be any CSS unit, or a number + * (in which case it will be treated as a pixel measurement). + * @type string + * @default blank string - i.e. disabled + * + * @dtopt Features + * @name DataTable.defaults.scrollY + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "scrollY": "200px", + * "paginate": false + * } ); + * } ); + */ + "sScrollY": "", + + + /** + * __Deprecated__ The functionality provided by this parameter has now been + * superseded by that provided through `ajax`, which should be used instead. + * + * Set the HTTP method that is used to make the Ajax call for server-side + * processing or Ajax sourced data. + * @type string + * @default GET + * + * @dtopt Options + * @dtopt Server-side + * @name DataTable.defaults.serverMethod + * + * @deprecated 1.10. Please use `ajax` for this functionality now. + */ + "sServerMethod": "GET", + + + /** + * DataTables makes use of renderers when displaying HTML elements for + * a table. These renderers can be added or modified by plug-ins to + * generate suitable mark-up for a site. For example the Bootstrap + * integration plug-in for DataTables uses a paging button renderer to + * display pagination buttons in the mark-up required by Bootstrap. + * + * For further information about the renderers available see + * DataTable.ext.renderer + * @type string|object + * @default null + * + * @name DataTable.defaults.renderer + * + */ + "renderer": null + }; + + _fnHungarianMap( DataTable.defaults ); + + + + /* + * Developer note - See note in model.defaults.js about the use of Hungarian + * notation and camel case. + */ + + /** + * Column options that can be given to DataTables at initialisation time. + * @namespace + */ + DataTable.defaults.column = { + /** + * Define which column(s) an order will occur on for this column. This + * allows a column's ordering to take multiple columns into account when + * doing a sort or use the data from a different column. For example first + * name / last name columns make sense to do a multi-column sort over the + * two columns. + * @type array|int + * @default null Takes the value of the column index automatically + * + * @name DataTable.defaults.column.orderData + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "orderData": [ 0, 1 ], "targets": [ 0 ] }, + * { "orderData": [ 1, 0 ], "targets": [ 1 ] }, + * { "orderData": 2, "targets": [ 2 ] } + * ] + * } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * { "orderData": [ 0, 1 ] }, + * { "orderData": [ 1, 0 ] }, + * { "orderData": 2 }, + * null, + * null + * ] + * } ); + * } ); + */ + "aDataSort": null, + "iDataSort": -1, + + + /** + * You can control the default ordering direction, and even alter the + * behaviour of the sort handler (i.e. only allow ascending ordering etc) + * using this parameter. + * @type array + * @default [ 'asc', 'desc' ] + * + * @name DataTable.defaults.column.orderSequence + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "orderSequence": [ "asc" ], "targets": [ 1 ] }, + * { "orderSequence": [ "desc", "asc", "asc" ], "targets": [ 2 ] }, + * { "orderSequence": [ "desc" ], "targets": [ 3 ] } + * ] + * } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * null, + * { "orderSequence": [ "asc" ] }, + * { "orderSequence": [ "desc", "asc", "asc" ] }, + * { "orderSequence": [ "desc" ] }, + * null + * ] + * } ); + * } ); + */ + "asSorting": [ 'asc', 'desc' ], + + + /** + * Enable or disable filtering on the data in this column. + * @type boolean + * @default true + * + * @name DataTable.defaults.column.searchable + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "searchable": false, "targets": [ 0 ] } + * ] } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * { "searchable": false }, + * null, + * null, + * null, + * null + * ] } ); + * } ); + */ + "bSearchable": true, + + + /** + * Enable or disable ordering on this column. + * @type boolean + * @default true + * + * @name DataTable.defaults.column.orderable + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "orderable": false, "targets": [ 0 ] } + * ] } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * { "orderable": false }, + * null, + * null, + * null, + * null + * ] } ); + * } ); + */ + "bSortable": true, + + + /** + * Enable or disable the display of this column. + * @type boolean + * @default true + * + * @name DataTable.defaults.column.visible + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "visible": false, "targets": [ 0 ] } + * ] } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * { "visible": false }, + * null, + * null, + * null, + * null + * ] } ); + * } ); + */ + "bVisible": true, + + + /** + * Developer definable function that is called whenever a cell is created (Ajax source, + * etc) or processed for input (DOM source). This can be used as a compliment to mRender + * allowing you to modify the DOM element (add background colour for example) when the + * element is available. + * @type function + * @param {element} td The TD node that has been created + * @param {*} cellData The Data for the cell + * @param {array|object} rowData The data for the whole row + * @param {int} row The row index for the aoData data store + * @param {int} col The column index for aoColumns + * + * @name DataTable.defaults.column.createdCell + * @dtopt Columns + * + * @example + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ { + * "targets": [3], + * "createdCell": function (td, cellData, rowData, row, col) { + * if ( cellData == "1.7" ) { + * $(td).css('color', 'blue') + * } + * } + * } ] + * }); + * } ); + */ + "fnCreatedCell": null, + + + /** + * This parameter has been replaced by `data` in DataTables to ensure naming + * consistency. `dataProp` can still be used, as there is backwards + * compatibility in DataTables for this option, but it is strongly + * recommended that you use `data` in preference to `dataProp`. + * @name DataTable.defaults.column.dataProp + */ + + + /** + * This property can be used to read data from any data source property, + * including deeply nested objects / properties. `data` can be given in a + * number of different ways which effect its behaviour: + * + * * `integer` - treated as an array index for the data source. This is the + * default that DataTables uses (incrementally increased for each column). + * * `string` - read an object property from the data source. There are + * three 'special' options that can be used in the string to alter how + * DataTables reads the data from the source object: + * * `.` - Dotted Javascript notation. Just as you use a `.` in + * Javascript to read from nested objects, so to can the options + * specified in `data`. For example: `browser.version` or + * `browser.name`. If your object parameter name contains a period, use + * `\\` to escape it - i.e. `first\\.name`. + * * `[]` - Array notation. DataTables can automatically combine data + * from and array source, joining the data with the characters provided + * between the two brackets. For example: `name[, ]` would provide a + * comma-space separated list from the source array. If no characters + * are provided between the brackets, the original array source is + * returned. + * * `()` - Function notation. Adding `()` to the end of a parameter will + * execute a function of the name given. For example: `browser()` for a + * simple function on the data source, `browser.version()` for a + * function in a nested property or even `browser().version` to get an + * object property if the function called returns an object. Note that + * function notation is recommended for use in `render` rather than + * `data` as it is much simpler to use as a renderer. + * * `null` - use the original data source for the row rather than plucking + * data directly from it. This action has effects on two other + * initialisation options: + * * `defaultContent` - When null is given as the `data` option and + * `defaultContent` is specified for the column, the value defined by + * `defaultContent` will be used for the cell. + * * `render` - When null is used for the `data` option and the `render` + * option is specified for the column, the whole data source for the + * row is used for the renderer. + * * `function` - the function given will be executed whenever DataTables + * needs to set or get the data for a cell in the column. The function + * takes three parameters: + * * Parameters: + * * `{array|object}` The data source for the row + * * `{string}` The type call data requested - this will be 'set' when + * setting data or 'filter', 'display', 'type', 'sort' or undefined + * when gathering data. Note that when `undefined` is given for the + * type DataTables expects to get the raw data for the object back< + * * `{*}` Data to set when the second parameter is 'set'. + * * Return: + * * The return value from the function is not required when 'set' is + * the type of call, but otherwise the return is what will be used + * for the data requested. + * + * Note that `data` is a getter and setter option. If you just require + * formatting of data for output, you will likely want to use `render` which + * is simply a getter and thus simpler to use. + * + * Note that prior to DataTables 1.9.2 `data` was called `mDataProp`. The + * name change reflects the flexibility of this property and is consistent + * with the naming of mRender. If 'mDataProp' is given, then it will still + * be used by DataTables, as it automatically maps the old name to the new + * if required. + * + * @type string|int|function|null + * @default null Use automatically calculated column index + * + * @name DataTable.defaults.column.data + * @dtopt Columns + * + * @example + * // Read table data from objects + * // JSON structure for each row: + * // { + * // "engine": {value}, + * // "browser": {value}, + * // "platform": {value}, + * // "version": {value}, + * // "grade": {value} + * // } + * $(document).ready( function() { + * $('#example').dataTable( { + * "ajaxSource": "sources/objects.txt", + * "columns": [ + * { "data": "engine" }, + * { "data": "browser" }, + * { "data": "platform" }, + * { "data": "version" }, + * { "data": "grade" } + * ] + * } ); + * } ); + * + * @example + * // Read information from deeply nested objects + * // JSON structure for each row: + * // { + * // "engine": {value}, + * // "browser": {value}, + * // "platform": { + * // "inner": {value} + * // }, + * // "details": [ + * // {value}, {value} + * // ] + * // } + * $(document).ready( function() { + * $('#example').dataTable( { + * "ajaxSource": "sources/deep.txt", + * "columns": [ + * { "data": "engine" }, + * { "data": "browser" }, + * { "data": "platform.inner" }, + * { "data": "platform.details.0" }, + * { "data": "platform.details.1" } + * ] + * } ); + * } ); + * + * @example + * // Using `data` as a function to provide different information for + * // sorting, filtering and display. In this case, currency (price) + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ { + * "targets": [ 0 ], + * "data": function ( source, type, val ) { + * if (type === 'set') { + * source.price = val; + * // Store the computed dislay and filter values for efficiency + * source.price_display = val=="" ? "" : "$"+numberFormat(val); + * source.price_filter = val=="" ? "" : "$"+numberFormat(val)+" "+val; + * return; + * } + * else if (type === 'display') { + * return source.price_display; + * } + * else if (type === 'filter') { + * return source.price_filter; + * } + * // 'sort', 'type' and undefined all just use the integer + * return source.price; + * } + * } ] + * } ); + * } ); + * + * @example + * // Using default content + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ { + * "targets": [ 0 ], + * "data": null, + * "defaultContent": "Click to edit" + * } ] + * } ); + * } ); + * + * @example + * // Using array notation - outputting a list from an array + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ { + * "targets": [ 0 ], + * "data": "name[, ]" + * } ] + * } ); + * } ); + * + */ + "mData": null, + + + /** + * This property is the rendering partner to `data` and it is suggested that + * when you want to manipulate data for display (including filtering, + * sorting etc) without altering the underlying data for the table, use this + * property. `render` can be considered to be the the read only companion to + * `data` which is read / write (then as such more complex). Like `data` + * this option can be given in a number of different ways to effect its + * behaviour: + * + * * `integer` - treated as an array index for the data source. This is the + * default that DataTables uses (incrementally increased for each column). + * * `string` - read an object property from the data source. There are + * three 'special' options that can be used in the string to alter how + * DataTables reads the data from the source object: + * * `.` - Dotted Javascript notation. Just as you use a `.` in + * Javascript to read from nested objects, so to can the options + * specified in `data`. For example: `browser.version` or + * `browser.name`. If your object parameter name contains a period, use + * `\\` to escape it - i.e. `first\\.name`. + * * `[]` - Array notation. DataTables can automatically combine data + * from and array source, joining the data with the characters provided + * between the two brackets. For example: `name[, ]` would provide a + * comma-space separated list from the source array. If no characters + * are provided between the brackets, the original array source is + * returned. + * * `()` - Function notation. Adding `()` to the end of a parameter will + * execute a function of the name given. For example: `browser()` for a + * simple function on the data source, `browser.version()` for a + * function in a nested property or even `browser().version` to get an + * object property if the function called returns an object. + * * `object` - use different data for the different data types requested by + * DataTables ('filter', 'display', 'type' or 'sort'). The property names + * of the object is the data type the property refers to and the value can + * defined using an integer, string or function using the same rules as + * `render` normally does. Note that an `_` option _must_ be specified. + * This is the default value to use if you haven't specified a value for + * the data type requested by DataTables. + * * `function` - the function given will be executed whenever DataTables + * needs to set or get the data for a cell in the column. The function + * takes three parameters: + * * Parameters: + * * {array|object} The data source for the row (based on `data`) + * * {string} The type call data requested - this will be 'filter', + * 'display', 'type' or 'sort'. + * * {array|object} The full data source for the row (not based on + * `data`) + * * Return: + * * The return value from the function is what will be used for the + * data requested. + * + * @type string|int|function|object|null + * @default null Use the data source value. + * + * @name DataTable.defaults.column.render + * @dtopt Columns + * + * @example + * // Create a comma separated list from an array of objects + * $(document).ready( function() { + * $('#example').dataTable( { + * "ajaxSource": "sources/deep.txt", + * "columns": [ + * { "data": "engine" }, + * { "data": "browser" }, + * { + * "data": "platform", + * "render": "[, ].name" + * } + * ] + * } ); + * } ); + * + * @example + * // Execute a function to obtain data + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ { + * "targets": [ 0 ], + * "data": null, // Use the full data source object for the renderer's source + * "render": "browserName()" + * } ] + * } ); + * } ); + * + * @example + * // As an object, extracting different data for the different types + * // This would be used with a data source such as: + * // { "phone": 5552368, "phone_filter": "5552368 555-2368", "phone_display": "555-2368" } + * // Here the `phone` integer is used for sorting and type detection, while `phone_filter` + * // (which has both forms) is used for filtering for if a user inputs either format, while + * // the formatted phone number is the one that is shown in the table. + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ { + * "targets": [ 0 ], + * "data": null, // Use the full data source object for the renderer's source + * "render": { + * "_": "phone", + * "filter": "phone_filter", + * "display": "phone_display" + * } + * } ] + * } ); + * } ); + * + * @example + * // Use as a function to create a link from the data source + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ { + * "targets": [ 0 ], + * "data": "download_link", + * "render": function ( data, type, full ) { + * return 'Download'; + * } + * } ] + * } ); + * } ); + */ + "mRender": null, + + + /** + * Change the cell type created for the column - either TD cells or TH cells. This + * can be useful as TH cells have semantic meaning in the table body, allowing them + * to act as a header for a row (you may wish to add scope='row' to the TH elements). + * @type string + * @default td + * + * @name DataTable.defaults.column.cellType + * @dtopt Columns + * + * @example + * // Make the first column use TH cells + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ { + * "targets": [ 0 ], + * "cellType": "th" + * } ] + * } ); + * } ); + */ + "sCellType": "td", + + + /** + * Class to give to each cell in this column. + * @type string + * @default Empty string + * + * @name DataTable.defaults.column.class + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "class": "my_class", "targets": [ 0 ] } + * ] + * } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * { "class": "my_class" }, + * null, + * null, + * null, + * null + * ] + * } ); + * } ); + */ + "sClass": "", + + /** + * When DataTables calculates the column widths to assign to each column, + * it finds the longest string in each column and then constructs a + * temporary table and reads the widths from that. The problem with this + * is that "mmm" is much wider then "iiii", but the latter is a longer + * string - thus the calculation can go wrong (doing it properly and putting + * it into an DOM object and measuring that is horribly(!) slow). Thus as + * a "work around" we provide this option. It will append its value to the + * text that is found to be the longest string for the column - i.e. padding. + * Generally you shouldn't need this! + * @type string + * @default Empty string + * + * @name DataTable.defaults.column.contentPadding + * @dtopt Columns + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * null, + * null, + * null, + * { + * "contentPadding": "mmm" + * } + * ] + * } ); + * } ); + */ + "sContentPadding": "", + + + /** + * Allows a default value to be given for a column's data, and will be used + * whenever a null data source is encountered (this can be because `data` + * is set to null, or because the data source itself is null). + * @type string + * @default null + * + * @name DataTable.defaults.column.defaultContent + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { + * "data": null, + * "defaultContent": "Edit", + * "targets": [ -1 ] + * } + * ] + * } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * null, + * null, + * null, + * { + * "data": null, + * "defaultContent": "Edit" + * } + * ] + * } ); + * } ); + */ + "sDefaultContent": null, + + + /** + * This parameter is only used in DataTables' server-side processing. It can + * be exceptionally useful to know what columns are being displayed on the + * client side, and to map these to database fields. When defined, the names + * also allow DataTables to reorder information from the server if it comes + * back in an unexpected order (i.e. if you switch your columns around on the + * client-side, your server-side code does not also need updating). + * @type string + * @default Empty string + * + * @name DataTable.defaults.column.name + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "name": "engine", "targets": [ 0 ] }, + * { "name": "browser", "targets": [ 1 ] }, + * { "name": "platform", "targets": [ 2 ] }, + * { "name": "version", "targets": [ 3 ] }, + * { "name": "grade", "targets": [ 4 ] } + * ] + * } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * { "name": "engine" }, + * { "name": "browser" }, + * { "name": "platform" }, + * { "name": "version" }, + * { "name": "grade" } + * ] + * } ); + * } ); + */ + "sName": "", + + + /** + * Defines a data source type for the ordering which can be used to read + * real-time information from the table (updating the internally cached + * version) prior to ordering. This allows ordering to occur on user + * editable elements such as form inputs. + * @type string + * @default std + * + * @name DataTable.defaults.column.orderDataType + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "orderDataType": "dom-text", "targets": [ 2, 3 ] }, + * { "type": "numeric", "targets": [ 3 ] }, + * { "orderDataType": "dom-select", "targets": [ 4 ] }, + * { "orderDataType": "dom-checkbox", "targets": [ 5 ] } + * ] + * } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * null, + * null, + * { "orderDataType": "dom-text" }, + * { "orderDataType": "dom-text", "type": "numeric" }, + * { "orderDataType": "dom-select" }, + * { "orderDataType": "dom-checkbox" } + * ] + * } ); + * } ); + */ + "sSortDataType": "std", + + + /** + * The title of this column. + * @type string + * @default null Derived from the 'TH' value for this column in the + * original HTML table. + * + * @name DataTable.defaults.column.title + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "title": "My column title", "targets": [ 0 ] } + * ] + * } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * { "title": "My column title" }, + * null, + * null, + * null, + * null + * ] + * } ); + * } ); + */ + "sTitle": null, + + + /** + * The type allows you to specify how the data for this column will be + * ordered. Four types (string, numeric, date and html (which will strip + * HTML tags before ordering)) are currently available. Note that only date + * formats understood by Javascript's Date() object will be accepted as type + * date. For example: "Mar 26, 2008 5:03 PM". May take the values: 'string', + * 'numeric', 'date' or 'html' (by default). Further types can be adding + * through plug-ins. + * @type string + * @default null Auto-detected from raw data + * + * @name DataTable.defaults.column.type + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "type": "html", "targets": [ 0 ] } + * ] + * } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * { "type": "html" }, + * null, + * null, + * null, + * null + * ] + * } ); + * } ); + */ + "sType": null, + + + /** + * Defining the width of the column, this parameter may take any CSS value + * (3em, 20px etc). DataTables applies 'smart' widths to columns which have not + * been given a specific width through this interface ensuring that the table + * remains readable. + * @type string + * @default null Automatic + * + * @name DataTable.defaults.column.width + * @dtopt Columns + * + * @example + * // Using `columnDefs` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columnDefs": [ + * { "width": "20%", "targets": [ 0 ] } + * ] + * } ); + * } ); + * + * @example + * // Using `columns` + * $(document).ready( function() { + * $('#example').dataTable( { + * "columns": [ + * { "width": "20%" }, + * null, + * null, + * null, + * null + * ] + * } ); + * } ); + */ + "sWidth": null + }; + + _fnHungarianMap( DataTable.defaults.column ); + + + + /** + * DataTables settings object - this holds all the information needed for a + * given table, including configuration, data and current application of the + * table options. DataTables does not have a single instance for each DataTable + * with the settings attached to that instance, but rather instances of the + * DataTable "class" are created on-the-fly as needed (typically by a + * $().dataTable() call) and the settings object is then applied to that + * instance. + * + * Note that this object is related to {@link DataTable.defaults} but this + * one is the internal data store for DataTables's cache of columns. It should + * NOT be manipulated outside of DataTables. Any configuration should be done + * through the initialisation options. + * @namespace + * @todo Really should attach the settings object to individual instances so we + * don't need to create new instances on each $().dataTable() call (if the + * table already exists). It would also save passing oSettings around and + * into every single function. However, this is a very significant + * architecture change for DataTables and will almost certainly break + * backwards compatibility with older installations. This is something that + * will be done in 2.0. + */ + DataTable.models.oSettings = { + /** + * Primary features of DataTables and their enablement state. + * @namespace + */ + "oFeatures": { + + /** + * Flag to say if DataTables should automatically try to calculate the + * optimum table and columns widths (true) or not (false). + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bAutoWidth": null, + + /** + * Delay the creation of TR and TD elements until they are actually + * needed by a driven page draw. This can give a significant speed + * increase for Ajax source and Javascript source data, but makes no + * difference at all fro DOM and server-side processing tables. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bDeferRender": null, + + /** + * Enable filtering on the table or not. Note that if this is disabled + * then there is no filtering at all on the table, including fnFilter. + * To just remove the filtering input use sDom and remove the 'f' option. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bFilter": null, + + /** + * Table information element (the 'Showing x of y records' div) enable + * flag. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bInfo": null, + + /** + * Present a user control allowing the end user to change the page size + * when pagination is enabled. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bLengthChange": null, + + /** + * Pagination enabled or not. Note that if this is disabled then length + * changing must also be disabled. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bPaginate": null, + + /** + * Processing indicator enable flag whenever DataTables is enacting a + * user request - typically an Ajax request for server-side processing. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bProcessing": null, + + /** + * Server-side processing enabled flag - when enabled DataTables will + * get all data from the server for every draw - there is no filtering, + * sorting or paging done on the client-side. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bServerSide": null, + + /** + * Sorting enablement flag. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bSort": null, + + /** + * Multi-column sorting + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bSortMulti": null, + + /** + * Apply a class to the columns which are being sorted to provide a + * visual highlight or not. This can slow things down when enabled since + * there is a lot of DOM interaction. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bSortClasses": null, + + /** + * State saving enablement flag. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bStateSave": null + }, + + + /** + * Scrolling settings for a table. + * @namespace + */ + "oScroll": { + /** + * When the table is shorter in height than sScrollY, collapse the + * table container down to the height of the table (when true). + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bCollapse": null, + + /** + * Width of the scrollbar for the web-browser's platform. Calculated + * during table initialisation. + * @type int + * @default 0 + */ + "iBarWidth": 0, + + /** + * Viewport width for horizontal scrolling. Horizontal scrolling is + * disabled if an empty string. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + */ + "sX": null, + + /** + * Width to expand the table to when using x-scrolling. Typically you + * should not need to use this. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + * @deprecated + */ + "sXInner": null, + + /** + * Viewport height for vertical scrolling. Vertical scrolling is disabled + * if an empty string. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + */ + "sY": null + }, + + /** + * Language information for the table. + * @namespace + * @extends DataTable.defaults.oLanguage + */ + "oLanguage": { + /** + * Information callback function. See + * {@link DataTable.defaults.fnInfoCallback} + * @type function + * @default null + */ + "fnInfoCallback": null + }, + + /** + * Browser support parameters + * @namespace + */ + "oBrowser": { + /** + * Indicate if the browser incorrectly calculates width:100% inside a + * scrolling element (IE6/7) + * @type boolean + * @default false + */ + "bScrollOversize": false, + + /** + * Determine if the vertical scrollbar is on the right or left of the + * scrolling container - needed for rtl language layout, although not + * all browsers move the scrollbar (Safari). + * @type boolean + * @default false + */ + "bScrollbarLeft": false + }, + + + "ajax": null, + + + /** + * Array referencing the nodes which are used for the features. The + * parameters of this object match what is allowed by sDom - i.e. + *
                                + *
                              • 'l' - Length changing
                              • + *
                              • 'f' - Filtering input
                              • + *
                              • 't' - The table!
                              • + *
                              • 'i' - Information
                              • + *
                              • 'p' - Pagination
                              • + *
                              • 'r' - pRocessing
                              • + *
                              + * @type array + * @default [] + */ + "aanFeatures": [], + + /** + * Store data information - see {@link DataTable.models.oRow} for detailed + * information. + * @type array + * @default [] + */ + "aoData": [], + + /** + * Array of indexes which are in the current display (after filtering etc) + * @type array + * @default [] + */ + "aiDisplay": [], + + /** + * Array of indexes for display - no filtering + * @type array + * @default [] + */ + "aiDisplayMaster": [], + + /** + * Store information about each column that is in use + * @type array + * @default [] + */ + "aoColumns": [], + + /** + * Store information about the table's header + * @type array + * @default [] + */ + "aoHeader": [], + + /** + * Store information about the table's footer + * @type array + * @default [] + */ + "aoFooter": [], + + /** + * Store the applied global search information in case we want to force a + * research or compare the old search to a new one. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @namespace + * @extends DataTable.models.oSearch + */ + "oPreviousSearch": {}, + + /** + * Store the applied search for each column - see + * {@link DataTable.models.oSearch} for the format that is used for the + * filtering information for each column. + * @type array + * @default [] + */ + "aoPreSearchCols": [], + + /** + * Sorting that is applied to the table. Note that the inner arrays are + * used in the following manner: + *
                                + *
                              • Index 0 - column number
                              • + *
                              • Index 1 - current sorting direction
                              • + *
                              + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type array + * @todo These inner arrays should really be objects + */ + "aaSorting": null, + + /** + * Sorting that is always applied to the table (i.e. prefixed in front of + * aaSorting). + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type array + * @default [] + */ + "aaSortingFixed": [], + + /** + * Classes to use for the striping of a table. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type array + * @default [] + */ + "asStripeClasses": null, + + /** + * If restoring a table - we should restore its striping classes as well + * @type array + * @default [] + */ + "asDestroyStripes": [], + + /** + * If restoring a table - we should restore its width + * @type int + * @default 0 + */ + "sDestroyWidth": 0, + + /** + * Callback functions array for every time a row is inserted (i.e. on a draw). + * @type array + * @default [] + */ + "aoRowCallback": [], + + /** + * Callback functions for the header on each draw. + * @type array + * @default [] + */ + "aoHeaderCallback": [], + + /** + * Callback function for the footer on each draw. + * @type array + * @default [] + */ + "aoFooterCallback": [], + + /** + * Array of callback functions for draw callback functions + * @type array + * @default [] + */ + "aoDrawCallback": [], + + /** + * Array of callback functions for row created function + * @type array + * @default [] + */ + "aoRowCreatedCallback": [], + + /** + * Callback functions for just before the table is redrawn. A return of + * false will be used to cancel the draw. + * @type array + * @default [] + */ + "aoPreDrawCallback": [], + + /** + * Callback functions for when the table has been initialised. + * @type array + * @default [] + */ + "aoInitComplete": [], + + + /** + * Callbacks for modifying the settings to be stored for state saving, prior to + * saving state. + * @type array + * @default [] + */ + "aoStateSaveParams": [], + + /** + * Callbacks for modifying the settings that have been stored for state saving + * prior to using the stored values to restore the state. + * @type array + * @default [] + */ + "aoStateLoadParams": [], + + /** + * Callbacks for operating on the settings object once the saved state has been + * loaded + * @type array + * @default [] + */ + "aoStateLoaded": [], + + /** + * Cache the table ID for quick access + * @type string + * @default Empty string + */ + "sTableId": "", + + /** + * The TABLE node for the main table + * @type node + * @default null + */ + "nTable": null, + + /** + * Permanent ref to the thead element + * @type node + * @default null + */ + "nTHead": null, + + /** + * Permanent ref to the tfoot element - if it exists + * @type node + * @default null + */ + "nTFoot": null, + + /** + * Permanent ref to the tbody element + * @type node + * @default null + */ + "nTBody": null, + + /** + * Cache the wrapper node (contains all DataTables controlled elements) + * @type node + * @default null + */ + "nTableWrapper": null, + + /** + * Indicate if when using server-side processing the loading of data + * should be deferred until the second draw. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + * @default false + */ + "bDeferLoading": false, + + /** + * Indicate if all required information has been read in + * @type boolean + * @default false + */ + "bInitialised": false, + + /** + * Information about open rows. Each object in the array has the parameters + * 'nTr' and 'nParent' + * @type array + * @default [] + */ + "aoOpenRows": [], + + /** + * Dictate the positioning of DataTables' control elements - see + * {@link DataTable.model.oInit.sDom}. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + * @default null + */ + "sDom": null, + + /** + * Which type of pagination should be used. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + * @default two_button + */ + "sPaginationType": "two_button", + + /** + * The state duration (for `stateSave`) in seconds. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type int + * @default 0 + */ + "iStateDuration": 0, + + /** + * Array of callback functions for state saving. Each array element is an + * object with the following parameters: + *
                                + *
                              • function:fn - function to call. Takes two parameters, oSettings + * and the JSON string to save that has been thus far created. Returns + * a JSON string to be inserted into a json object + * (i.e. '"param": [ 0, 1, 2]')
                              • + *
                              • string:sName - name of callback
                              • + *
                              + * @type array + * @default [] + */ + "aoStateSave": [], + + /** + * Array of callback functions for state loading. Each array element is an + * object with the following parameters: + *
                                + *
                              • function:fn - function to call. Takes two parameters, oSettings + * and the object stored. May return false to cancel state loading
                              • + *
                              • string:sName - name of callback
                              • + *
                              + * @type array + * @default [] + */ + "aoStateLoad": [], + + /** + * State that was loaded. Useful for back reference + * @type object + * @default null + */ + "oLoadedState": null, + + /** + * Source url for AJAX data for the table. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + * @default null + */ + "sAjaxSource": null, + + /** + * Property from a given object from which to read the table data from. This + * can be an empty string (when not server-side processing), in which case + * it is assumed an an array is given directly. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + */ + "sAjaxDataProp": null, + + /** + * Note if draw should be blocked while getting data + * @type boolean + * @default true + */ + "bAjaxDataGet": true, + + /** + * The last jQuery XHR object that was used for server-side data gathering. + * This can be used for working with the XHR information in one of the + * callbacks + * @type object + * @default null + */ + "jqXHR": null, + + /** + * JSON returned from the server in the last Ajax request + * @type object + * @default undefined + */ + "json": undefined, + + /** + * Function to get the server-side data. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type function + */ + "fnServerData": null, + + /** + * Functions which are called prior to sending an Ajax request so extra + * parameters can easily be sent to the server + * @type array + * @default [] + */ + "aoServerParams": [], + + /** + * Send the XHR HTTP method - GET or POST (could be PUT or DELETE if + * required). + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type string + */ + "sServerMethod": null, + + /** + * Format numbers for display. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type function + */ + "fnFormatNumber": null, + + /** + * List of options that can be used for the user selectable length menu. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type array + * @default [] + */ + "aLengthMenu": null, + + /** + * Counter for the draws that the table does. Also used as a tracker for + * server-side processing + * @type int + * @default 0 + */ + "iDraw": 0, + + /** + * Indicate if a redraw is being done - useful for Ajax + * @type boolean + * @default false + */ + "bDrawing": false, + + /** + * Draw index (iDraw) of the last error when parsing the returned data + * @type int + * @default -1 + */ + "iDrawError": -1, + + /** + * Paging display length + * @type int + * @default 10 + */ + "_iDisplayLength": 10, + + /** + * Paging start point - aiDisplay index + * @type int + * @default 0 + */ + "_iDisplayStart": 0, + + /** + * Server-side processing - number of records in the result set + * (i.e. before filtering), Use fnRecordsTotal rather than + * this property to get the value of the number of records, regardless of + * the server-side processing setting. + * @type int + * @default 0 + * @private + */ + "_iRecordsTotal": 0, + + /** + * Server-side processing - number of records in the current display set + * (i.e. after filtering). Use fnRecordsDisplay rather than + * this property to get the value of the number of records, regardless of + * the server-side processing setting. + * @type boolean + * @default 0 + * @private + */ + "_iRecordsDisplay": 0, + + /** + * Flag to indicate if jQuery UI marking and classes should be used. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bJUI": null, + + /** + * The classes to use for the table + * @type object + * @default {} + */ + "oClasses": {}, + + /** + * Flag attached to the settings object so you can check in the draw + * callback if filtering has been done in the draw. Deprecated in favour of + * events. + * @type boolean + * @default false + * @deprecated + */ + "bFiltered": false, + + /** + * Flag attached to the settings object so you can check in the draw + * callback if sorting has been done in the draw. Deprecated in favour of + * events. + * @type boolean + * @default false + * @deprecated + */ + "bSorted": false, + + /** + * Indicate that if multiple rows are in the header and there is more than + * one unique cell per column, if the top one (true) or bottom one (false) + * should be used for sorting / title by DataTables. + * Note that this parameter will be set by the initialisation routine. To + * set a default use {@link DataTable.defaults}. + * @type boolean + */ + "bSortCellsTop": null, + + /** + * Initialisation object that is used for the table + * @type object + * @default null + */ + "oInit": null, + + /** + * Destroy callback functions - for plug-ins to attach themselves to the + * destroy so they can clean up markup and events. + * @type array + * @default [] + */ + "aoDestroyCallback": [], + + + /** + * Get the number of records in the current record set, before filtering + * @type function + */ + "fnRecordsTotal": function () + { + return _fnDataSource( this ) == 'ssp' ? + this._iRecordsTotal * 1 : + this.aiDisplayMaster.length; + }, + + /** + * Get the number of records in the current record set, after filtering + * @type function + */ + "fnRecordsDisplay": function () + { + return _fnDataSource( this ) == 'ssp' ? + this._iRecordsDisplay * 1 : + this.aiDisplay.length; + }, + + /** + * Get the display end point - aiDisplay index + * @type function + */ + "fnDisplayEnd": function () + { + var + len = this._iDisplayLength, + start = this._iDisplayStart, + calc = start + len, + records = this.aiDisplay.length, + features = this.oFeatures, + paginate = features.bPaginate; + + if ( features.bServerSide ) { + return paginate === false || len === -1 ? + start + records : + Math.min( start+len, this._iRecordsDisplay ); + } + else { + return ! paginate || calc>records || len===-1 ? + records : + calc; + } + }, + + /** + * The DataTables object for this table + * @type object + * @default null + */ + "oInstance": null, + + /** + * Unique identifier for each instance of the DataTables object. If there + * is an ID on the table node, then it takes that value, otherwise an + * incrementing internal counter is used. + * @type string + * @default null + */ + "sInstance": null, + + /** + * tabindex attribute value that is added to DataTables control elements, allowing + * keyboard navigation of the table and its controls. + */ + "iTabIndex": 0, + + /** + * DIV container for the footer scrolling table if scrolling + */ + "nScrollHead": null, + + /** + * DIV container for the footer scrolling table if scrolling + */ + "nScrollFoot": null, + + /** + * Last applied sort + * @type array + * @default [] + */ + "aLastSort": [], + + /** + * Stored plug-in instances + * @type object + * @default {} + */ + "oPlugins": {} + }; + + /** + * Extension object for DataTables that is used to provide all extension + * options. + * + * Note that the `DataTable.ext` object is available through + * `jQuery.fn.dataTable.ext` where it may be accessed and manipulated. It is + * also aliased to `jQuery.fn.dataTableExt` for historic reasons. + * @namespace + * @extends DataTable.models.ext + */ + + + /** + * DataTables extensions + * + * This namespace acts as a collection area for plug-ins that can be used to + * extend DataTables capabilities. Indeed many of the build in methods + * use this method to provide their own capabilities (sorting methods for + * example). + * + * Note that this namespace is aliased to `jQuery.fn.dataTableExt` for legacy + * reasons + * + * @namespace + */ + DataTable.ext = _ext = { + /** + * Element class names + * + * @type object + * @default {} + */ + classes: {}, + + + /** + * Error reporting. + * + * How should DataTables report an error. Can take the value 'alert' or + * 'throw' + * + * @type string + * @default alert + */ + errMode: "alert", + + + /** + * Feature plug-ins. + * + * This is an array of objects which describe the feature plug-ins that are + * available to DataTables. These feature plug-ins are then available for + * use through the `dom` initialisation option. + * + * Each feature plug-in is described by an object which must have the + * following properties: + * + * * `fnInit` - function that is used to initialise the plug-in, + * * `cFeature` - a character so the feature can be enabled by the `dom` + * instillation option. This is case sensitive. + * + * The `fnInit` function has the following input parameters: + * + * 1. `{object}` DataTables settings object: see + * {@link DataTable.models.oSettings} + * + * And the following return is expected: + * + * * {node|null} The element which contains your feature. Note that the + * return may also be void if your plug-in does not require to inject any + * DOM elements into DataTables control (`dom`) - for example this might + * be useful when developing a plug-in which allows table control via + * keyboard entry + * + * @type array + * + * @example + * $.fn.dataTable.ext.features.push( { + * "fnInit": function( oSettings ) { + * return new TableTools( { "oDTSettings": oSettings } ); + * }, + * "cFeature": "T" + * } ); + */ + feature: [], + + + /** + * Row searching. + * + * This method of searching is complimentary to the default type based + * searching, and a lot more comprehensive as it allows you complete control + * over the searching logic. Each element in this array is a function + * (parameters described below) that is called for every row in the table, + * and your logic decides if it should be included in the searching data set + * or not. + * + * Searching functions have the following input parameters: + * + * 1. `{object}` DataTables settings object: see + * {@link DataTable.models.oSettings} + * 2. `{array|object}` Data for the row to be processed (same as the + * original format that was passed in as the data source, or an array + * from a DOM data source + * 3. `{int}` Row index ({@link DataTable.models.oSettings.aoData}), which + * can be useful to retrieve the `TR` element if you need DOM interaction. + * + * And the following return is expected: + * + * * {boolean} Include the row in the searched result set (true) or not + * (false) + * + * Note that as with the main search ability in DataTables, technically this + * is "filtering", since it is subtractive. However, for consistency in + * naming we call it searching here. + * + * @type array + * @default [] + * + * @example + * // The following example shows custom search being applied to the + * // fourth column (i.e. the data[3] index) based on two input values + * // from the end-user, matching the data in a certain range. + * $.fn.dataTable.ext.search.push( + * function( settings, data, dataIndex ) { + * var min = document.getElementById('min').value * 1; + * var max = document.getElementById('max').value * 1; + * var version = data[3] == "-" ? 0 : data[3]*1; + * + * if ( min == "" && max == "" ) { + * return true; + * } + * else if ( min == "" && version < max ) { + * return true; + * } + * else if ( min < version && "" == max ) { + * return true; + * } + * else if ( min < version && version < max ) { + * return true; + * } + * return false; + * } + * ); + */ + search: [], + + + /** + * Internal functions, exposed for used in plug-ins. + * + * Please note that you should not need to use the internal methods for + * anything other than a plug-in (and even then, try to avoid if possible). + * The internal function may change between releases. + * + * @type object + * @default {} + */ + internal: {}, + + + /** + * Legacy configuration options. Enable and disable legacy options that + * are available in DataTables. + * + * @type object + */ + legacy: { + /** + * Enable / disable DataTables 1.9 compatible server-side processing + * requests + * + * @type boolean + * @default false + */ + ajax: false + }, + + + /** + * Pagination plug-in methods. + * + * Each entry in this object is a function and defines which buttons should + * be shown by the pagination rendering method that is used for the table: + * {@link DataTable.ext.renderer.pageButton}. The renderer addresses how the + * buttons are displayed in the document, while the functions here tell it + * what buttons to display. This is done by returning an array of button + * descriptions (what each button will do). + * + * Pagination types (the four built in options and any additional plug-in + * options defined here) can be used through the `paginationType` + * initialisation parameter. + * + * The functions defined take two parameters: + * + * 1. `{int} page` The current page index + * 2. `{int} pages` The number of pages in the table + * + * Each function is expected to return an array where each element of the + * array can be one of: + * + * * `first` - Jump to first page when activated + * * `last` - Jump to last page when activated + * * `previous` - Show previous page when activated + * * `next` - Show next page when activated + * * `{int}` - Show page of the index given + * * `{array}` - A nested array containing the above elements to add a + * containing 'DIV' element (might be useful for styling). + * + * Note that DataTables v1.9- used this object slightly differently whereby + * an object with two functions would be defined for each plug-in. That + * ability is still supported by DataTables 1.10+ to provide backwards + * compatibility, but this option of use is now decremented and no longer + * documented in DataTables 1.10+. + * + * @type object + * @default {} + * + * @example + * // Show previous, next and current page buttons only + * $.fn.dataTableExt.oPagination.current = function ( page, pages ) { + * return [ 'previous', page, 'next' ]; + * }; + */ + pager: {}, + + + renderer: { + pageButton: {}, + header: {} + }, + + + /** + * Ordering plug-ins - custom data source + * + * The extension options for ordering of data available here is complimentary + * to the default type based ordering that DataTables typically uses. It + * allows much greater control over the the data that is being used to + * order a column, but is necessarily therefore more complex. + * + * This type of ordering is useful if you want to do ordering based on data + * live from the DOM (for example the contents of an 'input' element) rather + * than just the static string that DataTables knows of. + * + * The way these plug-ins work is that you create an array of the values you + * wish to be ordering for the column in question and then return that + * array. The data in the array much be in the index order of the rows in + * the table (not the currently ordering order!). Which order data gathering + * function is run here depends on the `dt-init columns.orderDataType` + * parameter that is used for the column (if any). + * + * The functions defined take two parameters: + * + * 1. `{object}` DataTables settings object: see + * {@link DataTable.models.oSettings} + * 2. `{int}` Target column index + * + * Each function is expected to return an array: + * + * * `{array}` Data for the column to be ordering upon + * + * @type array + * + * @example + * // Ordering using `input` node values + * $.fn.dataTable.ext.order['dom-text'] = function ( settings, col ) + * { + * return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) { + * return $('input', td).val(); + * } ); + * } + */ + order: {}, + + + /** + * Type based plug-ins. + * + * Each column in DataTables has a type assigned to it, either by automatic + * detection or by direct assignment using the `type` option for the column. + * The type of a column will effect how it is ordering and search (plug-ins + * can also make use of the column type if required). + * + * @namespace + */ + type: { + /** + * Type detection functions. + * + * The functions defined in this object are used to automatically detect + * a column's type, making initialisation of DataTables super easy, even + * when complex data is in the table. + * + * The functions defined take a single parameter: + * + * 1. `{*}` Data from the column cell to be analysed + * + * Each function is expected to return: + * + * * `{string|null}` Data type detected, or null if unknown (and thus + * pass it on to the other type detection functions. + * + * @type array + * + * @example + * // Currency type detection plug-in: + * $.fn.dataTable.ext.type.detect.push( + * function ( data ) { + * // Check the numeric part + * if ( ! $.isNumeric( data.substring(1) ) ) { + * return null; + * } + * + * // Check prefixed by currency + * if ( data.charAt(0) == '$' || data.charAt(0) == '£' ) { + * return 'currency'; + * } + * return null; + * } + * ); + */ + detect: [], + + + /** + * Type based search formatting. + * + * The type based searching functions can be used to pre-format the + * data to be search on. For example, it can be used to strip HTML + * tags or to de-format telephone numbers for numeric only searching. + * + * Note that is a search is not defined for a column of a given type, + * no search formatting will be performed. + * + * Pre-processing of searching data plug-ins - When you assign the sType + * for a column (or have it automatically detected for you by DataTables + * or a type detection plug-in), you will typically be using this for + * custom sorting, but it can also be used to provide custom searching + * by allowing you to pre-processing the data and returning the data in + * the format that should be searched upon. This is done by adding + * functions this object with a parameter name which matches the sType + * for that target column. This is the corollary of afnSortData + * for searching data. + * + * The functions defined take a single parameter: + * + * 1. `{*}` Data from the column cell to be prepared for searching + * + * Each function is expected to return: + * + * * `{string|null}` Formatted string that will be used for the searching. + * + * @type object + * @default {} + * + * @example + * $.fn.dataTable.ext.type.search['title-numeric'] = function ( d ) { + * return d.replace(/\n/g," ").replace( /<.*?>/g, "" ); + * } + */ + search: {}, + + + /** + * Type based ordering. + * + * The column type tells DataTables what ordering to apply to the table + * when a column is sorted upon. The order for each type that is defined, + * is defined by the functions available in this object. + * + * Each ordering option can be described by three properties added to + * this object: + * + * * `{type}-pre` - Pre-formatting function + * * `{type}-asc` - Ascending order function + * * `{type}-desc` - Descending order function + * + * All three can be used together, only `{type}-pre` or only + * `{type}-asc` and `{type}-desc` together. It is generally recommended + * that only `{type}-pre` is used, as this provides the optimal + * implementation in terms of speed, although the others are provided + * for compatibility with existing Javascript sort functions. + * + * `{type}-pre`: Functions defined take a single parameter: + * + * 1. `{*}` Data from the column cell to be prepared for ordering + * + * And return: + * + * * `{*}` Data to be sorted upon + * + * `{type}-asc` and `{type}-desc`: Functions are typical Javascript sort + * functions, taking two parameters: + * + * 1. `{*}` Data to compare to the second parameter + * 2. `{*}` Data to compare to the first parameter + * + * And returning: + * + * * `{*}` Ordering match: <0 if first parameter should be sorted lower + * than the second parameter, ===0 if the two parameters are equal and + * >0 if the first parameter should be sorted height than the second + * parameter. + * + * @type object + * @default {} + * + * @example + * // Numeric ordering of formatted numbers with a pre-formatter + * $.extend( $.fn.dataTable.ext.type.order, { + * "string-pre": function(x) { + * a = (a === "-" || a === "") ? 0 : a.replace( /[^\d\-\.]/g, "" ); + * return parseFloat( a ); + * } + * } ); + * + * @example + * // Case-sensitive string ordering, with no pre-formatting method + * $.extend( $.fn.dataTable.ext.order, { + * "string-case-asc": function(x,y) { + * return ((x < y) ? -1 : ((x > y) ? 1 : 0)); + * }, + * "string-case-desc": function(x,y) { + * return ((x < y) ? 1 : ((x > y) ? -1 : 0)); + * } + * } ); + */ + order: {} + }, + + /** + * Unique DataTables instance counter + * + * @type int + * @private + */ + _unique: 0, + + + // + // Depreciated + // The following properties are retained for backwards compatiblity only. + // The should not be used in new projects and will be removed in a future + // version + // + + /** + * Version check function. + * @type function + * @depreciated Since 1.10 + */ + fnVersionCheck: DataTable.fnVersionCheck, + + + /** + * Index for what 'this' index API functions should use + * @type int + * @deprecated Since v1.10 + */ + iApiIndex: 0, + + + /** + * jQuery UI class container + * @type object + * @deprecated Since v1.10 + */ + oJUIClasses: {}, + + + /** + * Software version + * @type string + * @deprecated Since v1.10 + */ + sVersion: DataTable.version + }; + + + // + // Backwards compatibility. Alias to pre 1.10 Hungarian notation counter parts + // + $.extend( _ext, { + afnFiltering: _ext.filter, + aTypes: _ext.type.detect, + ofnSearch: _ext.type.search, + oSort: _ext.type.order, + afnSortData: _ext.order, + aoFeatures: _ext.feature, + oApi: _ext.internal, + oStdClasses: _ext.classes, + oPagination: _ext.pager + } ); + + + $.extend( DataTable.ext.classes, { + "sTable": "dataTable", + "sNoFooter": "no-footer", + + /* Paging buttons */ + "sPageButton": "paginate_button", + "sPageButtonActive": "current", + "sPageButtonDisabled": "disabled", + + /* Striping classes */ + "sStripeOdd": "odd", + "sStripeEven": "even", + + /* Empty row */ + "sRowEmpty": "dataTables_empty", + + /* Features */ + "sWrapper": "dataTables_wrapper", + "sFilter": "dataTables_filter", + "sInfo": "dataTables_info", + "sPaging": "dataTables_paginate paging_", /* Note that the type is postfixed */ + "sLength": "dataTables_length", + "sProcessing": "dataTables_processing", + + /* Sorting */ + "sSortAsc": "sorting_asc", + "sSortDesc": "sorting_desc", + "sSortable": "sorting", /* Sortable in both directions */ + "sSortableAsc": "sorting_asc_disabled", + "sSortableDesc": "sorting_desc_disabled", + "sSortableNone": "sorting_disabled", + "sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */ + + /* Filtering */ + "sFilterInput": "", + + /* Page length */ + "sLengthSelect": "", + + /* Scrolling */ + "sScrollWrapper": "dataTables_scroll", + "sScrollHead": "dataTables_scrollHead", + "sScrollHeadInner": "dataTables_scrollHeadInner", + "sScrollBody": "dataTables_scrollBody", + "sScrollFoot": "dataTables_scrollFoot", + "sScrollFootInner": "dataTables_scrollFootInner", + + /* Misc */ + "sHeaderTH": "", + "sFooterTH": "", + + // Deprecated + "sSortJUIAsc": "", + "sSortJUIDesc": "", + "sSortJUI": "", + "sSortJUIAscAllowed": "", + "sSortJUIDescAllowed": "", + "sSortJUIWrapper": "", + "sSortIcon": "", + "sJUIHeader": "", + "sJUIFooter": "" + } ); + + + (function() { + + // Reused strings for better compression. Closure compiler appears to have a + // weird edge case where it is trying to expand strings rather than use the + // variable version. This results in about 200 bytes being added, for very + // little preference benefit since it this run on script load only. + var _empty = ''; + _empty = ''; + + var _stateDefault = _empty + 'ui-state-default'; + var _sortIcon = _empty + 'css_right ui-icon ui-icon-'; + var _headerFooter = _empty + 'fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix'; + + $.extend( DataTable.ext.oJUIClasses, DataTable.ext.classes, { + /* Full numbers paging buttons */ + "sPageButton": "fg-button ui-button "+_stateDefault, + "sPageButtonActive": "ui-state-disabled", + "sPageButtonDisabled": "ui-state-disabled", + + /* Features */ + "sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+ + "ui-buttonset-multi paging_", /* Note that the type is postfixed */ + + /* Sorting */ + "sSortAsc": _stateDefault+" sorting_asc", + "sSortDesc": _stateDefault+" sorting_desc", + "sSortable": _stateDefault+" sorting", + "sSortableAsc": _stateDefault+" sorting_asc_disabled", + "sSortableDesc": _stateDefault+" sorting_desc_disabled", + "sSortableNone": _stateDefault+" sorting_disabled", + "sSortJUIAsc": _sortIcon+"triangle-1-n", + "sSortJUIDesc": _sortIcon+"triangle-1-s", + "sSortJUI": _sortIcon+"carat-2-n-s", + "sSortJUIAscAllowed": _sortIcon+"carat-1-n", + "sSortJUIDescAllowed": _sortIcon+"carat-1-s", + "sSortJUIWrapper": "DataTables_sort_wrapper", + "sSortIcon": "DataTables_sort_icon", + + /* Scrolling */ + "sScrollHead": "dataTables_scrollHead "+_stateDefault, + "sScrollFoot": "dataTables_scrollFoot "+_stateDefault, + + /* Misc */ + "sHeaderTH": _stateDefault, + "sFooterTH": _stateDefault, + "sJUIHeader": _headerFooter+" ui-corner-tl ui-corner-tr", + "sJUIFooter": _headerFooter+" ui-corner-bl ui-corner-br" + } ); + + }()); + + + + var extPagination = DataTable.ext.pager; + + function _numbers ( page, pages ) { + var + numbers = [], + buttons = extPagination.numbers_length, + half = Math.floor( buttons / 2 ), + i = 1; + + if ( pages <= buttons ) { + numbers = _range( 0, pages ); + } + else if ( page <= half ) { + numbers = _range( 0, buttons-2 ); + numbers.push( 'ellipsis' ); + numbers.push( pages-1 ); + } + else if ( page >= pages - 1 - half ) { + numbers = _range( pages-(buttons-2), pages ); + numbers.splice( 0, 0, 'ellipsis' ); // no unshift in ie6 + numbers.splice( 0, 0, 0 ); + } + else { + numbers = _range( page-1, page+2 ); + numbers.push( 'ellipsis' ); + numbers.push( pages-1 ); + numbers.splice( 0, 0, 'ellipsis' ); + numbers.splice( 0, 0, 0 ); + } + + numbers.DT_el = 'span'; + return numbers; + } + + + $.extend( extPagination, { + simple: function ( page, pages ) { + return [ 'previous', 'next' ]; + }, + + full: function ( page, pages ) { + return [ 'first', 'previous', 'next', 'last' ]; + }, + + simple_numbers: function ( page, pages ) { + return [ 'previous', _numbers(page, pages), 'next' ]; + }, + + full_numbers: function ( page, pages ) { + return [ 'first', 'previous', _numbers(page, pages), 'next', 'last' ]; + }, + + // For testing and plug-ins to use + _numbers: _numbers, + numbers_length: 7 + } ); + + + $.extend( true, DataTable.ext.renderer, { + pageButton: { + _: function ( settings, host, idx, buttons, page, pages ) { + var classes = settings.oClasses; + var lang = settings.oLanguage.oPaginate; + var btnDisplay, btnClass; + + var attach = function( container, buttons ) { + var i, ien, node, button; + var clickHandler = function ( e ) { + _fnPageChange( settings, e.data.action, true ); + }; + + for ( i=0, ien=buttons.length ; i' ) + .appendTo( container ); + attach( inner, button ); + } + else { + btnDisplay = ''; + btnClass = ''; + + switch ( button ) { + case 'ellipsis': + container.append(''); + break; + + case 'first': + btnDisplay = lang.sFirst; + btnClass = button + (page > 0 ? + '' : ' '+classes.sPageButtonDisabled); + break; + + case 'previous': + btnDisplay = lang.sPrevious; + btnClass = button + (page > 0 ? + '' : ' '+classes.sPageButtonDisabled); + break; + + case 'next': + btnDisplay = lang.sNext; + btnClass = button + (page < pages-1 ? + '' : ' '+classes.sPageButtonDisabled); + break; + + case 'last': + btnDisplay = lang.sLast; + btnClass = button + (page < pages-1 ? + '' : ' '+classes.sPageButtonDisabled); + break; + + default: + btnDisplay = button + 1; + btnClass = page === button ? + classes.sPageButtonActive : ''; + break; + } + + if ( btnDisplay ) { + node = $('', { + 'class': classes.sPageButton+' '+btnClass, + 'aria-controls': settings.sTableId, + 'tabindex': settings.iTabIndex, + 'id': idx === 0 && typeof button === 'string' ? + settings.sTableId +'_'+ button : + null + } ) + .html( btnDisplay ) + .appendTo( container ); + + _fnBindAction( + node, {action: button}, clickHandler + ); + } + } + } + }; + + attach( $(host).empty(), buttons ); + } + } + } ); + + + + var __numericReplace = function ( d, re1, re2 ) { + if ( !d || d === '-' ) { + return -Infinity; + } + + if ( d.replace ) { + if ( re1 ) { + d = d.replace( re1, '' ); + } + + if ( re2 ) { + d = d.replace( re2, '' ); + } + } + + return d * 1; + }; + + + $.extend( DataTable.ext.type.order, { + // Dates + "date-pre": function ( d ) + { + return Date.parse( d ) || 0; + }, + + // Plain numbers + "numeric-pre": function ( d ) + { + return __numericReplace( d ); + }, + + // Formatted numbers + "numeric-fmt-pre": function ( d ) + { + return __numericReplace( d, _re_formatted_numeric ); + }, + + // HTML numeric + "html-numeric-pre": function ( d ) + { + return __numericReplace( d, _re_html ); + }, + + // HTML numeric, formatted + "html-numeric-fmt-pre": function ( d ) + { + return __numericReplace( d, _re_html, _re_formatted_numeric ); + }, + + // html + "html-pre": function ( a ) + { + return a.replace ? + a.replace( /<.*?>/g, "" ).toLowerCase() : + a+''; + }, + + // string + "string-pre": function ( a ) + { + return typeof a === 'string' ? + a.toLowerCase() : + ! a || ! a.toString ? + '' : + a.toString(); + }, + + // string-asc and -desc are retained only for compatibility with the old + // sort methods + "string-asc": function ( x, y ) + { + return ((x < y) ? -1 : ((x > y) ? 1 : 0)); + }, + + "string-desc": function ( x, y ) + { + return ((x < y) ? 1 : ((x > y) ? -1 : 0)); + } + } ); + + + // Built in type detection. See model.ext.aTypes for information about + // what is required from this methods. + $.extend( DataTable.ext.type.detect, [ + // Plain numbers - first since V8 detects some plain numbers as dates + // e.g. Date.parse('55') (but not all, e.g. Date.parse('22')...). + function ( d ) + { + return _isNumber( d ) ? 'numeric' : null; + }, + + // Dates (only those recognised by the browser's Date.parse) + function ( d ) + { + // V8 will remove any unknown characters at the start of the expression, + // leading to false matches such as `$245.12` being a valid date. See + // forum thread 18941 for detail. + if ( d && ! _re_date_start.test(d) ) { + return null; + } + var parsed = Date.parse(d); + return (parsed !== null && !isNaN(parsed)) || _empty(d) ? 'date' : null; + }, + + // Formatted numbers + function ( d ) + { + return _isNumber( d, true ) ? 'numeric-fmt' : null; + }, + + // HTML numeric + function ( d ) + { + return _htmlNumeric( d ) ? 'html-numeric' : null; + }, + + // HTML numeric, formatted + function ( d ) + { + return _htmlNumeric( d, true ) ? 'html-numeric-fmt' : null; + }, + + // HTML (this is strict checking - there much be html) + function ( d ) + { + return _empty( d ) || (typeof d === 'string' && d.indexOf('<') !== -1) ? + 'html' : null; + } + ] ); + + + + // Filter formatting functions. See model.ext.ofnSearch for information about + // what is required from these methods. + + + $.extend( DataTable.ext.type.search, { + html: function ( data ) { + return _empty(data) ? + '' : + typeof data === 'string' ? + data + .replace( _re_new_lines, " " ) + .replace( _re_html, "" ) : + ''; + }, + + string: function ( data ) { + return _empty(data) ? + '' : + typeof data === 'string' ? + data.replace( _re_new_lines, " " ) : + data; + } + } ); + + + + $.extend( true, DataTable.ext.renderer, { + header: { + _: function ( settings, cell, column, idx, classes ) { + // No additional mark-up required + + // Attach a sort listener to update on sort + $(settings.nTable).on( 'order.dt', function ( e, settings, sorting, columns ) { + cell + .removeClass( + column.sSortingClass +' '+ + classes.sSortAsc +' '+ + classes.sSortDesc + ) + .addClass( columns[ idx ] == 'asc' ? + classes.sSortAsc : columns[ idx ] == 'desc' ? + classes.sSortDesc : + column.sSortingClass + ); + } ); + }, + + jqueryui: function ( settings, cell, column, idx, classes ) { + $('
                              ') + .addClass( classes.sSortJUIWrapper ) + .append( cell.contents() ) + .append( $('') + .addClass( classes.sSortIcon+' '+column.sSortingClassJUI ) + ) + .appendTo( cell ); + + // Attach a sort listener to update on sort + $(settings.nTable).on( 'order.dt', function ( e, settings, sorting, columns ) { + cell + .removeClass( classes.sSortAsc +" "+classes.sSortDesc ) + .addClass( columns[ idx ] == 'asc' ? + classes.sSortAsc : columns[ idx ] == 'desc' ? + classes.sSortDesc : + column.sSortingClass + ); + + cell + .find( 'span' ) + .removeClass( + classes.sSortJUIAsc +" "+ + classes.sSortJUIDesc +" "+ + classes.sSortJUI +" "+ + classes.sSortJUIAscAllowed +" "+ + classes.sSortJUIDescAllowed + ) + .addClass( columns[ idx ] == 'asc' ? + classes.sSortJUIAsc : columns[ idx ] == 'desc' ? + classes.sSortJUIDesc : + column.sSortingClassJUI + ); + } ); + } + } + } ); + + + // jQuery access + $.fn.dataTable = DataTable; + + // Legacy aliases + $.fn.dataTableSettings = DataTable.settings; + $.fn.dataTableExt = DataTable.ext; + + // With a capital `D` we return a DataTables API instance rather than a + // jQuery object + $.fn.DataTable = function ( opts ) { + return $(this).dataTable( opts ).api(); + }; + + // All properties that are available to $.fn.dataTable should also be + // available on $.fn.DataTable + $.each( DataTable, function ( prop, val ) { + $.fn.DataTable[ prop ] = val; + } ); + + + // Information about events fired by DataTables - for documentation. + /** + * Draw event, fired whenever the table is redrawn on the page, at the same + * point as fnDrawCallback. This may be useful for binding events or + * performing calculations when the table is altered at all. + * @name DataTable#draw.dt + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + */ + + /** + * Search event, fired when the searching applied to the table (using the + * built-in global search, or column filters) is altered. + * @name DataTable#search.dt + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + */ + + /** + * Page change event, fired when the paging of the table is altered. + * @name DataTable#page.dt + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + */ + + /** + * Order event, fired when the ordering applied to the table is altered. + * @name DataTable#order.dt + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + */ + + /** + * DataTables initialisation complete event, fired when the table is fully + * drawn, including Ajax data loaded, if Ajax data is required. + * @name DataTable#init.dt + * @event + * @param {event} e jQuery event object + * @param {object} oSettings DataTables settings object + * @param {object} json The JSON object request from the server - only + * present if client-side Ajax sourced data is used + */ + + /** + * State save event, fired when the table has changed state a new state save + * is required. This event allows modification of the state saving object + * prior to actually doing the save, including addition or other state + * properties (for plug-ins) or modification of a DataTables core property. + * @name DataTable#stateSaveParams.dt + * @event + * @param {event} e jQuery event object + * @param {object} oSettings DataTables settings object + * @param {object} json The state information to be saved + */ + + /** + * State load event, fired when the table is loading state from the stored + * data, but prior to the settings object being modified by the saved state + * - allowing modification of the saved state is required or loading of + * state for a plug-in. + * @name DataTable#stateLoadParams.dt + * @event + * @param {event} e jQuery event object + * @param {object} oSettings DataTables settings object + * @param {object} json The saved state information + */ + + /** + * State loaded event, fired when state has been loaded from stored data and + * the settings object has been modified by the loaded data. + * @name DataTable#stateLoaded.dt + * @event + * @param {event} e jQuery event object + * @param {object} oSettings DataTables settings object + * @param {object} json The saved state information + */ + + /** + * Processing event, fired when DataTables is doing some kind of processing + * (be it, order, searcg or anything else). It can be used to indicate to + * the end user that there is something happening, or that something has + * finished. + * @name DataTable#processing.dt + * @event + * @param {event} e jQuery event object + * @param {object} oSettings DataTables settings object + * @param {boolean} bShow Flag for if DataTables is doing processing or not + */ + + /** + * Ajax (XHR) event, fired whenever an Ajax request is completed from a + * request to made to the server for new data. This event is called before + * DataTables processed the returned data, so it can also be used to pre- + * process the data returned from the server, if needed. + * + * Note that this trigger is called in `fnServerData`, if you override + * `fnServerData` and which to use this event, you need to trigger it in you + * success function. + * @name DataTable#xhr.dt + * @event + * @param {event} e jQuery event object + * @param {object} o DataTables settings object {@link DataTable.models.oSettings} + * @param {object} json JSON returned from the server + * + * @example + * // Use a custom property returned from the server in another DOM element + * $('#table').dataTable().on('xhr.dt', function (e, settings, json) { + * $('#status').html( json.status ); + * } ); + * + * @example + * // Pre-process the data returned from the server + * $('#table').dataTable().on('xhr.dt', function (e, settings, json) { + * for ( var i=0, ien=json.aaData.length ; i 0 + if (o.multidate !== true){ + o.multidate = Number(o.multidate) || false; + if (o.multidate !== false) + o.multidate = Math.max(0, o.multidate); + else + o.multidate = 1; + } + o.multidateSeparator = String(o.multidateSeparator); + + o.weekStart %= 7; + o.weekEnd = ((o.weekStart + 6) % 7); + + var format = DPGlobal.parseFormat(o.format); + if (o.startDate !== -Infinity){ + if (!!o.startDate){ + if (o.startDate instanceof Date) + o.startDate = this._local_to_utc(this._zero_time(o.startDate)); + else + o.startDate = DPGlobal.parseDate(o.startDate, format, o.language); + } + else { + o.startDate = -Infinity; + } + } + if (o.endDate !== Infinity){ + if (!!o.endDate){ + if (o.endDate instanceof Date) + o.endDate = this._local_to_utc(this._zero_time(o.endDate)); + else + o.endDate = DPGlobal.parseDate(o.endDate, format, o.language); + } + else { + o.endDate = Infinity; + } + } + + o.daysOfWeekDisabled = o.daysOfWeekDisabled||[]; + if (!$.isArray(o.daysOfWeekDisabled)) + o.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\s]*/); + o.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){ + return parseInt(d, 10); + }); + + var plc = String(o.orientation).toLowerCase().split(/\s+/g), + _plc = o.orientation.toLowerCase(); + plc = $.grep(plc, function(word){ + return (/^auto|left|right|top|bottom$/).test(word); + }); + o.orientation = {x: 'auto', y: 'auto'}; + if (!_plc || _plc === 'auto') + ; // no action + else if (plc.length === 1){ + switch (plc[0]){ + case 'top': + case 'bottom': + o.orientation.y = plc[0]; + break; + case 'left': + case 'right': + o.orientation.x = plc[0]; + break; + } + } + else { + _plc = $.grep(plc, function(word){ + return (/^left|right$/).test(word); + }); + o.orientation.x = _plc[0] || 'auto'; + + _plc = $.grep(plc, function(word){ + return (/^top|bottom$/).test(word); + }); + o.orientation.y = _plc[0] || 'auto'; + } + }, + _events: [], + _secondaryEvents: [], + _applyEvents: function(evs){ + for (var i=0, el, ch, ev; i < evs.length; i++){ + el = evs[i][0]; + if (evs[i].length === 2){ + ch = undefined; + ev = evs[i][1]; + } + else if (evs[i].length === 3){ + ch = evs[i][1]; + ev = evs[i][2]; + } + el.on(ev, ch); + } + }, + _unapplyEvents: function(evs){ + for (var i=0, el, ev, ch; i < evs.length; i++){ + el = evs[i][0]; + if (evs[i].length === 2){ + ch = undefined; + ev = evs[i][1]; + } + else if (evs[i].length === 3){ + ch = evs[i][1]; + ev = evs[i][2]; + } + el.off(ev, ch); + } + }, + _buildEvents: function(){ + if (this.isInput){ // single input + this._events = [ + [this.element, { + focus: $.proxy(this.show, this), + keyup: $.proxy(function(e){ + if ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1) + this.update(); + }, this), + keydown: $.proxy(this.keydown, this) + }] + ]; + } + else if (this.component && this.hasInput){ // component: input + button + this._events = [ + // For components that are not readonly, allow keyboard nav + [this.element.find('input'), { + focus: $.proxy(this.show, this), + keyup: $.proxy(function(e){ + if ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1) + this.update(); + }, this), + keydown: $.proxy(this.keydown, this) + }], + [this.component, { + click: $.proxy(this.show, this) + }] + ]; + } + else if (this.element.is('div')){ // inline datepicker + this.isInline = true; + } + else { + this._events = [ + [this.element, { + click: $.proxy(this.show, this) + }] + ]; + } + this._events.push( + // Component: listen for blur on element descendants + [this.element, '*', { + blur: $.proxy(function(e){ + this._focused_from = e.target; + }, this) + }], + // Input: listen for blur on element + [this.element, { + blur: $.proxy(function(e){ + this._focused_from = e.target; + }, this) + }] + ); + + this._secondaryEvents = [ + [this.picker, { + click: $.proxy(this.click, this) + }], + [$(window), { + resize: $.proxy(this.place, this) + }], + [$(document), { + 'mousedown touchstart': $.proxy(function(e){ + // Clicked outside the datepicker, hide it + if (!( + this.element.is(e.target) || + this.element.find(e.target).length || + this.picker.is(e.target) || + this.picker.find(e.target).length + )){ + this.hide(); + } + }, this) + }] + ]; + }, + _attachEvents: function(){ + this._detachEvents(); + this._applyEvents(this._events); + }, + _detachEvents: function(){ + this._unapplyEvents(this._events); + }, + _attachSecondaryEvents: function(){ + this._detachSecondaryEvents(); + this._applyEvents(this._secondaryEvents); + }, + _detachSecondaryEvents: function(){ + this._unapplyEvents(this._secondaryEvents); + }, + _trigger: function(event, altdate){ + var date = altdate || this.dates.get(-1), + local_date = this._utc_to_local(date); + + this.element.trigger({ + type: event, + date: local_date, + dates: $.map(this.dates, this._utc_to_local), + format: $.proxy(function(ix, format){ + if (arguments.length === 0){ + ix = this.dates.length - 1; + format = this.o.format; + } + else if (typeof ix === 'string'){ + format = ix; + ix = this.dates.length - 1; + } + format = format || this.o.format; + var date = this.dates.get(ix); + return DPGlobal.formatDate(date, format, this.o.language); + }, this) + }); + }, + + show: function(){ + if (!this.isInline) + this.picker.appendTo('body'); + this.picker.show(); + this.place(); + this._attachSecondaryEvents(); + this._trigger('show'); + }, + + hide: function(){ + if (this.isInline) + return; + if (!this.picker.is(':visible')) + return; + this.focusDate = null; + this.picker.hide().detach(); + this._detachSecondaryEvents(); + this.viewMode = this.o.startView; + this.showMode(); + + if ( + this.o.forceParse && + ( + this.isInput && this.element.val() || + this.hasInput && this.element.find('input').val() + ) + ) + this.setValue(); + this._trigger('hide'); + }, + + remove: function(){ + this.hide(); + this._detachEvents(); + this._detachSecondaryEvents(); + this.picker.remove(); + delete this.element.data().datepicker; + if (!this.isInput){ + delete this.element.data().date; + } + }, + + _utc_to_local: function(utc){ + return utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000)); + }, + _local_to_utc: function(local){ + return local && new Date(local.getTime() - (local.getTimezoneOffset()*60000)); + }, + _zero_time: function(local){ + return local && new Date(local.getFullYear(), local.getMonth(), local.getDate()); + }, + _zero_utc_time: function(utc){ + return utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate())); + }, + + getDates: function(){ + return $.map(this.dates, this._utc_to_local); + }, + + getUTCDates: function(){ + return $.map(this.dates, function(d){ + return new Date(d); + }); + }, + + getDate: function(){ + return this._utc_to_local(this.getUTCDate()); + }, + + getUTCDate: function(){ + return new Date(this.dates.get(-1)); + }, + + setDates: function(){ + var args = $.isArray(arguments[0]) ? arguments[0] : arguments; + this.update.apply(this, args); + this._trigger('changeDate'); + this.setValue(); + }, + + setUTCDates: function(){ + var args = $.isArray(arguments[0]) ? arguments[0] : arguments; + this.update.apply(this, $.map(args, this._utc_to_local)); + this._trigger('changeDate'); + this.setValue(); + }, + + setDate: alias('setDates'), + setUTCDate: alias('setUTCDates'), + + setValue: function(){ + var formatted = this.getFormattedDate(); + if (!this.isInput){ + if (this.component){ + this.element.find('input').val(formatted).change(); + } + } + else { + this.element.val(formatted).change(); + } + }, + + getFormattedDate: function(format){ + if (format === undefined) + format = this.o.format; + + var lang = this.o.language; + return $.map(this.dates, function(d){ + return DPGlobal.formatDate(d, format, lang); + }).join(this.o.multidateSeparator); + }, + + setStartDate: function(startDate){ + this._process_options({startDate: startDate}); + this.update(); + this.updateNavArrows(); + }, + + setEndDate: function(endDate){ + this._process_options({endDate: endDate}); + this.update(); + this.updateNavArrows(); + }, + + setDaysOfWeekDisabled: function(daysOfWeekDisabled){ + this._process_options({daysOfWeekDisabled: daysOfWeekDisabled}); + this.update(); + this.updateNavArrows(); + }, + + place: function(){ + if (this.isInline) + return; + var calendarWidth = this.picker.outerWidth(), + calendarHeight = this.picker.outerHeight(), + visualPadding = 10, + windowWidth = $window.width(), + windowHeight = $window.height(), + scrollTop = $window.scrollTop(); + + var zIndex = parseInt(this.element.parents().filter(function(){ + return $(this).css('z-index') !== 'auto'; + }).first().css('z-index'))+10; + var offset = this.component ? this.component.parent().offset() : this.element.offset(); + var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false); + var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false); + var left = offset.left, + top = offset.top; + + this.picker.removeClass( + 'datepicker-orient-top datepicker-orient-bottom '+ + 'datepicker-orient-right datepicker-orient-left' + ); + + if (this.o.orientation.x !== 'auto'){ + this.picker.addClass('datepicker-orient-' + this.o.orientation.x); + if (this.o.orientation.x === 'right') + left -= calendarWidth - width; + } + // auto x orientation is best-placement: if it crosses a window + // edge, fudge it sideways + else { + // Default to left + this.picker.addClass('datepicker-orient-left'); + if (offset.left < 0) + left -= offset.left - visualPadding; + else if (offset.left + calendarWidth > windowWidth) + left = windowWidth - calendarWidth - visualPadding; + } + + // auto y orientation is best-situation: top or bottom, no fudging, + // decision based on which shows more of the calendar + var yorient = this.o.orientation.y, + top_overflow, bottom_overflow; + if (yorient === 'auto'){ + top_overflow = -scrollTop + offset.top - calendarHeight; + bottom_overflow = scrollTop + windowHeight - (offset.top + height + calendarHeight); + if (Math.max(top_overflow, bottom_overflow) === bottom_overflow) + yorient = 'top'; + else + yorient = 'bottom'; + } + this.picker.addClass('datepicker-orient-' + yorient); + if (yorient === 'top') + top += height; + else + top -= calendarHeight + parseInt(this.picker.css('padding-top')); + + this.picker.css({ + top: top, + left: left, + zIndex: zIndex + }); + }, + + _allow_update: true, + update: function(){ + if (!this._allow_update) + return; + + var oldDates = this.dates.copy(), + dates = [], + fromArgs = false; + if (arguments.length){ + $.each(arguments, $.proxy(function(i, date){ + if (date instanceof Date) + date = this._local_to_utc(date); + dates.push(date); + }, this)); + fromArgs = true; + } + else { + dates = this.isInput + ? this.element.val() + : this.element.data('date') || this.element.find('input').val(); + if (dates && this.o.multidate) + dates = dates.split(this.o.multidateSeparator); + else + dates = [dates]; + delete this.element.data().date; + } + + dates = $.map(dates, $.proxy(function(date){ + return DPGlobal.parseDate(date, this.o.format, this.o.language); + }, this)); + dates = $.grep(dates, $.proxy(function(date){ + return ( + date < this.o.startDate || + date > this.o.endDate || + !date + ); + }, this), true); + this.dates.replace(dates); + + if (this.dates.length) + this.viewDate = new Date(this.dates.get(-1)); + else if (this.viewDate < this.o.startDate) + this.viewDate = new Date(this.o.startDate); + else if (this.viewDate > this.o.endDate) + this.viewDate = new Date(this.o.endDate); + + if (fromArgs){ + // setting date by clicking + this.setValue(); + } + else if (dates.length){ + // setting date by typing + if (String(oldDates) !== String(this.dates)) + this._trigger('changeDate'); + } + if (!this.dates.length && oldDates.length) + this._trigger('clearDate'); + + this.fill(); + }, + + fillDow: function(){ + var dowCnt = this.o.weekStart, + html = '
                              '; + if (this.o.calendarWeeks){ + var cell = ''; + html += cell; + this.picker.find('.datepicker-days thead tr:first-child').prepend(cell); + } + while (dowCnt < this.o.weekStart + 7){ + html += ''; + } + html += ''; + this.picker.find('.datepicker-days thead').append(html); + }, + + fillMonths: function(){ + var html = '', + i = 0; + while (i < 12){ + html += ''+dates[this.o.language].monthsShort[i++]+''; + } + this.picker.find('.datepicker-months td').html(html); + }, + + setRange: function(range){ + if (!range || !range.length) + delete this.range; + else + this.range = $.map(range, function(d){ + return d.valueOf(); + }); + this.fill(); + }, + + getClassNames: function(date){ + var cls = [], + year = this.viewDate.getUTCFullYear(), + month = this.viewDate.getUTCMonth(), + today = new Date(); + if (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){ + cls.push('old'); + } + else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){ + cls.push('new'); + } + if (this.focusDate && date.valueOf() === this.focusDate.valueOf()) + cls.push('focused'); + // Compare internal UTC date with local today, not UTC today + if (this.o.todayHighlight && + date.getUTCFullYear() === today.getFullYear() && + date.getUTCMonth() === today.getMonth() && + date.getUTCDate() === today.getDate()){ + cls.push('today'); + } + if (this.dates.contains(date) !== -1) + cls.push('active'); + if (date.valueOf() < this.o.startDate || date.valueOf() > this.o.endDate || + $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1){ + cls.push('disabled'); + } + if (this.range){ + if (date > this.range[0] && date < this.range[this.range.length-1]){ + cls.push('range'); + } + if ($.inArray(date.valueOf(), this.range) !== -1){ + cls.push('selected'); + } + } + return cls; + }, + + fill: function(){ + var d = new Date(this.viewDate), + year = d.getUTCFullYear(), + month = d.getUTCMonth(), + startYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity, + startMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity, + endYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity, + endMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity, + todaytxt = dates[this.o.language].today || dates['en'].today || '', + cleartxt = dates[this.o.language].clear || dates['en'].clear || '', + tooltip; + this.picker.find('.datepicker-days thead th.datepicker-switch') + .text(dates[this.o.language].months[month]+' '+year); + this.picker.find('tfoot th.today') + .text(todaytxt) + .toggle(this.o.todayBtn !== false); + this.picker.find('tfoot th.clear') + .text(cleartxt) + .toggle(this.o.clearBtn !== false); + this.updateNavArrows(); + this.fillMonths(); + var prevMonth = UTCDate(year, month-1, 28), + day = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth()); + prevMonth.setUTCDate(day); + prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7); + var nextMonth = new Date(prevMonth); + nextMonth.setUTCDate(nextMonth.getUTCDate() + 42); + nextMonth = nextMonth.valueOf(); + var html = []; + var clsName; + while (prevMonth.valueOf() < nextMonth){ + if (prevMonth.getUTCDay() === this.o.weekStart){ + html.push(''); + if (this.o.calendarWeeks){ + // ISO 8601: First week contains first thursday. + // ISO also states week starts on Monday, but we can be more abstract here. + var + // Start of current week: based on weekstart/current date + ws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5), + // Thursday of this week + th = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5), + // First Thursday of year, year from thursday + yth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5), + // Calendar week: ms between thursdays, div ms per day, div 7 days + calWeek = (th - yth) / 864e5 / 7 + 1; + html.push(''); + + } + } + clsName = this.getClassNames(prevMonth); + clsName.push('day'); + + if (this.o.beforeShowDay !== $.noop){ + var before = this.o.beforeShowDay(this._utc_to_local(prevMonth)); + if (before === undefined) + before = {}; + else if (typeof(before) === 'boolean') + before = {enabled: before}; + else if (typeof(before) === 'string') + before = {classes: before}; + if (before.enabled === false) + clsName.push('disabled'); + if (before.classes) + clsName = clsName.concat(before.classes.split(/\s+/)); + if (before.tooltip) + tooltip = before.tooltip; + } + + clsName = $.unique(clsName); + html.push(''); + if (prevMonth.getUTCDay() === this.o.weekEnd){ + html.push(''); + } + prevMonth.setUTCDate(prevMonth.getUTCDate()+1); + } + this.picker.find('.datepicker-days tbody').empty().append(html.join('')); + + var months = this.picker.find('.datepicker-months') + .find('th:eq(1)') + .text(year) + .end() + .find('span').removeClass('active'); + + $.each(this.dates, function(i, d){ + if (d.getUTCFullYear() === year) + months.eq(d.getUTCMonth()).addClass('active'); + }); + + if (year < startYear || year > endYear){ + months.addClass('disabled'); + } + if (year === startYear){ + months.slice(0, startMonth).addClass('disabled'); + } + if (year === endYear){ + months.slice(endMonth+1).addClass('disabled'); + } + + html = ''; + year = parseInt(year/10, 10) * 10; + var yearCont = this.picker.find('.datepicker-years') + .find('th:eq(1)') + .text(year + '-' + (year + 9)) + .end() + .find('td'); + year -= 1; + var years = $.map(this.dates, function(d){ + return d.getUTCFullYear(); + }), + classes; + for (var i = -1; i < 11; i++){ + classes = ['year']; + if (i === -1) + classes.push('old'); + else if (i === 10) + classes.push('new'); + if ($.inArray(year, years) !== -1) + classes.push('active'); + if (year < startYear || year > endYear) + classes.push('disabled'); + html += ''+year+''; + year += 1; + } + yearCont.html(html); + }, + + updateNavArrows: function(){ + if (!this._allow_update) + return; + + var d = new Date(this.viewDate), + year = d.getUTCFullYear(), + month = d.getUTCMonth(); + switch (this.viewMode){ + case 0: + if (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){ + this.picker.find('.prev').css({visibility: 'hidden'}); + } + else { + this.picker.find('.prev').css({visibility: 'visible'}); + } + if (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){ + this.picker.find('.next').css({visibility: 'hidden'}); + } + else { + this.picker.find('.next').css({visibility: 'visible'}); + } + break; + case 1: + case 2: + if (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear()){ + this.picker.find('.prev').css({visibility: 'hidden'}); + } + else { + this.picker.find('.prev').css({visibility: 'visible'}); + } + if (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear()){ + this.picker.find('.next').css({visibility: 'hidden'}); + } + else { + this.picker.find('.next').css({visibility: 'visible'}); + } + break; + } + }, + + click: function(e){ + e.preventDefault(); + var target = $(e.target).closest('span, td, th'), + year, month, day; + if (target.length === 1){ + switch (target[0].nodeName.toLowerCase()){ + case 'th': + switch (target[0].className){ + case 'datepicker-switch': + this.showMode(1); + break; + case 'prev': + case 'next': + var dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1); + switch (this.viewMode){ + case 0: + this.viewDate = this.moveMonth(this.viewDate, dir); + this._trigger('changeMonth', this.viewDate); + break; + case 1: + case 2: + this.viewDate = this.moveYear(this.viewDate, dir); + if (this.viewMode === 1) + this._trigger('changeYear', this.viewDate); + break; + } + this.fill(); + break; + case 'today': + var date = new Date(); + date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0); + + this.showMode(-2); + var which = this.o.todayBtn === 'linked' ? null : 'view'; + this._setDate(date, which); + break; + case 'clear': + var element; + if (this.isInput) + element = this.element; + else if (this.component) + element = this.element.find('input'); + if (element) + element.val("").change(); + this.update(); + this._trigger('changeDate'); + if (this.o.autoclose) + this.hide(); + break; + } + break; + case 'span': + if (!target.is('.disabled')){ + this.viewDate.setUTCDate(1); + if (target.is('.month')){ + day = 1; + month = target.parent().find('span').index(target); + year = this.viewDate.getUTCFullYear(); + this.viewDate.setUTCMonth(month); + this._trigger('changeMonth', this.viewDate); + if (this.o.minViewMode === 1){ + this._setDate(UTCDate(year, month, day)); + } + } + else { + day = 1; + month = 0; + year = parseInt(target.text(), 10)||0; + this.viewDate.setUTCFullYear(year); + this._trigger('changeYear', this.viewDate); + if (this.o.minViewMode === 2){ + this._setDate(UTCDate(year, month, day)); + } + } + this.showMode(-1); + this.fill(); + } + break; + case 'td': + if (target.is('.day') && !target.is('.disabled')){ + day = parseInt(target.text(), 10)||1; + year = this.viewDate.getUTCFullYear(); + month = this.viewDate.getUTCMonth(); + if (target.is('.old')){ + if (month === 0){ + month = 11; + year -= 1; + } + else { + month -= 1; + } + } + else if (target.is('.new')){ + if (month === 11){ + month = 0; + year += 1; + } + else { + month += 1; + } + } + this._setDate(UTCDate(year, month, day)); + } + break; + } + } + if (this.picker.is(':visible') && this._focused_from){ + $(this._focused_from).focus(); + } + delete this._focused_from; + }, + + _toggle_multidate: function(date){ + var ix = this.dates.contains(date); + if (!date){ + this.dates.clear(); + } + else if (ix !== -1){ + this.dates.remove(ix); + } + else { + this.dates.push(date); + } + if (typeof this.o.multidate === 'number') + while (this.dates.length > this.o.multidate) + this.dates.remove(0); + }, + + _setDate: function(date, which){ + if (!which || which === 'date') + this._toggle_multidate(date && new Date(date)); + if (!which || which === 'view') + this.viewDate = date && new Date(date); + + this.fill(); + this.setValue(); + this._trigger('changeDate'); + var element; + if (this.isInput){ + element = this.element; + } + else if (this.component){ + element = this.element.find('input'); + } + if (element){ + element.change(); + } + if (this.o.autoclose && (!which || which === 'date')){ + this.hide(); + } + }, + + moveMonth: function(date, dir){ + if (!date) + return undefined; + if (!dir) + return date; + var new_date = new Date(date.valueOf()), + day = new_date.getUTCDate(), + month = new_date.getUTCMonth(), + mag = Math.abs(dir), + new_month, test; + dir = dir > 0 ? 1 : -1; + if (mag === 1){ + test = dir === -1 + // If going back one month, make sure month is not current month + // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02) + ? function(){ + return new_date.getUTCMonth() === month; + } + // If going forward one month, make sure month is as expected + // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02) + : function(){ + return new_date.getUTCMonth() !== new_month; + }; + new_month = month + dir; + new_date.setUTCMonth(new_month); + // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11 + if (new_month < 0 || new_month > 11) + new_month = (new_month + 12) % 12; + } + else { + // For magnitudes >1, move one month at a time... + for (var i=0; i < mag; i++) + // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)... + new_date = this.moveMonth(new_date, dir); + // ...then reset the day, keeping it in the new month + new_month = new_date.getUTCMonth(); + new_date.setUTCDate(day); + test = function(){ + return new_month !== new_date.getUTCMonth(); + }; + } + // Common date-resetting loop -- if date is beyond end of month, make it + // end of month + while (test()){ + new_date.setUTCDate(--day); + new_date.setUTCMonth(new_month); + } + return new_date; + }, + + moveYear: function(date, dir){ + return this.moveMonth(date, dir*12); + }, + + dateWithinRange: function(date){ + return date >= this.o.startDate && date <= this.o.endDate; + }, + + keydown: function(e){ + if (this.picker.is(':not(:visible)')){ + if (e.keyCode === 27) // allow escape to hide and re-show picker + this.show(); + return; + } + var dateChanged = false, + dir, newDate, newViewDate, + focusDate = this.focusDate || this.viewDate; + switch (e.keyCode){ + case 27: // escape + if (this.focusDate){ + this.focusDate = null; + this.viewDate = this.dates.get(-1) || this.viewDate; + this.fill(); + } + else + this.hide(); + e.preventDefault(); + break; + case 37: // left + case 39: // right + if (!this.o.keyboardNavigation) + break; + dir = e.keyCode === 37 ? -1 : 1; + if (e.ctrlKey){ + newDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir); + newViewDate = this.moveYear(focusDate, dir); + this._trigger('changeYear', this.viewDate); + } + else if (e.shiftKey){ + newDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir); + newViewDate = this.moveMonth(focusDate, dir); + this._trigger('changeMonth', this.viewDate); + } + else { + newDate = new Date(this.dates.get(-1) || UTCToday()); + newDate.setUTCDate(newDate.getUTCDate() + dir); + newViewDate = new Date(focusDate); + newViewDate.setUTCDate(focusDate.getUTCDate() + dir); + } + if (this.dateWithinRange(newDate)){ + this.focusDate = this.viewDate = newViewDate; + this.setValue(); + this.fill(); + e.preventDefault(); + } + break; + case 38: // up + case 40: // down + if (!this.o.keyboardNavigation) + break; + dir = e.keyCode === 38 ? -1 : 1; + if (e.ctrlKey){ + newDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir); + newViewDate = this.moveYear(focusDate, dir); + this._trigger('changeYear', this.viewDate); + } + else if (e.shiftKey){ + newDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir); + newViewDate = this.moveMonth(focusDate, dir); + this._trigger('changeMonth', this.viewDate); + } + else { + newDate = new Date(this.dates.get(-1) || UTCToday()); + newDate.setUTCDate(newDate.getUTCDate() + dir * 7); + newViewDate = new Date(focusDate); + newViewDate.setUTCDate(focusDate.getUTCDate() + dir * 7); + } + if (this.dateWithinRange(newDate)){ + this.focusDate = this.viewDate = newViewDate; + this.setValue(); + this.fill(); + e.preventDefault(); + } + break; + case 32: // spacebar + // Spacebar is used in manually typing dates in some formats. + // As such, its behavior should not be hijacked. + break; + case 13: // enter + focusDate = this.focusDate || this.dates.get(-1) || this.viewDate; + this._toggle_multidate(focusDate); + dateChanged = true; + this.focusDate = null; + this.viewDate = this.dates.get(-1) || this.viewDate; + this.setValue(); + this.fill(); + if (this.picker.is(':visible')){ + e.preventDefault(); + if (this.o.autoclose) + this.hide(); + } + break; + case 9: // tab + this.focusDate = null; + this.viewDate = this.dates.get(-1) || this.viewDate; + this.fill(); + this.hide(); + break; + } + if (dateChanged){ + if (this.dates.length) + this._trigger('changeDate'); + else + this._trigger('clearDate'); + var element; + if (this.isInput){ + element = this.element; + } + else if (this.component){ + element = this.element.find('input'); + } + if (element){ + element.change(); + } + } + }, + + showMode: function(dir){ + if (dir){ + this.viewMode = Math.max(this.o.minViewMode, Math.min(2, this.viewMode + dir)); + } + this.picker + .find('>div') + .hide() + .filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName) + .css('display', 'block'); + this.updateNavArrows(); + } + }; + + var DateRangePicker = function(element, options){ + this.element = $(element); + this.inputs = $.map(options.inputs, function(i){ + return i.jquery ? i[0] : i; + }); + delete options.inputs; + + $(this.inputs) + .datepicker(options) + .bind('changeDate', $.proxy(this.dateUpdated, this)); + + this.pickers = $.map(this.inputs, function(i){ + return $(i).data('datepicker'); + }); + this.updateDates(); + }; + DateRangePicker.prototype = { + updateDates: function(){ + this.dates = $.map(this.pickers, function(i){ + return i.getUTCDate(); + }); + this.updateRanges(); + }, + updateRanges: function(){ + var range = $.map(this.dates, function(d){ + return d.valueOf(); + }); + $.each(this.pickers, function(i, p){ + p.setRange(range); + }); + }, + dateUpdated: function(e){ + // `this.updating` is a workaround for preventing infinite recursion + // between `changeDate` triggering and `setUTCDate` calling. Until + // there is a better mechanism. + if (this.updating) + return; + this.updating = true; + + var dp = $(e.target).data('datepicker'), + new_date = dp.getUTCDate(), + i = $.inArray(e.target, this.inputs), + l = this.inputs.length; + if (i === -1) + return; + + $.each(this.pickers, function(i, p){ + if (!p.getUTCDate()) + p.setUTCDate(new_date); + }); + + if (new_date < this.dates[i]){ + // Date being moved earlier/left + while (i >= 0 && new_date < this.dates[i]){ + this.pickers[i--].setUTCDate(new_date); + } + } + else if (new_date > this.dates[i]){ + // Date being moved later/right + while (i < l && new_date > this.dates[i]){ + this.pickers[i++].setUTCDate(new_date); + } + } + this.updateDates(); + + delete this.updating; + }, + remove: function(){ + $.map(this.pickers, function(p){ p.remove(); }); + delete this.element.data().datepicker; + } + }; + + function opts_from_el(el, prefix){ + // Derive options from element data-attrs + var data = $(el).data(), + out = {}, inkey, + replace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])'); + prefix = new RegExp('^' + prefix.toLowerCase()); + function re_lower(_,a){ + return a.toLowerCase(); + } + for (var key in data) + if (prefix.test(key)){ + inkey = key.replace(replace, re_lower); + out[inkey] = data[key]; + } + return out; + } + + function opts_from_locale(lang){ + // Derive options from locale plugins + var out = {}; + // Check if "de-DE" style date is available, if not language should + // fallback to 2 letter code eg "de" + if (!dates[lang]){ + lang = lang.split('-')[0]; + if (!dates[lang]) + return; + } + var d = dates[lang]; + $.each(locale_opts, function(i,k){ + if (k in d) + out[k] = d[k]; + }); + return out; + } + + var old = $.fn.datepicker; + $.fn.datepicker = function(option){ + var args = Array.apply(null, arguments); + args.shift(); + var internal_return; + this.each(function(){ + var $this = $(this), + data = $this.data('datepicker'), + options = typeof option === 'object' && option; + if (!data){ + var elopts = opts_from_el(this, 'date'), + // Preliminary otions + xopts = $.extend({}, defaults, elopts, options), + locopts = opts_from_locale(xopts.language), + // Options priority: js args, data-attrs, locales, defaults + opts = $.extend({}, defaults, locopts, elopts, options); + if ($this.is('.input-daterange') || opts.inputs){ + var ropts = { + inputs: opts.inputs || $this.find('input').toArray() + }; + $this.data('datepicker', (data = new DateRangePicker(this, $.extend(opts, ropts)))); + } + else { + $this.data('datepicker', (data = new Datepicker(this, opts))); + } + } + if (typeof option === 'string' && typeof data[option] === 'function'){ + internal_return = data[option].apply(data, args); + if (internal_return !== undefined) + return false; + } + }); + if (internal_return !== undefined) + return internal_return; + else + return this; + }; + + var defaults = $.fn.datepicker.defaults = { + autoclose: false, + beforeShowDay: $.noop, + calendarWeeks: false, + clearBtn: false, + daysOfWeekDisabled: [], + endDate: Infinity, + forceParse: true, + format: 'yyyy-mm-dd', + keyboardNavigation: true, + language: 'en', + minViewMode: 0, + multidate: false, + multidateSeparator: ',', + orientation: "auto", + rtl: false, + startDate: -Infinity, + startView: 0, + todayBtn: false, + todayHighlight: false, + weekStart: 0 + }; + var locale_opts = $.fn.datepicker.locale_opts = [ + 'format', + 'rtl', + 'weekStart' + ]; + $.fn.datepicker.Constructor = Datepicker; + var dates = $.fn.datepicker.dates = { + en: { + days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], + daysShort: ["日", "一", "二", "三", "四", "五", "六", "日"], + daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], + months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + monthsShort: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], + today: "今天", + clear: "清空" + } + }; + + var DPGlobal = { + modes: [ + { + clsName: 'days', + navFnc: 'Month', + navStep: 1 + }, + { + clsName: 'months', + navFnc: 'FullYear', + navStep: 1 + }, + { + clsName: 'years', + navFnc: 'FullYear', + navStep: 10 + }], + isLeapYear: function(year){ + return (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)); + }, + getDaysInMonth: function(year, month){ + return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; + }, + validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g, + nonpunctuation: /[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g, + parseFormat: function(format){ + // IE treats \0 as a string end in inputs (truncating the value), + // so it's a bad format delimiter, anyway + var separators = format.replace(this.validParts, '\0').split('\0'), + parts = format.match(this.validParts); + if (!separators || !separators.length || !parts || parts.length === 0){ + throw new Error("Invalid date format."); + } + return {separators: separators, parts: parts}; + }, + parseDate: function(date, format, language){ + if (!date) + return undefined; + if (date instanceof Date) + return date; + if (typeof format === 'string') + format = DPGlobal.parseFormat(format); + var part_re = /([\-+]\d+)([dmwy])/, + parts = date.match(/([\-+]\d+)([dmwy])/g), + part, dir, i; + if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)){ + date = new Date(); + for (i=0; i < parts.length; i++){ + part = part_re.exec(parts[i]); + dir = parseInt(part[1]); + switch (part[2]){ + case 'd': + date.setUTCDate(date.getUTCDate() + dir); + break; + case 'm': + date = Datepicker.prototype.moveMonth.call(Datepicker.prototype, date, dir); + break; + case 'w': + date.setUTCDate(date.getUTCDate() + dir * 7); + break; + case 'y': + date = Datepicker.prototype.moveYear.call(Datepicker.prototype, date, dir); + break; + } + } + return UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0); + } + parts = date && date.match(this.nonpunctuation) || []; + date = new Date(); + var parsed = {}, + setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'], + setters_map = { + yyyy: function(d,v){ + return d.setUTCFullYear(v); + }, + yy: function(d,v){ + return d.setUTCFullYear(2000+v); + }, + m: function(d,v){ + if (isNaN(d)) + return d; + v -= 1; + while (v < 0) v += 12; + v %= 12; + d.setUTCMonth(v); + while (d.getUTCMonth() !== v) + d.setUTCDate(d.getUTCDate()-1); + return d; + }, + d: function(d,v){ + return d.setUTCDate(v); + } + }, + val, filtered; + setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m']; + setters_map['dd'] = setters_map['d']; + date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0); + var fparts = format.parts.slice(); + // Remove noop parts + if (parts.length !== fparts.length){ + fparts = $(fparts).filter(function(i,p){ + return $.inArray(p, setters_order) !== -1; + }).toArray(); + } + // Process remainder + function match_part(){ + var m = this.slice(0, parts[i].length), + p = parts[i].slice(0, m.length); + return m === p; + } + if (parts.length === fparts.length){ + var cnt; + for (i=0, cnt = fparts.length; i < cnt; i++){ + val = parseInt(parts[i], 10); + part = fparts[i]; + if (isNaN(val)){ + switch (part){ + case 'MM': + filtered = $(dates[language].months).filter(match_part); + val = $.inArray(filtered[0], dates[language].months) + 1; + break; + case 'M': + filtered = $(dates[language].monthsShort).filter(match_part); + val = $.inArray(filtered[0], dates[language].monthsShort) + 1; + break; + } + } + parsed[part] = val; + } + var _date, s; + for (i=0; i < setters_order.length; i++){ + s = setters_order[i]; + if (s in parsed && !isNaN(parsed[s])){ + _date = new Date(date); + setters_map[s](_date, parsed[s]); + if (!isNaN(_date)) + date = _date; + } + } + } + return date; + }, + formatDate: function(date, format, language){ + if (!date) + return ''; + if (typeof format === 'string') + format = DPGlobal.parseFormat(format); + var val = { + d: date.getUTCDate(), + D: dates[language].daysShort[date.getUTCDay()], + DD: dates[language].days[date.getUTCDay()], + m: date.getUTCMonth() + 1, + M: dates[language].monthsShort[date.getUTCMonth()], + MM: dates[language].months[date.getUTCMonth()], + yy: date.getUTCFullYear().toString().substring(2), + yyyy: date.getUTCFullYear() + }; + val.dd = (val.d < 10 ? '0' : '') + val.d; + val.mm = (val.m < 10 ? '0' : '') + val.m; + date = []; + var seps = $.extend([], format.separators); + for (var i=0, cnt = format.parts.length; i <= cnt; i++){ + if (seps.length) + date.push(seps.shift()); + date.push(val[format.parts[i]]); + } + return date.join(''); + }, + headTemplate: ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + '', + contTemplate: '', + footTemplate: ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + '' + }; + DPGlobal.template = '
                              '+ + '
                              '+ + '
                               '+dates[this.o.language].daysMin[(dowCnt++)%7]+'
                              '+ calWeek +''+prevMonth.getUTCDate() + '
                              «»
                              '+ + DPGlobal.headTemplate+ + ''+ + DPGlobal.footTemplate+ + '
                              '+ + '
                            • '+ + '
                              '+ + ''+ + DPGlobal.headTemplate+ + DPGlobal.contTemplate+ + DPGlobal.footTemplate+ + '
                              '+ + '
                              '+ + '
                              '+ + ''+ + DPGlobal.headTemplate+ + DPGlobal.contTemplate+ + DPGlobal.footTemplate+ + '
                              '+ + '
                              '+ + ''; + + $.fn.datepicker.DPGlobal = DPGlobal; + + + /* DATEPICKER NO CONFLICT + * =================== */ + + $.fn.datepicker.noConflict = function(){ + $.fn.datepicker = old; + return this; + }; + + + /* DATEPICKER DATA-API + * ================== */ + + $(document).on( + 'focus.datepicker.data-api click.datepicker.data-api', + '[data-provide="datepicker"]', + function(e){ + var $this = $(this); + if ($this.data('datepicker')) + return; + e.preventDefault(); + // component click requires us to explicitly show it + $this.datepicker('show'); + } + ); + $(function(){ + $('[data-provide="datepicker-inline"]').datepicker(); + }); + +}(window.jQuery)); diff --git a/novel-admin/src/main/resources/static/js/plugins/diff_match_patch/diff_match_patch.js b/novel-admin/src/main/resources/static/js/plugins/diff_match_patch/diff_match_patch.js new file mode 100644 index 0000000..c41b513 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/diff_match_patch/diff_match_patch.js @@ -0,0 +1,49 @@ +(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=0.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=0.5;this.Patch_Margin=4;this.Match_MaxBits=32} +diff_match_patch.prototype.diff_main=function(a,b,c,d){"undefined"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error("Null input. (diff_main)");if(a==b)return a?[[0,a]]:[];"undefined"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);var f=this.diff_commonSuffix(a,b),g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a, +b,e,d);c&&a.unshift([0,c]);g&&a.push([0,g]);this.diff_cleanupMerge(a);return a}; +diff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[1,b]];if(!b)return[[-1,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[1,e.substring(0,g)],[0,f],[1,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=-1),c):1==f.length?[[-1,a],[1,b]]:(e=this.diff_halfMatch_(a,b))?(f=e[0],a=e[1],g=e[2],b=e[3],e=e[4],f=this.diff_main(f,g,c,d),c=this.diff_main(a,b,c,d),f.concat([[0,e]],c)):c&&100c);v++){for(var n=-v+r;n<=v-t;n+=2){var l=g+n,m;m=n==-v||n!=v&&j[l-1]d)t+=2;else if(s>e)r+=2;else if(q&&(l=g+k-n,0<=l&&l= +u)return this.diff_bisectSplit_(a,b,m,s,c)}}for(n=-v+p;n<=v-w;n+=2){l=g+n;u=n==-v||n!=v&&i[l-1]d)w+=2;else if(m>e)p+=2;else if(!q&&(l=g+k-n,0<=l&&(l=u)))return this.diff_bisectSplit_(a,b,m,s,c)}}return[[-1,a],[1,b]]}; +diff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)}; +diff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b="",c=0,f=-1,g=d.length;fd?a=a.substring(c-d):c=a.length?[h,j,n,l,g]:null}if(0>=this.Diff_Timeout)return null; +var d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.lengthd[4].length?g:d:d:g;var j;a.length>b.length?(g=h[0],d=h[1],e=h[2],j=h[3]):(e=h[0],j=h[1],g=h[2],d=h[3]);h=h[4];return[g,d,e,j,h]}; +diff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,j=0,i=0;f=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[0,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[0,b.substring(0,e)]),a[f-1][0]=1,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=-1,a[f+1][1]=b.substring(e),f++;f++}f++}}; +diff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_),c=g&&c.match(diff_match_patch.linebreakRegex_),d=h&&d.match(diff_match_patch.linebreakRegex_),i=c&&a.match(diff_match_patch.blanklineEndRegex_),j=d&&b.match(diff_match_patch.blanklineStartRegex_); +return i||j?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c=i&&(i=k,g=d,h=e,j=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-1,1),c--),a[c][1]= +h,j?a[c+1][1]=j:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\s/;diff_match_patch.linebreakRegex_=/[\r\n]/;diff_match_patch.blanklineEndRegex_=/\n\r?\n$/;diff_match_patch.blanklineStartRegex_=/^\r?\n\r?\n/; +diff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,j=!1,i=!1;fb)break;e=c;f=d}return a.length!=g&&-1===a[g][0]?f:f+(b-e)}; +diff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=//g,f=/\n/g,g=0;g");switch(h){case 1:b[g]=''+j+"";break;case -1:b[g]=''+j+"";break;case 0:b[g]=""+j+""}}return b.join("")}; +diff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;cthis.Match_MaxBits)throw Error("Pattern too long for this browser.");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));for(var j=1<=i;p--){var w=e[a.charAt(p-1)];k[p]=0===t?(k[p+1]<<1|1)&w:(k[p+1]<<1|1)&w|((r[p+1]|r[p])<<1|1)|r[p+1];if(k[p]&j&&(w=d(t,p-1),w<=g))if(g=w,h=p-1,h>c)i=Math.max(1,2*c-h);else break}if(d(t+1,c)>g)break;r=k}return h}; +diff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c=2*this.Patch_Margin&& +e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}1!==i&&(f+=k.length);-1!==i&&(g+=k.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};diff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;cthis.Match_MaxBits){if(j=this.match_main(b,h.substring(0,this.Match_MaxBits),g),-1!=j&&(i=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==i||j>=i))j=-1}else j=this.match_main(b,h,g); +if(-1==j)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=j-g,g=-1==i?b.substring(j,j+h.length):b.substring(j,i+this.Match_MaxBits),h==g)b=b.substring(0,j)+this.diff_text2(a[f].diffs)+b.substring(j+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);for(var h=0,k,i=0;ie[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||0!=e[e.length-1][0]?(e.push([0, +c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c}; +diff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c2*b?(h.length1+=i.length,e+=i.length,j=!1,h.diffs.push([g,i]),d.diffs.shift()):(i=i.substring(0,b-h.length1-this.Patch_Margin),h.length1+=i.length,e+=i.length,0===g?(h.length2+=i.length,f+=i.length):j=!1,h.diffs.push([g,i]),i==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(i.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);i=this.diff_text1(d.diffs).substring(0,this.Patch_Margin);""!==i&& +(h.length1+=i.length,h.length2+=i.length,0!==h.diffs.length&&0===h.diffs[h.diffs.length-1][0]?h.diffs[h.diffs.length-1][1]+=i:h.diffs.push([0,i]));j||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c i ? $select.eq(i) : null; + } + }, this)); + + this.bind(); + + // Reset all the selects (after event binding) + this.reset(); + + this.active = true; + }, + + bind: function () { + if (this.$province) { + this.$province.on(EVENT_CHANGE, (this._changeProvince = $.proxy(function () { + this.output(CIRY); + this.output(DISTRICT); + }, this))); + } + + if (this.$city) { + this.$city.on(EVENT_CHANGE, (this._changeCity = $.proxy(function () { + this.output(DISTRICT); + }, this))); + } + }, + + unbind: function () { + if (this.$province) { + this.$province.off(EVENT_CHANGE, this._changeProvince); + } + + if (this.$city) { + this.$city.off(EVENT_CHANGE, this._changeCity); + } + }, + + output: function (type) { + var options = this.options; + var placeholders = this.placeholders; + var $select = this['$' + type]; + var districts = {}; + var data = []; + var code; + var matched; + var value; + + if (!$select || !$select.length) { + return; + } + + value = options[type]; + + code = ( + type === PROVINCE ? 86 : + type === CIRY ? this.$province && this.$province.find(':selected').data('code') : + type === DISTRICT ? this.$city && this.$city.find(':selected').data('code') : code + ); + + districts = $.isNumeric(code) ? ChineseDistricts[code] : null; + + if ($.isPlainObject(districts)) { + $.each(districts, function (code, address) { + var selected = address === value; + + if (selected) { + matched = true; + } + + data.push({ + code: code, + address: address, + selected: selected + }); + }); + } + + if (!matched) { + if (data.length && (options.autoSelect || options.autoselect)) { + data[0].selected = true; + } + + // Save the unmatched value as a placeholder at the first output + if (!this.active && value) { + placeholders[type] = value; + } + } + + // Add placeholder option + if (options.placeholder) { + data.unshift({ + code: '', + address: placeholders[type], + selected: false + }); + } + + $select.html(this.getList(data)); + }, + + getList: function (data) { + var list = []; + + $.each(data, function (i, n) { + list.push( + '' + + (n.address || '') + + '' + ); + }); + + return list.join(''); + }, + + reset: function (deep) { + if (!deep) { + this.output(PROVINCE); + this.output(CIRY); + this.output(DISTRICT); + } else if (this.$province) { + this.$province.find(':first').prop('selected', true).trigger(EVENT_CHANGE); + } + }, + + destroy: function () { + this.unbind(); + this.$element.removeData(NAMESPACE); + } + }; + + Distpicker.DEFAULTS = { + autoSelect: true, + placeholder: true, + province: '—— 省 ——', + city: '—— 市 ——', + district: '—— 区 ——' + }; + + Distpicker.setDefaults = function (options) { + $.extend(Distpicker.DEFAULTS, options); + }; + + // Save the other distpicker + Distpicker.other = $.fn.distpicker; + + // Register as jQuery plugin + $.fn.distpicker = function (option) { + var args = [].slice.call(arguments, 1); + + return this.each(function () { + var $this = $(this); + var data = $this.data(NAMESPACE); + var options; + var fn; + + if (!data) { + if (/destroy/.test(option)) { + return; + } + + options = $.extend({}, $this.data(), $.isPlainObject(option) && option); + $this.data(NAMESPACE, (data = new Distpicker(this, options))); + } + + if (typeof option === 'string' && $.isFunction(fn = data[option])) { + fn.apply(data, args); + } + }); + }; + + $.fn.distpicker.Constructor = Distpicker; + $.fn.distpicker.setDefaults = Distpicker.setDefaults; + + // No conflict + $.fn.distpicker.noConflict = function () { + $.fn.distpicker = Distpicker.other; + return this; + }; + + $(function () { + $('[data-toggle="distpicker"]').distpicker(); + }); +}); diff --git a/novel-admin/src/main/resources/static/js/plugins/distpicker/distpicker.min.js b/novel-admin/src/main/resources/static/js/plugins/distpicker/distpicker.min.js new file mode 100644 index 0000000..d3f0b53 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/distpicker/distpicker.min.js @@ -0,0 +1,10 @@ +/*! + * Distpicker v1.0.4 + * https://github.com/fengyuanchen/distpicker + * + * Copyright (c) 2014-2016 Fengyuan Chen + * Released under the MIT license + * + * Date: 2016-06-01T15:05:52.606Z + */ +!function(t){"function"==typeof define&&define.amd?define(["jquery","ChineseDistricts"],t):"object"==typeof exports?t(require("jquery"),require("ChineseDistricts")):t(jQuery,ChineseDistricts)}(function(t,i){"use strict";function e(i,s){this.$element=t(i),this.options=t.extend({},e.DEFAULTS,t.isPlainObject(s)&&s),this.placeholders=t.extend({},e.DEFAULTS),this.active=!1,this.init()}if("undefined"==typeof i)throw new Error('The file "distpicker.data.js" must be included first!');var s="distpicker",n="change."+s,c="province",o="city",r="district";e.prototype={constructor:e,init:function(){var i=this.options,e=this.$element.find("select"),s=e.length,n={};e.each(function(){t.extend(n,t(this).data())}),t.each([c,o,r],t.proxy(function(t,c){n[c]?(i[c]=n[c],this["$"+c]=e.filter("[data-"+c+"]")):this["$"+c]=s>t?e.eq(t):null},this)),this.bind(),this.reset(),this.active=!0},bind:function(){this.$province&&this.$province.on(n,this._changeProvince=t.proxy(function(){this.output(o),this.output(r)},this)),this.$city&&this.$city.on(n,this._changeCity=t.proxy(function(){this.output(r)},this))},unbind:function(){this.$province&&this.$province.off(n,this._changeProvince),this.$city&&this.$city.off(n,this._changeCity)},output:function(e){var s,n,h,d=this.options,u=this.placeholders,a=this["$"+e],f={},p=[];a&&a.length&&(h=d[e],s=e===c?86:e===o?this.$province&&this.$province.find(":selected").data("code"):e===r?this.$city&&this.$city.find(":selected").data("code"):s,f=t.isNumeric(s)?i[s]:null,t.isPlainObject(f)&&t.each(f,function(t,i){var e=i===h;e&&(n=!0),p.push({code:t,address:i,selected:e})}),n||(p.length&&(d.autoSelect||d.autoselect)&&(p[0].selected=!0),!this.active&&h&&(u[e]=h)),d.placeholder&&p.unshift({code:"",address:u[e],selected:!1}),a.html(this.getList(p)))},getList:function(i){var e=[];return t.each(i,function(t,i){e.push('")}),e.join("")},reset:function(t){t?this.$province&&this.$province.find(":first").prop("selected",!0).trigger(n):(this.output(c),this.output(o),this.output(r))},destroy:function(){this.unbind(),this.$element.removeData(s)}},e.DEFAULTS={autoSelect:!0,placeholder:!0,province:"—— 省 ——",city:"—— 市 ——",district:"—— 区 ——"},e.setDefaults=function(i){t.extend(e.DEFAULTS,i)},e.other=t.fn.distpicker,t.fn.distpicker=function(i){var n=[].slice.call(arguments,1);return this.each(function(){var c,o,r=t(this),h=r.data(s);if(!h){if(/destroy/.test(i))return;c=t.extend({},r.data(),t.isPlainObject(i)&&i),r.data(s,h=new e(this,c))}"string"==typeof i&&t.isFunction(o=h[i])&&o.apply(h,n)})},t.fn.distpicker.Constructor=e,t.fn.distpicker.setDefaults=e.setDefaults,t.fn.distpicker.noConflict=function(){return t.fn.distpicker=e.other,this},t(function(){t('[data-toggle="distpicker"]').distpicker()})}); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/dropzone/dropzone.js b/novel-admin/src/main/resources/static/js/plugins/dropzone/dropzone.js new file mode 100644 index 0000000..e676cc2 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/dropzone/dropzone.js @@ -0,0 +1,1841 @@ + +;(function(){ + + /** + * Require the module at `name`. + * + * @param {String} name + * @return {Object} exports + * @api public + */ + + function require(name) { + var module = require.modules[name]; + if (!module) throw new Error('failed to require "' + name + '"'); + + if (!('exports' in module) && typeof module.definition === 'function') { + module.client = module.component = true; + module.definition.call(this, module.exports = {}, module); + delete module.definition; + } + + return module.exports; + } + + /** + * Registered modules. + */ + + require.modules = {}; + + /** + * Register module at `name` with callback `definition`. + * + * @param {String} name + * @param {Function} definition + * @api private + */ + + require.register = function (name, definition) { + require.modules[name] = { + definition: definition + }; + }; + + /** + * Define a module's exports immediately with `exports`. + * + * @param {String} name + * @param {Generic} exports + * @api private + */ + + require.define = function (name, exports) { + require.modules[name] = { + exports: exports + }; + }; + require.register("component~emitter@1.1.2", function (exports, module) { + + /** + * Expose `Emitter`. + */ + + module.exports = Emitter; + + /** + * Initialize a new `Emitter`. + * + * @api public + */ + + function Emitter(obj) { + if (obj) return mixin(obj); + }; + + /** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + + function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; + } + + /** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.on = + Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks[event] = this._callbacks[event] || []) + .push(fn); + return this; + }; + + /** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.once = function(event, fn){ + var self = this; + this._callbacks = this._callbacks || {}; + + function on() { + self.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; + }; + + /** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.off = + Emitter.prototype.removeListener = + Emitter.prototype.removeAllListeners = + Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks[event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks[event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + return this; + }; + + /** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + + Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + var args = [].slice.call(arguments, 1) + , callbacks = this._callbacks[event]; + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; + }; + + /** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + + Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks[event] || []; + }; + + /** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + + Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; + }; + + }); + + require.register("dropzone", function (exports, module) { + + + /** + * Exposing dropzone + */ + module.exports = require("dropzone/lib/dropzone.js"); + + }); + + require.register("dropzone/lib/dropzone.js", function (exports, module) { + + /* + * + * More info at [www.dropzonejs.com](http://www.dropzonejs.com) + * + * Copyright (c) 2012, Matias Meno + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ + + (function() { + var Dropzone, Em, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + __slice = [].slice; + + Em = typeof Emitter !== "undefined" && Emitter !== null ? Emitter : require("component~emitter@1.1.2"); + + noop = function() {}; + + Dropzone = (function(_super) { + var extend; + + __extends(Dropzone, _super); + + + /* + This is a list of all available events you can register on a dropzone object. + + You can register an event handler like this: + + dropzone.on("dragEnter", function() { }); + */ + + Dropzone.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached"]; + + Dropzone.prototype.defaultOptions = { + url: null, + method: "post", + withCredentials: false, + parallelUploads: 2, + uploadMultiple: false, + maxFilesize: 256, + paramName: "file", + createImageThumbnails: true, + maxThumbnailFilesize: 10, + thumbnailWidth: 100, + thumbnailHeight: 100, + maxFiles: null, + params: {}, + clickable: true, + ignoreHiddenFiles: true, + acceptedFiles: null, + acceptedMimeTypes: null, + autoProcessQueue: true, + autoQueue: true, + addRemoveLinks: false, + previewsContainer: null, + dictDefaultMessage: "Drop files here to upload", + dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.", + dictFallbackText: "Please use the fallback form below to upload your files like in the olden days.", + dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.", + dictInvalidFileType: "You can't upload files of this type.", + dictResponseError: "Server responded with {{statusCode}} code.", + dictCancelUpload: "Cancel upload", + dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?", + dictRemoveFile: "Remove file", + dictRemoveFileConfirmation: null, + dictMaxFilesExceeded: "You can not upload any more files.", + accept: function(file, done) { + return done(); + }, + init: function() { + return noop; + }, + forceFallback: false, + fallback: function() { + var child, messageElement, span, _i, _len, _ref; + this.element.className = "" + this.element.className + " dz-browser-not-supported"; + _ref = this.element.getElementsByTagName("div"); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + child = _ref[_i]; + if (/(^| )dz-message($| )/.test(child.className)) { + messageElement = child; + child.className = "dz-message"; + continue; + } + } + if (!messageElement) { + messageElement = Dropzone.createElement("
                              "); + this.element.appendChild(messageElement); + } + span = messageElement.getElementsByTagName("span")[0]; + if (span) { + span.textContent = this.options.dictFallbackMessage; + } + return this.element.appendChild(this.getFallbackForm()); + }, + resize: function(file) { + var info, srcRatio, trgRatio; + info = { + srcX: 0, + srcY: 0, + srcWidth: file.width, + srcHeight: file.height + }; + srcRatio = file.width / file.height; + trgRatio = this.options.thumbnailWidth / this.options.thumbnailHeight; + if (file.height < this.options.thumbnailHeight || file.width < this.options.thumbnailWidth) { + info.trgHeight = info.srcHeight; + info.trgWidth = info.srcWidth; + } else { + if (srcRatio > trgRatio) { + info.srcHeight = file.height; + info.srcWidth = info.srcHeight * trgRatio; + } else { + info.srcWidth = file.width; + info.srcHeight = info.srcWidth / trgRatio; + } + } + info.srcX = (file.width - info.srcWidth) / 2; + info.srcY = (file.height - info.srcHeight) / 2; + return info; + }, + + /* + Those functions register themselves to the events on init and handle all + the user interface specific stuff. Overwriting them won't break the upload + but can break the way it's displayed. + You can overwrite them if you don't like the default behavior. If you just + want to add an additional event handler, register it on the dropzone object + and don't overwrite those options. + */ + drop: function(e) { + return this.element.classList.remove("dz-drag-hover"); + }, + dragstart: noop, + dragend: function(e) { + return this.element.classList.remove("dz-drag-hover"); + }, + dragenter: function(e) { + return this.element.classList.add("dz-drag-hover"); + }, + dragover: function(e) { + return this.element.classList.add("dz-drag-hover"); + }, + dragleave: function(e) { + return this.element.classList.remove("dz-drag-hover"); + }, + paste: noop, + reset: function() { + return this.element.classList.remove("dz-started"); + }, + addedfile: function(file) { + var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results; + if (this.element === this.previewsContainer) { + this.element.classList.add("dz-started"); + } + file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim()); + file.previewTemplate = file.previewElement; + this.previewsContainer.appendChild(file.previewElement); + _ref = file.previewElement.querySelectorAll("[data-dz-name]"); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + node = _ref[_i]; + node.textContent = file.name; + } + _ref1 = file.previewElement.querySelectorAll("[data-dz-size]"); + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + node = _ref1[_j]; + node.innerHTML = this.filesize(file.size); + } + if (this.options.addRemoveLinks) { + file._removeLink = Dropzone.createElement("
                              " + this.options.dictRemoveFile + ""); + file.previewElement.appendChild(file._removeLink); + } + removeFileEvent = (function(_this) { + return function(e) { + e.preventDefault(); + e.stopPropagation(); + if (file.status === Dropzone.UPLOADING) { + return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() { + return _this.removeFile(file); + }); + } else { + if (_this.options.dictRemoveFileConfirmation) { + return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() { + return _this.removeFile(file); + }); + } else { + return _this.removeFile(file); + } + } + }; + })(this); + _ref2 = file.previewElement.querySelectorAll("[data-dz-remove]"); + _results = []; + for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { + removeLink = _ref2[_k]; + _results.push(removeLink.addEventListener("click", removeFileEvent)); + } + return _results; + }, + removedfile: function(file) { + var _ref; + if ((_ref = file.previewElement) != null) { + _ref.parentNode.removeChild(file.previewElement); + } + return this._updateMaxFilesReachedClass(); + }, + thumbnail: function(file, dataUrl) { + var thumbnailElement, _i, _len, _ref, _results; + file.previewElement.classList.remove("dz-file-preview"); + file.previewElement.classList.add("dz-image-preview"); + _ref = file.previewElement.querySelectorAll("[data-dz-thumbnail]"); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + thumbnailElement = _ref[_i]; + thumbnailElement.alt = file.name; + _results.push(thumbnailElement.src = dataUrl); + } + return _results; + }, + error: function(file, message) { + var node, _i, _len, _ref, _results; + file.previewElement.classList.add("dz-error"); + if (typeof message !== "String" && message.error) { + message = message.error; + } + _ref = file.previewElement.querySelectorAll("[data-dz-errormessage]"); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + node = _ref[_i]; + _results.push(node.textContent = message); + } + return _results; + }, + errormultiple: noop, + processing: function(file) { + file.previewElement.classList.add("dz-processing"); + if (file._removeLink) { + return file._removeLink.textContent = this.options.dictCancelUpload; + } + }, + processingmultiple: noop, + uploadprogress: function(file, progress, bytesSent) { + var node, _i, _len, _ref, _results; + _ref = file.previewElement.querySelectorAll("[data-dz-uploadprogress]"); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + node = _ref[_i]; + _results.push(node.style.width = "" + progress + "%"); + } + return _results; + }, + totaluploadprogress: noop, + sending: noop, + sendingmultiple: noop, + success: function(file) { + return file.previewElement.classList.add("dz-success"); + }, + successmultiple: noop, + canceled: function(file) { + return this.emit("error", file, "Upload canceled."); + }, + canceledmultiple: noop, + complete: function(file) { + if (file._removeLink) { + return file._removeLink.textContent = this.options.dictRemoveFile; + } + }, + completemultiple: noop, + maxfilesexceeded: noop, + maxfilesreached: noop, + previewTemplate: "
                              \n
                              \n
                              \n
                              \n \n
                              \n
                              \n
                              \n
                              \n
                              \n
                              " + }; + + extend = function() { + var key, object, objects, target, val, _i, _len; + target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + for (_i = 0, _len = objects.length; _i < _len; _i++) { + object = objects[_i]; + for (key in object) { + val = object[key]; + target[key] = val; + } + } + return target; + }; + + function Dropzone(element, options) { + var elementOptions, fallback, _ref; + this.element = element; + this.version = Dropzone.version; + this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\n*/g, ""); + this.clickableElements = []; + this.listeners = []; + this.files = []; + if (typeof this.element === "string") { + this.element = document.querySelector(this.element); + } + if (!(this.element && (this.element.nodeType != null))) { + throw new Error("Invalid dropzone element."); + } + if (this.element.dropzone) { + throw new Error("Dropzone already attached."); + } + Dropzone.instances.push(this); + this.element.dropzone = this; + elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {}; + this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {}); + if (this.options.forceFallback || !Dropzone.isBrowserSupported()) { + return this.options.fallback.call(this); + } + if (this.options.url == null) { + this.options.url = this.element.getAttribute("action"); + } + if (!this.options.url) { + throw new Error("No URL provided."); + } + if (this.options.acceptedFiles && this.options.acceptedMimeTypes) { + throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated."); + } + if (this.options.acceptedMimeTypes) { + this.options.acceptedFiles = this.options.acceptedMimeTypes; + delete this.options.acceptedMimeTypes; + } + this.options.method = this.options.method.toUpperCase(); + if ((fallback = this.getExistingFallback()) && fallback.parentNode) { + fallback.parentNode.removeChild(fallback); + } + if (this.options.previewsContainer) { + this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, "previewsContainer"); + } else { + this.previewsContainer = this.element; + } + if (this.options.clickable) { + if (this.options.clickable === true) { + this.clickableElements = [this.element]; + } else { + this.clickableElements = Dropzone.getElements(this.options.clickable, "clickable"); + } + } + this.init(); + } + + Dropzone.prototype.getAcceptedFiles = function() { + var file, _i, _len, _ref, _results; + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.accepted) { + _results.push(file); + } + } + return _results; + }; + + Dropzone.prototype.getRejectedFiles = function() { + var file, _i, _len, _ref, _results; + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (!file.accepted) { + _results.push(file); + } + } + return _results; + }; + + Dropzone.prototype.getFilesWithStatus = function(status) { + var file, _i, _len, _ref, _results; + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.status === status) { + _results.push(file); + } + } + return _results; + }; + + Dropzone.prototype.getQueuedFiles = function() { + return this.getFilesWithStatus(Dropzone.QUEUED); + }; + + Dropzone.prototype.getUploadingFiles = function() { + return this.getFilesWithStatus(Dropzone.UPLOADING); + }; + + Dropzone.prototype.getActiveFiles = function() { + var file, _i, _len, _ref, _results; + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) { + _results.push(file); + } + } + return _results; + }; + + Dropzone.prototype.init = function() { + var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1; + if (this.element.tagName === "form") { + this.element.setAttribute("enctype", "multipart/form-data"); + } + if (this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message")) { + this.element.appendChild(Dropzone.createElement("
                              " + this.options.dictDefaultMessage + "
                              ")); + } + if (this.clickableElements.length) { + setupHiddenFileInput = (function(_this) { + return function() { + if (_this.hiddenFileInput) { + document.body.removeChild(_this.hiddenFileInput); + } + _this.hiddenFileInput = document.createElement("input"); + _this.hiddenFileInput.setAttribute("type", "file"); + if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) { + _this.hiddenFileInput.setAttribute("multiple", "multiple"); + } + _this.hiddenFileInput.className = "dz-hidden-input"; + if (_this.options.acceptedFiles != null) { + _this.hiddenFileInput.setAttribute("accept", _this.options.acceptedFiles); + } + _this.hiddenFileInput.style.visibility = "hidden"; + _this.hiddenFileInput.style.position = "absolute"; + _this.hiddenFileInput.style.top = "0"; + _this.hiddenFileInput.style.left = "0"; + _this.hiddenFileInput.style.height = "0"; + _this.hiddenFileInput.style.width = "0"; + document.body.appendChild(_this.hiddenFileInput); + return _this.hiddenFileInput.addEventListener("change", function() { + var file, files, _i, _len; + files = _this.hiddenFileInput.files; + if (files.length) { + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + _this.addFile(file); + } + } + return setupHiddenFileInput(); + }); + }; + })(this); + setupHiddenFileInput(); + } + this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL; + _ref1 = this.events; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + eventName = _ref1[_i]; + this.on(eventName, this.options[eventName]); + } + this.on("uploadprogress", (function(_this) { + return function() { + return _this.updateTotalUploadProgress(); + }; + })(this)); + this.on("removedfile", (function(_this) { + return function() { + return _this.updateTotalUploadProgress(); + }; + })(this)); + this.on("canceled", (function(_this) { + return function(file) { + return _this.emit("complete", file); + }; + })(this)); + this.on("complete", (function(_this) { + return function(file) { + if (_this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) { + return setTimeout((function() { + return _this.emit("queuecomplete"); + }), 0); + } + }; + })(this)); + noPropagation = function(e) { + e.stopPropagation(); + if (e.preventDefault) { + return e.preventDefault(); + } else { + return e.returnValue = false; + } + }; + this.listeners = [ + { + element: this.element, + events: { + "dragstart": (function(_this) { + return function(e) { + return _this.emit("dragstart", e); + }; + })(this), + "dragenter": (function(_this) { + return function(e) { + noPropagation(e); + return _this.emit("dragenter", e); + }; + })(this), + "dragover": (function(_this) { + return function(e) { + var efct; + try { + efct = e.dataTransfer.effectAllowed; + } catch (_error) {} + e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy'; + noPropagation(e); + return _this.emit("dragover", e); + }; + })(this), + "dragleave": (function(_this) { + return function(e) { + return _this.emit("dragleave", e); + }; + })(this), + "drop": (function(_this) { + return function(e) { + noPropagation(e); + return _this.drop(e); + }; + })(this), + "dragend": (function(_this) { + return function(e) { + return _this.emit("dragend", e); + }; + })(this) + } + } + ]; + this.clickableElements.forEach((function(_this) { + return function(clickableElement) { + return _this.listeners.push({ + element: clickableElement, + events: { + "click": function(evt) { + if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(".dz-message")))) { + return _this.hiddenFileInput.click(); + } + } + } + }); + }; + })(this)); + this.enable(); + return this.options.init.call(this); + }; + + Dropzone.prototype.destroy = function() { + var _ref; + this.disable(); + this.removeAllFiles(true); + if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) { + this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput); + this.hiddenFileInput = null; + } + delete this.element.dropzone; + return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1); + }; + + Dropzone.prototype.updateTotalUploadProgress = function() { + var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref; + totalBytesSent = 0; + totalBytes = 0; + activeFiles = this.getActiveFiles(); + if (activeFiles.length) { + _ref = this.getActiveFiles(); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + totalBytesSent += file.upload.bytesSent; + totalBytes += file.upload.total; + } + totalUploadProgress = 100 * totalBytesSent / totalBytes; + } else { + totalUploadProgress = 100; + } + return this.emit("totaluploadprogress", totalUploadProgress, totalBytes, totalBytesSent); + }; + + Dropzone.prototype.getFallbackForm = function() { + var existingFallback, fields, fieldsString, form; + if (existingFallback = this.getExistingFallback()) { + return existingFallback; + } + fieldsString = "
                              "; + if (this.options.dictFallbackText) { + fieldsString += "

                              " + this.options.dictFallbackText + "

                              "; + } + fieldsString += "
                              "; + fields = Dropzone.createElement(fieldsString); + if (this.element.tagName !== "FORM") { + form = Dropzone.createElement("
                              "); + form.appendChild(fields); + } else { + this.element.setAttribute("enctype", "multipart/form-data"); + this.element.setAttribute("method", this.options.method); + } + return form != null ? form : fields; + }; + + Dropzone.prototype.getExistingFallback = function() { + var fallback, getFallback, tagName, _i, _len, _ref; + getFallback = function(elements) { + var el, _i, _len; + for (_i = 0, _len = elements.length; _i < _len; _i++) { + el = elements[_i]; + if (/(^| )fallback($| )/.test(el.className)) { + return el; + } + } + }; + _ref = ["div", "form"]; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + tagName = _ref[_i]; + if (fallback = getFallback(this.element.getElementsByTagName(tagName))) { + return fallback; + } + } + }; + + Dropzone.prototype.setupEventListeners = function() { + var elementListeners, event, listener, _i, _len, _ref, _results; + _ref = this.listeners; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elementListeners = _ref[_i]; + _results.push((function() { + var _ref1, _results1; + _ref1 = elementListeners.events; + _results1 = []; + for (event in _ref1) { + listener = _ref1[event]; + _results1.push(elementListeners.element.addEventListener(event, listener, false)); + } + return _results1; + })()); + } + return _results; + }; + + Dropzone.prototype.removeEventListeners = function() { + var elementListeners, event, listener, _i, _len, _ref, _results; + _ref = this.listeners; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elementListeners = _ref[_i]; + _results.push((function() { + var _ref1, _results1; + _ref1 = elementListeners.events; + _results1 = []; + for (event in _ref1) { + listener = _ref1[event]; + _results1.push(elementListeners.element.removeEventListener(event, listener, false)); + } + return _results1; + })()); + } + return _results; + }; + + Dropzone.prototype.disable = function() { + var file, _i, _len, _ref, _results; + this.clickableElements.forEach(function(element) { + return element.classList.remove("dz-clickable"); + }); + this.removeEventListeners(); + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + _results.push(this.cancelUpload(file)); + } + return _results; + }; + + Dropzone.prototype.enable = function() { + this.clickableElements.forEach(function(element) { + return element.classList.add("dz-clickable"); + }); + return this.setupEventListeners(); + }; + + Dropzone.prototype.filesize = function(size) { + var string; + if (size >= 1024 * 1024 * 1024 * 1024 / 10) { + size = size / (1024 * 1024 * 1024 * 1024 / 10); + string = "TiB"; + } else if (size >= 1024 * 1024 * 1024 / 10) { + size = size / (1024 * 1024 * 1024 / 10); + string = "GiB"; + } else if (size >= 1024 * 1024 / 10) { + size = size / (1024 * 1024 / 10); + string = "MiB"; + } else if (size >= 1024 / 10) { + size = size / (1024 / 10); + string = "KiB"; + } else { + size = size * 10; + string = "b"; + } + return "" + (Math.round(size) / 10) + " " + string; + }; + + Dropzone.prototype._updateMaxFilesReachedClass = function() { + if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) { + if (this.getAcceptedFiles().length === this.options.maxFiles) { + this.emit('maxfilesreached', this.files); + } + return this.element.classList.add("dz-max-files-reached"); + } else { + return this.element.classList.remove("dz-max-files-reached"); + } + }; + + Dropzone.prototype.drop = function(e) { + var files, items; + if (!e.dataTransfer) { + return; + } + this.emit("drop", e); + files = e.dataTransfer.files; + if (files.length) { + items = e.dataTransfer.items; + if (items && items.length && (items[0].webkitGetAsEntry != null)) { + this._addFilesFromItems(items); + } else { + this.handleFiles(files); + } + } + }; + + Dropzone.prototype.paste = function(e) { + var items, _ref; + if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) { + return; + } + this.emit("paste", e); + items = e.clipboardData.items; + if (items.length) { + return this._addFilesFromItems(items); + } + }; + + Dropzone.prototype.handleFiles = function(files) { + var file, _i, _len, _results; + _results = []; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + _results.push(this.addFile(file)); + } + return _results; + }; + + Dropzone.prototype._addFilesFromItems = function(items) { + var entry, item, _i, _len, _results; + _results = []; + for (_i = 0, _len = items.length; _i < _len; _i++) { + item = items[_i]; + if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) { + if (entry.isFile) { + _results.push(this.addFile(item.getAsFile())); + } else if (entry.isDirectory) { + _results.push(this._addFilesFromDirectory(entry, entry.name)); + } else { + _results.push(void 0); + } + } else if (item.getAsFile != null) { + if ((item.kind == null) || item.kind === "file") { + _results.push(this.addFile(item.getAsFile())); + } else { + _results.push(void 0); + } + } else { + _results.push(void 0); + } + } + return _results; + }; + + Dropzone.prototype._addFilesFromDirectory = function(directory, path) { + var dirReader, entriesReader; + dirReader = directory.createReader(); + entriesReader = (function(_this) { + return function(entries) { + var entry, _i, _len; + for (_i = 0, _len = entries.length; _i < _len; _i++) { + entry = entries[_i]; + if (entry.isFile) { + entry.file(function(file) { + if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') { + return; + } + file.fullPath = "" + path + "/" + file.name; + return _this.addFile(file); + }); + } else if (entry.isDirectory) { + _this._addFilesFromDirectory(entry, "" + path + "/" + entry.name); + } + } + }; + })(this); + return dirReader.readEntries(entriesReader, function(error) { + return typeof console !== "undefined" && console !== null ? typeof console.log === "function" ? console.log(error) : void 0 : void 0; + }); + }; + + Dropzone.prototype.accept = function(file, done) { + if (file.size > this.options.maxFilesize * 1024 * 1024) { + return done(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(file.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)); + } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) { + return done(this.options.dictInvalidFileType); + } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) { + done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)); + return this.emit("maxfilesexceeded", file); + } else { + return this.options.accept.call(this, file, done); + } + }; + + Dropzone.prototype.addFile = function(file) { + file.upload = { + progress: 0, + total: file.size, + bytesSent: 0 + }; + this.files.push(file); + file.status = Dropzone.ADDED; + this.emit("addedfile", file); + this._enqueueThumbnail(file); + return this.accept(file, (function(_this) { + return function(error) { + if (error) { + file.accepted = false; + _this._errorProcessing([file], error); + } else { + file.accepted = true; + if (_this.options.autoQueue) { + _this.enqueueFile(file); + } + } + return _this._updateMaxFilesReachedClass(); + }; + })(this)); + }; + + Dropzone.prototype.enqueueFiles = function(files) { + var file, _i, _len; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + this.enqueueFile(file); + } + return null; + }; + + Dropzone.prototype.enqueueFile = function(file) { + if (file.status === Dropzone.ADDED && file.accepted === true) { + file.status = Dropzone.QUEUED; + if (this.options.autoProcessQueue) { + return setTimeout(((function(_this) { + return function() { + return _this.processQueue(); + }; + })(this)), 0); + } + } else { + throw new Error("This file can't be queued because it has already been processed or was rejected."); + } + }; + + Dropzone.prototype._thumbnailQueue = []; + + Dropzone.prototype._processingThumbnail = false; + + Dropzone.prototype._enqueueThumbnail = function(file) { + if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) { + this._thumbnailQueue.push(file); + return setTimeout(((function(_this) { + return function() { + return _this._processThumbnailQueue(); + }; + })(this)), 0); + } + }; + + Dropzone.prototype._processThumbnailQueue = function() { + if (this._processingThumbnail || this._thumbnailQueue.length === 0) { + return; + } + this._processingThumbnail = true; + return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) { + return function() { + _this._processingThumbnail = false; + return _this._processThumbnailQueue(); + }; + })(this)); + }; + + Dropzone.prototype.removeFile = function(file) { + if (file.status === Dropzone.UPLOADING) { + this.cancelUpload(file); + } + this.files = without(this.files, file); + this.emit("removedfile", file); + if (this.files.length === 0) { + return this.emit("reset"); + } + }; + + Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) { + var file, _i, _len, _ref; + if (cancelIfNecessary == null) { + cancelIfNecessary = false; + } + _ref = this.files.slice(); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) { + this.removeFile(file); + } + } + return null; + }; + + Dropzone.prototype.createThumbnail = function(file, callback) { + var fileReader; + fileReader = new FileReader; + fileReader.onload = (function(_this) { + return function() { + var img; + img = document.createElement("img"); + img.onload = function() { + var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3; + file.width = img.width; + file.height = img.height; + resizeInfo = _this.options.resize.call(_this, file); + if (resizeInfo.trgWidth == null) { + resizeInfo.trgWidth = _this.options.thumbnailWidth; + } + if (resizeInfo.trgHeight == null) { + resizeInfo.trgHeight = _this.options.thumbnailHeight; + } + canvas = document.createElement("canvas"); + ctx = canvas.getContext("2d"); + canvas.width = resizeInfo.trgWidth; + canvas.height = resizeInfo.trgHeight; + drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight); + thumbnail = canvas.toDataURL("image/png"); + _this.emit("thumbnail", file, thumbnail); + if (callback != null) { + return callback(); + } + }; + return img.src = fileReader.result; + }; + })(this); + return fileReader.readAsDataURL(file); + }; + + Dropzone.prototype.processQueue = function() { + var i, parallelUploads, processingLength, queuedFiles; + parallelUploads = this.options.parallelUploads; + processingLength = this.getUploadingFiles().length; + i = processingLength; + if (processingLength >= parallelUploads) { + return; + } + queuedFiles = this.getQueuedFiles(); + if (!(queuedFiles.length > 0)) { + return; + } + if (this.options.uploadMultiple) { + return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength)); + } else { + while (i < parallelUploads) { + if (!queuedFiles.length) { + return; + } + this.processFile(queuedFiles.shift()); + i++; + } + } + }; + + Dropzone.prototype.processFile = function(file) { + return this.processFiles([file]); + }; + + Dropzone.prototype.processFiles = function(files) { + var file, _i, _len; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + file.processing = true; + file.status = Dropzone.UPLOADING; + this.emit("processing", file); + } + if (this.options.uploadMultiple) { + this.emit("processingmultiple", files); + } + return this.uploadFiles(files); + }; + + Dropzone.prototype._getFilesWithXhr = function(xhr) { + var file, files; + return files = (function() { + var _i, _len, _ref, _results; + _ref = this.files; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + file = _ref[_i]; + if (file.xhr === xhr) { + _results.push(file); + } + } + return _results; + }).call(this); + }; + + Dropzone.prototype.cancelUpload = function(file) { + var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref; + if (file.status === Dropzone.UPLOADING) { + groupedFiles = this._getFilesWithXhr(file.xhr); + for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) { + groupedFile = groupedFiles[_i]; + groupedFile.status = Dropzone.CANCELED; + } + file.xhr.abort(); + for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) { + groupedFile = groupedFiles[_j]; + this.emit("canceled", groupedFile); + } + if (this.options.uploadMultiple) { + this.emit("canceledmultiple", groupedFiles); + } + } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) { + file.status = Dropzone.CANCELED; + this.emit("canceled", file); + if (this.options.uploadMultiple) { + this.emit("canceledmultiple", [file]); + } + } + if (this.options.autoProcessQueue) { + return this.processQueue(); + } + }; + + Dropzone.prototype.uploadFile = function(file) { + return this.uploadFiles([file]); + }; + + Dropzone.prototype.uploadFiles = function(files) { + var file, formData, handleError, headerName, headerValue, headers, input, inputName, inputType, key, option, progressObj, response, updateProgress, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref, _ref1, _ref2, _ref3, _ref4; + xhr = new XMLHttpRequest(); + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + file.xhr = xhr; + } + xhr.open(this.options.method, this.options.url, true); + xhr.withCredentials = !!this.options.withCredentials; + response = null; + handleError = (function(_this) { + return function() { + var _j, _len1, _results; + _results = []; + for (_j = 0, _len1 = files.length; _j < _len1; _j++) { + file = files[_j]; + _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace("{{statusCode}}", xhr.status), xhr)); + } + return _results; + }; + })(this); + updateProgress = (function(_this) { + return function(e) { + var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results; + if (e != null) { + progress = 100 * e.loaded / e.total; + for (_j = 0, _len1 = files.length; _j < _len1; _j++) { + file = files[_j]; + file.upload = { + progress: progress, + total: e.total, + bytesSent: e.loaded + }; + } + } else { + allFilesFinished = true; + progress = 100; + for (_k = 0, _len2 = files.length; _k < _len2; _k++) { + file = files[_k]; + if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) { + allFilesFinished = false; + } + file.upload.progress = progress; + file.upload.bytesSent = file.upload.total; + } + if (allFilesFinished) { + return; + } + } + _results = []; + for (_l = 0, _len3 = files.length; _l < _len3; _l++) { + file = files[_l]; + _results.push(_this.emit("uploadprogress", file, progress, file.upload.bytesSent)); + } + return _results; + }; + })(this); + xhr.onload = (function(_this) { + return function(e) { + var _ref; + if (files[0].status === Dropzone.CANCELED) { + return; + } + if (xhr.readyState !== 4) { + return; + } + response = xhr.responseText; + if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) { + try { + response = JSON.parse(response); + } catch (_error) { + e = _error; + response = "Invalid JSON response from server."; + } + } + updateProgress(); + if (!((200 <= (_ref = xhr.status) && _ref < 300))) { + return handleError(); + } else { + return _this._finished(files, response, e); + } + }; + })(this); + xhr.onerror = (function(_this) { + return function() { + if (files[0].status === Dropzone.CANCELED) { + return; + } + return handleError(); + }; + })(this); + progressObj = (_ref = xhr.upload) != null ? _ref : xhr; + progressObj.onprogress = updateProgress; + headers = { + "Accept": "application/json", + "Cache-Control": "no-cache", + "X-Requested-With": "XMLHttpRequest" + }; + if (this.options.headers) { + extend(headers, this.options.headers); + } + for (headerName in headers) { + headerValue = headers[headerName]; + xhr.setRequestHeader(headerName, headerValue); + } + formData = new FormData(); + if (this.options.params) { + _ref1 = this.options.params; + for (key in _ref1) { + value = _ref1[key]; + formData.append(key, value); + } + } + for (_j = 0, _len1 = files.length; _j < _len1; _j++) { + file = files[_j]; + this.emit("sending", file, xhr, formData); + } + if (this.options.uploadMultiple) { + this.emit("sendingmultiple", files, xhr, formData); + } + if (this.element.tagName === "FORM") { + _ref2 = this.element.querySelectorAll("input, textarea, select, button"); + for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { + input = _ref2[_k]; + inputName = input.getAttribute("name"); + inputType = input.getAttribute("type"); + if (input.tagName === "SELECT" && input.hasAttribute("multiple")) { + _ref3 = input.options; + for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) { + option = _ref3[_l]; + if (option.selected) { + formData.append(inputName, option.value); + } + } + } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== "checkbox" && _ref4 !== "radio") || input.checked) { + formData.append(inputName, input.value); + } + } + } + for (_m = 0, _len4 = files.length; _m < _len4; _m++) { + file = files[_m]; + formData.append("" + this.options.paramName + (this.options.uploadMultiple ? "[]" : ""), file, file.name); + } + return xhr.send(formData); + }; + + Dropzone.prototype._finished = function(files, responseText, e) { + var file, _i, _len; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + file.status = Dropzone.SUCCESS; + this.emit("success", file, responseText, e); + this.emit("complete", file); + } + if (this.options.uploadMultiple) { + this.emit("successmultiple", files, responseText, e); + this.emit("completemultiple", files); + } + if (this.options.autoProcessQueue) { + return this.processQueue(); + } + }; + + Dropzone.prototype._errorProcessing = function(files, message, xhr) { + var file, _i, _len; + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + file.status = Dropzone.ERROR; + this.emit("error", file, message, xhr); + this.emit("complete", file); + } + if (this.options.uploadMultiple) { + this.emit("errormultiple", files, message, xhr); + this.emit("completemultiple", files); + } + if (this.options.autoProcessQueue) { + return this.processQueue(); + } + }; + + return Dropzone; + + })(Em); + + Dropzone.version = "3.8.7"; + + Dropzone.options = {}; + + Dropzone.optionsForElement = function(element) { + if (element.getAttribute("id")) { + return Dropzone.options[camelize(element.getAttribute("id"))]; + } else { + return void 0; + } + }; + + Dropzone.instances = []; + + Dropzone.forElement = function(element) { + if (typeof element === "string") { + element = document.querySelector(element); + } + if ((element != null ? element.dropzone : void 0) == null) { + throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone."); + } + return element.dropzone; + }; + + Dropzone.autoDiscover = true; + + Dropzone.discover = function() { + var checkElements, dropzone, dropzones, _i, _len, _results; + if (document.querySelectorAll) { + dropzones = document.querySelectorAll(".dropzone"); + } else { + dropzones = []; + checkElements = function(elements) { + var el, _i, _len, _results; + _results = []; + for (_i = 0, _len = elements.length; _i < _len; _i++) { + el = elements[_i]; + if (/(^| )dropzone($| )/.test(el.className)) { + _results.push(dropzones.push(el)); + } else { + _results.push(void 0); + } + } + return _results; + }; + checkElements(document.getElementsByTagName("div")); + checkElements(document.getElementsByTagName("form")); + } + _results = []; + for (_i = 0, _len = dropzones.length; _i < _len; _i++) { + dropzone = dropzones[_i]; + if (Dropzone.optionsForElement(dropzone) !== false) { + _results.push(new Dropzone(dropzone)); + } else { + _results.push(void 0); + } + } + return _results; + }; + + Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\/12/i]; + + Dropzone.isBrowserSupported = function() { + var capableBrowser, regex, _i, _len, _ref; + capableBrowser = true; + if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) { + if (!("classList" in document.createElement("a"))) { + capableBrowser = false; + } else { + _ref = Dropzone.blacklistedBrowsers; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + regex = _ref[_i]; + if (regex.test(navigator.userAgent)) { + capableBrowser = false; + continue; + } + } + } + } else { + capableBrowser = false; + } + return capableBrowser; + }; + + without = function(list, rejectedItem) { + var item, _i, _len, _results; + _results = []; + for (_i = 0, _len = list.length; _i < _len; _i++) { + item = list[_i]; + if (item !== rejectedItem) { + _results.push(item); + } + } + return _results; + }; + + camelize = function(str) { + return str.replace(/[\-_](\w)/g, function(match) { + return match.charAt(1).toUpperCase(); + }); + }; + + Dropzone.createElement = function(string) { + var div; + div = document.createElement("div"); + div.innerHTML = string; + return div.childNodes[0]; + }; + + Dropzone.elementInside = function(element, container) { + if (element === container) { + return true; + } + while (element = element.parentNode) { + if (element === container) { + return true; + } + } + return false; + }; + + Dropzone.getElement = function(el, name) { + var element; + if (typeof el === "string") { + element = document.querySelector(el); + } else if (el.nodeType != null) { + element = el; + } + if (element == null) { + throw new Error("Invalid `" + name + "` option provided. Please provide a CSS selector or a plain HTML element."); + } + return element; + }; + + Dropzone.getElements = function(els, name) { + var e, el, elements, _i, _j, _len, _len1, _ref; + if (els instanceof Array) { + elements = []; + try { + for (_i = 0, _len = els.length; _i < _len; _i++) { + el = els[_i]; + elements.push(this.getElement(el, name)); + } + } catch (_error) { + e = _error; + elements = null; + } + } else if (typeof els === "string") { + elements = []; + _ref = document.querySelectorAll(els); + for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { + el = _ref[_j]; + elements.push(el); + } + } else if (els.nodeType != null) { + elements = [els]; + } + if (!((elements != null) && elements.length)) { + throw new Error("Invalid `" + name + "` option provided. Please provide a CSS selector, a plain HTML element or a list of those."); + } + return elements; + }; + + Dropzone.confirm = function(question, accepted, rejected) { + if (window.confirm(question)) { + return accepted(); + } else if (rejected != null) { + return rejected(); + } + }; + + Dropzone.isValidFile = function(file, acceptedFiles) { + var baseMimeType, mimeType, validType, _i, _len; + if (!acceptedFiles) { + return true; + } + acceptedFiles = acceptedFiles.split(","); + mimeType = file.type; + baseMimeType = mimeType.replace(/\/.*$/, ""); + for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) { + validType = acceptedFiles[_i]; + validType = validType.trim(); + if (validType.charAt(0) === ".") { + if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) { + return true; + } + } else if (/\/\*$/.test(validType)) { + if (baseMimeType === validType.replace(/\/.*$/, "")) { + return true; + } + } else { + if (mimeType === validType) { + return true; + } + } + } + return false; + }; + + if (typeof jQuery !== "undefined" && jQuery !== null) { + jQuery.fn.dropzone = function(options) { + return this.each(function() { + return new Dropzone(this, options); + }); + }; + } + + if (typeof module !== "undefined" && module !== null) { + module.exports = Dropzone; + } else { + window.Dropzone = Dropzone; + } + + Dropzone.ADDED = "added"; + + Dropzone.QUEUED = "queued"; + + Dropzone.ACCEPTED = Dropzone.QUEUED; + + Dropzone.UPLOADING = "uploading"; + + Dropzone.PROCESSING = Dropzone.UPLOADING; + + Dropzone.CANCELED = "canceled"; + + Dropzone.ERROR = "error"; + + Dropzone.SUCCESS = "success"; + + + /* + + Bugfix for iOS 6 and 7 + Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios + based on the work of https://github.com/stomita/ios-imagefile-megapixel + */ + + detectVerticalSquash = function(img) { + var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy; + iw = img.naturalWidth; + ih = img.naturalHeight; + canvas = document.createElement("canvas"); + canvas.width = 1; + canvas.height = ih; + ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0); + data = ctx.getImageData(0, 0, 1, ih).data; + sy = 0; + ey = ih; + py = ih; + while (py > sy) { + alpha = data[(py - 1) * 4 + 3]; + if (alpha === 0) { + ey = py; + } else { + sy = py; + } + py = (ey + sy) >> 1; + } + ratio = py / ih; + if (ratio === 0) { + return 1; + } else { + return ratio; + } + }; + + drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) { + var vertSquashRatio; + vertSquashRatio = detectVerticalSquash(img); + return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio); + }; + + + /* + * contentloaded.js + * + * Author: Diego Perini (diego.perini at gmail.com) + * Summary: cross-browser wrapper for DOMContentLoaded + * Updated: 20101020 + * License: MIT + * Version: 1.2 + * + * URL: + * http://javascript.nwbox.com/ContentLoaded/ + * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE + */ + + contentLoaded = function(win, fn) { + var add, doc, done, init, poll, pre, rem, root, top; + done = false; + top = true; + doc = win.document; + root = doc.documentElement; + add = (doc.addEventListener ? "addEventListener" : "attachEvent"); + rem = (doc.addEventListener ? "removeEventListener" : "detachEvent"); + pre = (doc.addEventListener ? "" : "on"); + init = function(e) { + if (e.type === "readystatechange" && doc.readyState !== "complete") { + return; + } + (e.type === "load" ? win : doc)[rem](pre + e.type, init, false); + if (!done && (done = true)) { + return fn.call(win, e.type || e); + } + }; + poll = function() { + var e; + try { + root.doScroll("left"); + } catch (_error) { + e = _error; + setTimeout(poll, 50); + return; + } + return init("poll"); + }; + if (doc.readyState !== "complete") { + if (doc.createEventObject && root.doScroll) { + try { + top = !win.frameElement; + } catch (_error) {} + if (top) { + poll(); + } + } + doc[add](pre + "DOMContentLoaded", init, false); + doc[add](pre + "readystatechange", init, false); + return win[add](pre + "load", init, false); + } + }; + + Dropzone._autoDiscoverFunction = function() { + if (Dropzone.autoDiscover) { + return Dropzone.discover(); + } + }; + + contentLoaded(window, Dropzone._autoDiscoverFunction); + + }).call(this); + + }); + + if (typeof exports == "object") { + module.exports = require("dropzone"); + } else if (typeof define == "function" && define.amd) { + define([], function(){ return require("dropzone"); }); + } else { + this["Dropzone"] = require("dropzone"); + } +})() diff --git a/novel-admin/src/main/resources/static/js/plugins/duallistbox/jquery.bootstrap-duallistbox.js b/novel-admin/src/main/resources/static/js/plugins/duallistbox/jquery.bootstrap-duallistbox.js new file mode 100644 index 0000000..2eb8841 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/duallistbox/jquery.bootstrap-duallistbox.js @@ -0,0 +1,709 @@ +;(function ($, window, document, undefined) { + // Create the defaults once + var pluginName = 'bootstrapDualListbox', + defaults = { + bootstrap2Compatible: false, + filterTextClear: '显示全部', + filterPlaceHolder: '查找', + moveSelectedLabel: '移动选择', + moveAllLabel: '移动全部', + removeSelectedLabel: '移除选择', + removeAllLabel: '移除全部', + moveOnSelect: true, // true/false (forced true on androids, see the comment later) + preserveSelectionOnMove: false, // 'all' / 'moved' / false + selectedListLabel: false, // 'string', false + nonSelectedListLabel: false, // 'string', false + helperSelectNamePostfix: '_helper', // 'string_of_postfix' / false + selectorMinimalHeight: 100, + showFilterInputs: true, // whether to show filter inputs + nonSelectedFilter: '', // string, filter the non selected options + selectedFilter: '', // string, filter the selected options + infoText: '全部:{0}', // text when all options are visible / false for no info text + infoTextFiltered: '查找   {0}/{1}', // when not all of the options are visible due to the filter + infoTextEmpty: '空', // when there are no options present in the list + filterOnValues: false // filter by selector's values, boolean + }, + // Selections are invisible on android if the containing select is styled with CSS + // http://code.google.com/p/android/issues/detail?id=16922 + isBuggyAndroid = /android/i.test(navigator.userAgent.toLowerCase()); + + // The actual plugin constructor + function BootstrapDualListbox(element, options) { + this.element = $(element); + // jQuery has an extend method which merges the contents of two or + // more objects, storing the result in the first object. The first object + // is generally empty as we don't want to alter the default options for + // future instances of the plugin + this.settings = $.extend({}, defaults, options); + this._defaults = defaults; + this._name = pluginName; + this.init(); + } + + function triggerChangeEvent(dualListbox) { + dualListbox.element.trigger('change'); + } + + function updateSelectionStates(dualListbox) { + dualListbox.element.find('option').each(function(index, item) { + var $item = $(item); + if (typeof($item.data('original-index')) === 'undefined') { + $item.data('original-index', dualListbox.elementCount++); + } + if (typeof($item.data('_selected')) === 'undefined') { + $item.data('_selected', false); + } + }); + } + + function changeSelectionState(dualListbox, original_index, selected) { + dualListbox.element.find('option').each(function(index, item) { + var $item = $(item); + if ($item.data('original-index') === original_index) { + $item.prop('selected', selected); + } + }); + } + + function formatString(s, args) { + return s.replace(/\{(\d+)\}/g, function(match, number) { + return typeof args[number] !== 'undefined' ? args[number] : match; + }); + } + + function refreshInfo(dualListbox) { + if (!dualListbox.settings.infoText) { + return; + } + + var visible1 = dualListbox.elements.select1.find('option').length, + visible2 = dualListbox.elements.select2.find('option').length, + all1 = dualListbox.element.find('option').length - dualListbox.selectedElements, + all2 = dualListbox.selectedElements, + content = ''; + + if (all1 === 0) { + content = dualListbox.settings.infoTextEmpty; + } else if (visible1 === all1) { + content = formatString(dualListbox.settings.infoText, [visible1, all1]); + } else { + content = formatString(dualListbox.settings.infoTextFiltered, [visible1, all1]); + } + + dualListbox.elements.info1.html(content); + dualListbox.elements.box1.toggleClass('filtered', !(visible1 === all1 || all1 === 0)); + + if (all2 === 0) { + content = dualListbox.settings.infoTextEmpty; + } else if (visible2 === all2) { + content = formatString(dualListbox.settings.infoText, [visible2, all2]); + } else { + content = formatString(dualListbox.settings.infoTextFiltered, [visible2, all2]); + } + + dualListbox.elements.info2.html(content); + dualListbox.elements.box2.toggleClass('filtered', !(visible2 === all2 || all2 === 0)); + } + + function refreshSelects(dualListbox) { + dualListbox.selectedElements = 0; + + dualListbox.elements.select1.empty(); + dualListbox.elements.select2.empty(); + + dualListbox.element.find('option').each(function(index, item) { + var $item = $(item); + if ($item.prop('selected')) { + dualListbox.selectedElements++; + dualListbox.elements.select2.append($item.clone(true).prop('selected', $item.data('_selected'))); + } else { + dualListbox.elements.select1.append($item.clone(true).prop('selected', $item.data('_selected'))); + } + }); + + if (dualListbox.settings.showFilterInputs) { + filter(dualListbox, 1); + filter(dualListbox, 2); + } + refreshInfo(dualListbox); + } + + function filter(dualListbox, selectIndex) { + if (!dualListbox.settings.showFilterInputs) { + return; + } + + saveSelections(dualListbox, selectIndex); + + dualListbox.elements['select'+selectIndex].empty().scrollTop(0); + var regex = new RegExp($.trim(dualListbox.elements['filterInput'+selectIndex].val()), 'gi'), + options = dualListbox.element; + + if (selectIndex === 1) { + options = options.find('option').not(':selected'); + } else { + options = options.find('option:selected'); + } + + options.each(function(index, item) { + var $item = $(item), + isFiltered = true; + if (item.text.match(regex) || (dualListbox.settings.filterOnValues && $item.attr('value').match(regex) ) ) { + isFiltered = false; + dualListbox.elements['select'+selectIndex].append($item.clone(true).prop('selected', $item.data('_selected'))); + } + dualListbox.element.find('option').eq($item.data('original-index')).data('filtered'+selectIndex, isFiltered); + }); + + refreshInfo(dualListbox); + } + + function saveSelections(dualListbox, selectIndex) { + dualListbox.elements['select'+selectIndex].find('option').each(function(index, item) { + var $item = $(item); + dualListbox.element.find('option').eq($item.data('original-index')).data('_selected', $item.prop('selected')); + }); + } + + function sortOptions(select) { + select.find('option').sort(function(a, b) { + return ($(a).data('original-index') > $(b).data('original-index')) ? 1 : -1; + }).appendTo(select); + } + + function clearSelections(dualListbox) { + dualListbox.elements.select1.find('option').each(function() { + dualListbox.element.find('option').data('_selected', false); + }); + } + + function move(dualListbox) { + if (dualListbox.settings.preserveSelectionOnMove === 'all' && !dualListbox.settings.moveOnSelect) { + saveSelections(dualListbox, 1); + saveSelections(dualListbox, 2); + } else if (dualListbox.settings.preserveSelectionOnMove === 'moved' && !dualListbox.settings.moveOnSelect) { + saveSelections(dualListbox, 1); + } + + dualListbox.elements.select1.find('option:selected').each(function(index, item) { + var $item = $(item); + if (!$item.data('filtered1')) { + changeSelectionState(dualListbox, $item.data('original-index'), true); + } + }); + + refreshSelects(dualListbox); + triggerChangeEvent(dualListbox); + sortOptions(dualListbox.elements.select2); + } + + function remove(dualListbox) { + if (dualListbox.settings.preserveSelectionOnMove === 'all' && !dualListbox.settings.moveOnSelect) { + saveSelections(dualListbox, 1); + saveSelections(dualListbox, 2); + } else if (dualListbox.settings.preserveSelectionOnMove === 'moved' && !dualListbox.settings.moveOnSelect) { + saveSelections(dualListbox, 2); + } + + dualListbox.elements.select2.find('option:selected').each(function(index, item) { + var $item = $(item); + if (!$item.data('filtered2')) { + changeSelectionState(dualListbox, $item.data('original-index'), false); + } + }); + + refreshSelects(dualListbox); + triggerChangeEvent(dualListbox); + sortOptions(dualListbox.elements.select1); + } + + function moveAll(dualListbox) { + if (dualListbox.settings.preserveSelectionOnMove === 'all' && !dualListbox.settings.moveOnSelect) { + saveSelections(dualListbox, 1); + saveSelections(dualListbox, 2); + } else if (dualListbox.settings.preserveSelectionOnMove === 'moved' && !dualListbox.settings.moveOnSelect) { + saveSelections(dualListbox, 1); + } + + dualListbox.element.find('option').each(function(index, item) { + var $item = $(item); + if (!$item.data('filtered1')) { + $item.prop('selected', true); + } + }); + + refreshSelects(dualListbox); + triggerChangeEvent(dualListbox); + } + + function removeAll(dualListbox) { + if (dualListbox.settings.preserveSelectionOnMove === 'all' && !dualListbox.settings.moveOnSelect) { + saveSelections(dualListbox, 1); + saveSelections(dualListbox, 2); + } else if (dualListbox.settings.preserveSelectionOnMove === 'moved' && !dualListbox.settings.moveOnSelect) { + saveSelections(dualListbox, 2); + } + + dualListbox.element.find('option').each(function(index, item) { + var $item = $(item); + if (!$item.data('filtered2')) { + $item.prop('selected', false); + } + }); + + refreshSelects(dualListbox); + triggerChangeEvent(dualListbox); + } + + function bindEvents(dualListbox) { + dualListbox.elements.form.submit(function(e) { + if (dualListbox.elements.filterInput1.is(':focus')) { + e.preventDefault(); + dualListbox.elements.filterInput1.focusout(); + } else if (dualListbox.elements.filterInput2.is(':focus')) { + e.preventDefault(); + dualListbox.elements.filterInput2.focusout(); + } + }); + + dualListbox.element.on('bootstrapDualListbox.refresh', function(e, mustClearSelections){ + dualListbox.refresh(mustClearSelections); + }); + + dualListbox.elements.filterClear1.on('click', function() { + dualListbox.setNonSelectedFilter('', true); + }); + + dualListbox.elements.filterClear2.on('click', function() { + dualListbox.setSelectedFilter('', true); + }); + + dualListbox.elements.moveButton.on('click', function() { + move(dualListbox); + }); + + dualListbox.elements.moveAllButton.on('click', function() { + moveAll(dualListbox); + }); + + dualListbox.elements.removeButton.on('click', function() { + remove(dualListbox); + }); + + dualListbox.elements.removeAllButton.on('click', function() { + removeAll(dualListbox); + }); + + dualListbox.elements.filterInput1.on('change keyup', function() { + filter(dualListbox, 1); + }); + + dualListbox.elements.filterInput2.on('change keyup', function() { + filter(dualListbox, 2); + }); + } + + BootstrapDualListbox.prototype = { + init: function () { + // Add the custom HTML template + this.container = $('' + + '
                              ' + + '
                              ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + '
                              ' + + ' ' + + ' ' + + '
                              ' + + ' ' + + ' ' + + '
                              ' + + '
                              ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + '
                              ' + + ' ' + + ' ' + + '
                              ' + + ' ' + + ' ' + + '
                              ' + + '
                              ') + .insertBefore(this.element); + + // Cache the inner elements + this.elements = { + originalSelect: this.element, + box1: $('.box1', this.container), + box2: $('.box2', this.container), + filterInput1: $('.box1 .filter', this.container), + filterInput2: $('.box2 .filter', this.container), + filterClear1: $('.box1 .clear1', this.container), + filterClear2: $('.box2 .clear2', this.container), + label1: $('.box1 > label', this.container), + label2: $('.box2 > label', this.container), + info1: $('.box1 .info', this.container), + info2: $('.box2 .info', this.container), + select1: $('.box1 select', this.container), + select2: $('.box2 select', this.container), + moveButton: $('.box1 .move', this.container), + removeButton: $('.box2 .remove', this.container), + moveAllButton: $('.box1 .moveall', this.container), + removeAllButton: $('.box2 .removeall', this.container), + form: $($('.box1 .filter', this.container)[0].form) + }; + + // Set select IDs + this.originalSelectName = this.element.attr('name') || ''; + var select1Id = 'bootstrap-duallistbox-nonselected-list_' + this.originalSelectName, + select2Id = 'bootstrap-duallistbox-selected-list_' + this.originalSelectName; + this.elements.select1.attr('id', select1Id); + this.elements.select2.attr('id', select2Id); + this.elements.label1.attr('for', select1Id); + this.elements.label2.attr('for', select2Id); + + // Apply all settings + this.selectedElements = 0; + this.elementCount = 0; + this.setBootstrap2Compatible(this.settings.bootstrap2Compatible); + this.setFilterTextClear(this.settings.filterTextClear); + this.setFilterPlaceHolder(this.settings.filterPlaceHolder); + this.setMoveSelectedLabel(this.settings.moveSelectedLabel); + this.setMoveAllLabel(this.settings.moveAllLabel); + this.setRemoveSelectedLabel(this.settings.removeSelectedLabel); + this.setRemoveAllLabel(this.settings.removeAllLabel); + this.setMoveOnSelect(this.settings.moveOnSelect); + this.setPreserveSelectionOnMove(this.settings.preserveSelectionOnMove); + this.setSelectedListLabel(this.settings.selectedListLabel); + this.setNonSelectedListLabel(this.settings.nonSelectedListLabel); + this.setHelperSelectNamePostfix(this.settings.helperSelectNamePostfix); + this.setSelectOrMinimalHeight(this.settings.selectorMinimalHeight); + + updateSelectionStates(this); + + this.setShowFilterInputs(this.settings.showFilterInputs); + this.setNonSelectedFilter(this.settings.nonSelectedFilter); + this.setSelectedFilter(this.settings.selectedFilter); + this.setInfoText(this.settings.infoText); + this.setInfoTextFiltered(this.settings.infoTextFiltered); + this.setInfoTextEmpty(this.settings.infoTextEmpty); + this.setFilterOnValues(this.settings.filterOnValues); + + // Hide the original select + this.element.hide(); + + bindEvents(this); + refreshSelects(this); + + return this.element; + }, + setBootstrap2Compatible: function(value, refresh) { + this.settings.bootstrap2Compatible = value; + if (value) { + this.container.removeClass('row').addClass('row-fluid bs2compatible'); + this.container.find('.box1, .box2').removeClass('col-xs-6').addClass('span6'); + this.container.find('.clear1, .clear2').removeClass('btn-white btn-xs').addClass('btn-mini'); + this.container.find('input, select').removeClass('form-control'); + this.container.find('.btn').removeClass('btn-white'); + this.container.find('.moveall > i, .move > i').removeClass('glyphicon glyphicon-arrow-right').addClass('icon-arrow-right'); + this.container.find('.removeall > i, .remove > i').removeClass('glyphicon glyphicon-arrow-left').addClass('icon-arrow-left'); + } else { + this.container.removeClass('row-fluid bs2compatible').addClass('row'); + this.container.find('.box1, .box2').removeClass('span6').addClass('col-xs-6'); + this.container.find('.clear1, .clear2').removeClass('btn-mini').addClass('btn-white btn-xs'); + this.container.find('input, select').addClass('form-control'); + this.container.find('.btn').addClass('btn-white'); + this.container.find('.moveall > i, .move > i').removeClass('icon-arrow-right').addClass('glyphicon glyphicon-arrow-right'); + this.container.find('.removeall > i, .remove > i').removeClass('icon-arrow-left').addClass('glyphicon glyphicon-arrow-left'); + } + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setFilterTextClear: function(value, refresh) { + this.settings.filterTextClear = value; + this.elements.filterClear1.html(value); + this.elements.filterClear2.html(value); + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setFilterPlaceHolder: function(value, refresh) { + this.settings.filterPlaceHolder = value; + this.elements.filterInput1.attr('placeholder', value); + this.elements.filterInput2.attr('placeholder', value); + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setMoveSelectedLabel: function(value, refresh) { + this.settings.moveSelectedLabel = value; + this.elements.moveButton.attr('title', value); + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setMoveAllLabel: function(value, refresh) { + this.settings.moveAllLabel = value; + this.elements.moveAllButton.attr('title', value); + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setRemoveSelectedLabel: function(value, refresh) { + this.settings.removeSelectedLabel = value; + this.elements.removeButton.attr('title', value); + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setRemoveAllLabel: function(value, refresh) { + this.settings.removeAllLabel = value; + this.elements.removeAllButton.attr('title', value); + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setMoveOnSelect: function(value, refresh) { + if (isBuggyAndroid) { + value = true; + } + this.settings.moveOnSelect = value; + if (this.settings.moveOnSelect) { + this.container.addClass('moveonselect'); + var self = this; + this.elements.select1.on('change', function() { + move(self); + }); + this.elements.select2.on('change', function() { + remove(self); + }); + } else { + this.container.removeClass('moveonselect'); + this.elements.select1.off('change'); + this.elements.select2.off('change'); + } + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setPreserveSelectionOnMove: function(value, refresh) { + // We are forcing to move on select and disabling preserveSelectionOnMove on Android + if (isBuggyAndroid) { + value = false; + } + this.settings.preserveSelectionOnMove = value; + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setSelectedListLabel: function(value, refresh) { + this.settings.selectedListLabel = value; + if (value) { + this.elements.label2.show().html(value); + } else { + this.elements.label2.hide().html(value); + } + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setNonSelectedListLabel: function(value, refresh) { + this.settings.nonSelectedListLabel = value; + if (value) { + this.elements.label1.show().html(value); + } else { + this.elements.label1.hide().html(value); + } + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setHelperSelectNamePostfix: function(value, refresh) { + this.settings.helperSelectNamePostfix = value; + if (value) { + this.elements.select1.attr('name', this.originalSelectName + value + '1'); + this.elements.select2.attr('name', this.originalSelectName + value + '2'); + } else { + this.elements.select1.removeAttr('name'); + this.elements.select2.removeAttr('name'); + } + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setSelectOrMinimalHeight: function(value, refresh) { + this.settings.selectorMinimalHeight = value; + var height = this.element.height(); + if (this.element.height() < value) { + height = value; + } + this.elements.select1.height(height); + this.elements.select2.height(height); + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setShowFilterInputs: function(value, refresh) { + if (!value) { + this.setNonSelectedFilter(''); + this.setSelectedFilter(''); + refreshSelects(this); + this.elements.filterInput1.hide(); + this.elements.filterInput2.hide(); + } else { + this.elements.filterInput1.show(); + this.elements.filterInput2.show(); + } + this.settings.showFilterInputs = value; + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setNonSelectedFilter: function(value, refresh) { + if (this.settings.showFilterInputs) { + this.settings.nonSelectedFilter = value; + this.elements.filterInput1.val(value); + if (refresh) { + refreshSelects(this); + } + return this.element; + } + }, + setSelectedFilter: function(value, refresh) { + if (this.settings.showFilterInputs) { + this.settings.selectedFilter = value; + this.elements.filterInput2.val(value); + if (refresh) { + refreshSelects(this); + } + return this.element; + } + }, + setInfoText: function(value, refresh) { + this.settings.infoText = value; + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setInfoTextFiltered: function(value, refresh) { + this.settings.infoTextFiltered = value; + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setInfoTextEmpty: function(value, refresh) { + this.settings.infoTextEmpty = value; + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + setFilterOnValues: function(value, refresh) { + this.settings.filterOnValues = value; + if (refresh) { + refreshSelects(this); + } + return this.element; + }, + getContainer: function() { + return this.container; + }, + refresh: function(mustClearSelections) { + updateSelectionStates(this); + + if (!mustClearSelections) { + saveSelections(this, 1); + saveSelections(this, 2); + } else { + clearSelections(this); + } + + refreshSelects(this); + }, + destroy: function() { + this.container.remove(); + this.element.show(); + $.data(this, 'plugin_' + pluginName, null); + return this.element; + } + }; + + // A really lightweight plugin wrapper around the constructor, + // preventing against multiple instantiations + $.fn[ pluginName ] = function (options) { + var args = arguments; + + // Is the first parameter an object (options), or was omitted, instantiate a new instance of the plugin. + if (options === undefined || typeof options === 'object') { + return this.each(function () { + // If this is not a select + if (!$(this).is('select')) { + $(this).find('select').each(function(index, item) { + // For each nested select, instantiate the Dual List Box + $(item).bootstrapDualListbox(options); + }); + } else if (!$.data(this, 'plugin_' + pluginName)) { + // Only allow the plugin to be instantiated once so we check that the element has no plugin instantiation yet + + // if it has no instance, create a new one, pass options to our plugin constructor, + // and store the plugin instance in the elements jQuery data object. + $.data(this, 'plugin_' + pluginName, new BootstrapDualListbox(this, options)); + } + }); + // If the first parameter is a string and it doesn't start with an underscore or "contains" the `init`-function, + // treat this as a call to a public method. + } else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') { + + // Cache the method call to make it possible to return a value + var returns; + + this.each(function () { + var instance = $.data(this, 'plugin_' + pluginName); + // Tests that there's already a plugin-instance and checks that the requested public method exists + if (instance instanceof BootstrapDualListbox && typeof instance[options] === 'function') { + // Call the method of our plugin instance, and pass it the supplied arguments. + returns = instance[options].apply(instance, Array.prototype.slice.call(args, 1)); + } + }); + + // If the earlier cached method gives a value back return the value, + // otherwise return this to preserve chainability. + return returns !== undefined ? returns : this; + } + + }; + +})(jQuery, window, document); diff --git a/novel-admin/src/main/resources/static/js/plugins/easypiechart/jquery.easypiechart.js b/novel-admin/src/main/resources/static/js/plugins/easypiechart/jquery.easypiechart.js new file mode 100644 index 0000000..7c83522 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/easypiechart/jquery.easypiechart.js @@ -0,0 +1,359 @@ +/**! + * easyPieChart + * Lightweight plugin to render simple, animated and retina optimized pie charts + * + * @license + * @author Robert Fleischmann (http://robert-fleischmann.de) + * @version 2.1.5 + **/ + +(function(root, factory) { + if(typeof exports === 'object') { + module.exports = factory(require('jquery')); + } + else if(typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } + else { + factory(root.jQuery); + } +}(this, function($) { + + /** + * Renderer to render the chart on a canvas object + * @param {DOMElement} el DOM element to host the canvas (root of the plugin) + * @param {object} options options object of the plugin + */ + var CanvasRenderer = function(el, options) { + var cachedBackground; + var canvas = document.createElement('canvas'); + + el.appendChild(canvas); + + if (typeof(G_vmlCanvasManager) !== 'undefined') { + G_vmlCanvasManager.initElement(canvas); + } + + var ctx = canvas.getContext('2d'); + + canvas.width = canvas.height = options.size; + + // canvas on retina devices + var scaleBy = 1; + if (window.devicePixelRatio > 1) { + scaleBy = window.devicePixelRatio; + canvas.style.width = canvas.style.height = [options.size, 'px'].join(''); + canvas.width = canvas.height = options.size * scaleBy; + ctx.scale(scaleBy, scaleBy); + } + + // move 0,0 coordinates to the center + ctx.translate(options.size / 2, options.size / 2); + + // rotate canvas -90deg + ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI); + + var radius = (options.size - options.lineWidth) / 2; + if (options.scaleColor && options.scaleLength) { + radius -= options.scaleLength + 2; // 2 is the distance between scale and bar + } + + // IE polyfill for Date + Date.now = Date.now || function() { + return +(new Date()); + }; + + /** + * Draw a circle around the center of the canvas + * @param {strong} color Valid CSS color string + * @param {number} lineWidth Width of the line in px + * @param {number} percent Percentage to draw (float between -1 and 1) + */ + var drawCircle = function(color, lineWidth, percent) { + percent = Math.min(Math.max(-1, percent || 0), 1); + var isNegative = percent <= 0 ? true : false; + + ctx.beginPath(); + ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, isNegative); + + ctx.strokeStyle = color; + ctx.lineWidth = lineWidth; + + ctx.stroke(); + }; + + /** + * Draw the scale of the chart + */ + var drawScale = function() { + var offset; + var length; + + ctx.lineWidth = 1; + ctx.fillStyle = options.scaleColor; + + ctx.save(); + for (var i = 24; i > 0; --i) { + if (i % 6 === 0) { + length = options.scaleLength; + offset = 0; + } else { + length = options.scaleLength * 0.6; + offset = options.scaleLength - length; + } + ctx.fillRect(-options.size/2 + offset, 0, length, 1); + ctx.rotate(Math.PI / 12); + } + ctx.restore(); + }; + + /** + * Request animation frame wrapper with polyfill + * @return {function} Request animation frame method or timeout fallback + */ + var reqAnimationFrame = (function() { + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + function(callback) { + window.setTimeout(callback, 1000 / 60); + }; + }()); + + /** + * Draw the background of the plugin including the scale and the track + */ + var drawBackground = function() { + if(options.scaleColor) drawScale(); + if(options.trackColor) drawCircle(options.trackColor, options.lineWidth, 1); + }; + + /** + * Canvas accessor + */ + this.getCanvas = function() { + return canvas; + }; + + /** + * Canvas 2D context 'ctx' accessor + */ + this.getCtx = function() { + return ctx; + }; + + /** + * Clear the complete canvas + */ + this.clear = function() { + ctx.clearRect(options.size / -2, options.size / -2, options.size, options.size); + }; + + /** + * Draw the complete chart + * @param {number} percent Percent shown by the chart between -100 and 100 + */ + this.draw = function(percent) { + // do we need to render a background + if (!!options.scaleColor || !!options.trackColor) { + // getImageData and putImageData are supported + if (ctx.getImageData && ctx.putImageData) { + if (!cachedBackground) { + drawBackground(); + cachedBackground = ctx.getImageData(0, 0, options.size * scaleBy, options.size * scaleBy); + } else { + ctx.putImageData(cachedBackground, 0, 0); + } + } else { + this.clear(); + drawBackground(); + } + } else { + this.clear(); + } + + ctx.lineCap = options.lineCap; + + // if barcolor is a function execute it and pass the percent as a value + var color; + if (typeof(options.barColor) === 'function') { + color = options.barColor(percent); + } else { + color = options.barColor; + } + + // draw bar + drawCircle(color, options.lineWidth, percent / 100); + }.bind(this); + + /** + * Animate from some percent to some other percentage + * @param {number} from Starting percentage + * @param {number} to Final percentage + */ + this.animate = function(from, to) { + var startTime = Date.now(); + options.onStart(from, to); + var animation = function() { + var process = Math.min(Date.now() - startTime, options.animate.duration); + var currentValue = options.easing(this, process, from, to - from, options.animate.duration); + this.draw(currentValue); + options.onStep(from, to, currentValue); + if (process >= options.animate.duration) { + options.onStop(from, to); + } else { + reqAnimationFrame(animation); + } + }.bind(this); + + reqAnimationFrame(animation); + }.bind(this); + }; + + var EasyPieChart = function(el, opts) { + var defaultOptions = { + barColor: '#ef1e25', + trackColor: '#f9f9f9', + scaleColor: '#dfe0e0', + scaleLength: 5, + lineCap: 'round', + lineWidth: 3, + size: 110, + rotate: 0, + animate: { + duration: 1000, + enabled: true + }, + easing: function (x, t, b, c, d) { // more can be found here: http://gsgd.co.uk/sandbox/jquery/easing/ + t = t / (d/2); + if (t < 1) { + return c / 2 * t * t + b; + } + return -c/2 * ((--t)*(t-2) - 1) + b; + }, + onStart: function(from, to) { + return; + }, + onStep: function(from, to, currentValue) { + return; + }, + onStop: function(from, to) { + return; + } + }; + + // detect present renderer + if (typeof(CanvasRenderer) !== 'undefined') { + defaultOptions.renderer = CanvasRenderer; + } else if (typeof(SVGRenderer) !== 'undefined') { + defaultOptions.renderer = SVGRenderer; + } else { + throw new Error('Please load either the SVG- or the CanvasRenderer'); + } + + var options = {}; + var currentValue = 0; + + /** + * Initialize the plugin by creating the options object and initialize rendering + */ + var init = function() { + this.el = el; + this.options = options; + + // merge user options into default options + for (var i in defaultOptions) { + if (defaultOptions.hasOwnProperty(i)) { + options[i] = opts && typeof(opts[i]) !== 'undefined' ? opts[i] : defaultOptions[i]; + if (typeof(options[i]) === 'function') { + options[i] = options[i].bind(this); + } + } + } + + // check for jQuery easing + if (typeof(options.easing) === 'string' && typeof(jQuery) !== 'undefined' && jQuery.isFunction(jQuery.easing[options.easing])) { + options.easing = jQuery.easing[options.easing]; + } else { + options.easing = defaultOptions.easing; + } + + // process earlier animate option to avoid bc breaks + if (typeof(options.animate) === 'number') { + options.animate = { + duration: options.animate, + enabled: true + }; + } + + if (typeof(options.animate) === 'boolean' && !options.animate) { + options.animate = { + duration: 1000, + enabled: options.animate + }; + } + + // create renderer + this.renderer = new options.renderer(el, options); + + // initial draw + this.renderer.draw(currentValue); + + // initial update + if (el.dataset && el.dataset.percent) { + this.update(parseFloat(el.dataset.percent)); + } else if (el.getAttribute && el.getAttribute('data-percent')) { + this.update(parseFloat(el.getAttribute('data-percent'))); + } + }.bind(this); + + /** + * Update the value of the chart + * @param {number} newValue Number between 0 and 100 + * @return {object} Instance of the plugin for method chaining + */ + this.update = function(newValue) { + newValue = parseFloat(newValue); + if (options.animate.enabled) { + this.renderer.animate(currentValue, newValue); + } else { + this.renderer.draw(newValue); + } + currentValue = newValue; + return this; + }.bind(this); + + /** + * Disable animation + * @return {object} Instance of the plugin for method chaining + */ + this.disableAnimation = function() { + options.animate.enabled = false; + return this; + }; + + /** + * Enable animation + * @return {object} Instance of the plugin for method chaining + */ + this.enableAnimation = function() { + options.animate.enabled = true; + return this; + }; + + init(); + }; + + $.fn.easyPieChart = function(options) { + return this.each(function() { + var instanceOptions; + + if (!$.data(this, 'easyPieChart')) { + instanceOptions = $.extend({}, options, $(this).data()); + $.data(this, 'easyPieChart', new EasyPieChart(this, instanceOptions)); + } + }); + }; + + +})); diff --git a/novel-admin/src/main/resources/static/js/plugins/echarts/.DS_Store b/novel-admin/src/main/resources/static/js/plugins/echarts/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..303a88eb384a6e273ecea24131629f95586801f1 GIT binary patch literal 6148 zcmeH~y-EX75QWcZihv*~EpKU~;2SI<3f8`WCJG`8fkgZ5eC&AUM@d*MY%Jsq%$&Wm zGkddNv6BnH=5LQzzzo2Y?uvI0WApp&BRi^$QR#ff2CvxS0uSg%)!!$)_Y_Z9;hA0g z{XH)6g6(a;UM>6el6C$gZ|LWA+wB--A|L`HAOa#F0>35TvzInKNmUd95fFhd0{(qy zbl0wQNR3YiLmUC96Q;v>9cKw@^8~dk9a5R0S+-KM)#`|0+0J~cx~_Cc&30Jq%;(h3 zRwopT-I;Gu4(n1CML+}&2^{Bg=JWrW{=@nIut_Ts5P^S1z$S~k#hkBHvvu@xK5HBO sp8jd9jdF$<#nc$ZT=*zH+pBAS&HG*HkQ(jGM>|!21e}XZ1pb1+2Q)+&E&u=k literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/echarts/echarts-all.js b/novel-admin/src/main/resources/static/js/plugins/echarts/echarts-all.js new file mode 100644 index 0000000..8bda98f --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/echarts/echarts-all.js @@ -0,0 +1,35 @@ +!function(e){var t,i;!function(){function e(e,t){if(!t)return e;if(0===e.indexOf(".")){var i=t.split("/"),n=e.split("/"),a=i.length-1,o=n.length,r=0,s=0;e:for(var l=0;o>l;l++)switch(n[l]){case"..":if(!(a>r))break e;r++,s++;break;case".":s++;break;default:break e}return i.length=a-r,n=n.slice(s),i.concat(n).join("/")}return e}function n(t){function i(i,r){if("string"==typeof i){var s=n[i];return s||(s=o(e(i,t)),n[i]=s),s}i instanceof Array&&(r=r||function(){},r.apply(this,a(i,r,t)))}var n={};return i}function a(i,n,a){for(var s=[],l=r[a],h=0,m=Math.min(i.length,n.length);m>h;h++){var V,U=e(i[h],a);switch(U){case"require":V=l&&l.require||t;break;case"exports":V=l.exports;break;case"module":V=l;break;default:V=o(U)}s.push(V)}return s}function o(e){var t=r[e];if(!t)throw new Error("No "+e);if(!t.defined){var i=t.factory,n=i.apply(this,a(t.deps||[],i,e));"undefined"!=typeof n&&(t.exports=n),t.defined=1}return t.exports}var r={};i=function(e,t,i){r[e]={id:e,deps:t,factory:i,defined:0,exports:{},require:n(e)}},t=n("")}(),i("echarts",["echarts/echarts"],function(e){return e}),i("echarts/echarts",["require","./config","zrender/tool/util","zrender/tool/event","zrender/tool/env","zrender","zrender/config","./chart/island","./component/toolbox","./component","./component/title","./component/tooltip","./component/legend","./util/ecData","./chart","zrender/tool/color","./component/timeline","zrender/shape/Image","zrender/loadingEffect/Bar","zrender/loadingEffect/Bubble","zrender/loadingEffect/DynamicLine","zrender/loadingEffect/Ring","zrender/loadingEffect/Spin","zrender/loadingEffect/Whirling","./theme/macarons","./theme/infographic"],function(e){function t(){r.Dispatcher.call(this)}function i(e){e.innerHTML="",this._themeConfig={},this.dom=e,this._connected=!1,this._status={dragIn:!1,dragOut:!1,needRefresh:!1},this._curEventType=!1,this._chartList=[],this._messageCenter=new t,this._messageCenterOutSide=new t,this.resize=this.resize(),this._init()}function n(e,t,i,n,a){for(var o=e._chartList,r=o.length;r--;){var s=o[r];"function"==typeof s[t]&&s[t](i,n,a)}}var a=e("./config"),o=e("zrender/tool/util"),r=e("zrender/tool/event"),s={},l=e("zrender/tool/env").canvasSupported,h=new Date-0,m={},V="_echarts_instance_";s.version="2.2.7",s.dependencies={zrender:"2.1.1"},s.init=function(t,n){var a=e("zrender");a.version.replace(".","")-0r;r++){var l=d[r],h=U[l];o[h]="_on"+l.toLowerCase(),i.on(h,this._onzrevent)}this.chart={},this.component={};var m=e("./chart/island");this._island=new m(this._themeConfig,this._messageCenter,i,{},this),this.chart.island=this._island;var V=e("./component/toolbox");this._toolbox=new V(this._themeConfig,this._messageCenter,i,{},this),this.component.toolbox=this._toolbox;var p=e("./component");p.define("title",e("./component/title")),p.define("tooltip",e("./component/tooltip")),p.define("legend",e("./component/legend")),(0===i.getWidth()||0===i.getHeight())&&console.error("Dom’s width & height should be ready before init.")},__onevent:function(e){e.__echartsId=e.__echartsId||this.id;var t=e.__echartsId===this.id;switch(this._curEventType||(this._curEventType=e.type),e.type){case a.EVENT.LEGEND_SELECTED:this._onlegendSelected(e);break;case a.EVENT.DATA_ZOOM:if(!t){var i=this.component.dataZoom;i&&(i.silence(!0),i.absoluteZoom(e.zoom),i.silence(!1))}this._ondataZoom(e);break;case a.EVENT.DATA_RANGE:t&&this._ondataRange(e);break;case a.EVENT.MAGIC_TYPE_CHANGED:if(!t){var n=this.component.toolbox;n&&(n.silence(!0),n.setMagicType(e.magicType),n.silence(!1))}this._onmagicTypeChanged(e);break;case a.EVENT.DATA_VIEW_CHANGED:t&&this._ondataViewChanged(e);break;case a.EVENT.TOOLTIP_HOVER:t&&this._tooltipHover(e);break;case a.EVENT.RESTORE:this._onrestore();break;case a.EVENT.REFRESH:t&&this._onrefresh(e);break;case a.EVENT.TOOLTIP_IN_GRID:case a.EVENT.TOOLTIP_OUT_GRID:if(t){if(this._connected){var o=this.component.grid;o&&(e.x=(e.event.zrenderX-o.getX())/o.getWidth(),e.y=(e.event.zrenderY-o.getY())/o.getHeight())}}else{var o=this.component.grid;o&&this._zr.trigger("mousemove",{connectTrigger:!0,zrenderX:o.getX()+e.x*o.getWidth(),zrenderY:o.getY()+e.y*o.getHeight()})}}if(this._connected&&t&&this._curEventType===e.type){for(var r in this._connected)this._connected[r].connectedEventHandler(e);this._curEventType=null}(!t||!this._connected&&t)&&(this._curEventType=null)},_onclick:function(e){if(n(this,"onclick",e),e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.CLICK,e.event,t,this)}},_ondblclick:function(e){if(n(this,"ondblclick",e),e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.DBLCLICK,e.event,t,this)}},_onmouseover:function(e){if(e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.HOVER,e.event,t,this)}},_onmouseout:function(e){if(e.target){var t=this._eventPackage(e.target);t&&null!=t.seriesIndex&&this._messageCenter.dispatch(a.EVENT.MOUSEOUT,e.event,t,this)}},_ondragstart:function(e){this._status={dragIn:!1,dragOut:!1,needRefresh:!1},n(this,"ondragstart",e)},_ondragenter:function(e){n(this,"ondragenter",e)},_ondragover:function(e){n(this,"ondragover",e)},_ondragleave:function(e){n(this,"ondragleave",e)},_ondrop:function(e){n(this,"ondrop",e,this._status),this._island.ondrop(e,this._status)},_ondragend:function(e){if(n(this,"ondragend",e,this._status),this._timeline&&this._timeline.ondragend(e,this._status),this._island.ondragend(e,this._status),this._status.needRefresh){this._syncBackupData(this._option);var t=this._messageCenter;t.dispatch(a.EVENT.DATA_CHANGED,e.event,this._eventPackage(e.target),this),t.dispatch(a.EVENT.REFRESH,null,null,this)}},_onlegendSelected:function(e){this._status.needRefresh=!1,n(this,"onlegendSelected",e,this._status),this._status.needRefresh&&this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_ondataZoom:function(e){this._status.needRefresh=!1,n(this,"ondataZoom",e,this._status),this._status.needRefresh&&this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_ondataRange:function(e){this._clearEffect(),this._status.needRefresh=!1,n(this,"ondataRange",e,this._status),this._status.needRefresh&&this._zr.refreshNextFrame()},_onmagicTypeChanged:function(){this._clearEffect(),this._render(this._toolbox.getMagicOption())},_ondataViewChanged:function(e){this._syncBackupData(e.option),this._messageCenter.dispatch(a.EVENT.DATA_CHANGED,null,e,this),this._messageCenter.dispatch(a.EVENT.REFRESH,null,null,this)},_tooltipHover:function(e){var t=[];n(this,"ontooltipHover",e,t)},_onrestore:function(){this.restore()},_onrefresh:function(e){this._refreshInside=!0,this.refresh(e),this._refreshInside=!1},_syncBackupData:function(e){this.component.dataZoom&&this.component.dataZoom.syncBackupData(e)},_eventPackage:function(t){if(t){var i=e("./util/ecData"),n=i.get(t,"seriesIndex"),a=i.get(t,"dataIndex");return a=-1!=n&&this.component.dataZoom?this.component.dataZoom.getRealDataIndex(n,a):a,{seriesIndex:n,seriesName:(i.get(t,"series")||{}).name,dataIndex:a,data:i.get(t,"data"),name:i.get(t,"name"),value:i.get(t,"value"),special:i.get(t,"special")}}},_noDataCheck:function(e){for(var t=e.series,i=0,n=t.length;n>i;i++)if(t[i].type==a.CHART_TYPE_MAP||t[i].data&&t[i].data.length>0||t[i].markPoint&&t[i].markPoint.data&&t[i].markPoint.data.length>0||t[i].markLine&&t[i].markLine.data&&t[i].markLine.data.length>0||t[i].nodes&&t[i].nodes.length>0||t[i].links&&t[i].links.length>0||t[i].matrix&&t[i].matrix.length>0||t[i].eventList&&t[i].eventList.length>0)return!1;var o=this._option&&this._option.noDataLoadingOption||this._themeConfig.noDataLoadingOption||a.noDataLoadingOption||{text:this._option&&this._option.noDataText||this._themeConfig.noDataText||a.noDataText,effect:this._option&&this._option.noDataEffect||this._themeConfig.noDataEffect||a.noDataEffect};return this.clear(),this.showLoading(o),!0},_render:function(t){if(this._mergeGlobalConifg(t),!this._noDataCheck(t)){var i=t.backgroundColor;if(i)if(l||-1==i.indexOf("rgba"))this.dom.style.backgroundColor=i;else{var n=i.split(",");this.dom.style.filter="alpha(opacity="+100*n[3].substring(0,n[3].lastIndexOf(")"))+")",n.length=3,n[0]=n[0].replace("a",""),this.dom.style.backgroundColor=n.join(",")+")"}this._zr.clearAnimation(),this._chartList=[];var o=e("./chart"),r=e("./component");(t.xAxis||t.yAxis)&&(t.grid=t.grid||{},t.dataZoom=t.dataZoom||{});for(var s,h,m,V=["title","legend","tooltip","dataRange","roamController","grid","dataZoom","xAxis","yAxis","polar"],U=0,d=V.length;d>U;U++)h=V[U],m=this.component[h],t[h]?(m?m.refresh&&m.refresh(t):(s=r.get(/^[xy]Axis$/.test(h)?"axis":h),m=new s(this._themeConfig,this._messageCenter,this._zr,t,this,h),this.component[h]=m),this._chartList.push(m)):m&&(m.dispose(),this.component[h]=null,delete this.component[h]);for(var p,c,u,y={},U=0,d=t.series.length;d>U;U++)c=t.series[U].type,c?y[c]||(y[c]=!0,p=o.get(c),p?(this.chart[c]?(u=this.chart[c],u.refresh(t)):u=new p(this._themeConfig,this._messageCenter,this._zr,t,this),this._chartList.push(u),this.chart[c]=u):console.error(c+" has not been required.")):console.error("series["+U+"] chart type has not been defined.");for(c in this.chart)c==a.CHART_TYPE_ISLAND||y[c]||(this.chart[c].dispose(),this.chart[c]=null,delete this.chart[c]);this.component.grid&&this.component.grid.refixAxisShape(this.component),this._island.refresh(t),this._toolbox.refresh(t),t.animation&&!t.renderAsImage?this._zr.refresh():this._zr.render();var g="IMG"+this.id,b=document.getElementById(g);t.renderAsImage&&l?(b?b.src=this.getDataURL(t.renderAsImage):(b=this.getImage(t.renderAsImage),b.id=g,b.style.position="absolute",b.style.left=0,b.style.top=0,this.dom.firstChild.appendChild(b)),this.un(),this._zr.un(),this._disposeChartList(),this._zr.clear()):b&&b.parentNode.removeChild(b),b=null,this._option=t}},restore:function(){this._clearEffect(),this._option=o.clone(this._optionRestore),this._disposeChartList(),this._island.clear(),this._toolbox.reset(this._option,!0),this._render(this._option)},refresh:function(e){this._clearEffect(),e=e||{};var t=e.option;!this._refreshInside&&t&&(t=this.getOption(),o.merge(t,e.option,!0),o.merge(this._optionRestore,e.option,!0),this._toolbox.reset(t)),this._island.refresh(t),this._toolbox.refresh(t),this._zr.clearAnimation();for(var i=0,n=this._chartList.length;n>i;i++)this._chartList[i].refresh&&this._chartList[i].refresh(t);this.component.grid&&this.component.grid.refixAxisShape(this.component),this._zr.refresh()},_disposeChartList:function(){this._clearEffect(),this._zr.clearAnimation();for(var e=this._chartList.length;e--;){var t=this._chartList[e];if(t){var i=t.type;this.chart[i]&&delete this.chart[i],this.component[i]&&delete this.component[i],t.dispose&&t.dispose()}}this._chartList=[]},_mergeGlobalConifg:function(t){for(var i=["backgroundColor","calculable","calculableColor","calculableHolderColor","nameConnector","valueConnector","animation","animationThreshold","animationDuration","animationDurationUpdate","animationEasing","addDataAnimation","symbolList","DRAG_ENABLE_TIME"],n=i.length;n--;){var o=i[n];null==t[o]&&(t[o]=null!=this._themeConfig[o]?this._themeConfig[o]:a[o])}var r=t.color;r&&r.length||(r=this._themeConfig.color||a.color),this._zr.getColor=function(t){var i=e("zrender/tool/color");return i.getColor(t,r)},l||(t.animation=!1,t.addDataAnimation=!1)},setOption:function(e,t){return e.timeline?this._setTimelineOption(e):this._setOption(e,t)},_setOption:function(e,t,i){return!t&&this._option?this._option=o.merge(this.getOption(),o.clone(e),!0):(this._option=o.clone(e),!i&&this._timeline&&this._timeline.dispose()),this._optionRestore=o.clone(this._option),this._option.series&&0!==this._option.series.length?(this.component.dataZoom&&(this._option.dataZoom||this._option.toolbox&&this._option.toolbox.feature&&this._option.toolbox.feature.dataZoom&&this._option.toolbox.feature.dataZoom.show)&&this.component.dataZoom.syncOption(this._option),this._toolbox.reset(this._option),this._render(this._option),this):void this._zr.clear()},getOption:function(){function e(e){var n=i._optionRestore[e];if(n)if(n instanceof Array)for(var a=n.length;a--;)t[e][a].data=o.clone(n[a].data);else t[e].data=o.clone(n.data)}var t=o.clone(this._option),i=this;return e("xAxis"),e("yAxis"),e("series"),t},setSeries:function(e,t){return t?(this._option.series=e,this.setOption(this._option,t)):this.setOption({series:e}),this},getSeries:function(){return this.getOption().series},_setTimelineOption:function(t){this._timeline&&this._timeline.dispose();var i=e("./component/timeline"),n=new i(this._themeConfig,this._messageCenter,this._zr,t,this);return this._timeline=n,this.component.timeline=this._timeline,this},addData:function(e,t,i,n,r){function s(){if(V._zr){V._zr.clearAnimation();for(var e=0,t=X.length;t>e;e++)X[e].motionlessOnce=h.addDataAnimation&&X[e].addDataAnimation;V._messageCenter.dispatch(a.EVENT.REFRESH,null,{option:h},V)}}for(var l=e instanceof Array?e:[[e,t,i,n,r]],h=this.getOption(),m=this._optionRestore,V=this,U=0,d=l.length;d>U;U++){e=l[U][0],t=l[U][1],i=l[U][2],n=l[U][3],r=l[U][4];var p=m.series[e],c=i?"unshift":"push",u=i?"pop":"shift";if(p){var y=p.data,g=h.series[e].data;if(y[c](t),g[c](t),n||(y[u](),t=g[u]()),null!=r){var b,f;if(p.type===a.CHART_TYPE_PIE&&(b=m.legend)&&(f=b.data)){var k=h.legend.data;if(f[c](r),k[c](r),!n){var x=o.indexOf(f,t.name);-1!=x&&f.splice(x,1),x=o.indexOf(k,t.name),-1!=x&&k.splice(x,1)}}else if(null!=m.xAxis&&null!=m.yAxis){var _,L,W=p.xAxisIndex||0;(null==m.xAxis[W].type||"category"===m.xAxis[W].type)&&(_=m.xAxis[W].data,L=h.xAxis[W].data,_[c](r),L[c](r),n||(_[u](),L[u]())),W=p.yAxisIndex||0,"category"===m.yAxis[W].type&&(_=m.yAxis[W].data,L=h.yAxis[W].data,_[c](r),L[c](r),n||(_[u](),L[u]()))}}this._option.series[e].data=h.series[e].data}}this._zr.clearAnimation();for(var X=this._chartList,v=0,w=function(){v--,0===v&&s()},U=0,d=X.length;d>U;U++)h.addDataAnimation&&X[U].addDataAnimation&&(v++,X[U].addDataAnimation(l,w));return this.component.dataZoom&&this.component.dataZoom.syncOption(h),this._option=h,h.addDataAnimation||setTimeout(s,0),this},addMarkPoint:function(e,t){return this._addMark(e,t,"markPoint")},addMarkLine:function(e,t){return this._addMark(e,t,"markLine")},_addMark:function(e,t,i){var n,a=this._option.series;if(a&&(n=a[e])){var r=this._optionRestore.series,s=r[e],l=n[i],h=s[i];l=n[i]=l||{data:[]},h=s[i]=h||{data:[]};for(var m in t)"data"===m?(l.data=l.data.concat(t.data),h.data=h.data.concat(t.data)):"object"!=typeof t[m]||null==l[m]?l[m]=h[m]=t[m]:(o.merge(l[m],t[m],!0),o.merge(h[m],t[m],!0));var V=this.chart[n.type];V&&V.addMark(e,t,i)}return this},delMarkPoint:function(e,t){return this._delMark(e,t,"markPoint")},delMarkLine:function(e,t){return this._delMark(e,t,"markLine")},_delMark:function(e,t,i){var n,a,o,r=this._option.series;if(!(r&&(n=r[e])&&(a=n[i])&&(o=a.data)))return this;t=t.split(" > ");for(var s=-1,l=0,h=o.length;h>l;l++){var m=o[l];if(m instanceof Array){if(m[0].name===t[0]&&m[1].name===t[1]){s=l;break}}else if(m.name===t[0]){s=l;break}}if(s>-1){o.splice(s,1),this._optionRestore.series[e][i].data.splice(s,1);var V=this.chart[n.type];V&&V.delMark(e,t.join(" > "),i)}return this},getDom:function(){return this.dom},getZrender:function(){return this._zr},getDataURL:function(e){if(!l)return"";if(0===this._chartList.length){var t="IMG"+this.id,i=document.getElementById(t);if(i)return i.src}var n=this.component.tooltip;switch(n&&n.hideTip(),e){case"jpeg":break;default:e="png"}var a=this._option.backgroundColor;return a&&"rgba(0,0,0,0)"===a.replace(" ","")&&(a="#fff"),this._zr.toDataURL("image/"+e,a)},getImage:function(e){var t=this._optionRestore.title,i=document.createElement("img");return i.src=this.getDataURL(e),i.title=t&&t.text||"ECharts",i},getConnectedDataURL:function(t){if(!this.isConnected())return this.getDataURL(t);var i=this.dom,n={self:{img:this.getDataURL(t),left:i.offsetLeft,top:i.offsetTop,right:i.offsetLeft+i.offsetWidth,bottom:i.offsetTop+i.offsetHeight}},a=n.self.left,o=n.self.top,r=n.self.right,s=n.self.bottom;for(var l in this._connected)i=this._connected[l].getDom(),n[l]={img:this._connected[l].getDataURL(t),left:i.offsetLeft,top:i.offsetTop,right:i.offsetLeft+i.offsetWidth,bottom:i.offsetTop+i.offsetHeight},a=Math.min(a,n[l].left),o=Math.min(o,n[l].top),r=Math.max(r,n[l].right),s=Math.max(s,n[l].bottom);var h=document.createElement("div");h.style.position="absolute",h.style.left="-4000px",h.style.width=r-a+"px",h.style.height=s-o+"px",document.body.appendChild(h);var m=e("zrender").init(h),V=e("zrender/shape/Image");for(var l in n)m.addShape(new V({style:{x:n[l].left-a,y:n[l].top-o,image:n[l].img}}));m.render();var U=this._option.backgroundColor;U&&"rgba(0,0,0,0)"===U.replace(/ /g,"")&&(U="#fff");var d=m.toDataURL("image/png",U);return setTimeout(function(){m.dispose(),h.parentNode.removeChild(h),h=null},100),d},getConnectedImage:function(e){var t=this._optionRestore.title,i=document.createElement("img");return i.src=this.getConnectedDataURL(e),i.title=t&&t.text||"ECharts",i},on:function(e,t){return this._messageCenterOutSide.bind(e,t,this),this},un:function(e,t){return this._messageCenterOutSide.unbind(e,t),this},connect:function(e){if(!e)return this;if(this._connected||(this._connected={}),e instanceof Array)for(var t=0,i=e.length;i>t;t++)this._connected[e[t].id]=e[t];else this._connected[e.id]=e;return this},disConnect:function(e){if(!e||!this._connected)return this;if(e instanceof Array)for(var t=0,i=e.length;i>t;t++)delete this._connected[e[t].id];else delete this._connected[e.id];for(var n in this._connected)return this;return this._connected=!1,this},connectedEventHandler:function(e){e.__echartsId!=this.id&&this._onevent(e)},isConnected:function(){return!!this._connected},showLoading:function(t){var i={bar:e("zrender/loadingEffect/Bar"),bubble:e("zrender/loadingEffect/Bubble"),dynamicLine:e("zrender/loadingEffect/DynamicLine"),ring:e("zrender/loadingEffect/Ring"),spin:e("zrender/loadingEffect/Spin"),whirling:e("zrender/loadingEffect/Whirling")};this._toolbox.hideDataView(),t=t||{};var n=t.textStyle||{};t.textStyle=n;var r=o.merge(o.merge(o.clone(n),this._themeConfig.textStyle),a.textStyle);n.textFont=r.fontStyle+" "+r.fontWeight+" "+r.fontSize+"px "+r.fontFamily,n.text=t.text||this._option&&this._option.loadingText||this._themeConfig.loadingText||a.loadingText,null!=t.x&&(n.x=t.x),null!=t.y&&(n.y=t.y),t.effectOption=t.effectOption||{},t.effectOption.textStyle=n;var s=t.effect;return("string"==typeof s||null==s)&&(s=i[t.effect||this._option&&this._option.loadingEffect||this._themeConfig.loadingEffect||a.loadingEffect]||i.spin),this._zr.showLoading(new s(t.effectOption)),this},hideLoading:function(){return this._zr.hideLoading(),this},setTheme:function(t){if(t){if("string"==typeof t)switch(t){case"macarons":t=e("./theme/macarons");break;case"infographic":t=e("./theme/infographic");break;default:t={}}else t=t||{};this._themeConfig=t}if(!l){var i=this._themeConfig.textStyle;i&&i.fontFamily&&i.fontFamily2&&(i.fontFamily=i.fontFamily2),i=a.textStyle,i.fontFamily=i.fontFamily2}this._timeline&&this._timeline.setTheme(!0),this._optionRestore&&this.restore()},resize:function(){var e=this;return function(){if(e._clearEffect(),e._zr.resize(),e._option&&e._option.renderAsImage&&l)return e._render(e._option),e;e._zr.clearAnimation(),e._island.resize(),e._toolbox.resize(),e._timeline&&e._timeline.resize();for(var t=0,i=e._chartList.length;i>t;t++)e._chartList[t].resize&&e._chartList[t].resize();return e.component.grid&&e.component.grid.refixAxisShape(e.component),e._zr.refresh(),e._messageCenter.dispatch(a.EVENT.RESIZE,null,null,e),e}},_clearEffect:function(){this._zr.modLayer(a.EFFECT_ZLEVEL,{motionBlur:!1}),this._zr.painter.clearLayer(a.EFFECT_ZLEVEL)},clear:function(){return this._disposeChartList(),this._zr.clear(),this._option={},this._optionRestore={},this.dom.style.backgroundColor=null,this},dispose:function(){var e=this.dom.getAttribute(V);e&&delete m[e],this._island.dispose(),this._toolbox.dispose(),this._timeline&&this._timeline.dispose(),this._messageCenter.unbind(),this.clear(),this._zr.dispose(),this._zr=null}},s}),i("echarts/config",[],function(){var e={CHART_TYPE_LINE:"line",CHART_TYPE_BAR:"bar",CHART_TYPE_SCATTER:"scatter",CHART_TYPE_PIE:"pie",CHART_TYPE_RADAR:"radar",CHART_TYPE_VENN:"venn",CHART_TYPE_TREEMAP:"treemap",CHART_TYPE_TREE:"tree",CHART_TYPE_MAP:"map",CHART_TYPE_K:"k",CHART_TYPE_ISLAND:"island",CHART_TYPE_FORCE:"force",CHART_TYPE_CHORD:"chord",CHART_TYPE_GAUGE:"gauge",CHART_TYPE_FUNNEL:"funnel",CHART_TYPE_EVENTRIVER:"eventRiver",CHART_TYPE_WORDCLOUD:"wordCloud",CHART_TYPE_HEATMAP:"heatmap",COMPONENT_TYPE_TITLE:"title",COMPONENT_TYPE_LEGEND:"legend",COMPONENT_TYPE_DATARANGE:"dataRange",COMPONENT_TYPE_DATAVIEW:"dataView",COMPONENT_TYPE_DATAZOOM:"dataZoom",COMPONENT_TYPE_TOOLBOX:"toolbox",COMPONENT_TYPE_TOOLTIP:"tooltip",COMPONENT_TYPE_GRID:"grid",COMPONENT_TYPE_AXIS:"axis",COMPONENT_TYPE_POLAR:"polar",COMPONENT_TYPE_X_AXIS:"xAxis",COMPONENT_TYPE_Y_AXIS:"yAxis",COMPONENT_TYPE_AXIS_CATEGORY:"categoryAxis",COMPONENT_TYPE_AXIS_VALUE:"valueAxis",COMPONENT_TYPE_TIMELINE:"timeline",COMPONENT_TYPE_ROAMCONTROLLER:"roamController",backgroundColor:"rgba(0,0,0,0)",color:["#ff7f50","#87cefa","#da70d6","#32cd32","#6495ed","#ff69b4","#ba55d3","#cd5c5c","#ffa500","#40e0d0","#1e90ff","#ff6347","#7b68ee","#00fa9a","#ffd700","#6699FF","#ff6666","#3cb371","#b8860b","#30e0e0"],markPoint:{clickable:!0,symbol:"pin",symbolSize:10,large:!1,effect:{show:!1,loop:!0,period:15,type:"scale",scaleSize:2,bounceDistance:10},itemStyle:{normal:{borderWidth:2,label:{show:!0,position:"inside"}},emphasis:{label:{show:!0}}}},markLine:{clickable:!0,symbol:["circle","arrow"],symbolSize:[2,4],smoothness:.2,precision:2,effect:{show:!1,loop:!0,period:15,scaleSize:2},bundling:{enable:!1,maxTurningAngle:45},itemStyle:{normal:{borderWidth:1.5,label:{show:!0,position:"end"},lineStyle:{type:"dashed"}},emphasis:{label:{show:!1},lineStyle:{}}}},textStyle:{decoration:"none",fontFamily:"Arial, Verdana, sans-serif",fontFamily2:"微软雅黑",fontSize:12,fontStyle:"normal",fontWeight:"normal"},EVENT:{REFRESH:"refresh",RESTORE:"restore",RESIZE:"resize",CLICK:"click",DBLCLICK:"dblclick",HOVER:"hover",MOUSEOUT:"mouseout",DATA_CHANGED:"dataChanged",DATA_ZOOM:"dataZoom",DATA_RANGE:"dataRange",DATA_RANGE_SELECTED:"dataRangeSelected",DATA_RANGE_HOVERLINK:"dataRangeHoverLink",LEGEND_SELECTED:"legendSelected",LEGEND_HOVERLINK:"legendHoverLink",MAP_SELECTED:"mapSelected",PIE_SELECTED:"pieSelected",MAGIC_TYPE_CHANGED:"magicTypeChanged",DATA_VIEW_CHANGED:"dataViewChanged",TIMELINE_CHANGED:"timelineChanged",MAP_ROAM:"mapRoam",FORCE_LAYOUT_END:"forceLayoutEnd",TOOLTIP_HOVER:"tooltipHover",TOOLTIP_IN_GRID:"tooltipInGrid",TOOLTIP_OUT_GRID:"tooltipOutGrid",ROAMCONTROLLER:"roamController"},DRAG_ENABLE_TIME:120,EFFECT_ZLEVEL:10,effectBlendAlpha:.95,symbolList:["circle","rectangle","triangle","diamond","emptyCircle","emptyRectangle","emptyTriangle","emptyDiamond"],loadingEffect:"spin",loadingText:"数据读取中...",noDataEffect:"bubble",noDataText:"暂无数据",calculable:!1,calculableColor:"rgba(255,165,0,0.6)",calculableHolderColor:"#ccc",nameConnector:" & ",valueConnector:": ",animation:!0,addDataAnimation:!0,animationThreshold:2e3,animationDuration:2e3,animationDurationUpdate:500,animationEasing:"ExponentialOut"};return e}),i("zrender/tool/util",["require","../dep/excanvas"],function(e){function t(e){return e&&1===e.nodeType&&"string"==typeof e.nodeName}function i(e){if("object"==typeof e&&null!==e){var n=e;if(e instanceof Array){n=[];for(var a=0,o=e.length;o>a;a++)n[a]=i(e[a])}else if(!y[g.call(e)]&&!t(e)){n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=i(e[r]))}return n}return e}function n(e,i,n,o){if(i.hasOwnProperty(n)){var r=e[n];"object"!=typeof r||y[g.call(r)]||t(r)?!o&&n in e||(e[n]=i[n]):a(e[n],i[n],o)}}function a(e,t,i){for(var a in t)n(e,t,a,i);return e}function o(){if(!U)if(e("../dep/excanvas"),window.G_vmlCanvasManager){var t=document.createElement("div");t.style.position="absolute",t.style.top="-1000px",document.body.appendChild(t),U=G_vmlCanvasManager.initElement(t).getContext("2d")}else U=document.createElement("canvas").getContext("2d");return U}function r(e,t){if(e.indexOf)return e.indexOf(t);for(var i=0,n=e.length;n>i;i++)if(e[i]===t)return i;return-1}function s(e,t){function i(){}var n=e.prototype;i.prototype=t.prototype,e.prototype=new i;for(var a in n)e.prototype[a]=n[a];e.constructor=e}function l(e,t,i){if(e&&t)if(e.forEach&&e.forEach===p)e.forEach(t,i);else if(e.length===+e.length)for(var n=0,a=e.length;a>n;n++)t.call(i,e[n],n,e);else for(var o in e)e.hasOwnProperty(o)&&t.call(i,e[o],o,e)}function h(e,t,i){if(e&&t){if(e.map&&e.map===c)return e.map(t,i);for(var n=[],a=0,o=e.length;o>a;a++)n.push(t.call(i,e[a],a,e));return n}}function m(e,t,i){if(e&&t){if(e.filter&&e.filter===u)return e.filter(t,i);for(var n=[],a=0,o=e.length;o>a;a++)t.call(i,e[a],a,e)&&n.push(e[a]);return n}}function V(e,t){return function(){e.apply(t,arguments)}}var U,d=Array.prototype,p=d.forEach,c=d.map,u=d.filter,y={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1},g=Object.prototype.toString;return{inherits:s,clone:i,merge:a,getContext:o,indexOf:r,each:l,map:h,filter:m,bind:V}}),i("zrender/tool/event",["require","../mixin/Eventful"],function(e){"use strict";function t(e){return"undefined"!=typeof e.zrenderX&&e.zrenderX||"undefined"!=typeof e.offsetX&&e.offsetX||"undefined"!=typeof e.layerX&&e.layerX||"undefined"!=typeof e.clientX&&e.clientX}function i(e){return"undefined"!=typeof e.zrenderY&&e.zrenderY||"undefined"!=typeof e.offsetY&&e.offsetY||"undefined"!=typeof e.layerY&&e.layerY||"undefined"!=typeof e.clientY&&e.clientY}function n(e){return"undefined"!=typeof e.zrenderDelta&&e.zrenderDelta||"undefined"!=typeof e.wheelDelta&&e.wheelDelta||"undefined"!=typeof e.detail&&-e.detail}var a=e("../mixin/Eventful"),o="function"==typeof window.addEventListener?function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0}:function(e){e.returnValue=!1,e.cancelBubble=!0};return{getX:t,getY:i,getDelta:n,stop:o,Dispatcher:a}}),i("zrender/tool/env",[],function(){function e(e){var t=this.os={},i=this.browser={},n=e.match(/Web[kK]it[\/]{0,1}([\d.]+)/),a=e.match(/(Android);?[\s\/]+([\d.]+)?/),o=e.match(/(iPad).*OS\s([\d_]+)/),r=e.match(/(iPod)(.*OS\s([\d_]+))?/),s=!o&&e.match(/(iPhone\sOS)\s([\d_]+)/),l=e.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),h=l&&e.match(/TouchPad/),m=e.match(/Kindle\/([\d.]+)/),V=e.match(/Silk\/([\d._]+)/),U=e.match(/(BlackBerry).*Version\/([\d.]+)/),d=e.match(/(BB10).*Version\/([\d.]+)/),p=e.match(/(RIM\sTablet\sOS)\s([\d.]+)/),c=e.match(/PlayBook/),u=e.match(/Chrome\/([\d.]+)/)||e.match(/CriOS\/([\d.]+)/),y=e.match(/Firefox\/([\d.]+)/),g=e.match(/MSIE ([\d.]+)/),b=n&&e.match(/Mobile\//)&&!u,f=e.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/)&&!u,g=e.match(/MSIE\s([\d.]+)/);return(i.webkit=!!n)&&(i.version=n[1]),a&&(t.android=!0,t.version=a[2]),s&&!r&&(t.ios=t.iphone=!0,t.version=s[2].replace(/_/g,".")),o&&(t.ios=t.ipad=!0,t.version=o[2].replace(/_/g,".")),r&&(t.ios=t.ipod=!0,t.version=r[3]?r[3].replace(/_/g,"."):null),l&&(t.webos=!0,t.version=l[2]),h&&(t.touchpad=!0),U&&(t.blackberry=!0,t.version=U[2]),d&&(t.bb10=!0,t.version=d[2]),p&&(t.rimtabletos=!0,t.version=p[2]),c&&(i.playbook=!0),m&&(t.kindle=!0,t.version=m[1]),V&&(i.silk=!0,i.version=V[1]),!V&&t.android&&e.match(/Kindle Fire/)&&(i.silk=!0),u&&(i.chrome=!0,i.version=u[1]),y&&(i.firefox=!0,i.version=y[1]),g&&(i.ie=!0,i.version=g[1]),b&&(e.match(/Safari/)||t.ios)&&(i.safari=!0),f&&(i.webview=!0),g&&(i.ie=!0,i.version=g[1]),t.tablet=!!(o||c||a&&!e.match(/Mobile/)||y&&e.match(/Tablet/)||g&&!e.match(/Phone/)&&e.match(/Touch/)),t.phone=!(t.tablet||t.ipod||!(a||s||l||U||d||u&&e.match(/Android/)||u&&e.match(/CriOS\/([\d.]+)/)||y&&e.match(/Mobile/)||g&&e.match(/Touch/))),{browser:i,os:t,canvasSupported:document.createElement("canvas").getContext?!0:!1}}return e(navigator.userAgent)}),i("zrender",["zrender/zrender"],function(e){return e}),i("zrender/zrender",["require","./dep/excanvas","./tool/util","./tool/log","./tool/guid","./Handler","./Painter","./Storage","./animation/Animation","./tool/env"],function(e){function t(e){return function(){e._needsRefreshNextFrame&&e.refresh()}}e("./dep/excanvas");var i=e("./tool/util"),n=e("./tool/log"),a=e("./tool/guid"),o=e("./Handler"),r=e("./Painter"),s=e("./Storage"),l=e("./animation/Animation"),h={},m={};m.version="2.1.1",m.init=function(e){var t=new V(a(),e);return h[t.id]=t,t},m.dispose=function(e){if(e)e.dispose();else{for(var t in h)h[t].dispose();h={}}return m},m.getInstance=function(e){return h[e]},m.delInstance=function(e){return delete h[e],m};var V=function(i,n){this.id=i,this.env=e("./tool/env"),this.storage=new s,this.painter=new r(n,this.storage),this.handler=new o(n,this.storage,this.painter),this.animation=new l({stage:{update:t(this)}}),this.animation.start();var a=this;this.painter.refreshNextFrame=function(){a.refreshNextFrame()},this._needsRefreshNextFrame=!1;var a=this,h=this.storage,m=h.delFromMap;h.delFromMap=function(e){var t=h.get(e);a.stopAnimation(t),m.call(h,e)}};return V.prototype.getId=function(){return this.id},V.prototype.addShape=function(e){return this.addElement(e),this},V.prototype.addGroup=function(e){return this.addElement(e),this},V.prototype.delShape=function(e){return this.delElement(e),this},V.prototype.delGroup=function(e){return this.delElement(e),this},V.prototype.modShape=function(e,t){return this.modElement(e,t),this},V.prototype.modGroup=function(e,t){return this.modElement(e,t),this},V.prototype.addElement=function(e){return this.storage.addRoot(e),this._needsRefreshNextFrame=!0,this},V.prototype.delElement=function(e){return this.storage.delRoot(e),this._needsRefreshNextFrame=!0,this},V.prototype.modElement=function(e,t){return this.storage.mod(e,t),this._needsRefreshNextFrame=!0,this},V.prototype.modLayer=function(e,t){return this.painter.modLayer(e,t),this._needsRefreshNextFrame=!0,this},V.prototype.addHoverShape=function(e){return this.storage.addHover(e),this},V.prototype.render=function(e){return this.painter.render(e),this._needsRefreshNextFrame=!1,this},V.prototype.refresh=function(e){return this.painter.refresh(e),this._needsRefreshNextFrame=!1,this},V.prototype.refreshNextFrame=function(){return this._needsRefreshNextFrame=!0,this},V.prototype.refreshHover=function(e){return this.painter.refreshHover(e),this},V.prototype.refreshShapes=function(e,t){return this.painter.refreshShapes(e,t),this},V.prototype.resize=function(){return this.painter.resize(),this},V.prototype.animate=function(e,t,a){var o=this;if("string"==typeof e&&(e=this.storage.get(e)),e){var r;if(t){for(var s=t.split("."),l=e,h=0,m=s.length;m>h;h++)l&&(l=l[s[h]]);l&&(r=l)}else r=e;if(!r)return void n('Property "'+t+'" is not existed in element '+e.id); + +null==e.__animators&&(e.__animators=[]);var V=e.__animators,U=this.animation.animate(r,{loop:a}).during(function(){o.modShape(e)}).done(function(){var t=i.indexOf(e.__animators,U);t>=0&&V.splice(t,1)});return V.push(U),U}n("Element not existed")},V.prototype.stopAnimation=function(e){if(e.__animators){for(var t=e.__animators,i=t.length,n=0;i>n;n++)t[n].stop();t.length=0}return this},V.prototype.clearAnimation=function(){return this.animation.clear(),this},V.prototype.showLoading=function(e){return this.painter.showLoading(e),this},V.prototype.hideLoading=function(){return this.painter.hideLoading(),this},V.prototype.getWidth=function(){return this.painter.getWidth()},V.prototype.getHeight=function(){return this.painter.getHeight()},V.prototype.toDataURL=function(e,t,i){return this.painter.toDataURL(e,t,i)},V.prototype.shapeToImage=function(e,t,i){var n=a();return this.painter.shapeToImage(n,e,t,i)},V.prototype.on=function(e,t,i){return this.handler.on(e,t,i),this},V.prototype.un=function(e,t){return this.handler.un(e,t),this},V.prototype.trigger=function(e,t){return this.handler.trigger(e,t),this},V.prototype.clear=function(){return this.storage.delRoot(),this.painter.clear(),this},V.prototype.dispose=function(){this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,m.delInstance(this.id)},m}),i("zrender/config",[],function(){var e={EVENT:{RESIZE:"resize",CLICK:"click",DBLCLICK:"dblclick",MOUSEWHEEL:"mousewheel",MOUSEMOVE:"mousemove",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",GLOBALOUT:"globalout",DRAGSTART:"dragstart",DRAGEND:"dragend",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",touchClickDelay:300},elementClassName:"zr-element",catchBrushException:!1,debugMode:0,devicePixelRatio:Math.max(window.devicePixelRatio||1,1)};return e}),i("echarts/chart/island",["require","./base","zrender/shape/Circle","../config","../util/ecData","zrender/tool/util","zrender/tool/event","zrender/tool/color","../util/accMath","../chart"],function(e){function t(e,t,n,a,r){i.call(this,e,t,n,a,r),this._nameConnector,this._valueConnector,this._zrHeight=this.zr.getHeight(),this._zrWidth=this.zr.getWidth();var l=this;l.shapeHandler.onmousewheel=function(e){var t=e.target,i=e.event,n=s.getDelta(i);n=n>0?-1:1,t.style.r-=n,t.style.r=t.style.r<5?5:t.style.r;var a=o.get(t,"value"),r=a*l.option.island.calculateStep;a=r>1?Math.round(a-r*n):+(a-r*n).toFixed(2);var h=o.get(t,"name");t.style.text=h+":"+a,o.set(t,"value",a),o.set(t,"name",h),l.zr.modShape(t.id),l.zr.refreshNextFrame(),s.stop(i)}}var i=e("./base"),n=e("zrender/shape/Circle"),a=e("../config");a.island={zlevel:0,z:5,r:15,calculateStep:.1};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/event");return t.prototype={type:a.CHART_TYPE_ISLAND,_combine:function(t,i){var n=e("zrender/tool/color"),a=e("../util/accMath"),r=a.accAdd(o.get(t,"value"),o.get(i,"value")),s=o.get(t,"name")+this._nameConnector+o.get(i,"name");t.style.text=s+this._valueConnector+r,o.set(t,"value",r),o.set(t,"name",s),t.style.r=this.option.island.r,t.style.color=n.mix(t.style.color,i.style.color)},refresh:function(e){e&&(e.island=this.reformOption(e.island),this.option=e,this._nameConnector=this.option.nameConnector,this._valueConnector=this.option.valueConnector)},getOption:function(){return this.option},resize:function(){var e=this.zr.getWidth(),t=this.zr.getHeight(),i=e/(this._zrWidth||e),n=t/(this._zrHeight||t);if(1!==i||1!==n){this._zrWidth=e,this._zrHeight=t;for(var a=0,o=this.shapeList.length;o>a;a++)this.zr.modShape(this.shapeList[a].id,{style:{x:Math.round(this.shapeList[a].style.x*i),y:Math.round(this.shapeList[a].style.y*n)}})}},add:function(e){var t=o.get(e,"name"),i=o.get(e,"value"),a=null!=o.get(e,"series")?o.get(e,"series").name:"",r=this.getFont(this.option.island.textStyle),s=this.option.island,l={zlevel:s.zlevel,z:s.z,style:{x:e.style.x,y:e.style.y,r:this.option.island.r,color:e.style.color||e.style.strokeColor,text:t+this._valueConnector+i,textFont:r},draggable:!0,hoverable:!0,onmousewheel:this.shapeHandler.onmousewheel,_type:"island"};"#fff"===l.style.color&&(l.style.color=e.style.strokeColor),this.setCalculable(l),l.dragEnableTime=0,o.pack(l,{name:a},-1,i,-1,t),l=new n(l),this.shapeList.push(l),this.zr.addShape(l)},del:function(e){this.zr.delShape(e.id);for(var t=[],i=0,n=this.shapeList.length;n>i;i++)this.shapeList[i].id!=e.id&&t.push(this.shapeList[i]);this.shapeList=t},ondrop:function(e,t){if(this.isDrop&&e.target){var i=e.target,n=e.dragged;this._combine(i,n),this.zr.modShape(i.id),t.dragIn=!0,this.isDrop=!1}},ondragend:function(e,t){var i=e.target;this.isDragend?t.dragIn&&(this.del(i),t.needRefresh=!0):t.dragIn||(i.style.x=s.getX(e.event),i.style.y=s.getY(e.event),this.add(i),t.needRefresh=!0),this.isDragend=!1}},r.inherits(t,i),e("../chart").define("island",t),t}),i("echarts/component/toolbox",["require","./base","zrender/shape/Line","zrender/shape/Image","zrender/shape/Rectangle","../util/shape/Icon","../config","zrender/tool/util","zrender/config","zrender/tool/event","./dataView","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.dom=o.dom,this._magicType={},this._magicMap={},this._isSilence=!1,this._iconList,this._iconShapeMap={},this._featureTitle={},this._featureIcon={},this._featureColor={},this._featureOption={},this._enableColor="red",this._disableColor="#ccc",this._markShapeList=[];var r=this;r._onMark=function(e){r.__onMark(e)},r._onMarkUndo=function(e){r.__onMarkUndo(e)},r._onMarkClear=function(e){r.__onMarkClear(e)},r._onDataZoom=function(e){r.__onDataZoom(e)},r._onDataZoomReset=function(e){r.__onDataZoomReset(e)},r._onDataView=function(e){r.__onDataView(e)},r._onRestore=function(e){r.__onRestore(e)},r._onSaveAsImage=function(e){r.__onSaveAsImage(e)},r._onMagicType=function(e){r.__onMagicType(e)},r._onCustomHandler=function(e){r.__onCustomHandler(e)},r._onmousemove=function(e){return r.__onmousemove(e)},r._onmousedown=function(e){return r.__onmousedown(e)},r._onmouseup=function(e){return r.__onmouseup(e)},r._onclick=function(e){return r.__onclick(e)}}var i=e("./base"),n=e("zrender/shape/Line"),a=e("zrender/shape/Image"),o=e("zrender/shape/Rectangle"),r=e("../util/shape/Icon"),s=e("../config");s.toolbox={zlevel:0,z:6,show:!1,orient:"horizontal",x:"right",y:"top",color:["#1e90ff","#22bb22","#4b0082","#d2691e"],disableColor:"#ddd",effectiveColor:"red",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemSize:16,showTitle:!0,feature:{mark:{show:!1,title:{mark:"辅助线开关",markUndo:"删除辅助线",markClear:"清空辅助线"},lineStyle:{width:1,color:"#1e90ff",type:"dashed"}},dataZoom:{show:!1,title:{dataZoom:"区域缩放",dataZoomReset:"区域缩放后退"}},dataView:{show:!1,title:"数据视图",readOnly:!1,lang:["数据视图","关闭","刷新"]},magicType:{show:!1,title:{line:"折线图切换",bar:"柱形图切换",stack:"堆积",tiled:"平铺",force:"力导向布局图切换",chord:"和弦图切换",pie:"饼图切换",funnel:"漏斗图切换"},type:[]},restore:{show:!1,title:"还原"},saveAsImage:{show:!1,title:"保存为图片",type:"png",lang:["点击保存"]}}};var l=e("zrender/tool/util"),h=e("zrender/config"),m=e("zrender/tool/event"),V="stack",U="tiled";return t.prototype={type:s.COMPONENT_TYPE_TOOLBOX,_buildShape:function(){this._iconList=[];var e=this.option.toolbox;this._enableColor=e.effectiveColor,this._disableColor=e.disableColor;var t=e.feature,i=[];for(var n in t)if(t[n].show)switch(n){case"mark":i.push({key:n,name:"mark"}),i.push({key:n,name:"markUndo"}),i.push({key:n,name:"markClear"});break;case"magicType":for(var a=0,o=t[n].type.length;o>a;a++)t[n].title[t[n].type[a]+"Chart"]=t[n].title[t[n].type[a]],t[n].option&&(t[n].option[t[n].type[a]+"Chart"]=t[n].option[t[n].type[a]]),i.push({key:n,name:t[n].type[a]+"Chart"});break;case"dataZoom":i.push({key:n,name:"dataZoom"}),i.push({key:n,name:"dataZoomReset"});break;case"saveAsImage":this.canvasSupported&&i.push({key:n,name:"saveAsImage"});break;default:i.push({key:n,name:n})}if(i.length>0){for(var r,n,a=0,o=i.length;o>a;a++)r=i[a].name,n=i[a].key,this._iconList.push(r),this._featureTitle[r]=t[n].title[r]||t[n].title,t[n].icon&&(this._featureIcon[r]=t[n].icon[r]||t[n].icon),t[n].color&&(this._featureColor[r]=t[n].color[r]||t[n].color),t[n].option&&(this._featureOption[r]=t[n].option[r]||t[n].option);this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var a=0,o=this.shapeList.length;o>a;a++)this.zr.addShape(this.shapeList[a]);this._iconShapeMap.mark&&(this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear)),this._iconShapeMap.dataZoomReset&&0===this._zoomQueue.length&&this._iconDisable(this._iconShapeMap.dataZoomReset)}},_buildItem:function(){var t,i,n,o,s=this.option.toolbox,l=this._iconList.length,h=this._itemGroupLocation.x,m=this._itemGroupLocation.y,V=s.itemSize,U=s.itemGap,d=s.color instanceof Array?s.color:[s.color],p=this.getFont(s.textStyle);"horizontal"===s.orient?(i=this._itemGroupLocation.y/this.zr.getHeight()<.5?"bottom":"top",n=this._itemGroupLocation.x/this.zr.getWidth()<.5?"left":"right",o=this._itemGroupLocation.y/this.zr.getHeight()<.5?"top":"bottom"):i=this._itemGroupLocation.x/this.zr.getWidth()<.5?"right":"left",this._iconShapeMap={};for(var c=this,u=0;l>u;u++){switch(t={type:"icon",zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:h,y:m,width:V,height:V,iconType:this._iconList[u],lineWidth:1,strokeColor:this._featureColor[this._iconList[u]]||d[u%d.length],brushType:"stroke"},highlightStyle:{lineWidth:1,text:s.showTitle?this._featureTitle[this._iconList[u]]:void 0,textFont:p,textPosition:i,strokeColor:this._featureColor[this._iconList[u]]||d[u%d.length]},hoverable:!0,clickable:!0},this._featureIcon[this._iconList[u]]&&(t.style.image=this._featureIcon[this._iconList[u]].replace(new RegExp("^image:\\/\\/"),""),t.style.opacity=.8,t.highlightStyle.opacity=1,t.type="image"),"horizontal"===s.orient&&(0===u&&"left"===n&&(t.highlightStyle.textPosition="specific",t.highlightStyle.textAlign=n,t.highlightStyle.textBaseline=o,t.highlightStyle.textX=h,t.highlightStyle.textY="top"===o?m+V+10:m-10),u===l-1&&"right"===n&&(t.highlightStyle.textPosition="specific",t.highlightStyle.textAlign=n,t.highlightStyle.textBaseline=o,t.highlightStyle.textX=h+V,t.highlightStyle.textY="top"===o?m+V+10:m-10)),this._iconList[u]){case"mark":t.onclick=c._onMark;break;case"markUndo":t.onclick=c._onMarkUndo;break;case"markClear":t.onclick=c._onMarkClear;break;case"dataZoom":t.onclick=c._onDataZoom;break;case"dataZoomReset":t.onclick=c._onDataZoomReset;break;case"dataView":if(!this._dataView){var y=e("./dataView");this._dataView=new y(this.ecTheme,this.messageCenter,this.zr,this.option,this.myChart)}t.onclick=c._onDataView;break;case"restore":t.onclick=c._onRestore;break;case"saveAsImage":t.onclick=c._onSaveAsImage;break;default:this._iconList[u].match("Chart")?(t._name=this._iconList[u].replace("Chart",""),t.onclick=c._onMagicType):t.onclick=c._onCustomHandler}"icon"===t.type?t=new r(t):"image"===t.type&&(t=new a(t)),this.shapeList.push(t),this._iconShapeMap[this._iconList[u]]=t,"horizontal"===s.orient?h+=V+U:m+=V+U}},_buildBackground:function(){var e=this.option.toolbox,t=this.reformCssArray(this.option.toolbox.padding);this.shapeList.push(new o({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-t[3],y:this._itemGroupLocation.y-t[0],width:this._itemGroupLocation.width+t[3]+t[1],height:this._itemGroupLocation.height+t[0]+t[2],brushType:0===e.borderWidth?"fill":"both",color:e.backgroundColor,strokeColor:e.borderColor,lineWidth:e.borderWidth}}))},_getItemGroupLocation:function(){var e=this.option.toolbox,t=this.reformCssArray(this.option.toolbox.padding),i=this._iconList.length,n=e.itemGap,a=e.itemSize,o=0,r=0;"horizontal"===e.orient?(o=(a+n)*i-n,r=a):(r=(a+n)*i-n,o=a);var s,l=this.zr.getWidth();switch(e.x){case"center":s=Math.floor((l-o)/2);break;case"left":s=t[3]+e.borderWidth;break;case"right":s=l-o-t[1]-e.borderWidth;break;default:s=e.x-0,s=isNaN(s)?0:s}var h,m=this.zr.getHeight();switch(e.y){case"top":h=t[0]+e.borderWidth;break;case"bottom":h=m-r-t[2]-e.borderWidth;break;case"center":h=Math.floor((m-r)/2);break;default:h=e.y-0,h=isNaN(h)?0:h}return{x:s,y:h,width:o,height:r}},__onmousemove:function(e){this._marking&&(this._markShape.style.xEnd=m.getX(e.event),this._markShape.style.yEnd=m.getY(e.event),this.zr.addHoverShape(this._markShape)),this._zooming&&(this._zoomShape.style.width=m.getX(e.event)-this._zoomShape.style.x,this._zoomShape.style.height=m.getY(e.event)-this._zoomShape.style.y,this.zr.addHoverShape(this._zoomShape),this.dom.style.cursor="crosshair",m.stop(e.event)),this._zoomStart&&"pointer"!=this.dom.style.cursor&&"move"!=this.dom.style.cursor&&(this.dom.style.cursor="crosshair")},__onmousedown:function(e){if(!e.target){this._zooming=!0;var t=m.getX(e.event),i=m.getY(e.event),n=this.option.dataZoom||{};return this._zoomShape=new o({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:t,y:i,width:1,height:1,brushType:"both"},highlightStyle:{lineWidth:2,color:n.fillerColor||s.dataZoom.fillerColor,strokeColor:n.handleColor||s.dataZoom.handleColor,brushType:"both"}}),this.zr.addHoverShape(this._zoomShape),!0}},__onmouseup:function(){if(!this._zoomShape||Math.abs(this._zoomShape.style.width)<10||Math.abs(this._zoomShape.style.height)<10)return this._zooming=!1,!0;if(this._zooming&&this.component.dataZoom){this._zooming=!1;var e=this.component.dataZoom.rectZoom(this._zoomShape.style);e&&(this._zoomQueue.push({start:e.start,end:e.end,start2:e.start2,end2:e.end2}),this._iconEnable(this._iconShapeMap.dataZoomReset),this.zr.refreshNextFrame())}return!0},__onclick:function(e){if(!e.target)if(this._marking)this._marking=!1,this._markShapeList.push(this._markShape),this._iconEnable(this._iconShapeMap.markUndo),this._iconEnable(this._iconShapeMap.markClear),this.zr.addShape(this._markShape),this.zr.refreshNextFrame();else if(this._markStart){this._marking=!0;var t=m.getX(e.event),i=m.getY(e.event);this._markShape=new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{xStart:t,yStart:i,xEnd:t,yEnd:i,lineWidth:this.query(this.option,"toolbox.feature.mark.lineStyle.width"),strokeColor:this.query(this.option,"toolbox.feature.mark.lineStyle.color"),lineType:this.query(this.option,"toolbox.feature.mark.lineStyle.type")}}),this.zr.addHoverShape(this._markShape)}},__onMark:function(e){var t=e.target;if(this._marking||this._markStart)this._resetMark(),this.zr.refreshNextFrame();else{this._resetZoom(),this.zr.modShape(t.id,{style:{strokeColor:this._enableColor}}),this.zr.refreshNextFrame(),this._markStart=!0;var i=this;setTimeout(function(){i.zr&&i.zr.on(h.EVENT.CLICK,i._onclick)&&i.zr.on(h.EVENT.MOUSEMOVE,i._onmousemove)},10)}return!0},__onMarkUndo:function(){if(this._marking)this._marking=!1;else{var e=this._markShapeList.length;if(e>=1){var t=this._markShapeList[e-1];this.zr.delShape(t.id),this.zr.refreshNextFrame(),this._markShapeList.pop(),1===e&&(this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear))}}return!0},__onMarkClear:function(){this._marking&&(this._marking=!1);var e=this._markShapeList.length;if(e>0){for(;e--;)this.zr.delShape(this._markShapeList.pop().id);this._iconDisable(this._iconShapeMap.markUndo),this._iconDisable(this._iconShapeMap.markClear),this.zr.refreshNextFrame()}return!0},__onDataZoom:function(e){var t=e.target;if(this._zooming||this._zoomStart)this._resetZoom(),this.zr.refreshNextFrame(),this.dom.style.cursor="default";else{this._resetMark(),this.zr.modShape(t.id,{style:{strokeColor:this._enableColor}}),this.zr.refreshNextFrame(),this._zoomStart=!0;var i=this;setTimeout(function(){i.zr&&i.zr.on(h.EVENT.MOUSEDOWN,i._onmousedown)&&i.zr.on(h.EVENT.MOUSEUP,i._onmouseup)&&i.zr.on(h.EVENT.MOUSEMOVE,i._onmousemove)},10),this.dom.style.cursor="crosshair"}return!0},__onDataZoomReset:function(){return this._zooming&&(this._zooming=!1),this._zoomQueue.pop(),this._zoomQueue.length>0?this.component.dataZoom.absoluteZoom(this._zoomQueue[this._zoomQueue.length-1]):(this.component.dataZoom.rectZoom(),this._iconDisable(this._iconShapeMap.dataZoomReset),this.zr.refreshNextFrame()),!0},_resetMark:function(){this._marking=!1,this._markStart&&(this._markStart=!1,this._iconShapeMap.mark&&this.zr.modShape(this._iconShapeMap.mark.id,{style:{strokeColor:this._iconShapeMap.mark.highlightStyle.strokeColor}}),this.zr.un(h.EVENT.CLICK,this._onclick),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove))},_resetZoom:function(){this._zooming=!1,this._zoomStart&&(this._zoomStart=!1,this._iconShapeMap.dataZoom&&this.zr.modShape(this._iconShapeMap.dataZoom.id,{style:{strokeColor:this._iconShapeMap.dataZoom.highlightStyle.strokeColor}}),this.zr.un(h.EVENT.MOUSEDOWN,this._onmousedown),this.zr.un(h.EVENT.MOUSEUP,this._onmouseup),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove))},_iconDisable:function(e){"image"!=e.type?this.zr.modShape(e.id,{hoverable:!1,clickable:!1,style:{strokeColor:this._disableColor}}):this.zr.modShape(e.id,{hoverable:!1,clickable:!1,style:{opacity:.3}})},_iconEnable:function(e){"image"!=e.type?this.zr.modShape(e.id,{hoverable:!0,clickable:!0,style:{strokeColor:e.highlightStyle.strokeColor}}):this.zr.modShape(e.id,{hoverable:!0,clickable:!0,style:{opacity:.8}})},__onDataView:function(){return this._dataView.show(this.option),!0},__onRestore:function(){return this._resetMark(),this._resetZoom(),this.messageCenter.dispatch(s.EVENT.RESTORE,null,null,this.myChart),!0},__onSaveAsImage:function(){var e=this.option.toolbox.feature.saveAsImage,t=e.type||"png";"png"!=t&&"jpeg"!=t&&(t="png");var i;i=this.myChart.isConnected()?this.myChart.getConnectedDataURL(t):this.zr.toDataURL("image/"+t,this.option.backgroundColor&&"rgba(0,0,0,0)"===this.option.backgroundColor.replace(" ","")?"#fff":this.option.backgroundColor);var n=document.createElement("div");n.id="__echarts_download_wrap__",n.style.cssText="position:fixed;z-index:99999;display:block;top:0;left:0;background-color:rgba(33,33,33,0.5);text-align:center;width:100%;height:100%;line-height:"+document.documentElement.clientHeight+"px;";var a=document.createElement("a");a.href=i,a.setAttribute("download",(e.name?e.name:this.option.title&&(this.option.title.text||this.option.title.subtext)?this.option.title.text||this.option.title.subtext:"ECharts")+"."+t),a.innerHTML='图片另存为":e.lang?e.lang[0]:"点击保存")+'"/>',n.appendChild(a),document.body.appendChild(n),a=null,n=null,setTimeout(function(){var e=document.getElementById("__echarts_download_wrap__");e&&(e.onclick=function(){var e=document.getElementById("__echarts_download_wrap__");e.onclick=null,e.innerHTML="",document.body.removeChild(e),e=null},e=null)},500)},__onMagicType:function(e){this._resetMark();var t=e.target._name;return this._magicType[t]||(this._magicType[t]=!0,t===s.CHART_TYPE_LINE?this._magicType[s.CHART_TYPE_BAR]=!1:t===s.CHART_TYPE_BAR&&(this._magicType[s.CHART_TYPE_LINE]=!1),t===s.CHART_TYPE_PIE?this._magicType[s.CHART_TYPE_FUNNEL]=!1:t===s.CHART_TYPE_FUNNEL&&(this._magicType[s.CHART_TYPE_PIE]=!1),t===s.CHART_TYPE_FORCE?this._magicType[s.CHART_TYPE_CHORD]=!1:t===s.CHART_TYPE_CHORD&&(this._magicType[s.CHART_TYPE_FORCE]=!1),t===V?this._magicType[U]=!1:t===U&&(this._magicType[V]=!1),this.messageCenter.dispatch(s.EVENT.MAGIC_TYPE_CHANGED,e.event,{magicType:this._magicType},this.myChart)),!0},setMagicType:function(e){this._resetMark(),this._magicType=e,!this._isSilence&&this.messageCenter.dispatch(s.EVENT.MAGIC_TYPE_CHANGED,null,{magicType:this._magicType},this.myChart)},__onCustomHandler:function(e){var t=e.target.style.iconType,i=this.option.toolbox.feature[t].onclick;"function"==typeof i&&i.call(this,this.option)},reset:function(e,t){if(t&&this.clear(),this.query(e,"toolbox.show")&&this.query(e,"toolbox.feature.magicType.show")){var i=e.toolbox.feature.magicType.type,n=i.length;for(this._magicMap={};n--;)this._magicMap[i[n]]=!0;n=e.series.length;for(var a,o;n--;)a=e.series[n].type,this._magicMap[a]&&(o=e.xAxis instanceof Array?e.xAxis[e.series[n].xAxisIndex||0]:e.xAxis,o&&"category"===(o.type||"category")&&(o.__boundaryGap=null!=o.boundaryGap?o.boundaryGap:!0),o=e.yAxis instanceof Array?e.yAxis[e.series[n].yAxisIndex||0]:e.yAxis,o&&"category"===o.type&&(o.__boundaryGap=null!=o.boundaryGap?o.boundaryGap:!0),e.series[n].__type=a,e.series[n].__itemStyle=l.clone(e.series[n].itemStyle||{})),(this._magicMap[V]||this._magicMap[U])&&(e.series[n].__stack=e.series[n].stack)}this._magicType=t?{}:this._magicType||{};for(var r in this._magicType)if(this._magicType[r]){this.option=e,this.getMagicOption();break}var s=e.dataZoom;if(s&&s.show){var h=null!=s.start&&s.start>=0&&s.start<=100?s.start:0,m=null!=s.end&&s.end>=0&&s.end<=100?s.end:100;h>m&&(h+=m,m=h-m,h-=m),this._zoomQueue=[{start:h,end:m,start2:0,end2:100}]}else this._zoomQueue=[]},getMagicOption:function(){var e,t;if(this._magicType[s.CHART_TYPE_LINE]||this._magicType[s.CHART_TYPE_BAR]){for(var i=this._magicType[s.CHART_TYPE_LINE]?!1:!0,n=0,a=this.option.series.length;a>n;n++)t=this.option.series[n].type,(t==s.CHART_TYPE_LINE||t==s.CHART_TYPE_BAR)&&(e=this.option.xAxis instanceof Array?this.option.xAxis[this.option.series[n].xAxisIndex||0]:this.option.xAxis,e&&"category"===(e.type||"category")&&(e.boundaryGap=i?!0:e.__boundaryGap),e=this.option.yAxis instanceof Array?this.option.yAxis[this.option.series[n].yAxisIndex||0]:this.option.yAxis,e&&"category"===e.type&&(e.boundaryGap=i?!0:e.__boundaryGap));this._defaultMagic(s.CHART_TYPE_LINE,s.CHART_TYPE_BAR)}if(this._defaultMagic(s.CHART_TYPE_CHORD,s.CHART_TYPE_FORCE),this._defaultMagic(s.CHART_TYPE_PIE,s.CHART_TYPE_FUNNEL),this._magicType[V]||this._magicType[U])for(var n=0,a=this.option.series.length;a>n;n++)this._magicType[V]?(this.option.series[n].stack="_ECHARTS_STACK_KENER_2014_",t=V):this._magicType[U]&&(this.option.series[n].stack=null,t=U),this._featureOption[t+"Chart"]&&l.merge(this.option.series[n],this._featureOption[t+"Chart"]||{},!0);return this.option},_defaultMagic:function(e,t){if(this._magicType[e]||this._magicType[t])for(var i=0,n=this.option.series.length;n>i;i++){var a=this.option.series[i].type;(a==e||a==t)&&(this.option.series[i].type=this._magicType[e]?e:t,this.option.series[i].itemStyle=l.clone(this.option.series[i].__itemStyle),a=this.option.series[i].type,this._featureOption[a+"Chart"]&&l.merge(this.option.series[i],this._featureOption[a+"Chart"]||{},!0))}},silence:function(e){this._isSilence=e},resize:function(){this._resetMark(),this.clear(),this.option&&this.option.toolbox&&this.option.toolbox.show&&this._buildShape(),this._dataView&&this._dataView.resize()},hideDataView:function(){this._dataView&&this._dataView.hide()},clear:function(e){this.zr&&(this.zr.delShape(this.shapeList),this.shapeList=[],e||(this.zr.delShape(this._markShapeList),this._markShapeList=[]))},onbeforDispose:function(){this._dataView&&(this._dataView.dispose(),this._dataView=null),this._markShapeList=null},refresh:function(e){e&&(this._resetMark(),this._resetZoom(),e.toolbox=this.reformOption(e.toolbox),this.option=e,this.clear(!0),e.toolbox.show&&this._buildShape(),this.hideDataView())}},l.inherits(t,i),e("../component").define("toolbox",t),t}),i("echarts/component",[],function(){var e={},t={};return e.define=function(i,n){return t[i]=n,e},e.get=function(e){return t[e]},e}),i("echarts/component/title",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../config","zrender/tool/util","zrender/tool/area","zrender/tool/color","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("../config");o.title={zlevel:0,z:6,show:!0,text:"",subtext:"",x:"left",y:"top",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:5,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}};var r=e("zrender/tool/util"),s=e("zrender/tool/area"),l=e("zrender/tool/color");return t.prototype={type:o.COMPONENT_TYPE_TITLE,_buildShape:function(){if(this.titleOption.show){this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildItem:function(){var e=this.titleOption.text,t=this.titleOption.link,i=this.titleOption.target,a=this.titleOption.subtext,o=this.titleOption.sublink,r=this.titleOption.subtarget,s=this.getFont(this.titleOption.textStyle),h=this.getFont(this.titleOption.subtextStyle),m=this._itemGroupLocation.x,V=this._itemGroupLocation.y,U=this._itemGroupLocation.width,d=this._itemGroupLocation.height,p={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{y:V,color:this.titleOption.textStyle.color,text:e,textFont:s,textBaseline:"top"},highlightStyle:{color:l.lift(this.titleOption.textStyle.color,1),brushType:"fill"},hoverable:!1};t&&(p.hoverable=!0,p.clickable=!0,p.onclick=function(){i&&"self"==i?window.location=t:window.open(t)});var c={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{y:V+d,color:this.titleOption.subtextStyle.color,text:a,textFont:h,textBaseline:"bottom"},highlightStyle:{color:l.lift(this.titleOption.subtextStyle.color,1),brushType:"fill"},hoverable:!1};switch(o&&(c.hoverable=!0,c.clickable=!0,c.onclick=function(){r&&"self"==r?window.location=o:window.open(o)}),this.titleOption.x){case"center":p.style.x=c.style.x=m+U/2,p.style.textAlign=c.style.textAlign="center";break;case"left":p.style.x=c.style.x=m,p.style.textAlign=c.style.textAlign="left";break;case"right":p.style.x=c.style.x=m+U,p.style.textAlign=c.style.textAlign="right";break;default:m=this.titleOption.x-0,m=isNaN(m)?0:m,p.style.x=c.style.x=m}this.titleOption.textAlign&&(p.style.textAlign=c.style.textAlign=this.titleOption.textAlign),this.shapeList.push(new n(p)),""!==a&&this.shapeList.push(new n(c))},_buildBackground:function(){var e=this.reformCssArray(this.titleOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.titleOption.borderWidth?"fill":"both",color:this.titleOption.backgroundColor,strokeColor:this.titleOption.borderColor,lineWidth:this.titleOption.borderWidth}}))},_getItemGroupLocation:function(){var e,t=this.reformCssArray(this.titleOption.padding),i=this.titleOption.text,n=this.titleOption.subtext,a=this.getFont(this.titleOption.textStyle),o=this.getFont(this.titleOption.subtextStyle),r=Math.max(s.getTextWidth(i,a),s.getTextWidth(n,o)),l=s.getTextHeight(i,a)+(""===n?0:this.titleOption.itemGap+s.getTextHeight(n,o)),h=this.zr.getWidth();switch(this.titleOption.x){case"center":e=Math.floor((h-r)/2);break;case"left":e=t[3]+this.titleOption.borderWidth;break;case"right":e=h-r-t[1]-this.titleOption.borderWidth;break;default:e=this.titleOption.x-0,e=isNaN(e)?0:e}var m,V=this.zr.getHeight();switch(this.titleOption.y){case"top":m=t[0]+this.titleOption.borderWidth;break;case"bottom":m=V-l-t[2]-this.titleOption.borderWidth;break;case"center":m=Math.floor((V-l)/2);break;default:m=this.titleOption.y-0,m=isNaN(m)?0:m}return{x:e,y:m,width:r,height:l}},refresh:function(e){e&&(this.option=e,this.option.title=this.reformOption(this.option.title),this.titleOption=this.option.title,this.titleOption.textStyle=this.getTextStyle(this.titleOption.textStyle),this.titleOption.subtextStyle=this.getTextStyle(this.titleOption.subtextStyle)),this.clear(),this._buildShape()}},r.inherits(t,i),e("../component").define("title",t),t}),i("echarts/component/tooltip",["require","./base","../util/shape/Cross","zrender/shape/Line","zrender/shape/Rectangle","../config","../util/ecData","zrender/config","zrender/tool/event","zrender/tool/area","zrender/tool/color","zrender/tool/util","zrender/shape/Base","../component"],function(e){function t(e,t,o,r,s){i.call(this,e,t,o,r,s),this.dom=s.dom;var l=this;l._onmousemove=function(e){return l.__onmousemove(e)},l._onglobalout=function(e){return l.__onglobalout(e)},this.zr.on(h.EVENT.MOUSEMOVE,l._onmousemove),this.zr.on(h.EVENT.GLOBALOUT,l._onglobalout),l._hide=function(e){return l.__hide(e)},l._tryShow=function(e){return l.__tryShow(e)},l._refixed=function(e){return l.__refixed(e)},l._setContent=function(e,t){return l.__setContent(e,t)},this._tDom=this._tDom||document.createElement("div"),this._tDom.onselectstart=function(){return!1},this._tDom.onmouseover=function(){l._mousein=!0},this._tDom.onmouseout=function(){l._mousein=!1},this._tDom.className="echarts-tooltip",this._tDom.style.position="absolute",this.hasAppend=!1,this._axisLineShape&&this.zr.delShape(this._axisLineShape.id),this._axisLineShape=new a({zlevel:this.getZlevelBase(),z:this.getZBase(),invisible:!0,hoverable:!1}),this.shapeList.push(this._axisLineShape),this.zr.addShape(this._axisLineShape),this._axisShadowShape&&this.zr.delShape(this._axisShadowShape.id),this._axisShadowShape=new a({zlevel:this.getZlevelBase(),z:1,invisible:!0,hoverable:!1}),this.shapeList.push(this._axisShadowShape),this.zr.addShape(this._axisShadowShape),this._axisCrossShape&&this.zr.delShape(this._axisCrossShape.id),this._axisCrossShape=new n({zlevel:this.getZlevelBase(),z:this.getZBase(),invisible:!0,hoverable:!1}),this.shapeList.push(this._axisCrossShape),this.zr.addShape(this._axisCrossShape),this.showing=!1,this.refresh(r)}var i=e("./base"),n=e("../util/shape/Cross"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=new o({}),s=e("../config");s.tooltip={zlevel:1,z:8,show:!0,showContent:!0,trigger:"item",islandFormatter:"{a}
                              {b} : {c}",showDelay:20,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(0,0,0,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,axisPointer:{type:"line",lineStyle:{color:"#48b",width:2,type:"solid"},crossStyle:{color:"#1e90ff",width:1,type:"dashed"},shadowStyle:{color:"rgba(150,150,150,0.3)",width:"auto",type:"default"}},textStyle:{color:"#fff"}};var l=e("../util/ecData"),h=e("zrender/config"),m=e("zrender/tool/event"),V=e("zrender/tool/area"),U=e("zrender/tool/color"),d=e("zrender/tool/util"),p=e("zrender/shape/Base");return t.prototype={type:s.COMPONENT_TYPE_TOOLTIP,_gCssText:"position:absolute;display:block;border-style:solid;white-space:nowrap;",_style:function(e){if(!e)return"";var t=[];if(e.transitionDuration){var i="left "+e.transitionDuration+"s,top "+e.transitionDuration+"s";t.push("transition:"+i),t.push("-moz-transition:"+i),t.push("-webkit-transition:"+i),t.push("-o-transition:"+i)}e.backgroundColor&&(t.push("background-Color:"+U.toHex(e.backgroundColor)),t.push("filter:alpha(opacity=70)"),t.push("background-Color:"+e.backgroundColor)),null!=e.borderWidth&&t.push("border-width:"+e.borderWidth+"px"),null!=e.borderColor&&t.push("border-color:"+e.borderColor),null!=e.borderRadius&&(t.push("border-radius:"+e.borderRadius+"px"),t.push("-moz-border-radius:"+e.borderRadius+"px"),t.push("-webkit-border-radius:"+e.borderRadius+"px"),t.push("-o-border-radius:"+e.borderRadius+"px"));var n=e.textStyle;n&&(n.color&&t.push("color:"+n.color),n.decoration&&t.push("text-decoration:"+n.decoration),n.align&&t.push("text-align:"+n.align),n.fontFamily&&t.push("font-family:"+n.fontFamily),n.fontSize&&t.push("font-size:"+n.fontSize+"px"),n.fontSize&&t.push("line-height:"+Math.round(3*n.fontSize/2)+"px"),n.fontStyle&&t.push("font-style:"+n.fontStyle),n.fontWeight&&t.push("font-weight:"+n.fontWeight));var a=e.padding;return null!=a&&(a=this.reformCssArray(a),t.push("padding:"+a[0]+"px "+a[1]+"px "+a[2]+"px "+a[3]+"px")),t=t.join(";")+";"},__hide:function(){this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId=-1,this._tDom&&(this._tDom.style.display="none");var e=!1;this._axisLineShape.invisible||(this._axisLineShape.invisible=!0, +this.zr.modShape(this._axisLineShape.id),e=!0),this._axisShadowShape.invisible||(this._axisShadowShape.invisible=!0,this.zr.modShape(this._axisShadowShape.id),e=!0),this._axisCrossShape.invisible||(this._axisCrossShape.invisible=!0,this.zr.modShape(this._axisCrossShape.id),e=!0),this._lastTipShape&&this._lastTipShape.tipShape.length>0&&(this.zr.delShape(this._lastTipShape.tipShape),this._lastTipShape=!1,this.shapeList.length=2),e&&this.zr.refreshNextFrame(),this.showing=!1},_show:function(e,t,i,n){var a=this._tDom.offsetHeight,o=this._tDom.offsetWidth;e&&("function"==typeof e&&(e=e([t,i])),e instanceof Array&&(t=e[0],i=e[1])),t+o>this._zrWidth&&(t-=o+40),i+a>this._zrHeight&&(i-=a-20),20>i&&(i=0),this._tDom.style.cssText=this._gCssText+this._defaultCssText+(n?n:"")+"left:"+t+"px;top:"+i+"px;",(10>a||10>o)&&setTimeout(this._refixed,20),this.showing=!0},__refixed:function(){if(this._tDom){var e="",t=this._tDom.offsetHeight,i=this._tDom.offsetWidth;this._tDom.offsetLeft+i>this._zrWidth&&(e+="left:"+(this._zrWidth-i-20)+"px;"),this._tDom.offsetTop+t>this._zrHeight&&(e+="top:"+(this._zrHeight-t-10)+"px;"),""!==e&&(this._tDom.style.cssText+=e)}},__tryShow:function(){var e,t;if(this._curTarget){if("island"===this._curTarget._type&&this.option.tooltip.show)return void this._showItemTrigger();var i=l.get(this._curTarget,"series"),n=l.get(this._curTarget,"data");e=this.deepQuery([n,i,this.option],"tooltip.show"),null!=i&&null!=n&&e?(t=this.deepQuery([n,i,this.option],"tooltip.trigger"),"axis"===t?this._showAxisTrigger(i.xAxisIndex,i.yAxisIndex,l.get(this._curTarget,"dataIndex")):this._showItemTrigger()):(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._hidingTicket=setTimeout(this._hide,this._hideDelay))}else this._findPolarTrigger()||this._findAxisTrigger()},_findAxisTrigger:function(){if(!this.component.xAxis||!this.component.yAxis)return void(this._hidingTicket=setTimeout(this._hide,this._hideDelay));for(var e,t,i=this.option.series,n=0,a=i.length;a>n;n++)if("axis"===this.deepQuery([i[n],this.option],"tooltip.trigger"))return e=i[n].xAxisIndex||0,t=i[n].yAxisIndex||0,this.component.xAxis.getAxis(e)&&this.component.xAxis.getAxis(e).type===s.COMPONENT_TYPE_AXIS_CATEGORY?void this._showAxisTrigger(e,t,this._getNearestDataIndex("x",this.component.xAxis.getAxis(e))):this.component.yAxis.getAxis(t)&&this.component.yAxis.getAxis(t).type===s.COMPONENT_TYPE_AXIS_CATEGORY?void this._showAxisTrigger(e,t,this._getNearestDataIndex("y",this.component.yAxis.getAxis(t))):void this._showAxisTrigger(e,t,-1);"cross"===this.option.tooltip.axisPointer.type&&this._showAxisTrigger(-1,-1,-1)},_findPolarTrigger:function(){if(!this.component.polar)return!1;var e,t=m.getX(this._event),i=m.getY(this._event),n=this.component.polar.getNearestIndex([t,i]);return n?(e=n.valueIndex,n=n.polarIndex):n=-1,-1!=n?this._showPolarTrigger(n,e):!1},_getNearestDataIndex:function(e,t){var i=-1,n=m.getX(this._event),a=m.getY(this._event);if("x"===e){for(var o,r,s=this.component.grid.getXend(),l=t.getCoordByIndex(i);s>l&&(r=l,n>=l);)o=l,l=t.getCoordByIndex(++i);return 0>=i?i=0:r-n>=n-o?i-=1:null==t.getNameByIndex(i)&&(i-=1),i}for(var h,V,U=this.component.grid.getY(),l=t.getCoordByIndex(i);l>U&&(h=l,l>=a);)V=l,l=t.getCoordByIndex(++i);return 0>=i?i=0:a-h>=V-a?i-=1:null==t.getNameByIndex(i)&&(i-=1),i},_showAxisTrigger:function(e,t,i){if(!this._event.connectTrigger&&this.messageCenter.dispatch(s.EVENT.TOOLTIP_IN_GRID,this._event,null,this.myChart),null==this.component.xAxis||null==this.component.yAxis||null==e||null==t)return clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),void(this._hidingTicket=setTimeout(this._hide,this._hideDelay));var n,a,o,r,l=this.option.series,h=[],V=[],U="";if("axis"===this.option.tooltip.trigger){if(!this.option.tooltip.show)return;a=this.option.tooltip.formatter,o=this.option.tooltip.position}var d,p,c=-1!=e&&this.component.xAxis.getAxis(e).type===s.COMPONENT_TYPE_AXIS_CATEGORY?"xAxis":-1!=t&&this.component.yAxis.getAxis(t).type===s.COMPONENT_TYPE_AXIS_CATEGORY?"yAxis":!1;if(c){var u="xAxis"==c?e:t;n=this.component[c].getAxis(u);for(var y=0,g=l.length;g>y;y++)this._isSelected(l[y].name)&&l[y][c+"Index"]===u&&"axis"===this.deepQuery([l[y],this.option],"tooltip.trigger")&&(r=this.query(l[y],"tooltip.showContent")||r,a=this.query(l[y],"tooltip.formatter")||a,o=this.query(l[y],"tooltip.position")||o,U+=this._style(this.query(l[y],"tooltip")),null!=l[y].stack&&"xAxis"==c?(h.unshift(l[y]),V.unshift(y)):(h.push(l[y]),V.push(y)));this.messageCenter.dispatch(s.EVENT.TOOLTIP_HOVER,this._event,{seriesIndex:V,dataIndex:i},this.myChart);var b;"xAxis"==c?(d=this.subPixelOptimize(n.getCoordByIndex(i),this._axisLineWidth),p=m.getY(this._event),b=[d,this.component.grid.getY(),d,this.component.grid.getYend()]):(d=m.getX(this._event),p=this.subPixelOptimize(n.getCoordByIndex(i),this._axisLineWidth),b=[this.component.grid.getX(),p,this.component.grid.getXend(),p]),this._styleAxisPointer(h,b[0],b[1],b[2],b[3],n.getGap(),d,p)}else d=m.getX(this._event),p=m.getY(this._event),this._styleAxisPointer(l,this.component.grid.getX(),p,this.component.grid.getXend(),p,0,d,p),i>=0?this._showItemTrigger(!0):(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._tDom.style.display="none");if(h.length>0){if(this._lastItemTriggerId=-1,this._lastDataIndex!=i||this._lastSeriesIndex!=V[0]){this._lastDataIndex=i,this._lastSeriesIndex=V[0];var f,k;if("function"==typeof a){for(var x=[],y=0,g=h.length;g>y;y++)f=h[y].data[i],k=this.getDataFromOption(f,"-"),x.push({seriesIndex:V[y],seriesName:h[y].name||"",series:h[y],dataIndex:i,data:f,name:n.getNameByIndex(i),value:k,0:h[y].name||"",1:n.getNameByIndex(i),2:k,3:f});this._curTicket="axis:"+i,this._tDom.innerHTML=a.call(this.myChart,x,this._curTicket,this._setContent)}else if("string"==typeof a){this._curTicket=0/0,a=a.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}");for(var y=0,g=h.length;g>y;y++)a=a.replace("{a"+y+"}",this._encodeHTML(h[y].name||"")),a=a.replace("{b"+y+"}",this._encodeHTML(n.getNameByIndex(i))),f=h[y].data[i],f=this.getDataFromOption(f,"-"),a=a.replace("{c"+y+"}",f instanceof Array?f:this.numAddCommas(f));this._tDom.innerHTML=a}else{this._curTicket=0/0,a=this._encodeHTML(n.getNameByIndex(i));for(var y=0,g=h.length;g>y;y++)a+="
                              "+this._encodeHTML(h[y].name||"")+" : ",f=h[y].data[i],f=this.getDataFromOption(f,"-"),a+=f instanceof Array?f:this.numAddCommas(f);this._tDom.innerHTML=a}}if(r===!1||!this.option.tooltip.showContent)return;this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(o,d+10,p+10,U)}},_showPolarTrigger:function(e,t){if(null==this.component.polar||null==e||null==t||0>t)return!1;var i,n,a,o=this.option.series,r=[],s=[],l="";if("axis"===this.option.tooltip.trigger){if(!this.option.tooltip.show)return!1;i=this.option.tooltip.formatter,n=this.option.tooltip.position}for(var h=this.option.polar[e].indicator[t].text,V=0,U=o.length;U>V;V++)this._isSelected(o[V].name)&&o[V].polarIndex===e&&"axis"===this.deepQuery([o[V],this.option],"tooltip.trigger")&&(a=this.query(o[V],"tooltip.showContent")||a,i=this.query(o[V],"tooltip.formatter")||i,n=this.query(o[V],"tooltip.position")||n,l+=this._style(this.query(o[V],"tooltip")),r.push(o[V]),s.push(V));if(r.length>0){for(var d,p,c,u=[],V=0,U=r.length;U>V;V++){d=r[V].data;for(var y=0,g=d.length;g>y;y++)p=d[y],this._isSelected(p.name)&&(p=null!=p?p:{name:"",value:{dataIndex:"-"}},c=this.getDataFromOption(p.value[t]),u.push({seriesIndex:s[V],seriesName:r[V].name||"",series:r[V],dataIndex:t,data:p,name:p.name,indicator:h,value:c,0:r[V].name||"",1:p.name,2:c,3:h}))}if(u.length<=0)return;if(this._lastItemTriggerId=-1,this._lastDataIndex!=t||this._lastSeriesIndex!=s[0])if(this._lastDataIndex=t,this._lastSeriesIndex=s[0],"function"==typeof i)this._curTicket="axis:"+t,this._tDom.innerHTML=i.call(this.myChart,u,this._curTicket,this._setContent);else if("string"==typeof i){i=i.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{d}","{d0}");for(var V=0,U=u.length;U>V;V++)i=i.replace("{a"+V+"}",this._encodeHTML(u[V].seriesName)),i=i.replace("{b"+V+"}",this._encodeHTML(u[V].name)),i=i.replace("{c"+V+"}",this.numAddCommas(u[V].value)),i=i.replace("{d"+V+"}",this._encodeHTML(u[V].indicator));this._tDom.innerHTML=i}else{i=this._encodeHTML(u[0].name)+"
                              "+this._encodeHTML(u[0].indicator)+" : "+this.numAddCommas(u[0].value);for(var V=1,U=u.length;U>V;V++)i+="
                              "+this._encodeHTML(u[V].name)+"
                              ",i+=this._encodeHTML(u[V].indicator)+" : "+this.numAddCommas(u[V].value);this._tDom.innerHTML=i}if(a===!1||!this.option.tooltip.showContent)return;return this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(n,m.getX(this._event),m.getY(this._event),l),!0}},_showItemTrigger:function(e){if(this._curTarget){var t,i,n,a=l.get(this._curTarget,"series"),o=l.get(this._curTarget,"seriesIndex"),r=l.get(this._curTarget,"data"),h=l.get(this._curTarget,"dataIndex"),V=l.get(this._curTarget,"name"),U=l.get(this._curTarget,"value"),d=l.get(this._curTarget,"special"),p=l.get(this._curTarget,"special2"),c=[r,a,this.option],u="";if("island"!=this._curTarget._type){var y=e?"axis":"item";this.option.tooltip.trigger===y&&(t=this.option.tooltip.formatter,i=this.option.tooltip.position),this.query(a,"tooltip.trigger")===y&&(n=this.query(a,"tooltip.showContent")||n,t=this.query(a,"tooltip.formatter")||t,i=this.query(a,"tooltip.position")||i,u+=this._style(this.query(a,"tooltip"))),n=this.query(r,"tooltip.showContent")||n,t=this.query(r,"tooltip.formatter")||t,i=this.query(r,"tooltip.position")||i,u+=this._style(this.query(r,"tooltip"))}else this._lastItemTriggerId=0/0,n=this.deepQuery(c,"tooltip.showContent"),t=this.deepQuery(c,"tooltip.islandFormatter"),i=this.deepQuery(c,"tooltip.islandPosition");this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId!==this._curTarget.id&&(this._lastItemTriggerId=this._curTarget.id,"function"==typeof t?(this._curTicket=(a.name||"")+":"+h,this._tDom.innerHTML=t.call(this.myChart,{seriesIndex:o,seriesName:a.name||"",series:a,dataIndex:h,data:r,name:V,value:U,percent:d,indicator:d,value2:p,indicator2:p,0:a.name||"",1:V,2:U,3:d,4:p,5:r,6:o,7:h},this._curTicket,this._setContent)):"string"==typeof t?(this._curTicket=0/0,t=t.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}"),t=t.replace("{a0}",this._encodeHTML(a.name||"")).replace("{b0}",this._encodeHTML(V)).replace("{c0}",U instanceof Array?U:this.numAddCommas(U)),t=t.replace("{d}","{d0}").replace("{d0}",d||""),t=t.replace("{e}","{e0}").replace("{e0}",l.get(this._curTarget,"special2")||""),this._tDom.innerHTML=t):(this._curTicket=0/0,this._tDom.innerHTML=a.type===s.CHART_TYPE_RADAR&&d?this._itemFormatter.radar.call(this,a,V,U,d):a.type===s.CHART_TYPE_EVENTRIVER?this._itemFormatter.eventRiver.call(this,a,V,U,r):""+(null!=a.name?this._encodeHTML(a.name)+"
                              ":"")+(""===V?"":this._encodeHTML(V)+" : ")+(U instanceof Array?U:this.numAddCommas(U))));var g=m.getX(this._event),b=m.getY(this._event);this.deepQuery(c,"tooltip.axisPointer.show")&&this.component.grid?this._styleAxisPointer([a],this.component.grid.getX(),b,this.component.grid.getXend(),b,0,g,b):this._hide(),n!==!1&&this.option.tooltip.showContent&&(this.hasAppend||(this._tDom.style.left=this._zrWidth/2+"px",this._tDom.style.top=this._zrHeight/2+"px",this.dom.firstChild.appendChild(this._tDom),this.hasAppend=!0),this._show(i,g+20,b-20,u))}},_itemFormatter:{radar:function(e,t,i,n){var a="";a+=this._encodeHTML(""===t?e.name||"":t),a+=""===a?"":"
                              ";for(var o=0;o";return a},chord:function(e,t,i,n,a){if(null==a)return this._encodeHTML(t)+" ("+this.numAddCommas(i)+")";var o=this._encodeHTML(t),r=this._encodeHTML(n);return""+(null!=e.name?this._encodeHTML(e.name)+"
                              ":"")+o+" -> "+r+" ("+this.numAddCommas(i)+")
                              "+r+" -> "+o+" ("+this.numAddCommas(a)+")"},eventRiver:function(e,t,i,n){var a="";a+=this._encodeHTML(""===e.name?"":e.name+" : "),a+=this._encodeHTML(t),a+=""===a?"":"
                              ",n=n.evolution;for(var o=0,r=n.length;r>o;o++)a+='
                              ',n[o].detail&&(n[o].detail.img&&(a+=''),a+='
                              '+n[o].time+"
                              ",a+='',a+=n[o].detail.text+"
                              ",a+="
                              ");return a}},_styleAxisPointer:function(e,t,i,n,a,o,r,s){if(e.length>0){var l,h,m=this.option.tooltip.axisPointer,V=m.type,U={line:{},cross:{},shadow:{}};for(var d in U)U[d].color=m[d+"Style"].color,U[d].width=m[d+"Style"].width,U[d].type=m[d+"Style"].type;for(var p=0,c=e.length;c>p;p++)l=e[p],h=this.query(l,"tooltip.axisPointer.type"),V=h||V,h&&(U[h].color=this.query(l,"tooltip.axisPointer."+h+"Style.color")||U[h].color,U[h].width=this.query(l,"tooltip.axisPointer."+h+"Style.width")||U[h].width,U[h].type=this.query(l,"tooltip.axisPointer."+h+"Style.type")||U[h].type);if("line"===V){var u=U.line.width,y=t==n;this._axisLineShape.style={xStart:y?this.subPixelOptimize(t,u):t,yStart:y?i:this.subPixelOptimize(i,u),xEnd:y?this.subPixelOptimize(n,u):n,yEnd:y?a:this.subPixelOptimize(a,u),strokeColor:U.line.color,lineWidth:u,lineType:U.line.type},this._axisLineShape.invisible=!1,this.zr.modShape(this._axisLineShape.id)}else if("cross"===V){var g=U.cross.width;this._axisCrossShape.style={brushType:"stroke",rect:this.component.grid.getArea(),x:this.subPixelOptimize(r,g),y:this.subPixelOptimize(s,g),text:("( "+this.component.xAxis.getAxis(0).getValueFromCoord(r)+" , "+this.component.yAxis.getAxis(0).getValueFromCoord(s)+" )").replace(" , "," ").replace(" , "," "),textPosition:"specific",strokeColor:U.cross.color,lineWidth:g,lineType:U.cross.type},this.component.grid.getXend()-r>100?(this._axisCrossShape.style.textAlign="left",this._axisCrossShape.style.textX=r+10):(this._axisCrossShape.style.textAlign="right",this._axisCrossShape.style.textX=r-10),s-this.component.grid.getY()>50?(this._axisCrossShape.style.textBaseline="bottom",this._axisCrossShape.style.textY=s-10):(this._axisCrossShape.style.textBaseline="top",this._axisCrossShape.style.textY=s+10),this._axisCrossShape.invisible=!1,this.zr.modShape(this._axisCrossShape.id)}else"shadow"===V&&((null==U.shadow.width||"auto"===U.shadow.width||isNaN(U.shadow.width))&&(U.shadow.width=o),t===n?Math.abs(this.component.grid.getX()-t)<2?(U.shadow.width/=2,t=n+=U.shadow.width/2):Math.abs(this.component.grid.getXend()-t)<2&&(U.shadow.width/=2,t=n-=U.shadow.width/2):i===a&&(Math.abs(this.component.grid.getY()-i)<2?(U.shadow.width/=2,i=a+=U.shadow.width/2):Math.abs(this.component.grid.getYend()-i)<2&&(U.shadow.width/=2,i=a-=U.shadow.width/2)),this._axisShadowShape.style={xStart:t,yStart:i,xEnd:n,yEnd:a,strokeColor:U.shadow.color,lineWidth:U.shadow.width},this._axisShadowShape.invisible=!1,this.zr.modShape(this._axisShadowShape.id));this.zr.refreshNextFrame()}},__onmousemove:function(e){if(clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),!this._mousein||!this._enterable){var t=e.target,i=m.getX(e.event),n=m.getY(e.event);if(t){this._curTarget=t,this._event=e.event,this._event.zrenderX=i,this._event.zrenderY=n;var a;if(this._needAxisTrigger&&this.component.polar&&-1!=(a=this.component.polar.isInside([i,n])))for(var o=this.option.series,l=0,h=o.length;h>l;l++)if(o[l].polarIndex===a&&"axis"===this.deepQuery([o[l],this.option],"tooltip.trigger")){this._curTarget=null;break}this._showingTicket=setTimeout(this._tryShow,this._showDelay)}else this._curTarget=!1,this._event=e.event,this._event.zrenderX=i,this._event.zrenderY=n,this._needAxisTrigger&&this.component.grid&&V.isInside(r,this.component.grid.getArea(),i,n)?this._showingTicket=setTimeout(this._tryShow,this._showDelay):this._needAxisTrigger&&this.component.polar&&-1!=this.component.polar.isInside([i,n])?this._showingTicket=setTimeout(this._tryShow,this._showDelay):(!this._event.connectTrigger&&this.messageCenter.dispatch(s.EVENT.TOOLTIP_OUT_GRID,this._event,null,this.myChart),this._hidingTicket=setTimeout(this._hide,this._hideDelay))}},__onglobalout:function(){clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this._hidingTicket=setTimeout(this._hide,this._hideDelay)},__setContent:function(e,t){this._tDom&&(e===this._curTicket&&(this._tDom.innerHTML=t),setTimeout(this._refixed,20))},ontooltipHover:function(e,t){if(!this._lastTipShape||this._lastTipShape&&this._lastTipShape.dataIndex!=e.dataIndex){this._lastTipShape&&this._lastTipShape.tipShape.length>0&&(this.zr.delShape(this._lastTipShape.tipShape),this.shapeList.length=2);for(var i=0,n=t.length;n>i;i++)t[i].zlevel=this.getZlevelBase(),t[i].z=this.getZBase(),t[i].style=p.prototype.getHighlightStyle(t[i].style,t[i].highlightStyle),t[i].draggable=!1,t[i].hoverable=!1,t[i].clickable=!1,t[i].ondragend=null,t[i].ondragover=null,t[i].ondrop=null,this.shapeList.push(t[i]),this.zr.addShape(t[i]);this._lastTipShape={dataIndex:e.dataIndex,tipShape:t}}},ondragend:function(){this._hide()},onlegendSelected:function(e){this._selectedMap=e.selected},_setSelectedMap:function(){this._selectedMap=this.component.legend?d.clone(this.component.legend.getSelectedMap()):{}},_isSelected:function(e){return null!=this._selectedMap[e]?this._selectedMap[e]:!0},showTip:function(e){if(e){var t,i=this.option.series;if(null!=e.seriesIndex)t=e.seriesIndex;else for(var n=e.seriesName,a=0,o=i.length;o>a;a++)if(i[a].name===n){t=a;break}var r=i[t];if(null!=r){var m=this.myChart.chart[r.type],V="axis"===this.deepQuery([r,this.option],"tooltip.trigger");if(m)if(V){var U=e.dataIndex;switch(m.type){case s.CHART_TYPE_LINE:case s.CHART_TYPE_BAR:case s.CHART_TYPE_K:case s.CHART_TYPE_RADAR:if(null==this.component.polar||r.data[0].value.length<=U)return;var d=r.polarIndex||0,p=this.component.polar.getVector(d,U,"max");this._event={zrenderX:p[0],zrenderY:p[1]},this._showPolarTrigger(d,U)}}else{var c,u,y=m.shapeList;switch(m.type){case s.CHART_TYPE_LINE:case s.CHART_TYPE_BAR:case s.CHART_TYPE_K:case s.CHART_TYPE_TREEMAP:case s.CHART_TYPE_SCATTER:for(var U=e.dataIndex,a=0,o=y.length;o>a;a++)if(null==y[a]._mark&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"dataIndex")==U){this._curTarget=y[a],c=y[a].style.x,u=m.type!=s.CHART_TYPE_K?y[a].style.y:y[a].style.y[0];break}break;case s.CHART_TYPE_RADAR:for(var U=e.dataIndex,a=0,o=y.length;o>a;a++)if("polygon"===y[a].type&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"dataIndex")==U){this._curTarget=y[a];var p=this.component.polar.getCenter(r.polarIndex||0);c=p[0],u=p[1];break}break;case s.CHART_TYPE_PIE:for(var g=e.name,a=0,o=y.length;o>a;a++)if("sector"===y[a].type&&l.get(y[a],"seriesIndex")==t&&l.get(y[a],"name")==g){this._curTarget=y[a];var b=this._curTarget.style,f=(b.startAngle+b.endAngle)/2*Math.PI/180;c=this._curTarget.style.x+Math.cos(f)*b.r/1.5,u=this._curTarget.style.y-Math.sin(f)*b.r/1.5;break}break;case s.CHART_TYPE_MAP:for(var g=e.name,k=r.mapType,a=0,o=y.length;o>a;a++)if("text"===y[a].type&&y[a]._mapType===k&&y[a].style._name===g){this._curTarget=y[a],c=this._curTarget.style.x+this._curTarget.position[0],u=this._curTarget.style.y+this._curTarget.position[1];break}break;case s.CHART_TYPE_CHORD:for(var g=e.name,a=0,o=y.length;o>a;a++)if("sector"===y[a].type&&l.get(y[a],"name")==g){this._curTarget=y[a];var b=this._curTarget.style,f=(b.startAngle+b.endAngle)/2*Math.PI/180;return c=this._curTarget.style.x+Math.cos(f)*(b.r-2),u=this._curTarget.style.y-Math.sin(f)*(b.r-2),void this.zr.trigger(h.EVENT.MOUSEMOVE,{zrenderX:c,zrenderY:u})}break;case s.CHART_TYPE_FORCE:for(var g=e.name,a=0,o=y.length;o>a;a++)if("circle"===y[a].type&&l.get(y[a],"name")==g){this._curTarget=y[a],c=this._curTarget.position[0],u=this._curTarget.position[1];break}}null!=c&&null!=u&&(this._event={zrenderX:c,zrenderY:u},this.zr.addHoverShape(this._curTarget),this.zr.refreshHover(),this._showItemTrigger())}}}},hideTip:function(){this._hide()},refresh:function(e){if(this._zrHeight=this.zr.getHeight(),this._zrWidth=this.zr.getWidth(),this._lastTipShape&&this._lastTipShape.tipShape.length>0&&this.zr.delShape(this._lastTipShape.tipShape),this._lastTipShape=!1,this.shapeList.length=2,this._lastDataIndex=-1,this._lastSeriesIndex=-1,this._lastItemTriggerId=-1,e){this.option=e,this.option.tooltip=this.reformOption(this.option.tooltip),this.option.tooltip.textStyle=d.merge(this.option.tooltip.textStyle,this.ecTheme.textStyle),this._needAxisTrigger=!1,"axis"===this.option.tooltip.trigger&&(this._needAxisTrigger=!0);for(var t=this.option.series,i=0,n=t.length;n>i;i++)if("axis"===this.query(t[i],"tooltip.trigger")){this._needAxisTrigger=!0;break}this._showDelay=this.option.tooltip.showDelay,this._hideDelay=this.option.tooltip.hideDelay,this._defaultCssText=this._style(this.option.tooltip),this._setSelectedMap(),this._axisLineWidth=this.option.tooltip.axisPointer.lineStyle.width,this._enterable=this.option.tooltip.enterable,!this._enterable&&this._tDom.className.indexOf(h.elementClassName)<0&&(this._tDom.className+=" "+h.elementClassName)}if(this.showing){var a=this;setTimeout(function(){a.zr.trigger(h.EVENT.MOUSEMOVE,a.zr.handler._event)},50)}},onbeforDispose:function(){this._lastTipShape&&this._lastTipShape.tipShape.length>0&&this.zr.delShape(this._lastTipShape.tipShape),clearTimeout(this._hidingTicket),clearTimeout(this._showingTicket),this.zr.un(h.EVENT.MOUSEMOVE,this._onmousemove),this.zr.un(h.EVENT.GLOBALOUT,this._onglobalout),this.hasAppend&&this.dom.firstChild&&this.dom.firstChild.removeChild(this._tDom),this._tDom=null},_encodeHTML:function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}},d.inherits(t,i),e("../component").define("tooltip",t),t}),i("echarts/component/legend",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","zrender/shape/Sector","../util/shape/Icon","../util/shape/Candle","../config","zrender/tool/util","zrender/tool/area","../component"],function(e){function t(e,t,n,a,o){if(!this.query(a,"legend.data"))return void console.error("option.legend.data has not been defined.");i.call(this,e,t,n,a,o);var r=this;r._legendSelected=function(e){r.__legendSelected(e)},r._dispatchHoverLink=function(e){return r.__dispatchHoverLink(e)},this._colorIndex=0,this._colorMap={},this._selectedMap={},this._hasDataMap={},this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("zrender/shape/Sector"),r=e("../util/shape/Icon"),s=e("../util/shape/Candle"),l=e("../config");l.legend={zlevel:0,z:4,show:!0,orient:"horizontal",x:"center",y:"top",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:20,itemHeight:14,textStyle:{color:"#333"},selectedMode:!0};var h=e("zrender/tool/util"),m=e("zrender/tool/area");t.prototype={type:l.COMPONENT_TYPE_LEGEND,_buildShape:function(){if(this.legendOption.show){this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildItem:function(){var e,t,i,a,o,s,l,V,U=this.legendOption.data,d=U.length,p=this.legendOption.textStyle,c=this.zr.getWidth(),u=this.zr.getHeight(),y=this._itemGroupLocation.x,g=this._itemGroupLocation.y,b=this.legendOption.itemWidth,f=this.legendOption.itemHeight,k=this.legendOption.itemGap;"vertical"===this.legendOption.orient&&"right"===this.legendOption.x&&(y=this._itemGroupLocation.x+this._itemGroupLocation.width-b);for(var x=0;d>x;x++)o=h.merge(U[x].textStyle||{},p),s=this.getFont(o),e=this._getName(U[x]),l=this._getFormatterName(e),""!==e?(t=U[x].icon||this._getSomethingByName(e).type,V=this.getColor(e),"horizontal"===this.legendOption.orient?200>c-y&&b+5+m.getTextWidth(l,s)+(x===d-1||""===U[x+1]?0:k)>=c-y&&(y=this._itemGroupLocation.x,g+=f+k):200>u-g&&f+(x===d-1||""===U[x+1]?0:k)>=u-g&&("right"===this.legendOption.x?y-=this._itemGroupLocation.maxWidth+k:y+=this._itemGroupLocation.maxWidth+k,g=this._itemGroupLocation.y),i=this._getItemShapeByType(y,g,b,f,this._selectedMap[e]&&this._hasDataMap[e]?V:"#ccc",t,V),i._name=e,i=new r(i),a={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:y+b+5,y:g+f/2,color:this._selectedMap[e]?"auto"===o.color?V:o.color:"#ccc",text:l,textFont:s,textBaseline:"middle"},highlightStyle:{color:V,brushType:"fill"},hoverable:!!this.legendOption.selectedMode,clickable:!!this.legendOption.selectedMode},"vertical"===this.legendOption.orient&&"right"===this.legendOption.x&&(a.style.x-=b+10,a.style.textAlign="right"),a._name=e,a=new n(a),this.legendOption.selectedMode&&(i.onclick=a.onclick=this._legendSelected,i.onmouseover=a.onmouseover=this._dispatchHoverLink,i.hoverConnect=a.id,a.hoverConnect=i.id),this.shapeList.push(i),this.shapeList.push(a),"horizontal"===this.legendOption.orient?y+=b+5+m.getTextWidth(l,s)+k:g+=f+k):"horizontal"===this.legendOption.orient?(y=this._itemGroupLocation.x,g+=f+k):("right"===this.legendOption.x?y-=this._itemGroupLocation.maxWidth+k:y+=this._itemGroupLocation.maxWidth+k,g=this._itemGroupLocation.y);"horizontal"===this.legendOption.orient&&"center"===this.legendOption.x&&g!=this._itemGroupLocation.y&&this._mLineOptimize()},_getName:function(e){return"undefined"!=typeof e.name?e.name:e},_getFormatterName:function(e){var t,i=this.legendOption.formatter;return t="function"==typeof i?i.call(this.myChart,e):"string"==typeof i?i.replace("{name}",e):e},_getFormatterNameFromData:function(e){var t=this._getName(e);return this._getFormatterName(t)},_mLineOptimize:function(){for(var e=[],t=this._itemGroupLocation.x,i=2,n=this.shapeList.length;n>i;i++)this.shapeList[i].style.x===t?e.push((this._itemGroupLocation.width-(this.shapeList[i-1].style.x+m.getTextWidth(this.shapeList[i-1].style.text,this.shapeList[i-1].style.textFont)-t))/2):i===n-1&&e.push((this._itemGroupLocation.width-(this.shapeList[i].style.x+m.getTextWidth(this.shapeList[i].style.text,this.shapeList[i].style.textFont)-t))/2);for(var a=-1,i=1,n=this.shapeList.length;n>i;i++)this.shapeList[i].style.x===t&&a++,0!==e[a]&&(this.shapeList[i].style.x+=e[a])},_buildBackground:function(){var e=this.reformCssArray(this.legendOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.legendOption.borderWidth?"fill":"both",color:this.legendOption.backgroundColor,strokeColor:this.legendOption.borderColor,lineWidth:this.legendOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this.legendOption.data,t=e.length,i=this.legendOption.itemGap,n=this.legendOption.itemWidth+5,a=this.legendOption.itemHeight,o=this.legendOption.textStyle,r=this.getFont(o),s=0,l=0,V=this.reformCssArray(this.legendOption.padding),U=this.zr.getWidth()-V[1]-V[3],d=this.zr.getHeight()-V[0]-V[2],p=0,c=0;if("horizontal"===this.legendOption.orient){l=a;for(var u=0;t>u;u++)if(""!==this._getName(e[u])){var y=m.getTextWidth(this._getFormatterNameFromData(e[u]),e[u].textStyle?this.getFont(h.merge(e[u].textStyle||{},o)):r);p+n+y+i>U?(p-=i,s=Math.max(s,p),l+=a+i,p=0):(p+=n+y+i,s=Math.max(s,p-i))}else p-=i,s=Math.max(s,p),l+=a+i,p=0}else{for(var u=0;t>u;u++)c=Math.max(c,m.getTextWidth(this._getFormatterNameFromData(e[u]),e[u].textStyle?this.getFont(h.merge(e[u].textStyle||{},o)):r));c+=n,s=c;for(var u=0;t>u;u++)""!==this._getName(e[u])?p+a+i>d?(s+=c+i,p-=i,l=Math.max(l,p),p=0):(p+=a+i,l=Math.max(l,p-i)):(s+=c+i,p-=i,l=Math.max(l,p),p=0)}U=this.zr.getWidth(),d=this.zr.getHeight();var g;switch(this.legendOption.x){case"center":g=Math.floor((U-s)/2);break;case"left":g=V[3]+this.legendOption.borderWidth;break;case"right":g=U-s-V[1]-V[3]-2*this.legendOption.borderWidth;break;default:g=this.parsePercent(this.legendOption.x,U)}var b;switch(this.legendOption.y){case"top":b=V[0]+this.legendOption.borderWidth;break;case"bottom":b=d-l-V[0]-V[2]-2*this.legendOption.borderWidth;break;case"center":b=Math.floor((d-l)/2);break;default:b=this.parsePercent(this.legendOption.y,d)}return{x:g,y:b,width:s,height:l,maxWidth:c}},_getSomethingByName:function(e){for(var t,i=this.option.series,n=0,a=i.length;a>n;n++){if(i[n].name===e)return{type:i[n].type,series:i[n],seriesIndex:n,data:null,dataIndex:-1};if(i[n].type===l.CHART_TYPE_PIE||i[n].type===l.CHART_TYPE_RADAR||i[n].type===l.CHART_TYPE_CHORD||i[n].type===l.CHART_TYPE_FORCE||i[n].type===l.CHART_TYPE_FUNNEL||i[n].type===l.CHART_TYPE_TREEMAP){t=i[n].categories||i[n].data||i[n].nodes;for(var o=0,r=t.length;r>o;o++)if(t[o].name===e)return{type:i[n].type,series:i[n],seriesIndex:n,data:t[o],dataIndex:o}}}return{type:"bar",series:null,seriesIndex:-1,data:null,dataIndex:-1}},_getItemShapeByType:function(e,t,i,n,a,o,r){var s,h="#ccc"===a?r:a,m={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{iconType:"legendicon"+o,x:e,y:t,width:i,height:n,color:a,strokeColor:a,lineWidth:2},highlightStyle:{color:h,strokeColor:h,lineWidth:1},hoverable:this.legendOption.selectedMode,clickable:this.legendOption.selectedMode};if(o.match("image")){var s=o.replace(new RegExp("^image:\\/\\/"),"");o="image"}switch(o){case"line":m.style.brushType="stroke",m.highlightStyle.lineWidth=3;break;case"radar":case"venn":case"tree":case"treemap":case"scatter":m.highlightStyle.lineWidth=3;break;case"k":m.style.brushType="both",m.highlightStyle.lineWidth=3,m.highlightStyle.color=m.style.color=this.deepQuery([this.ecTheme,l],"k.itemStyle.normal.color")||"#fff",m.style.strokeColor="#ccc"!=a?this.deepQuery([this.ecTheme,l],"k.itemStyle.normal.lineStyle.color")||"#ff3200":a;break;case"image":m.style.iconType="image",m.style.image=s,"#ccc"===a&&(m.style.opacity=.5)}return m},__legendSelected:function(e){var t=e.target._name;if("single"===this.legendOption.selectedMode)for(var i in this._selectedMap)this._selectedMap[i]=!1;this._selectedMap[t]=!this._selectedMap[t],this.messageCenter.dispatch(l.EVENT.LEGEND_SELECTED,e.event,{selected:this._selectedMap,target:t},this.myChart)},__dispatchHoverLink:function(e){this.messageCenter.dispatch(l.EVENT.LEGEND_HOVERLINK,e.event,{target:e.target._name},this.myChart)},refresh:function(e){if(e){this.option=e||this.option,this.option.legend=this.reformOption(this.option.legend),this.legendOption=this.option.legend;var t,i,n,a,o=this.legendOption.data||[];if(this.legendOption.selected)for(var r in this.legendOption.selected)this._selectedMap[r]="undefined"!=typeof this._selectedMap[r]?this._selectedMap[r]:this.legendOption.selected[r];for(var s=0,h=o.length;h>s;s++)t=this._getName(o[s]),""!==t&&(i=this._getSomethingByName(t),i.series?(this._hasDataMap[t]=!0,a=!i.data||i.type!==l.CHART_TYPE_PIE&&i.type!==l.CHART_TYPE_FORCE&&i.type!==l.CHART_TYPE_FUNNEL?[i.series]:[i.data,i.series],n=this.getItemStyleColor(this.deepQuery(a,"itemStyle.normal.color"),i.seriesIndex,i.dataIndex,i.data),n&&i.type!=l.CHART_TYPE_K&&this.setColor(t,n),this._selectedMap[t]=null!=this._selectedMap[t]?this._selectedMap[t]:!0):this._hasDataMap[t]=!1)}this.clear(),this._buildShape()},getRelatedAmount:function(e){for(var t,i=0,n=this.option.series,a=0,o=n.length;o>a;a++)if(n[a].name===e&&i++,n[a].type===l.CHART_TYPE_PIE||n[a].type===l.CHART_TYPE_RADAR||n[a].type===l.CHART_TYPE_CHORD||n[a].type===l.CHART_TYPE_FORCE||n[a].type===l.CHART_TYPE_FUNNEL){t=n[a].type!=l.CHART_TYPE_FORCE?n[a].data:n[a].categories;for(var r=0,s=t.length;s>r;r++)t[r].name===e&&"-"!=t[r].value&&i++}return i},setColor:function(e,t){this._colorMap[e]=t},getColor:function(e){return this._colorMap[e]||(this._colorMap[e]=this.zr.getColor(this._colorIndex++)),this._colorMap[e]},hasColor:function(e){return this._colorMap[e]?this._colorMap[e]:!1},add:function(e,t){ +for(var i=this.legendOption.data,n=0,a=i.length;a>n;n++)if(this._getName(i[n])===e)return;this.legendOption.data.push(e),this.setColor(e,t),this._selectedMap[e]=!0,this._hasDataMap[e]=!0},del:function(e){for(var t=this.legendOption.data,i=0,n=t.length;n>i;i++)if(this._getName(t[i])===e)return this.legendOption.data.splice(i,1)},getItemShape:function(e){if(null!=e)for(var t,i=0,n=this.shapeList.length;n>i;i++)if(t=this.shapeList[i],t._name===e&&"text"!=t.type)return t},setItemShape:function(e,t){for(var i,n=0,a=this.shapeList.length;a>n;n++)i=this.shapeList[n],i._name===e&&"text"!=i.type&&(this._selectedMap[e]||(t.style.color="#ccc",t.style.strokeColor="#ccc"),this.zr.modShape(i.id,t))},isSelected:function(e){return"undefined"!=typeof this._selectedMap[e]?this._selectedMap[e]:!0},getSelectedMap:function(){return this._selectedMap},setSelected:function(e,t){if("single"===this.legendOption.selectedMode)for(var i in this._selectedMap)this._selectedMap[i]=!1;this._selectedMap[e]=t,this.messageCenter.dispatch(l.EVENT.LEGEND_SELECTED,null,{selected:this._selectedMap,target:e},this.myChart)},onlegendSelected:function(e,t){var i=e.selected;for(var n in i)this._selectedMap[n]!=i[n]&&(t.needRefresh=!0),this._selectedMap[n]=i[n]}};var V={line:function(e,t){var i=t.height/2;e.moveTo(t.x,t.y+i),e.lineTo(t.x+t.width,t.y+i)},pie:function(e,t){var i=t.x,n=t.y,a=t.width,r=t.height;o.prototype.buildPath(e,{x:i+a/2,y:n+r+2,r:r,r0:6,startAngle:45,endAngle:135})},eventRiver:function(e,t){var i=t.x,n=t.y,a=t.width,o=t.height;e.moveTo(i,n+o),e.bezierCurveTo(i+a,n+o,i,n+4,i+a,n+4),e.lineTo(i+a,n),e.bezierCurveTo(i,n,i+a,n+o-4,i,n+o-4),e.lineTo(i,n+o)},k:function(e,t){var i=t.x,n=t.y,a=t.width,o=t.height;s.prototype.buildPath(e,{x:i+a/2,y:[n+1,n+1,n+o-6,n+o],width:a-6})},bar:function(e,t){var i=t.x,n=t.y+1,a=t.width,o=t.height-2,r=3;e.moveTo(i+r,n),e.lineTo(i+a-r,n),e.quadraticCurveTo(i+a,n,i+a,n+r),e.lineTo(i+a,n+o-r),e.quadraticCurveTo(i+a,n+o,i+a-r,n+o),e.lineTo(i+r,n+o),e.quadraticCurveTo(i,n+o,i,n+o-r),e.lineTo(i,n+r),e.quadraticCurveTo(i,n,i+r,n)},force:function(e,t){r.prototype.iconLibrary.circle(e,t)},radar:function(e,t){var i=6,n=t.x+t.width/2,a=t.y+t.height/2,o=t.height/2,r=2*Math.PI/i,s=-Math.PI/2,l=n+o*Math.cos(s),h=a+o*Math.sin(s);e.moveTo(l,h),s+=r;for(var m=0,V=i-1;V>m;m++)e.lineTo(n+o*Math.cos(s),a+o*Math.sin(s)),s+=r;e.lineTo(l,h)}};V.chord=V.pie,V.map=V.bar;for(var U in V)r.prototype.iconLibrary["legendicon"+U]=V[U];return h.inherits(t,i),e("../component").define("legend",t),t}),i("echarts/util/ecData",[],function(){function e(e,t,i,n,a,o,r,s){var l;return"undefined"!=typeof n&&(l=null==n.value?n:n.value),e._echartsData={_series:t,_seriesIndex:i,_data:n,_dataIndex:a,_name:o,_value:l,_special:r,_special2:s},e._echartsData}function t(e,t){var i=e._echartsData;if(!t)return i;switch(t){case"series":case"seriesIndex":case"data":case"dataIndex":case"name":case"value":case"special":case"special2":return i&&i["_"+t]}return null}function i(e,t,i){switch(e._echartsData=e._echartsData||{},t){case"series":case"seriesIndex":case"data":case"dataIndex":case"name":case"value":case"special":case"special2":e._echartsData["_"+t]=i}}function n(e,t){t._echartsData={_series:e._echartsData._series,_seriesIndex:e._echartsData._seriesIndex,_data:e._echartsData._data,_dataIndex:e._echartsData._dataIndex,_name:e._echartsData._name,_value:e._echartsData._value,_special:e._echartsData._special,_special2:e._echartsData._special2}}return{pack:e,set:i,get:t,clone:n}}),i("echarts/chart",[],function(){var e={},t={};return e.define=function(i,n){return t[i]=n,e},e.get=function(e){return t[e]},e}),i("zrender/tool/color",["require","../tool/util"],function(e){function t(e){D=e}function i(){D=N}function n(e,t){return e=0|e,t=t||D,t[e%t.length]}function a(e){B=e}function o(){H=B}function r(){return B}function s(e,t,i,n,a,o,r){O||(O=P.getContext());for(var s=O.createRadialGradient(e,t,i,n,a,o),l=0,h=r.length;h>l;l++)s.addColorStop(r[l][0],r[l][1]);return s.__nonRecursion=!0,s}function l(e,t,i,n,a){O||(O=P.getContext());for(var o=O.createLinearGradient(e,t,i,n),r=0,s=a.length;s>r;r++)o.addColorStop(a[r][0],a[r][1]);return o.__nonRecursion=!0,o}function h(e,t,i){e=p(e),t=p(t),e=I(e),t=I(t);for(var n=[],a=(t[0]-e[0])/i,o=(t[1]-e[1])/i,r=(t[2]-e[2])/i,s=(t[3]-e[3])/i,l=0,h=e[0],m=e[1],U=e[2],d=e[3];i>l;l++)n[l]=V([S(Math.floor(h),[0,255]),S(Math.floor(m),[0,255]),S(Math.floor(U),[0,255]),d.toFixed(4)-0],"rgba"),h+=a,m+=o,U+=r,d+=s;return h=t[0],m=t[1],U=t[2],d=t[3],n[l]=V([h,m,U,d],"rgba"),n}function m(e,t){var i=[],n=e.length;if(void 0===t&&(t=20),1===n)i=h(e[0],e[0],t);else if(n>1)for(var a=0,o=n-1;o>a;a++){var r=h(e[a],e[a+1],t);o-1>a&&r.pop(),i=i.concat(r)}return i}function V(e,t){if(t=t||"rgb",e&&(3===e.length||4===e.length)){if(e=C(e,function(e){return e>1?Math.ceil(e):e}),t.indexOf("hex")>-1)return"#"+((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1);if(t.indexOf("hs")>-1){var i=C(e.slice(1,3),function(e){return e+"%"});e[1]=i[0],e[2]=i[1]}return t.indexOf("a")>-1?(3===e.length&&e.push(1),e[3]=S(e[3],[0,1]),t+"("+e.slice(0,4).join(",")+")"):t+"("+e.slice(0,3).join(",")+")"}}function U(e){e=L(e),e.indexOf("rgba")<0&&(e=p(e));var t=[],i=0;return e.replace(/[\d.]+/g,function(e){e=3>i?0|e:+e,t[i++]=e}),t}function d(e,t){if(!E(e))return e;var i=I(e),n=i[3];return"undefined"==typeof n&&(n=1),e.indexOf("hsb")>-1?i=F(i):e.indexOf("hsl")>-1&&(i=T(i)),t.indexOf("hsb")>-1||t.indexOf("hsv")>-1?i=A(i):t.indexOf("hsl")>-1&&(i=M(i)),i[3]=n,V(i,t)}function p(e){return d(e,"rgba")}function c(e){return d(e,"rgb")}function u(e){return d(e,"hex")}function y(e){return d(e,"hsva")}function g(e){return d(e,"hsv")}function b(e){return d(e,"hsba")}function f(e){return d(e,"hsb")}function k(e){return d(e,"hsla")}function x(e){return d(e,"hsl")}function _(e){for(var t in G)if(u(G[t])===u(e))return t;return null}function L(e){return String(e).replace(/\s+/g,"")}function W(e){if(G[e]&&(e=G[e]),e=L(e),e=e.replace(/hsv/i,"hsb"),/^#[\da-f]{3}$/i.test(e)){e=parseInt(e.slice(1),16);var t=(3840&e)<<8,i=(240&e)<<4,n=15&e;e="#"+((1<<24)+(t<<4)+t+(i<<4)+i+(n<<4)+n).toString(16).slice(1)}return e}function X(e,t){if(!E(e))return e;var i=t>0?1:-1;"undefined"==typeof t&&(t=0),t=Math.abs(t)>1?1:Math.abs(t),e=c(e);for(var n=I(e),a=0;3>a;a++)n[a]=1===i?n[a]*(1-t)|0:(255-n[a])*t+n[a]|0;return"rgb("+n.join(",")+")"}function v(e){if(!E(e))return e;var t=I(p(e));return t=C(t,function(e){return 255-e}),V(t,"rgb")}function w(e,t,i){if(!E(e)||!E(t))return e;"undefined"==typeof i&&(i=.5),i=1-S(i,[0,1]);for(var n=2*i-1,a=I(p(e)),o=I(p(t)),r=a[3]-o[3],s=((n*r===-1?n:(n+r)/(1+n*r))+1)/2,l=1-s,h=[],m=0;3>m;m++)h[m]=a[m]*s+o[m]*l;var U=a[3]*i+o[3]*(1-i);return U=Math.max(0,Math.min(1,U)),1===a[3]&&1===o[3]?V(h,"rgb"):(h[3]=U,V(h,"rgba"))}function K(){return"#"+(Math.random().toString(16)+"0000").slice(2,8)}function I(e){e=W(e);var t=e.match(R);if(null===t)throw new Error("The color format error");var i,n,a,o=[];if(t[2])i=t[2].replace("#","").split(""),a=[i[0]+i[1],i[2]+i[3],i[4]+i[5]],o=C(a,function(e){return S(parseInt(e,16),[0,255])});else if(t[4]){var r=t[4].split(",");n=r[3],a=r.slice(0,3),o=C(a,function(e){return e=Math.floor(e.indexOf("%")>0?2.55*parseInt(e,0):e),S(e,[0,255])}),"undefined"!=typeof n&&o.push(S(parseFloat(n),[0,1]))}else if(t[5]||t[6]){var s=(t[5]||t[6]).split(","),l=parseInt(s[0],0)/360,h=s[1],m=s[2];n=s[3],o=C([h,m],function(e){return S(parseFloat(e)/100,[0,1])}),o.unshift(l),"undefined"!=typeof n&&o.push(S(parseFloat(n),[0,1]))}return o}function J(e,t){if(!E(e))return e;null===t&&(t=1);var i=I(p(e));return i[3]=S(Number(t).toFixed(4),[0,1]),V(i,"rgba")}function C(e,t){if("function"!=typeof t)throw new TypeError;for(var i=e?e.length:0,n=0;i>n;n++)e[n]=t(e[n]);return e}function S(e,t){return e<=t[0]?e=t[0]:e>=t[1]&&(e=t[1]),e}function E(e){return e instanceof Array||"string"==typeof e}function F(e){var t,i,n,a=e[0],o=e[1],r=e[2];if(0===o)t=255*r,i=255*r,n=255*r;else{var s=6*a;6===s&&(s=0);var l=0|s,h=r*(1-o),m=r*(1-o*(s-l)),V=r*(1-o*(1-(s-l))),U=0,d=0,p=0;0===l?(U=r,d=V,p=h):1===l?(U=m,d=r,p=h):2===l?(U=h,d=r,p=V):3===l?(U=h,d=m,p=r):4===l?(U=V,d=h,p=r):(U=r,d=h,p=m),t=255*U,i=255*d,n=255*p}return[t,i,n]}function T(e){var t,i,n,a=e[0],o=e[1],r=e[2];if(0===o)t=255*r,i=255*r,n=255*r;else{var s;s=.5>r?r*(1+o):r+o-o*r;var l=2*r-s;t=255*z(l,s,a+1/3),i=255*z(l,s,a),n=255*z(l,s,a-1/3)}return[t,i,n]}function z(e,t,i){return 0>i&&(i+=1),i>1&&(i-=1),1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+(t-e)*(2/3-i)*6:e}function A(e){var t,i,n=e[0]/255,a=e[1]/255,o=e[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r,h=s;if(0===l)t=0,i=0;else{i=l/s;var m=((s-n)/6+l/2)/l,V=((s-a)/6+l/2)/l,U=((s-o)/6+l/2)/l;n===s?t=U-V:a===s?t=1/3+m-U:o===s&&(t=2/3+V-m),0>t&&(t+=1),t>1&&(t-=1)}return t=360*t,i=100*i,h=100*h,[t,i,h]}function M(e){var t,i,n=e[0]/255,a=e[1]/255,o=e[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r,h=(s+r)/2;if(0===l)t=0,i=0;else{i=.5>h?l/(s+r):l/(2-s-r);var m=((s-n)/6+l/2)/l,V=((s-a)/6+l/2)/l,U=((s-o)/6+l/2)/l;n===s?t=U-V:a===s?t=1/3+m-U:o===s&&(t=2/3+V-m),0>t&&(t+=1),t>1&&(t-=1)}return t=360*t,i=100*i,h=100*h,[t,i,h]}var O,P=e("../tool/util"),D=["#ff9277"," #dddd00"," #ffc877"," #bbe3ff"," #d5ffbb","#bbbbff"," #ddb000"," #b0dd00"," #e2bbff"," #ffbbe3","#ff7777"," #ff9900"," #83dd00"," #77e3ff"," #778fff","#c877ff"," #ff77ab"," #ff6600"," #aa8800"," #77c7ff","#ad77ff"," #ff77ff"," #dd0083"," #777700"," #00aa00","#0088aa"," #8400dd"," #aa0088"," #dd0000"," #772e00"],N=D,B="rgba(255,255,0,0.5)",H=B,R=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,G={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightslategrey:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"};return{customPalette:t,resetPalette:i,getColor:n,getHighlightColor:r,customHighlight:a,resetHighlight:o,getRadialGradient:s,getLinearGradient:l,getGradientColors:m,getStepColors:h,reverse:v,mix:w,lift:X,trim:L,random:K,toRGB:c,toRGBA:p,toHex:u,toHSL:x,toHSLA:k,toHSB:f,toHSBA:b,toHSV:g,toHSVA:y,toName:_,toColor:V,toArray:U,alpha:J,getData:I}}),i("echarts/component/timeline",["require","./base","zrender/shape/Rectangle","../util/shape/Icon","../util/shape/Chain","../config","zrender/tool/util","zrender/tool/area","zrender/tool/event","../component"],function(e){function t(e,t,i,a,o){n.call(this,e,t,i,a,o);var r=this;if(r._onclick=function(e){return r.__onclick(e)},r._ondrift=function(e,t){return r.__ondrift(this,e,t)},r._ondragend=function(){return r.__ondragend()},r._setCurrentOption=function(){var e=r.timelineOption;r.currentIndex%=e.data.length;var t=r.options[r.currentIndex]||{};r.myChart._setOption(t,e.notMerge,!0),r.messageCenter.dispatch(s.EVENT.TIMELINE_CHANGED,null,{currentIndex:r.currentIndex,data:null!=e.data[r.currentIndex].name?e.data[r.currentIndex].name:e.data[r.currentIndex]},r.myChart)},r._onFrame=function(){r._setCurrentOption(),r._syncHandleShape(),r.timelineOption.autoPlay&&(r.playTicket=setTimeout(function(){return r.currentIndex+=1,!r.timelineOption.loop&&r.currentIndex>=r.timelineOption.data.length?(r.currentIndex=r.timelineOption.data.length-1,void r.stop()):void r._onFrame()},r.timelineOption.playInterval))},this.setTheme(!1),this.options=this.option.options,this.currentIndex=this.timelineOption.currentIndex%this.timelineOption.data.length,this.timelineOption.notMerge||0===this.currentIndex||(this.options[this.currentIndex]=l.merge(this.options[this.currentIndex],this.options[0])),this.timelineOption.show&&(this._buildShape(),this._syncHandleShape()),this._setCurrentOption(),this.timelineOption.autoPlay){var r=this;this.playTicket=setTimeout(function(){r.play()},null!=this.ecTheme.animationDuration?this.ecTheme.animationDuration:s.animationDuration)}}function i(e,t){var i=2,n=t.x+i,a=t.y+i+2,r=t.width-i,s=t.height-i,l=t.symbol;if("last"===l)e.moveTo(n+r-2,a+s/3),e.lineTo(n+r-2,a),e.lineTo(n+2,a+s/2),e.lineTo(n+r-2,a+s),e.lineTo(n+r-2,a+s/3*2),e.moveTo(n,a),e.lineTo(n,a);else if("next"===l)e.moveTo(n+2,a+s/3),e.lineTo(n+2,a),e.lineTo(n+r-2,a+s/2),e.lineTo(n+2,a+s),e.lineTo(n+2,a+s/3*2),e.moveTo(n,a),e.lineTo(n,a);else if("play"===l)if("stop"===t.status)e.moveTo(n+2,a),e.lineTo(n+r-2,a+s/2),e.lineTo(n+2,a+s),e.lineTo(n+2,a);else{var h="both"===t.brushType?2:3;e.rect(n+2,a,h,s),e.rect(n+r-h-2,a,h,s)}else if(l.match("image")){var m="";m=l.replace(new RegExp("^image:\\/\\/"),""),l=o.prototype.iconLibrary.image,l(e,{x:n,y:a,width:r,height:s,image:m})}}var n=e("./base"),a=e("zrender/shape/Rectangle"),o=e("../util/shape/Icon"),r=e("../util/shape/Chain"),s=e("../config");s.timeline={zlevel:0,z:4,show:!0,type:"time",notMerge:!1,realtime:!0,x:80,x2:80,y2:0,height:50,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,controlPosition:"left",autoPlay:!1,loop:!0,playInterval:2e3,lineStyle:{width:1,color:"#666",type:"dashed"},label:{show:!0,interval:"auto",rotate:0,textStyle:{color:"#333"}},checkpointStyle:{symbol:"auto",symbolSize:"auto",color:"auto",borderColor:"auto",borderWidth:"auto",label:{show:!1,textStyle:{color:"auto"}}},controlStyle:{itemSize:15,itemGap:5,normal:{color:"#333"},emphasis:{color:"#1e90ff"}},symbol:"emptyDiamond",symbolSize:4,currentIndex:0};var l=e("zrender/tool/util"),h=e("zrender/tool/area"),m=e("zrender/tool/event");return t.prototype={type:s.COMPONENT_TYPE_TIMELINE,_buildShape:function(){if(this._location=this._getLocation(),this._buildBackground(),this._buildControl(),this._chainPoint=this._getChainPoint(),this.timelineOption.label.show)for(var e=this._getInterval(),t=0,i=this._chainPoint.length;i>t;t+=e)this._chainPoint[t].showLabel=!0;this._buildChain(),this._buildHandle();for(var t=0,n=this.shapeList.length;n>t;t++)this.zr.addShape(this.shapeList[t])},_getLocation:function(){var e,t=this.timelineOption,i=this.reformCssArray(this.timelineOption.padding),n=this.zr.getWidth(),a=this.parsePercent(t.x,n),o=this.parsePercent(t.x2,n);null==t.width?(e=n-a-o,o=n-o):(e=this.parsePercent(t.width,n),o=a+e);var r,s,l=this.zr.getHeight(),h=this.parsePercent(t.height,l);return null!=t.y?(r=this.parsePercent(t.y,l),s=r+h):(s=l-this.parsePercent(t.y2,l),r=s-h),{x:a+i[3],y:r+i[0],x2:o-i[1],y2:s-i[2],width:e-i[1]-i[3],height:h-i[0]-i[2]}},_getReformedLabel:function(e){var t=this.timelineOption,i=null!=t.data[e].name?t.data[e].name:t.data[e],n=t.data[e].formatter||t.label.formatter;return n&&("function"==typeof n?i=n.call(this.myChart,i):"string"==typeof n&&(i=n.replace("{value}",i))),i},_getInterval:function(){var e=this._chainPoint,t=this.timelineOption,i=t.label.interval;if("auto"===i){var n=t.label.textStyle.fontSize,a=t.data,o=t.data.length;if(o>3){var r,s,l=!1;for(i=0;!l&&o>i;){i++,l=!0;for(var m=i;o>m;m+=i){if(r=e[m].x-e[m-i].x,0!==t.label.rotate)s=n;else if(a[m].textStyle)s=h.getTextWidth(e[m].name,e[m].textFont);else{var V=e[m].name+"",U=(V.match(/\w/g)||"").length,d=V.length-U;s=U*n*2/3+d*n}if(s>r){l=!1;break}}}}else i=1}else i=i-0+1;return i},_getChainPoint:function(){function e(e){return null!=h[e].name?h[e].name:h[e]+""}var t,i=this.timelineOption,n=i.symbol.toLowerCase(),a=i.symbolSize,o=i.label.rotate,r=i.label.textStyle,s=this.getFont(r),h=i.data,m=this._location.x,V=this._location.y+this._location.height/4*3,U=this._location.x2-this._location.x,d=h.length,p=[];if(d>1){var c=U/d;if(c=c>50?50:20>c?5:c,U-=2*c,"number"===i.type)for(var u=0;d>u;u++)p.push(m+c+U/(d-1)*u);else{p[0]=new Date(e(0).replace(/-/g,"/")),p[d-1]=new Date(e(d-1).replace(/-/g,"/"))-p[0];for(var u=1;d>u;u++)p[u]=m+c+U*(new Date(e(u).replace(/-/g,"/"))-p[0])/p[d-1];p[0]=m+c}}else p.push(m+U/2);for(var y,g,b,f,k,x=[],u=0;d>u;u++)m=p[u],y=h[u].symbol&&h[u].symbol.toLowerCase()||n,y.match("empty")?(y=y.replace("empty",""),b=!0):b=!1,y.match("star")&&(g=y.replace("star","")-0||5,y="star"),t=h[u].textStyle?l.merge(h[u].textStyle||{},r):r,f=t.align||"center",o?(f=o>0?"right":"left",k=[o*Math.PI/180,m,V-5]):k=!1,x.push({x:m,n:g,isEmpty:b,symbol:y,symbolSize:h[u].symbolSize||a,color:h[u].color,borderColor:h[u].borderColor,borderWidth:h[u].borderWidth,name:this._getReformedLabel(u),textColor:t.color,textAlign:f,textBaseline:t.baseline||"middle",textX:m,textY:V-(o?5:0),textFont:h[u].textStyle?this.getFont(t):s,rotation:k,showLabel:!1});return x},_buildBackground:function(){var e=this.timelineOption,t=this.reformCssArray(this.timelineOption.padding),i=this._location.width,n=this._location.height;(0!==e.borderWidth||"rgba(0,0,0,0)"!=e.backgroundColor.replace(/\s/g,""))&&this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._location.x-t[3],y:this._location.y-t[0],width:i+t[1]+t[3],height:n+t[0]+t[2],brushType:0===e.borderWidth?"fill":"both",color:e.backgroundColor,strokeColor:e.borderColor,lineWidth:e.borderWidth}}))},_buildControl:function(){var e=this,t=this.timelineOption,i=t.lineStyle,n=t.controlStyle;if("none"!==t.controlPosition){var a,r=n.itemSize,s=n.itemGap;"left"===t.controlPosition?(a=this._location.x,this._location.x+=3*(r+s)):(a=this._location.x2-(3*(r+s)-s),this._location.x2-=3*(r+s));var h=this._location.y,m={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{iconType:"timelineControl",symbol:"last",x:a,y:h,width:r,height:r,brushType:"stroke",color:n.normal.color,strokeColor:n.normal.color,lineWidth:i.width},highlightStyle:{color:n.emphasis.color,strokeColor:n.emphasis.color,lineWidth:i.width+1},clickable:!0};this._ctrLastShape=new o(m),this._ctrLastShape.onclick=function(){e.last()},this.shapeList.push(this._ctrLastShape),a+=r+s,this._ctrPlayShape=new o(l.clone(m)),this._ctrPlayShape.style.brushType="fill",this._ctrPlayShape.style.symbol="play",this._ctrPlayShape.style.status=this.timelineOption.autoPlay?"playing":"stop",this._ctrPlayShape.style.x=a,this._ctrPlayShape.onclick=function(){"stop"===e._ctrPlayShape.style.status?e.play():e.stop()},this.shapeList.push(this._ctrPlayShape),a+=r+s,this._ctrNextShape=new o(l.clone(m)),this._ctrNextShape.style.symbol="next",this._ctrNextShape.style.x=a,this._ctrNextShape.onclick=function(){e.next()},this.shapeList.push(this._ctrNextShape)}},_buildChain:function(){var e=this.timelineOption,t=e.lineStyle;this._timelineShae={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:this._location.x,y:this.subPixelOptimize(this._location.y,t.width),width:this._location.x2-this._location.x,height:this._location.height,chainPoint:this._chainPoint,brushType:"both",strokeColor:t.color,lineWidth:t.width,lineType:t.type},hoverable:!1,clickable:!0,onclick:this._onclick},this._timelineShae=new r(this._timelineShae),this.shapeList.push(this._timelineShae)},_buildHandle:function(){var e=this._chainPoint[this.currentIndex],t=e.symbolSize+1;t=5>t?5:t,this._handleShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,hoverable:!1,draggable:!0,style:{iconType:"diamond",n:e.n,x:e.x-t,y:this._location.y+this._location.height/4-t,width:2*t,height:2*t,brushType:"both",textPosition:"specific",textX:e.x,textY:this._location.y-this._location.height/4,textAlign:"center",textBaseline:"middle"},highlightStyle:{},ondrift:this._ondrift,ondragend:this._ondragend},this._handleShape=new o(this._handleShape),this.shapeList.push(this._handleShape)},_syncHandleShape:function(){if(this.timelineOption.show){var e=this.timelineOption,t=e.checkpointStyle,i=this._chainPoint[this.currentIndex];this._handleShape.style.text=t.label.show?i.name:"",this._handleShape.style.textFont=i.textFont,this._handleShape.style.n=i.n,"auto"===t.symbol?this._handleShape.style.iconType="none"!=i.symbol?i.symbol:"diamond":(this._handleShape.style.iconType=t.symbol,t.symbol.match("star")&&(this._handleShape.style.n=t.symbol.replace("star","")-0||5,this._handleShape.style.iconType="star"));var n;"auto"===t.symbolSize?(n=i.symbolSize+2,n=5>n?5:n):n=t.symbolSize-0,this._handleShape.style.color="auto"===t.color?i.color?i.color:e.controlStyle.emphasis.color:t.color,this._handleShape.style.textColor="auto"===t.label.textStyle.color?this._handleShape.style.color:t.label.textStyle.color,this._handleShape.highlightStyle.strokeColor=this._handleShape.style.strokeColor="auto"===t.borderColor?i.borderColor?i.borderColor:"#fff":t.borderColor,this._handleShape.style.lineWidth="auto"===t.borderWidth?i.borderWidth?i.borderWidth:0:t.borderWidth-0,this._handleShape.highlightStyle.lineWidth=this._handleShape.style.lineWidth+1,this.zr.animate(this._handleShape.id,"style").when(500,{x:i.x-n,textX:i.x,y:this._location.y+this._location.height/4-n,width:2*n,height:2*n}).start("ExponentialOut")}},_findChainIndex:function(e){var t=this._chainPoint,i=t.length;if(e<=t[0].x)return 0;if(e>=t[i-1].x)return i-1;for(var n=0;i-1>n;n++)if(e>=t[n].x&&e<=t[n+1].x)return Math.abs(e-t[n].x)=n[a-1].x-n[a-1].symbolSize?(e.style.x=n[a-1].x-n[a-1].symbolSize,i=a-1):(e.style.x+=t,i=this._findChainIndex(e.style.x));var o=n[i],r=o.symbolSize+2;if(e.style.iconType=o.symbol,e.style.n=o.n,e.style.textX=e.style.x+r/2,e.style.y=this._location.y+this._location.height/4-r,e.style.width=2*r,e.style.height=2*r,e.style.text=o.name,i===this.currentIndex)return!0;if(this.currentIndex=i,this.timelineOption.realtime){clearTimeout(this.playTicket);var s=this;this.playTicket=setTimeout(function(){s._setCurrentOption()},200)}return!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(!this.timelineOption.realtime&&this._setCurrentOption(),t.dragOut=!0,t.dragIn=!0,t.needRefresh=!1,this.isDragend=!1,this._syncHandleShape())},last:function(){return this.timelineOption.autoPlay&&this.stop(),this.currentIndex-=1,this.currentIndex<0&&(this.currentIndex=this.timelineOption.data.length-1),this._onFrame(),this.currentIndex},next:function(){return this.timelineOption.autoPlay&&this.stop(),this.currentIndex+=1,this.currentIndex>=this.timelineOption.data.length&&(this.currentIndex=0),this._onFrame(),this.currentIndex},play:function(e,t){return this._ctrPlayShape&&"playing"!=this._ctrPlayShape.style.status&&(this._ctrPlayShape.style.status="playing",this.zr.modShape(this._ctrPlayShape.id),this.zr.refreshNextFrame()),this.timelineOption.autoPlay=null!=t?t:!0,this.timelineOption.autoPlay||clearTimeout(this.playTicket),this.currentIndex=null!=e?e:this.currentIndex+1,this.currentIndex>=this.timelineOption.data.length&&(this.currentIndex=0),this._onFrame(),this.currentIndex},stop:function(){return this._ctrPlayShape&&"stop"!=this._ctrPlayShape.style.status&&(this._ctrPlayShape.style.status="stop",this.zr.modShape(this._ctrPlayShape.id),this.zr.refreshNextFrame()),this.timelineOption.autoPlay=!1,clearTimeout(this.playTicket),this.currentIndex},resize:function(){this.timelineOption.show&&(this.clear(),this._buildShape(),this._syncHandleShape())},setTheme:function(e){this.timelineOption=this.reformOption(l.clone(this.option.timeline)),this.timelineOption.label.textStyle=this.getTextStyle(this.timelineOption.label.textStyle),this.timelineOption.checkpointStyle.label.textStyle=this.getTextStyle(this.timelineOption.checkpointStyle.label.textStyle),this.myChart.canvasSupported||(this.timelineOption.realtime=!1),this.timelineOption.show&&e&&(this.clear(),this._buildShape(),this._syncHandleShape())},onbeforDispose:function(){clearTimeout(this.playTicket)}},o.prototype.iconLibrary.timelineControl=i,l.inherits(t,n),e("../component").define("timeline",t),t}),i("zrender/shape/Image",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"image",brush:function(e,t,i){var n=this.style||{};t&&(n=this.getHighlightStyle(n,this.highlightStyle||{}));var a=n.image,o=this;if(this._imageCache||(this._imageCache={}),"string"==typeof a){var r=a;this._imageCache[r]?a=this._imageCache[r]:(a=new Image,a.onload=function(){a.onload=null,o.modSelf(),i()},a.src=r,this._imageCache[r]=a)}if(a){if("IMG"==a.nodeName.toUpperCase())if(window.ActiveXObject){if("complete"!=a.readyState)return}else if(!a.complete)return;var s=n.width||a.width,l=n.height||a.height,h=n.x,m=n.y;if(!a.width||!a.height)return;if(e.save(),this.doClip(e),this.setContext(e,n),this.setTransform(e),n.sWidth&&n.sHeight){var V=n.sx||0,U=n.sy||0;e.drawImage(a,V,U,n.sWidth,n.sHeight,h,m,s,l)}else if(n.sx&&n.sy){var V=n.sx,U=n.sy,d=s-V,p=l-U;e.drawImage(a,V,U,d,p,h,m,s,l)}else e.drawImage(a,h,m,s,l);n.width||(n.width=s),n.height||(n.height=l),this.style.width||(this.style.width=s),this.style.height||(this.style.height=l),this.drawText(e,n,this.style),e.restore()}},getRect:function(e){return{x:e.x,y:e.y,width:e.width,height:e.height}},clearCache:function(){this._imageCache={}}},e("../tool/util").inherits(i,t),i}),i("zrender/loadingEffect/Bar",["require","./Base","../tool/util","../tool/color","../shape/Rectangle"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Rectangle");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#888"},backgroundColor:"rgba(250, 250, 250, 0.8)",effectOption:{x:0,y:this.canvasHeight/2-30,width:this.canvasWidth,height:5,brushType:"fill",timeInterval:100}}),r=this.createTextShape(i.textStyle),s=this.createBackgroundShape(i.backgroundColor),l=i.effectOption,h=new o({highlightStyle:n.clone(l)});return h.highlightStyle.color=l.color||a.getLinearGradient(l.x,l.y,l.x+l.width,l.y+l.height,[[0,"#ff6400"],[.5,"#ffe100"],[1,"#b1ff00"]]),null!=i.progress?(e(s),h.highlightStyle.width=this.adjust(i.progress,[0,1])*i.effectOption.width,e(h),e(r),void t()):(h.highlightStyle.width=0,setInterval(function(){e(s),h.highlightStyle.widthc;c++){var u="random"==l.color?a.alpha(a.random(),.3):l.color;U[c]=new o({highlightStyle:{x:Math.ceil(Math.random()*d),y:Math.ceil(Math.random()*p),r:Math.ceil(40*Math.random()),brushType:m,color:u,strokeColor:u,lineWidth:V},animationY:Math.ceil(20*Math.random())})}return setInterval(function(){e(s);for(var i=0;h>i;i++){var n=U[i].highlightStyle;n.y-U[i].animationY+n.r<=0&&(U[i].highlightStyle.y=p+n.r,U[i].highlightStyle.x=Math.ceil(Math.random()*d)),U[i].highlightStyle.y-=U[i].animationY,e(U[i])}e(r),t()},l.timeInterval)},t}),i("zrender/loadingEffect/DynamicLine",["require","./Base","../tool/util","../tool/color","../shape/Line"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Line");return n.inherits(t,i),t.prototype._start=function(e,t){for(var i=n.merge(this.options,{textStyle:{color:"#fff"},backgroundColor:"rgba(0, 0, 0, 0.8)",effectOption:{n:30,lineWidth:1,color:"random",timeInterval:100}}),r=this.createTextShape(i.textStyle),s=this.createBackgroundShape(i.backgroundColor),l=i.effectOption,h=l.n,m=l.lineWidth,V=[],U=this.canvasWidth,d=this.canvasHeight,p=0;h>p;p++){var c=-Math.ceil(1e3*Math.random()),u=Math.ceil(400*Math.random()),y=Math.ceil(Math.random()*d),g="random"==l.color?a.random():l.color;V[p]=new o({highlightStyle:{xStart:c,yStart:y,xEnd:c+u,yEnd:y,strokeColor:g,lineWidth:m},animationX:Math.ceil(100*Math.random()),len:u})}return setInterval(function(){e(s);for(var i=0;h>i;i++){var n=V[i].highlightStyle;n.xStart>=U&&(V[i].len=Math.ceil(400*Math.random()),n.xStart=-400,n.xEnd=-400+V[i].len,n.yStart=Math.ceil(Math.random()*d),n.yEnd=n.yStart),n.xStart+=V[i].animationX,n.xEnd+=V[i].animationX,e(V[i])}e(r),t()},l.timeInterval)},t}),i("zrender/loadingEffect/Ring",["require","./Base","../tool/util","../tool/color","../shape/Ring","../shape/Sector"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../shape/Ring"),r=e("../shape/Sector");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#07a"},backgroundColor:"rgba(250, 250, 250, 0.8)",effect:{x:this.canvasWidth/2,y:this.canvasHeight/2,r0:60,r:100,color:"#bbdcff",brushType:"fill",textPosition:"inside",textFont:"normal 30px verdana",textColor:"rgba(30, 144, 255, 0.6)",timeInterval:100}}),s=i.effect,l=i.textStyle; + +null==l.x&&(l.x=s.x),null==l.y&&(l.y=s.y+(s.r0+s.r)/2-5);for(var h=this.createTextShape(i.textStyle),m=this.createBackgroundShape(i.backgroundColor),V=s.x,U=s.y,d=s.r0+6,p=s.r-6,c=s.color,u=a.lift(c,.1),y=new o({highlightStyle:n.clone(s)}),g=[],b=a.getGradientColors(["#ff6400","#ffe100","#97ff00"],25),f=15,k=240,x=0;16>x;x++)g.push(new r({highlightStyle:{x:V,y:U,r0:d,r:p,startAngle:k-f,endAngle:k,brushType:"fill",color:u},_color:a.getLinearGradient(V+d*Math.cos(k,!0),U-d*Math.sin(k,!0),V+d*Math.cos(k-f,!0),U-d*Math.sin(k-f,!0),[[0,b[2*x]],[1,b[2*x+1]]])})),k-=f;k=360;for(var x=0;4>x;x++)g.push(new r({highlightStyle:{x:V,y:U,r0:d,r:p,startAngle:k-f,endAngle:k,brushType:"fill",color:u},_color:a.getLinearGradient(V+d*Math.cos(k,!0),U-d*Math.sin(k,!0),V+d*Math.cos(k-f,!0),U-d*Math.sin(k-f,!0),[[0,b[2*x+32]],[1,b[2*x+33]]])})),k-=f;var _=0;if(null!=i.progress){e(m),_=100*this.adjust(i.progress,[0,1]).toFixed(2)/5,y.highlightStyle.text=5*_+"%",e(y);for(var x=0;20>x;x++)g[x].highlightStyle.color=_>x?g[x]._color:u,e(g[x]);return e(h),void t()}return setInterval(function(){e(m),_+=_>=20?-20:1,e(y);for(var i=0;20>i;i++)g[i].highlightStyle.color=_>i?g[i]._color:u,e(g[i]);e(h),t()},s.timeInterval)},t}),i("zrender/loadingEffect/Spin",["require","./Base","../tool/util","../tool/color","../tool/area","../shape/Sector"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/color"),o=e("../tool/area"),r=e("../shape/Sector");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#fff",textAlign:"start"},backgroundColor:"rgba(0, 0, 0, 0.8)"}),s=this.createTextShape(i.textStyle),l=10,h=o.getTextWidth(s.highlightStyle.text,s.highlightStyle.textFont),m=o.getTextHeight(s.highlightStyle.text,s.highlightStyle.textFont),V=n.merge(this.options.effect||{},{r0:9,r:15,n:18,color:"#fff",timeInterval:100}),U=this.getLocation(this.options.textStyle,h+l+2*V.r,Math.max(2*V.r,m));V.x=U.x+V.r,V.y=s.highlightStyle.y=U.y+U.height/2,s.highlightStyle.x=V.x+V.r+l;for(var d=this.createBackgroundShape(i.backgroundColor),p=V.n,c=V.x,u=V.y,y=V.r0,g=V.r,b=V.color,f=[],k=Math.round(180/p),x=0;p>x;x++)f[x]=new r({highlightStyle:{x:c,y:u,r0:y,r:g,startAngle:k*x*2,endAngle:k*x*2+k,color:a.alpha(b,(x+1)/p),brushType:"fill"}});var _=[0,c,u];return setInterval(function(){e(d),_[0]-=.3;for(var i=0;p>i;i++)f[i].rotation=_,e(f[i]);e(s),t()},V.timeInterval)},t}),i("zrender/loadingEffect/Whirling",["require","./Base","../tool/util","../tool/area","../shape/Ring","../shape/Droplet","../shape/Circle"],function(e){function t(e){i.call(this,e)}var i=e("./Base"),n=e("../tool/util"),a=e("../tool/area"),o=e("../shape/Ring"),r=e("../shape/Droplet"),s=e("../shape/Circle");return n.inherits(t,i),t.prototype._start=function(e,t){var i=n.merge(this.options,{textStyle:{color:"#888",textAlign:"start"},backgroundColor:"rgba(250, 250, 250, 0.8)"}),l=this.createTextShape(i.textStyle),h=10,m=a.getTextWidth(l.highlightStyle.text,l.highlightStyle.textFont),V=a.getTextHeight(l.highlightStyle.text,l.highlightStyle.textFont),U=n.merge(this.options.effect||{},{r:18,colorIn:"#fff",colorOut:"#555",colorWhirl:"#6cf",timeInterval:50}),d=this.getLocation(this.options.textStyle,m+h+2*U.r,Math.max(2*U.r,V));U.x=d.x+U.r,U.y=l.highlightStyle.y=d.y+d.height/2,l.highlightStyle.x=U.x+U.r+h;var p=this.createBackgroundShape(i.backgroundColor),c=new r({highlightStyle:{a:Math.round(U.r/2),b:Math.round(U.r-U.r/6),brushType:"fill",color:U.colorWhirl}}),u=new s({highlightStyle:{r:Math.round(U.r/6),brushType:"fill",color:U.colorIn}}),y=new o({highlightStyle:{r0:Math.round(U.r-U.r/3),r:U.r,brushType:"fill",color:U.colorOut}}),g=[0,U.x,U.y];return c.highlightStyle.x=u.highlightStyle.x=y.highlightStyle.x=g[1],c.highlightStyle.y=u.highlightStyle.y=y.highlightStyle.y=g[2],setInterval(function(){e(p),e(y),g[0]-=.3,c.rotation=g,e(c),e(u),e(l),t()},U.timeInterval)},t}),i("echarts/theme/macarons",[],function(){var e={color:["#2ec7c9","#b6a2de","#5ab1ef","#ffb980","#d87a80","#8d98b3","#e5cf0d","#97b552","#95706d","#dc69aa","#07a2a4","#9a7fd1","#588dd5","#f5994e","#c05050","#59678c","#c9ab00","#7eb00a","#6f5553","#c14089"],title:{textStyle:{fontWeight:"normal",color:"#008acd"}},dataRange:{itemWidth:15,color:["#5ab1ef","#e0ffff"]},toolbox:{color:["#1e90ff","#1e90ff","#1e90ff","#1e90ff"],effectiveColor:"#ff4500"},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#008acd"},crossStyle:{color:"#008acd"},shadowStyle:{color:"rgba(200,200,200,0.2)"}}},dataZoom:{dataBackgroundColor:"#efefff",fillerColor:"rgba(182,162,222,0.2)",handleColor:"#008acd"},grid:{borderColor:"#eee"},categoryAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#008acd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},polar:{axisLine:{lineStyle:{color:"#ddd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(200,200,200,0.2)"]}},splitLine:{lineStyle:{color:"#ddd"}}},timeline:{lineStyle:{color:"#008acd"},controlStyle:{normal:{color:"#008acd"},emphasis:{color:"#008acd"}},symbol:"emptyCircle",symbolSize:3},bar:{itemStyle:{normal:{barBorderRadius:5},emphasis:{barBorderRadius:5}}},line:{smooth:!0,symbol:"emptyCircle",symbolSize:3},k:{itemStyle:{normal:{color:"#d87a80",color0:"#2ec7c9",lineStyle:{color:"#d87a80",color0:"#2ec7c9"}}}},scatter:{symbol:"circle",symbolSize:4},radar:{symbol:"emptyCircle",symbolSize:3},map:{itemStyle:{normal:{areaStyle:{color:"#ddd"},label:{textStyle:{color:"#d87a80"}}},emphasis:{areaStyle:{color:"#fe994e"}}}},force:{itemStyle:{normal:{linkStyle:{color:"#1e90ff"}}}},chord:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}},emphasis:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}}}},gauge:{axisLine:{lineStyle:{color:[[.2,"#2ec7c9"],[.8,"#5ab1ef"],[1,"#d87a80"]],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:"auto"}},splitLine:{length:22,lineStyle:{color:"auto"}},pointer:{width:5}},textStyle:{fontFamily:"微软雅黑, Arial, Verdana, sans-serif"}};return e}),i("echarts/theme/infographic",[],function(){var e={color:["#C1232B","#B5C334","#FCCE10","#E87C25","#27727B","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD","#D7504B","#C6E579","#F4E001","#F0805A","#26C0C0"],title:{textStyle:{fontWeight:"normal",color:"#27727B"}},dataRange:{x:"right",y:"center",itemWidth:5,itemHeight:25,color:["#C1232B","#FCCE10"]},toolbox:{color:["#C1232B","#B5C334","#FCCE10","#E87C25","#27727B","#FE8463","#9BCA63","#FAD860","#F3A43B","#60C0DD"],effectiveColor:"#ff4500"},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#27727B",type:"dashed"},crossStyle:{color:"#27727B"},shadowStyle:{color:"rgba(200,200,200,0.3)"}}},dataZoom:{dataBackgroundColor:"rgba(181,195,52,0.3)",fillerColor:"rgba(181,195,52,0.2)",handleColor:"#27727B"},grid:{borderWidth:0},categoryAxis:{axisLine:{lineStyle:{color:"#27727B"}},splitLine:{show:!1}},valueAxis:{axisLine:{show:!1},splitArea:{show:!1},splitLine:{lineStyle:{color:["#ccc"],type:"dashed"}}},polar:{axisLine:{lineStyle:{color:"#ddd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(200,200,200,0.2)"]}},splitLine:{lineStyle:{color:"#ddd"}}},timeline:{lineStyle:{color:"#27727B"},controlStyle:{normal:{color:"#27727B"},emphasis:{color:"#27727B"}},symbol:"emptyCircle",symbolSize:3},line:{itemStyle:{normal:{borderWidth:2,borderColor:"#fff",lineStyle:{width:3}},emphasis:{borderWidth:0}},symbol:"circle",symbolSize:3.5},k:{itemStyle:{normal:{color:"#C1232B",color0:"#B5C334",lineStyle:{width:1,color:"#C1232B",color0:"#B5C334"}}}},scatter:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(200,200,200,0.5)"},emphasis:{borderWidth:0}},symbol:"star4",symbolSize:4},radar:{symbol:"emptyCircle",symbolSize:3},map:{itemStyle:{normal:{areaStyle:{color:"#ddd"},label:{textStyle:{color:"#C1232B"}}},emphasis:{areaStyle:{color:"#fe994e"},label:{textStyle:{color:"rgb(100,0,0)"}}}}},force:{itemStyle:{normal:{linkStyle:{color:"#27727B"}}}},chord:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}},emphasis:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}}}},gauge:{center:["50%","80%"],radius:"100%",startAngle:180,endAngle:0,axisLine:{show:!0,lineStyle:{color:[[.2,"#B5C334"],[.8,"#27727B"],[1,"#C1232B"]],width:"40%"}},axisTick:{splitNumber:2,length:5,lineStyle:{color:"#fff"}},axisLabel:{textStyle:{color:"#fff",fontWeight:"bolder"}},splitLine:{length:"5%",lineStyle:{color:"#fff"}},pointer:{width:"40%",length:"80%",color:"#fff"},title:{offsetCenter:[0,-20],textStyle:{color:"auto",fontSize:20}},detail:{offsetCenter:[0,0],textStyle:{color:"auto",fontSize:40}}},textStyle:{fontFamily:"微软雅黑, Arial, Verdana, sans-serif"}};return e}),i("zrender/dep/excanvas",["require"],function(){return document.createElement("canvas").getContext?G_vmlCanvasManager=!1:!function(){function e(){return this.context_||(this.context_=new f(this))}function t(e,t){var i=O.call(arguments,2);return function(){return e.apply(t,i.concat(O.call(arguments)))}}function i(e){return String(e).replace(/&/g,"&").replace(/"/g,""")}function n(e,t,i){e.namespaces[t]||e.namespaces.add(t,i,"#default#VML")}function a(e){if(n(e,"g_vml_","urn:schemas-microsoft-com:vml"),n(e,"g_o_","urn:schemas-microsoft-com:office:office"),!e.styleSheets.ex_canvas_){var t=e.createStyleSheet();t.owningElement.id="ex_canvas_",t.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}function o(e){var t=e.srcElement;switch(e.propertyName){case"width":t.getContext().clearRect(),t.style.width=t.attributes.width.nodeValue+"px",t.firstChild.style.width=t.clientWidth+"px";break;case"height":t.getContext().clearRect(),t.style.height=t.attributes.height.nodeValue+"px",t.firstChild.style.height=t.clientHeight+"px"}}function r(e){var t=e.srcElement;t.firstChild&&(t.firstChild.style.width=t.clientWidth+"px",t.firstChild.style.height=t.clientHeight+"px")}function s(){return[[1,0,0],[0,1,0],[0,0,1]]}function l(e,t){for(var i=s(),n=0;3>n;n++)for(var a=0;3>a;a++){for(var o=0,r=0;3>r;r++)o+=e[n][r]*t[r][a];i[n][a]=o}return i}function h(e,t){t.fillStyle=e.fillStyle,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.lineWidth=e.lineWidth,t.miterLimit=e.miterLimit,t.shadowBlur=e.shadowBlur,t.shadowColor=e.shadowColor,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY,t.strokeStyle=e.strokeStyle,t.globalAlpha=e.globalAlpha,t.font=e.font,t.textAlign=e.textAlign,t.textBaseline=e.textBaseline,t.scaleX_=e.scaleX_,t.scaleY_=e.scaleY_,t.lineScale_=e.lineScale_}function m(e){var t=e.indexOf("(",3),i=e.indexOf(")",t+1),n=e.substring(t+1,i).split(",");return(4!=n.length||"a"!=e.charAt(3))&&(n[3]=1),n}function V(e){return parseFloat(e)/100}function U(e,t,i){return Math.min(i,Math.max(t,e))}function d(e){var t,i,n,a,o,r;if(a=parseFloat(e[0])/360%360,0>a&&a++,o=U(V(e[1]),0,1),r=U(V(e[2]),0,1),0==o)t=i=n=r;else{var s=.5>r?r*(1+o):r+o-r*o,l=2*r-s;t=p(l,s,a+1/3),i=p(l,s,a),n=p(l,s,a-1/3)}return"#"+D[Math.floor(255*t)]+D[Math.floor(255*i)]+D[Math.floor(255*n)]}function p(e,t,i){return 0>i&&i++,i>1&&i--,1>6*i?e+6*(t-e)*i:1>2*i?t:2>3*i?e+(t-e)*(2/3-i)*6:e}function c(e){if(e in R)return R[e];var t,i=1;if(e=String(e),"#"==e.charAt(0))t=e;else if(/^rgb/.test(e)){for(var n,a=m(e),t="#",o=0;3>o;o++)n=-1!=a[o].indexOf("%")?Math.floor(255*V(a[o])):+a[o],t+=D[U(n,0,255)];i=+a[3]}else if(/^hsl/.test(e)){var a=m(e);t=d(a),i=a[3]}else t=H[e]||e;return R[e]={color:t,alpha:i}}function u(e){if(Y[e])return Y[e];var t,i=document.createElement("div"),n=i.style;try{n.font=e,t=n.fontFamily.split(",")[0]}catch(a){}return Y[e]={style:n.fontStyle||G.style,variant:n.fontVariant||G.variant,weight:n.fontWeight||G.weight,size:n.fontSize||G.size,family:t||G.family}}function y(e,t){var i={};for(var n in e)i[n]=e[n];var a=parseFloat(t.currentStyle.fontSize),o=parseFloat(e.size);return i.size="number"==typeof e.size?e.size:-1!=e.size.indexOf("px")?o:-1!=e.size.indexOf("em")?a*o:-1!=e.size.indexOf("%")?a/100*o:-1!=e.size.indexOf("pt")?o/.75:a,i}function g(e){return e.style+" "+e.variant+" "+e.weight+" "+e.size+"px '"+e.family+"'"}function b(e){return Q[e]||"square"}function f(e){this.m_=s(),this.mStack_=[],this.aStack_=[],this.currentPath_=[],this.strokeStyle="#000",this.fillStyle="#000",this.lineWidth=1,this.lineJoin="miter",this.lineCap="butt",this.miterLimit=1*A,this.globalAlpha=1,this.font="12px 微软雅黑",this.textAlign="left",this.textBaseline="alphabetic",this.canvas=e;var t="width:"+e.clientWidth+"px;height:"+e.clientHeight+"px;overflow:hidden;position:absolute",i=e.ownerDocument.createElement("div");i.style.cssText=t,e.appendChild(i);var n=i.cloneNode(!1);n.style.backgroundColor="#fff",n.style.filter="alpha(opacity=0)",e.appendChild(n),this.element_=i,this.scaleX_=1,this.scaleY_=1,this.lineScale_=1}function k(e,t,i,n){e.currentPath_.push({type:"bezierCurveTo",cp1x:t.x,cp1y:t.y,cp2x:i.x,cp2y:i.y,x:n.x,y:n.y}),e.currentX_=n.x,e.currentY_=n.y}function x(e,t){var i=c(e.strokeStyle),n=i.color,a=i.alpha*e.globalAlpha,o=e.lineScale_*e.lineWidth;1>o&&(a*=o),t.push("')}function _(e,t,i,n){var a=e.fillStyle,o=e.scaleX_,r=e.scaleY_,s=n.x-i.x,l=n.y-i.y;if(a instanceof v){var h=0,m={x:0,y:0},V=0,U=1;if("gradient"==a.type_){var d=a.x0_/o,p=a.y0_/r,u=a.x1_/o,y=a.y1_/r,g=L(e,d,p),b=L(e,u,y),f=b.x-g.x,k=b.y-g.y;h=180*Math.atan2(f,k)/Math.PI,0>h&&(h+=360),1e-6>h&&(h=0)}else{var g=L(e,a.x0_,a.y0_);m={x:(g.x-i.x)/s,y:(g.y-i.y)/l},s/=o*A,l/=r*A;var x=C.max(s,l);V=2*a.r0_/x,U=2*a.r1_/x-V}var _=a.colors_;_.sort(function(e,t){return e.offset-t.offset});for(var W=_.length,X=_[0].color,K=_[W-1].color,I=_[0].alpha*e.globalAlpha,J=_[W-1].alpha*e.globalAlpha,S=[],E=0;W>E;E++){var F=_[E];S.push(F.offset*U+V+" "+F.color)}t.push('')}else if(a instanceof w){if(s&&l){var T=-i.x,z=-i.y;t.push("')}}else{var M=c(e.fillStyle),O=M.color,P=M.alpha*e.globalAlpha;t.push('')}}function L(e,t,i){var n=e.m_;return{x:A*(t*n[0][0]+i*n[1][0]+n[2][0])-M,y:A*(t*n[0][1]+i*n[1][1]+n[2][1])-M}}function W(e){return isFinite(e[0][0])&&isFinite(e[0][1])&&isFinite(e[1][0])&&isFinite(e[1][1])&&isFinite(e[2][0])&&isFinite(e[2][1])}function X(e,t,i){if(W(t)&&(e.m_=t,e.scaleX_=Math.sqrt(t[0][0]*t[0][0]+t[0][1]*t[0][1]),e.scaleY_=Math.sqrt(t[1][0]*t[1][0]+t[1][1]*t[1][1]),i)){var n=t[0][0]*t[1][1]-t[0][1]*t[1][0];e.lineScale_=z(T(n))}}function v(e){this.type_=e,this.x0_=0,this.y0_=0,this.r0_=0,this.x1_=0,this.y1_=0,this.r1_=0,this.colors_=[]}function w(e,t){switch(I(e),t){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=t;break;default:K("SYNTAX_ERR")}this.src_=e.src,this.width_=e.width,this.height_=e.height}function K(e){throw new J(e)}function I(e){e&&1==e.nodeType&&"IMG"==e.tagName||K("TYPE_MISMATCH_ERR"),"complete"!=e.readyState&&K("INVALID_STATE_ERR")}function J(e){this.code=this[e],this.message=e+": DOM Exception "+this.code}var C=Math,S=C.round,E=C.sin,F=C.cos,T=C.abs,z=C.sqrt,A=10,M=A/2,O=(+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1],Array.prototype.slice);a(document);var P={init:function(e){var i=e||document;i.createElement("canvas"),i.attachEvent("onreadystatechange",t(this.init_,this,i))},init_:function(e){for(var t=e.getElementsByTagName("canvas"),i=0;iN;N++)for(var B=0;16>B;B++)D[16*N+B]=N.toString(16)+B.toString(16);var H={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"},R={},G={style:"normal",variant:"normal",weight:"normal",size:12,family:"微软雅黑"},Y={},Q={butt:"flat",round:"round"},Z=f.prototype;Z.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null),this.element_.innerHTML=""},Z.beginPath=function(){this.currentPath_=[]},Z.moveTo=function(e,t){var i=L(this,e,t);this.currentPath_.push({type:"moveTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},Z.lineTo=function(e,t){var i=L(this,e,t);this.currentPath_.push({type:"lineTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},Z.bezierCurveTo=function(e,t,i,n,a,o){var r=L(this,a,o),s=L(this,e,t),l=L(this,i,n);k(this,s,l,r)},Z.quadraticCurveTo=function(e,t,i,n){var a=L(this,e,t),o=L(this,i,n),r={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)},s={x:r.x+(o.x-this.currentX_)/3,y:r.y+(o.y-this.currentY_)/3};k(this,r,s,o)},Z.arc=function(e,t,i,n,a,o){i*=A;var r=o?"at":"wa",s=e+F(n)*i-M,l=t+E(n)*i-M,h=e+F(a)*i-M,m=t+E(a)*i-M;s!=h||o||(s+=.125);var V=L(this,e,t),U=L(this,s,l),d=L(this,h,m);this.currentPath_.push({type:r,x:V.x,y:V.y,radius:i,xStart:U.x,yStart:U.y,xEnd:d.x,yEnd:d.y})},Z.rect=function(e,t,i,n){this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath()},Z.strokeRect=function(e,t,i,n){var a=this.currentPath_;this.beginPath(),this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath(),this.stroke(),this.currentPath_=a},Z.fillRect=function(e,t,i,n){var a=this.currentPath_;this.beginPath(),this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath(),this.fill(),this.currentPath_=a},Z.createLinearGradient=function(e,t,i,n){var a=new v("gradient");return a.x0_=e,a.y0_=t,a.x1_=i,a.y1_=n,a},Z.createRadialGradient=function(e,t,i,n,a,o){var r=new v("gradientradial");return r.x0_=e,r.y0_=t,r.r0_=i,r.x1_=n,r.y1_=a,r.r1_=o,r},Z.drawImage=function(e){var t,i,n,a,o,r,s,l,h=e.runtimeStyle.width,m=e.runtimeStyle.height;e.runtimeStyle.width="auto",e.runtimeStyle.height="auto";var V=e.width,U=e.height;if(e.runtimeStyle.width=h,e.runtimeStyle.height=m,3==arguments.length)t=arguments[1],i=arguments[2],o=r=0,s=n=V,l=a=U;else if(5==arguments.length)t=arguments[1],i=arguments[2],n=arguments[3],a=arguments[4],o=r=0,s=V,l=U;else{if(9!=arguments.length)throw Error("Invalid number of arguments");o=arguments[1],r=arguments[2],s=arguments[3],l=arguments[4],t=arguments[5],i=arguments[6],n=arguments[7],a=arguments[8]}var d=L(this,t,i),p=[],c=10,u=10,y=b=1;if(p.push(" '),(o||r)&&p.push('
                              '),p.push('
                              '),(o||r)&&p.push("
                              "),p.push("
                              "),this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))},Z.stroke=function(e){var t=[],i=10,n=10;t.push("o.x)&&(o.x=l.x),(null==a.y||l.yo.y)&&(o.y=l.y))}t.push(' ">'),e?_(this,t,a,o):x(this,t),t.push(""),this.element_.insertAdjacentHTML("beforeEnd",t.join(""))},Z.fill=function(){this.stroke(!0)},Z.closePath=function(){this.currentPath_.push({type:"close"})},Z.save=function(){var e={};h(this,e),this.aStack_.push(e),this.mStack_.push(this.m_),this.m_=l(s(),this.m_)},Z.restore=function(){this.aStack_.length&&(h(this.aStack_.pop(),this),this.m_=this.mStack_.pop())},Z.translate=function(e,t){var i=[[1,0,0],[0,1,0],[e,t,1]];X(this,l(i,this.m_),!1)},Z.rotate=function(e){var t=F(e),i=E(e),n=[[t,i,0],[-i,t,0],[0,0,1]];X(this,l(n,this.m_),!1)},Z.scale=function(e,t){var i=[[e,0,0],[0,t,0],[0,0,1]];X(this,l(i,this.m_),!0)},Z.transform=function(e,t,i,n,a,o){var r=[[e,t,0],[i,n,0],[a,o,1]];X(this,l(r,this.m_),!0)},Z.setTransform=function(e,t,i,n,a,o){var r=[[e,t,0],[i,n,0],[a,o,1]];X(this,r,!0)},Z.drawText_=function(e,t,n,a,o){var r=this.m_,s=1e3,l=0,h=s,m={x:0,y:0},V=[],U=y(u(this.font),this.element_),d=g(U),p=this.element_.currentStyle,c=this.textAlign.toLowerCase();switch(c){case"left":case"center":case"right":break;case"end":c="ltr"==p.direction?"right":"left";break;case"start":c="rtl"==p.direction?"right":"left";break;default:c="left"}switch(this.textBaseline){case"hanging":case"top":m.y=U.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":m.y=-U.size/2.25}switch(c){case"right":l=s,h=.05;break;case"center":l=h=s/2}var b=L(this,t+m.x,n+m.y);V.push(''),o?x(this,V):_(this,V,{x:-l,y:0},{x:h,y:U.size});var f=r[0][0].toFixed(3)+","+r[1][0].toFixed(3)+","+r[0][1].toFixed(3)+","+r[1][1].toFixed(3)+",0,0",k=S(b.x/A)+","+S(b.y/A);V.push('','',''),this.element_.insertAdjacentHTML("beforeEnd",V.join(""))},Z.fillText=function(e,t,i,n){this.drawText_(e,t,i,n,!1)},Z.strokeText=function(e,t,i,n){this.drawText_(e,t,i,n,!0)},Z.measureText=function(e){if(!this.textMeasureEl_){var t='';this.element_.insertAdjacentHTML("beforeEnd",t),this.textMeasureEl_=this.element_.lastChild}var i=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";try{this.textMeasureEl_.style.font=this.font}catch(n){}return this.textMeasureEl_.appendChild(i.createTextNode(e)),{width:this.textMeasureEl_.offsetWidth}},Z.clip=function(){},Z.arcTo=function(){},Z.createPattern=function(e,t){return new w(e,t)},v.prototype.addColorStop=function(e,t){t=c(t),this.colors_.push({offset:e,color:t.color,alpha:t.alpha})};var q=J.prototype=new Error;q.INDEX_SIZE_ERR=1,q.DOMSTRING_SIZE_ERR=2,q.HIERARCHY_REQUEST_ERR=3,q.WRONG_DOCUMENT_ERR=4,q.INVALID_CHARACTER_ERR=5,q.NO_DATA_ALLOWED_ERR=6,q.NO_MODIFICATION_ALLOWED_ERR=7,q.NOT_FOUND_ERR=8,q.NOT_SUPPORTED_ERR=9,q.INUSE_ATTRIBUTE_ERR=10,q.INVALID_STATE_ERR=11,q.SYNTAX_ERR=12,q.INVALID_MODIFICATION_ERR=13,q.NAMESPACE_ERR=14,q.INVALID_ACCESS_ERR=15,q.VALIDATION_ERR=16,q.TYPE_MISMATCH_ERR=17,G_vmlCanvasManager=P,CanvasRenderingContext2D=f,CanvasGradient=v,CanvasPattern=w,DOMException=J}(),G_vmlCanvasManager}),i("zrender/mixin/Eventful",["require"],function(){var e=function(){this._handlers={}};return e.prototype.one=function(e,t,i){var n=this._handlers;return t&&e?(n[e]||(n[e]=[]),n[e].push({h:t,one:!0,ctx:i||this}),this):this},e.prototype.bind=function(e,t,i){var n=this._handlers;return t&&e?(n[e]||(n[e]=[]),n[e].push({h:t,one:!1,ctx:i||this}),this):this},e.prototype.unbind=function(e,t){var i=this._handlers;if(!e)return this._handlers={},this;if(t){if(i[e]){for(var n=[],a=0,o=i[e].length;o>a;a++)i[e][a].h!=t&&n.push(i[e][a]);i[e]=n}i[e]&&0===i[e].length&&delete i[e]}else delete i[e];return this},e.prototype.dispatch=function(e){if(this._handlers[e]){var t=arguments,i=t.length;i>3&&(t=Array.prototype.slice.call(t,1));for(var n=this._handlers[e],a=n.length,o=0;a>o;){switch(i){case 1:n[o].h.call(n[o].ctx);break;case 2:n[o].h.call(n[o].ctx,t[1]);break;case 3:n[o].h.call(n[o].ctx,t[1],t[2]);break;default:n[o].h.apply(n[o].ctx,t)}n[o].one?(n.splice(o,1),a--):o++}}return this},e.prototype.dispatchWithContext=function(e){if(this._handlers[e]){var t=arguments,i=t.length;i>4&&(t=Array.prototype.slice.call(t,1,t.length-1));for(var n=t[t.length-1],a=this._handlers[e],o=a.length,r=0;o>r;){switch(i){case 1:a[r].h.call(n);break;case 2:a[r].h.call(n,t[1]);break;case 3:a[r].h.call(n,t[1],t[2]);break;default:a[r].h.apply(n,t)}a[r].one?(a.splice(r,1),o--):r++}}return this},e}),i("zrender/tool/log",["require","../config"],function(e){var t=e("../config");return function(){if(0!==t.debugMode)if(1==t.debugMode)for(var e in arguments)throw new Error(arguments[e]);else if(t.debugMode>1)for(var e in arguments)console.log(arguments[e])}}),i("zrender/tool/guid",[],function(){var e=2311;return function(){return"zrender__"+e++}}),i("zrender/Handler",["require","./config","./tool/env","./tool/event","./tool/util","./tool/vector","./tool/matrix","./mixin/Eventful"],function(e){"use strict";function t(e,t){return function(i,n){return e.call(t,i,n)}}function i(e,t){return function(i,n,a){return e.call(t,i,n,a)}}function n(e){for(var i=d.length;i--;){var n=d[i];e["_"+n+"Handler"]=t(c[n],e)}}function a(e,t,i){if(this._draggingTarget&&this._draggingTarget.id==e.id||e.isSilent())return!1;var n=this._event;if(e.isCover(t,i)){e.hoverable&&this.storage.addHover(e);for(var a=e.parent;a;){if(a.clipShape&&!a.clipShape.isCover(this._mouseX,this._mouseY))return!1;a=a.parent}return this._lastHover!=e&&(this._processOutShape(n),this._processDragLeave(n),this._lastHover=e,this._processDragEnter(n)),this._processOverShape(n),this._processDragOver(n),this._hasfound=1,!0}return!1}var o=e("./config"),r=e("./tool/env"),s=e("./tool/event"),l=e("./tool/util"),h=e("./tool/vector"),m=e("./tool/matrix"),V=o.EVENT,U=e("./mixin/Eventful"),d=["resize","click","dblclick","mousewheel","mousemove","mouseout","mouseup","mousedown","touchstart","touchend","touchmove"],p=function(e){if(window.G_vmlCanvasManager)return!0;e=e||window.event;var t=e.toElement||e.relatedTarget||e.srcElement||e.target;return t&&t.className.match(o.elementClassName)},c={resize:function(e){e=e||window.event,this._lastHover=null,this._isMouseDown=0,this.dispatch(V.RESIZE,e)},click:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=this._lastHover;(i&&i.clickable||!i)&&this._clickThreshold<5&&this._dispatchAgency(i,V.CLICK,e),this._mousemoveHandler(e)}},dblclick:function(e,t){if(p(e)||t){e=e||window.event,e=this._zrenderEventFixed(e);var i=this._lastHover;(i&&i.clickable||!i)&&this._clickThreshold<5&&this._dispatchAgency(i,V.DBLCLICK,e),this._mousemoveHandler(e)}},mousewheel:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=e.wheelDelta||-e.detail,n=i>0?1.1:1/1.1,a=!1,o=this._mouseX,r=this._mouseY;this.painter.eachBuildinLayer(function(t){var i=t.position;if(t.zoomable){t.__zoom=t.__zoom||1;var l=t.__zoom;l*=n,l=Math.max(Math.min(t.maxZoom,l),t.minZoom),n=l/t.__zoom,t.__zoom=l,i[0]-=(o-i[0])*(n-1),i[1]-=(r-i[1])*(n-1),t.scale[0]*=n,t.scale[1]*=n,t.dirty=!0,a=!0,s.stop(e)}}),a&&this.painter.refresh(),this._dispatchAgency(this._lastHover,V.MOUSEWHEEL,e),this._mousemoveHandler(e)}},mousemove:function(e,t){if((p(e)||t)&&!this.painter.isLoading()){e=this._zrenderEventFixed(e),this._lastX=this._mouseX,this._lastY=this._mouseY,this._mouseX=s.getX(e),this._mouseY=s.getY(e);var i=this._mouseX-this._lastX,n=this._mouseY-this._lastY;this._processDragStart(e),this._hasfound=0,this._event=e,this._iterateAndFindHover(),this._hasfound||((!this._draggingTarget||this._lastHover&&this._lastHover!=this._draggingTarget)&&(this._processOutShape(e), +this._processDragLeave(e)),this._lastHover=null,this.storage.delHover(),this.painter.clearHover());var a="default";if(this._draggingTarget)this.storage.drift(this._draggingTarget.id,i,n),this._draggingTarget.modSelf(),this.storage.addHover(this._draggingTarget),this._clickThreshold++;else if(this._isMouseDown){var o=!1;this.painter.eachBuildinLayer(function(e){e.panable&&(a="move",e.position[0]+=i,e.position[1]+=n,o=!0,e.dirty=!0)}),o&&this.painter.refresh()}this._draggingTarget||this._hasfound&&this._lastHover.draggable?a="move":this._hasfound&&this._lastHover.clickable&&(a="pointer"),this.root.style.cursor=a,this._dispatchAgency(this._lastHover,V.MOUSEMOVE,e),(this._draggingTarget||this._hasfound||this.storage.hasHoverShape())&&this.painter.refreshHover()}},mouseout:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e);var i=e.toElement||e.relatedTarget;if(i!=this.root)for(;i&&9!=i.nodeType;){if(i==this.root)return void this._mousemoveHandler(e);i=i.parentNode}e.zrenderX=this._lastX,e.zrenderY=this._lastY,this.root.style.cursor="default",this._isMouseDown=0,this._processOutShape(e),this._processDrop(e),this._processDragEnd(e),this.painter.isLoading()||this.painter.refreshHover(),this.dispatch(V.GLOBALOUT,e)}},mousedown:function(e,t){if(p(e)||t){if(this._clickThreshold=0,2==this._lastDownButton)return this._lastDownButton=e.button,void(this._mouseDownTarget=null);this._lastMouseDownMoment=new Date,e=this._zrenderEventFixed(e),this._isMouseDown=1,this._mouseDownTarget=this._lastHover,this._dispatchAgency(this._lastHover,V.MOUSEDOWN,e),this._lastDownButton=e.button}},mouseup:function(e,t){(p(e)||t)&&(e=this._zrenderEventFixed(e),this.root.style.cursor="default",this._isMouseDown=0,this._mouseDownTarget=null,this._dispatchAgency(this._lastHover,V.MOUSEUP,e),this._processDrop(e),this._processDragEnd(e))},touchstart:function(e,t){(p(e)||t)&&(e=this._zrenderEventFixed(e,!0),this._lastTouchMoment=new Date,this._mobileFindFixed(e),this._mousedownHandler(e))},touchmove:function(e,t){(p(e)||t)&&(e=this._zrenderEventFixed(e,!0),this._mousemoveHandler(e),this._isDragging&&s.stop(e))},touchend:function(e,t){if(p(e)||t){e=this._zrenderEventFixed(e,!0),this._mouseupHandler(e);var i=new Date;i-this._lastTouchMoment=0;o--){var r=n[o];if(t!==r.zlevel&&(i=this.painter.getLayer(r.zlevel,i),a[0]=this._mouseX,a[1]=this._mouseY,i.needTransform&&(m.invert(e,i.transform),h.applyTransform(a,a,e))),this._findHover(r,a[0],a[1]))break}}}();var y=[{x:10},{x:-20},{x:10,y:10},{y:-20}];return u.prototype._mobileFindFixed=function(e){this._lastHover=null,this._mouseX=e.zrenderX,this._mouseY=e.zrenderY,this._event=e,this._iterateAndFindHover();for(var t=0;!this._lastHover&&ts;s++){var h=e[s];if(n!==h.zlevel&&(i&&(i.needTransform&&o.restore(),o.flush&&o.flush()),n=h.zlevel,i=this.getLayer(n),i.isBuildin||r("ZLevel "+n+" has been used by unkown layer "+i.id),o=i.ctx,i.unusedCount=0,(i.dirty||t)&&i.clear(),i.needTransform&&(o.save(),i.setTransform(o))),(i.dirty||t)&&!h.invisible&&(!h.onbrush||h.onbrush&&!h.onbrush(o,!1)))if(a.catchBrushException)try{h.brush(o,!1,this.refreshNextFrame)}catch(m){r(m,"brush error of "+h.type,h)}else h.brush(o,!1,this.refreshNextFrame);h.__dirty=!1}i&&(i.needTransform&&o.restore(),o.flush&&o.flush()),this.eachBuildinLayer(this._postProcessLayer)},h.prototype.getLayer=function(e){var t=this._layers[e];return t||(t=new l(e,this),t.isBuildin=!0,this._layerConfig[e]&&o.merge(t,this._layerConfig[e],!0),t.updateTransform(),this.insertLayer(e,t),t.initContext()),t},h.prototype.insertLayer=function(e,t){if(this._layers[e])return void r("ZLevel "+e+" has been used already");if(!n(t))return void r("Layer of zlevel "+e+" is not valid");var i=this._zlevelList.length,a=null,o=-1;if(i>0&&e>this._zlevelList[0]){for(o=0;i-1>o&&!(this._zlevelList[o]e);o++);a=this._layers[this._zlevelList[o]]}this._zlevelList.splice(o+1,0,e);var s=a?a.dom:this._bgDom;s.nextSibling?s.parentNode.insertBefore(t.dom,s.nextSibling):s.parentNode.appendChild(t.dom),this._layers[e]=t},h.prototype.eachLayer=function(e,t){for(var i=0;in;n++){var o=e[n],r=o.zlevel,s=t[r];if(s){if(s.elCount++,s.dirty)continue;s.dirty=o.__dirty}}this.eachBuildinLayer(function(e,t){i[t]!==e.elCount&&(e.dirty=!0)})},h.prototype.refreshShapes=function(e,t){for(var i=0,n=e.length;n>i;i++){var a=e[i];a.modSelf()}return this.refresh(t),this},h.prototype.setLoadingEffect=function(e){return this._loadingEffect=e,this},h.prototype.clear=function(){return this.eachBuildinLayer(this._clearLayer),this},h.prototype._clearLayer=function(e){e.clear()},h.prototype.modLayer=function(e,t){if(t){this._layerConfig[e]?o.merge(this._layerConfig[e],t,!0):this._layerConfig[e]=t;var i=this._layers[e];i&&o.merge(i,this._layerConfig[e],!0)}},h.prototype.delLayer=function(e){var t=this._layers[e];t&&(this.modLayer(e,{position:t.position,rotation:t.rotation,scale:t.scale}),t.dom.parentNode.removeChild(t.dom),delete this._layers[e],this._zlevelList.splice(o.indexOf(this._zlevelList,e),1))},h.prototype.refreshHover=function(){this.clearHover();for(var e=this.storage.getHoverShapes(!0),t=0,i=e.length;i>t;t++)this._brushHover(e[t]);var n=this._layers.hover.ctx;return n.flush&&n.flush(),this.storage.delHover(),this},h.prototype.clearHover=function(){var e=this._layers.hover;return e&&e.clear(),this},h.prototype.showLoading=function(e){return this._loadingEffect&&this._loadingEffect.stop(),e&&this.setLoadingEffect(e),this._loadingEffect.start(this),this.loading=!0,this},h.prototype.hideLoading=function(){return this._loadingEffect.stop(),this.clearHover(),this.loading=!1,this},h.prototype.isLoading=function(){return this.loading},h.prototype.resize=function(){var e=this._domRoot;e.style.display="none";var t=this._getWidth(),i=this._getHeight();if(e.style.display="",this._width!=t||i!=this._height){this._width=t,this._height=i,e.style.width=t+"px",e.style.height=i+"px";for(var n in this._layers)this._layers[n].resize(t,i);this.refresh(null,!0)}return this},h.prototype.clearLayer=function(e){var t=this._layers[e];t&&t.clear()},h.prototype.dispose=function(){this.isLoading()&&this.hideLoading(),this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},h.prototype.getDomHover=function(){return this._layers.hover.dom},h.prototype.toDataURL=function(e,t,i){if(window.G_vmlCanvasManager)return null;var n=new l("image",this);this._bgDom.appendChild(n.dom),n.initContext();var o=n.ctx;n.clearColor=t||"#fff",n.clear();var s=this;this.storage.iterShape(function(e){if(!e.invisible&&(!e.onbrush||e.onbrush&&!e.onbrush(o,!1)))if(a.catchBrushException)try{e.brush(o,!1,s.refreshNextFrame)}catch(t){r(t,"brush error of "+e.type,e)}else e.brush(o,!1,s.refreshNextFrame)},{normal:"up",update:!0});var h=n.dom.toDataURL(e,i);return o=null,this._bgDom.removeChild(n.dom),h},h.prototype.getWidth=function(){return this._width},h.prototype.getHeight=function(){return this._height},h.prototype._getWidth=function(){var e=this.root,t=e.currentStyle||document.defaultView.getComputedStyle(e);return((e.clientWidth||parseInt(t.width,10))-parseInt(t.paddingLeft,10)-parseInt(t.paddingRight,10)).toFixed(0)-0},h.prototype._getHeight=function(){var e=this.root,t=e.currentStyle||document.defaultView.getComputedStyle(e);return((e.clientHeight||parseInt(t.height,10))-parseInt(t.paddingTop,10)-parseInt(t.paddingBottom,10)).toFixed(0)-0},h.prototype._brushHover=function(e){var t=this._layers.hover.ctx;if(!e.onbrush||e.onbrush&&!e.onbrush(t,!0)){var i=this.getLayer(e.zlevel);if(i.needTransform&&(t.save(),i.setTransform(t)),a.catchBrushException)try{e.brush(t,!0,this.refreshNextFrame)}catch(n){r(n,"hoverBrush error of "+e.type,e)}else e.brush(t,!0,this.refreshNextFrame);i.needTransform&&t.restore()}},h.prototype._shapeToImage=function(t,i,n,a,o){var r=document.createElement("canvas"),s=r.getContext("2d");r.style.width=n+"px",r.style.height=a+"px",r.setAttribute("width",n*o),r.setAttribute("height",a*o),s.clearRect(0,0,n*o,a*o);var l={position:i.position,rotation:i.rotation,scale:i.scale};i.position=[0,0,0],i.rotation=0,i.scale=[1,1],i&&i.brush(s,!1);var h=e("./shape/Image"),m=new h({id:t,style:{x:0,y:0,image:r}});return null!=l.position&&(m.position=i.position=l.position),null!=l.rotation&&(m.rotation=i.rotation=l.rotation),null!=l.scale&&(m.scale=i.scale=l.scale),m},h.prototype._createShapeToImageProcessor=function(){if(window.G_vmlCanvasManager)return i;var e=this;return function(t,i,n,o){return e._shapeToImage(t,i,n,o,a.devicePixelRatio)}},h}),i("zrender/Storage",["require","./tool/util","./Group"],function(e){"use strict";function t(e,t){return e.zlevel==t.zlevel?e.z==t.z?e.__renderidx-t.__renderidx:e.z-t.z:e.zlevel-t.zlevel}var i=e("./tool/util"),n=e("./Group"),a={hover:!1,normal:"down",update:!1},o=function(){this._elements={},this._hoverElements=[],this._roots=[],this._shapeList=[],this._shapeListOffset=0};return o.prototype.iterShape=function(e,t){if(t||(t=a),t.hover)for(var i=0,n=this._hoverElements.length;n>i;i++){var o=this._hoverElements[i];if(o.updateTransform(),e(o))return this}switch(t.update&&this.updateShapeList(),t.normal){case"down":for(var n=this._shapeList.length;n--;)if(e(this._shapeList[n]))return this;break;default:for(var i=0,n=this._shapeList.length;n>i;i++)if(e(this._shapeList[i]))return this}return this},o.prototype.getHoverShapes=function(e){for(var i=[],n=0,a=this._hoverElements.length;a>n;n++){i.push(this._hoverElements[n]);var o=this._hoverElements[n].hoverConnect;if(o){var r;o=o instanceof Array?o:[o];for(var s=0,l=o.length;l>s;s++)r=o[s].id?o[s]:this.get(o[s]),r&&i.push(r)}}if(i.sort(t),e)for(var n=0,a=i.length;a>n;n++)i[n].updateTransform();return i},o.prototype.getShapeList=function(e){return e&&this.updateShapeList(),this._shapeList},o.prototype.updateShapeList=function(){this._shapeListOffset=0;for(var e=0,i=this._roots.length;i>e;e++){var n=this._roots[e];this._updateAndAddShape(n)}this._shapeList.length=this._shapeListOffset;for(var e=0,i=this._shapeList.length;i>e;e++)this._shapeList[e].__renderidx=e;this._shapeList.sort(t)},o.prototype._updateAndAddShape=function(e,t){if(!e.ignore)if(e.updateTransform(),e.clipShape&&(e.clipShape.parent=e,e.clipShape.updateTransform(),t?(t=t.slice(),t.push(e.clipShape)):t=[e.clipShape]),"group"==e.type){for(var i=0;i0},o.prototype.addRoot=function(e){this._elements[e.id]||(e instanceof n&&e.addChildrenToStorage(this),this.addToMap(e),this._roots.push(e))},o.prototype.delRoot=function(e){if("undefined"==typeof e){for(var t=0;tt;t++)this.delRoot(e[t]);else{var r;r="string"==typeof e?this._elements[e]:e;var s=i.indexOf(this._roots,r);s>=0&&(this.delFromMap(r.id),this._roots.splice(s,1),r instanceof n&&r.delChildrenFromStorage(this))}},o.prototype.addToMap=function(e){return e instanceof n&&(e._storage=this),e.modSelf(),this._elements[e.id]=e,this},o.prototype.get=function(e){return this._elements[e]},o.prototype.delFromMap=function(e){var t=this._elements[e];return t&&(delete this._elements[e],t instanceof n&&(t._storage=null)),this},o.prototype.dispose=function(){this._elements=this._renderList=this._roots=this._hoverElements=null},o}),i("zrender/animation/Animation",["require","./Clip","../tool/color","../tool/util","../tool/event"],function(e){"use strict";function t(e,t){return e[t]}function i(e,t,i){e[t]=i}function n(e,t,i){return(t-e)*i+e}function a(e,t,i,a,o){var r=e.length;if(1==o)for(var s=0;r>s;s++)a[s]=n(e[s],t[s],i);else for(var l=e[0].length,s=0;r>s;s++)for(var h=0;l>h;h++)a[s][h]=n(e[s][h],t[s][h],i)}function o(e){switch(typeof e){case"undefined":case"string":return!1}return"undefined"!=typeof e.length}function r(e,t,i,n,a,o,r,l,h){var m=e.length;if(1==h)for(var V=0;m>V;V++)l[V]=s(e[V],t[V],i[V],n[V],a,o,r);else for(var U=e[0].length,V=0;m>V;V++)for(var d=0;U>d;d++)l[V][d]=s(e[V][d],t[V][d],i[V][d],n[V][d],a,o,r)}function s(e,t,i,n,a,o,r){var s=.5*(i-e),l=.5*(n-t);return(2*(t-i)+s+l)*r+(-3*(t-i)-2*s-l)*o+s*a+t}function l(e){if(o(e)){var t=e.length;if(o(e[0])){for(var i=[],n=0;t>n;n++)i.push(c.call(e[n]));return i}return c.call(e)}return e}function h(e){return e[0]=Math.floor(e[0]),e[1]=Math.floor(e[1]),e[2]=Math.floor(e[2]),"rgba("+e.join(",")+")"}var m=e("./Clip"),V=e("../tool/color"),U=e("../tool/util"),d=e("../tool/event").Dispatcher,p=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},c=Array.prototype.slice,u=function(e){e=e||{},this.stage=e.stage||{},this.onframe=e.onframe||function(){},this._clips=[],this._running=!1,this._time=0,d.call(this)};u.prototype={add:function(e){this._clips.push(e)},remove:function(e){if(e.__inStep)e.__needsRemove=!0;else{var t=U.indexOf(this._clips,e);t>=0&&this._clips.splice(t,1)}},_update:function(){for(var e=(new Date).getTime(),t=e-this._time,i=this._clips,n=i.length,a=[],o=[],r=0;n>r;r++){var s=i[r];s.__inStep=!0;var l=s.step(e);s.__inStep=!1,l&&(a.push(l),o.push(s))}for(var r=0;n>r;)i[r].__needsRemove?(i[r]=i[n-1],i.pop(),n--):r++;n=a.length;for(var r=0;n>r;r++)o[r].fire(a[r]);this._time=e,this.onframe(t),this.dispatch("frame",t),this.stage.update&&this.stage.update()},start:function(){function e(){t._running&&(p(e),t._update())}var t=this;this._running=!0,this._time=(new Date).getTime(),p(e)},stop:function(){this._running=!1},clear:function(){this._clips=[]},animate:function(e,t){t=t||{};var i=new y(e,t.loop,t.getter,t.setter);return i.animation=this,i},constructor:u},U.merge(u.prototype,d.prototype,!0);var y=function(e,n,a,o){this._tracks={},this._target=e,this._loop=n||!1,this._getter=a||t,this._setter=o||i,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};return y.prototype={when:function(e,t){for(var i in t)this._tracks[i]||(this._tracks[i]=[],0!==e&&this._tracks[i].push({time:0,value:l(this._getter(this._target,i))})),this._tracks[i].push({time:parseInt(e,10),value:t[i]});return this},during:function(e){return this._onframeList.push(e),this},start:function(e){var t=this,i=this._setter,l=this._getter,U="spline"===e,d=function(){if(t._clipCount--,0===t._clipCount){t._tracks={};for(var e=t._doneList.length,i=0;e>i;i++)t._doneList[i].call(t)}},p=function(p,c){var u=p.length;if(u){var y=p[0].value,g=o(y),b=!1,f=g&&o(y[0])?2:1;p.sort(function(e,t){return e.time-t.time});var k;if(u){k=p[u-1].time;for(var x=[],_=[],L=0;u>L;L++){x.push(p[L].time/k);var W=p[L].value;"string"==typeof W&&(W=V.toArray(W),0===W.length&&(W[0]=W[1]=W[2]=0,W[3]=1),b=!0),_.push(W)}var X,L,v,w,K,I,J,C=0,S=0;if(b)var E=[0,0,0,0];var F=function(e,o){if(S>o){for(X=Math.min(C+1,u-1),L=X;L>=0&&!(x[L]<=o);L--);L=Math.min(L,u-2)}else{for(L=C;u>L&&!(x[L]>o);L++);L=Math.min(L-1,u-2)}C=L,S=o;var m=x[L+1]-x[L];if(0!==m){if(v=(o-x[L])/m,U)if(K=_[L],w=_[0===L?L:L-1],I=_[L>u-2?u-1:L+1],J=_[L>u-3?u-1:L+2],g)r(w,K,I,J,v,v*v,v*v*v,l(e,c),f);else{var V;b?(V=r(w,K,I,J,v,v*v,v*v*v,E,1),V=h(E)):V=s(w,K,I,J,v,v*v,v*v*v),i(e,c,V)}else if(g)a(_[L],_[L+1],v,l(e,c),f);else{var V;b?(a(_[L],_[L+1],v,E,1),V=h(E)):V=n(_[L],_[L+1],v),i(e,c,V)}for(L=0;L=t[1]&&(e=t[1]),e},t.prototype.getLocation=function(e,t,i){var n=null!=e.x?e.x:"center";switch(n){case"center":n=Math.floor((this.canvasWidth-t)/2);break;case"left":n=0;break;case"right":n=this.canvasWidth-t}var a=null!=e.y?e.y:"center";switch(a){case"center":a=Math.floor((this.canvasHeight-i)/2);break;case"top":a=0;break;case"bottom":a=this.canvasHeight-i}return{x:n,y:a,width:t,height:i}},t}),i("zrender/Layer",["require","./mixin/Transformable","./tool/util","./config"],function(e){function t(){return!1}function i(e,t,i){var n=document.createElement(t),a=i.getWidth(),o=i.getHeight();return n.style.position="absolute",n.style.left=0,n.style.top=0,n.style.width=a+"px",n.style.height=o+"px",n.width=a*r.devicePixelRatio,n.height=o*r.devicePixelRatio,n.setAttribute("data-zr-dom-id",e),n}var n=e("./mixin/Transformable"),a=e("./tool/util"),o=window.G_vmlCanvasManager,r=e("./config"),s=function(e,a){this.id=e,this.dom=i(e,"canvas",a),this.dom.onselectstart=t,this.dom.style["-webkit-user-select"]="none",this.dom.style["user-select"]="none",this.dom.style["-webkit-touch-callout"]="none",this.dom.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",this.dom.className=r.elementClassName,o&&o.initElement(this.dom),this.domBack=null,this.ctxBack=null,this.painter=a,this.unusedCount=0,this.config=null,this.dirty=!0,this.elCount=0,this.clearColor=0,this.motionBlur=!1,this.lastFrameAlpha=.7,this.zoomable=!1,this.panable=!1,this.maxZoom=1/0,this.minZoom=0,n.call(this)};return s.prototype.initContext=function(){this.ctx=this.dom.getContext("2d");var e=r.devicePixelRatio;1!=e&&this.ctx.scale(e,e)},s.prototype.createBackBuffer=function(){if(!o){this.domBack=i("back-"+this.id,"canvas",this.painter),this.ctxBack=this.domBack.getContext("2d");var e=r.devicePixelRatio;1!=e&&this.ctxBack.scale(e,e)}},s.prototype.resize=function(e,t){var i=r.devicePixelRatio;this.dom.style.width=e+"px",this.dom.style.height=t+"px",this.dom.setAttribute("width",e*i),this.dom.setAttribute("height",t*i),1!=i&&this.ctx.scale(i,i),this.domBack&&(this.domBack.setAttribute("width",e*i),this.domBack.setAttribute("height",t*i),1!=i&&this.ctxBack.scale(i,i))},s.prototype.clear=function(){var e=this.dom,t=this.ctx,i=e.width,n=e.height,a=this.clearColor&&!o,s=this.motionBlur&&!o,l=this.lastFrameAlpha,h=r.devicePixelRatio;if(s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(e,0,0,i/h,n/h)),t.clearRect(0,0,i/h,n/h),a&&(t.save(),t.fillStyle=this.clearColor,t.fillRect(0,0,i/h,n/h),t.restore()),s){var m=this.domBack;t.save(),t.globalAlpha=l,t.drawImage(m,0,0,i/h,n/h),t.restore()}},a.merge(s.prototype,n.prototype),s}),i("zrender/shape/Text",["require","../tool/area","./Base","../tool/util"],function(e){ +var t=e("../tool/area"),i=e("./Base"),n=function(e){i.call(this,e)};return n.prototype={type:"text",brush:function(e,i){var n=this.style;if(i&&(n=this.getHighlightStyle(n,this.highlightStyle||{})),"undefined"!=typeof n.text&&n.text!==!1){e.save(),this.doClip(e),this.setContext(e,n),this.setTransform(e),n.textFont&&(e.font=n.textFont),e.textAlign=n.textAlign||"start",e.textBaseline=n.textBaseline||"middle";var a,o=(n.text+"").split("\n"),r=t.getTextHeight("国",n.textFont),s=this.getRect(n),l=n.x;a="top"==n.textBaseline?s.y:"bottom"==n.textBaseline?s.y+r:s.y+r/2;for(var h=0,m=o.length;m>h;h++){if(n.maxWidth)switch(n.brushType){case"fill":e.fillText(o[h],l,a,n.maxWidth);break;case"stroke":e.strokeText(o[h],l,a,n.maxWidth);break;case"both":e.fillText(o[h],l,a,n.maxWidth),e.strokeText(o[h],l,a,n.maxWidth);break;default:e.fillText(o[h],l,a,n.maxWidth)}else switch(n.brushType){case"fill":e.fillText(o[h],l,a);break;case"stroke":e.strokeText(o[h],l,a);break;case"both":e.fillText(o[h],l,a),e.strokeText(o[h],l,a);break;default:e.fillText(o[h],l,a)}a+=r}e.restore()}},getRect:function(e){if(e.__rect)return e.__rect;var i=t.getTextWidth(e.text,e.textFont),n=t.getTextHeight(e.text,e.textFont),a=e.x;"end"==e.textAlign||"right"==e.textAlign?a-=i:"center"==e.textAlign&&(a-=i/2);var o;return o="top"==e.textBaseline?e.y:"bottom"==e.textBaseline?e.y-n:e.y-n/2,e.__rect={x:a,y:o,width:i,height:n},e.__rect}},e("../tool/util").inherits(n,i),n}),i("zrender/shape/Rectangle",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"rectangle",_buildRadiusPath:function(e,t){var i,n,a,o,r=t.x,s=t.y,l=t.width,h=t.height,m=t.radius;"number"==typeof m?i=n=a=o=m:m instanceof Array?1===m.length?i=n=a=o=m[0]:2===m.length?(i=a=m[0],n=o=m[1]):3===m.length?(i=m[0],n=o=m[1],a=m[2]):(i=m[0],n=m[1],a=m[2],o=m[3]):i=n=a=o=0;var V;i+n>l&&(V=i+n,i*=l/V,n*=l/V),a+o>l&&(V=a+o,a*=l/V,o*=l/V),n+a>h&&(V=n+a,n*=h/V,a*=h/V),i+o>h&&(V=i+o,i*=h/V,o*=h/V),e.moveTo(r+i,s),e.lineTo(r+l-n,s),0!==n&&e.quadraticCurveTo(r+l,s,r+l,s+n),e.lineTo(r+l,s+h-a),0!==a&&e.quadraticCurveTo(r+l,s+h,r+l-a,s+h),e.lineTo(r+o,s+h),0!==o&&e.quadraticCurveTo(r,s+h,r,s+h-o),e.lineTo(r,s+i),0!==i&&e.quadraticCurveTo(r,s,r+i,s)},buildPath:function(e,t){t.radius?this._buildRadiusPath(e,t):(e.moveTo(t.x,t.y),e.lineTo(t.x+t.width,t.y),e.lineTo(t.x+t.width,t.y+t.height),e.lineTo(t.x,t.y+t.height),e.lineTo(t.x,t.y)),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-t/2),y:Math.round(e.y-t/2),width:e.width+t,height:e.height+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("zrender/tool/area",["require","./util","./curve"],function(e){"use strict";function t(e){return e%=C,0>e&&(e+=C),e}function i(e,t,i,o){if(!t||!e)return!1;var r=e.type;L=L||W.getContext();var s=n(e,t,i,o);if("undefined"!=typeof s)return s;if(e.buildPath&&L.isPointInPath)return a(e,L,t,i,o);switch(r){case"ellipse":return!0;case"trochoid":var l="out"==t.location?t.r1+t.r2+t.d:t.r1-t.r2+t.d;return d(t,i,o,l);case"rose":return d(t,i,o,t.maxr);default:return!1}}function n(e,t,i,n){var a=e.type;switch(a){case"bezier-curve":return"undefined"==typeof t.cpX2?l(t.xStart,t.yStart,t.cpX1,t.cpY1,t.xEnd,t.yEnd,t.lineWidth,i,n):s(t.xStart,t.yStart,t.cpX1,t.cpY1,t.cpX2,t.cpY2,t.xEnd,t.yEnd,t.lineWidth,i,n);case"line":return r(t.xStart,t.yStart,t.xEnd,t.yEnd,t.lineWidth,i,n);case"polyline":return m(t.pointList,t.lineWidth,i,n);case"ring":return V(t.x,t.y,t.r0,t.r,i,n);case"circle":return d(t.x,t.y,t.r,i,n);case"sector":var o=t.startAngle*Math.PI/180,h=t.endAngle*Math.PI/180;return t.clockWise||(o=-o,h=-h),p(t.x,t.y,t.r0,t.r,o,h,!t.clockWise,i,n);case"path":return t.pathArray&&k(t.pathArray,Math.max(t.lineWidth,5),t.brushType,i,n);case"polygon":case"star":case"isogon":return c(t.pointList,i,n);case"text":var u=t.__rect||e.getRect(t);return U(u.x,u.y,u.width,u.height,i,n);case"rectangle":case"image":return U(t.x,t.y,t.width,t.height,i,n)}}function a(e,t,i,n,a){return t.beginPath(),e.buildPath(t,i),t.closePath(),t.isPointInPath(n,a)}function o(e,t,n,a){return!i(e,t,n,a)}function r(e,t,i,n,a,o,r){if(0===a)return!1;var s=Math.max(a,5),l=0,h=e;if(r>t+s&&r>n+s||t-s>r&&n-s>r||o>e+s&&o>i+s||e-s>o&&i-s>o)return!1;if(e===i)return Math.abs(o-e)<=s/2;l=(t-n)/(e-i),h=(e*n-i*t)/(e-i);var m=l*o-r+h,V=m*m/(l*l+1);return s/2*s/2>=V}function s(e,t,i,n,a,o,r,s,l,h,m){if(0===l)return!1;var V=Math.max(l,5);if(m>t+V&&m>n+V&&m>o+V&&m>s+V||t-V>m&&n-V>m&&o-V>m&&s-V>m||h>e+V&&h>i+V&&h>a+V&&h>r+V||e-V>h&&i-V>h&&a-V>h&&r-V>h)return!1;var U=X.cubicProjectPoint(e,t,i,n,a,o,r,s,h,m,null);return V/2>=U}function l(e,t,i,n,a,o,r,s,l){if(0===r)return!1;var h=Math.max(r,5);if(l>t+h&&l>n+h&&l>o+h||t-h>l&&n-h>l&&o-h>l||s>e+h&&s>i+h&&s>a+h||e-h>s&&i-h>s&&a-h>s)return!1;var m=X.quadraticProjectPoint(e,t,i,n,a,o,s,l,null);return h/2>=m}function h(e,i,n,a,o,r,s,l,h){if(0===s)return!1;var m=Math.max(s,5);l-=e,h-=i;var V=Math.sqrt(l*l+h*h);if(V-m>n||n>V+m)return!1;if(Math.abs(a-o)>=C)return!0;if(r){var U=a;a=t(o),o=t(U)}else a=t(a),o=t(o);a>o&&(o+=C);var d=Math.atan2(h,l);return 0>d&&(d+=C),d>=a&&o>=d||d+C>=a&&o>=d+C}function m(e,t,i,n){for(var t=Math.max(t,10),a=0,o=e.length-1;o>a;a++){var s=e[a][0],l=e[a][1],h=e[a+1][0],m=e[a+1][1];if(r(s,l,h,m,t,i,n))return!0}return!1}function V(e,t,i,n,a,o){var r=(a-e)*(a-e)+(o-t)*(o-t);return n*n>r&&r>i*i}function U(e,t,i,n,a,o){return a>=e&&e+i>=a&&o>=t&&t+n>=o}function d(e,t,i,n,a){return i*i>(n-e)*(n-e)+(a-t)*(a-t)}function p(e,t,i,n,a,o,r,s,l){return h(e,t,(i+n)/2,a,o,r,n-i,s,l)}function c(e,t,i){for(var n=e.length,a=0,o=0,r=n-1;n>o;o++){var s=e[r][0],l=e[r][1],h=e[o][0],m=e[o][1];a+=u(s,l,h,m,t,i),r=o}return 0!==a}function u(e,t,i,n,a,o){if(o>t&&o>n||t>o&&n>o)return 0;if(n==t)return 0;var r=t>n?1:-1,s=(o-t)/(n-t),l=s*(i-e)+e;return l>a?r:0}function y(){var e=E[0];E[0]=E[1],E[1]=e}function g(e,t,i,n,a,o,r,s,l,h){if(h>t&&h>n&&h>o&&h>s||t>h&&n>h&&o>h&&s>h)return 0;var m=X.cubicRootAt(t,n,o,s,h,S);if(0===m)return 0;for(var V,U,d=0,p=-1,c=0;m>c;c++){var u=S[c],g=X.cubicAt(e,i,a,r,u);l>g||(0>p&&(p=X.cubicExtrema(t,n,o,s,E),E[1]1&&y(),V=X.cubicAt(t,n,o,s,E[0]),p>1&&(U=X.cubicAt(t,n,o,s,E[1]))),d+=2==p?uV?1:-1:uU?1:-1:U>s?1:-1:uV?1:-1:V>s?1:-1)}return d}function b(e,t,i,n,a,o,r,s){if(s>t&&s>n&&s>o||t>s&&n>s&&o>s)return 0;var l=X.quadraticRootAt(t,n,o,s,S);if(0===l)return 0;var h=X.quadraticExtremum(t,n,o);if(h>=0&&1>=h){for(var m=0,V=X.quadraticAt(t,n,o,h),U=0;l>U;U++){var d=X.quadraticAt(e,i,a,S[U]);r>d||(m+=S[U]V?1:-1:V>o?1:-1)}return m}var d=X.quadraticAt(e,i,a,S[0]);return r>d?0:t>o?1:-1}function f(e,i,n,a,o,r,s,l){if(l-=i,l>n||-n>l)return 0;var h=Math.sqrt(n*n-l*l);if(S[0]=-h,S[1]=h,Math.abs(a-o)>=C){a=0,o=C;var m=r?1:-1;return s>=S[0]+e&&s<=S[1]+e?m:0}if(r){var h=a;a=t(o),o=t(h)}else a=t(a),o=t(o);a>o&&(o+=C);for(var V=0,U=0;2>U;U++){var d=S[U];if(d+e>s){var p=Math.atan2(l,d),m=r?1:-1;0>p&&(p=C+p),(p>=a&&o>=p||p+C>=a&&o>=p+C)&&(p>Math.PI/2&&p<1.5*Math.PI&&(m=-m),V+=m)}}return V}function k(e,t,i,n,a){var o=0,m=0,V=0,U=0,d=0,p=!0,c=!0;i=i||"fill";for(var y="stroke"===i||"both"===i,k="fill"===i||"both"===i,x=0;x0&&(k&&(o+=u(m,V,U,d,n,a)),0!==o))return!0;U=L[L.length-2],d=L[L.length-1],p=!1,c&&"A"!==_.command&&(c=!1,m=U,V=d)}switch(_.command){case"M":m=L[0],V=L[1];break;case"L":if(y&&r(m,V,L[0],L[1],t,n,a))return!0;k&&(o+=u(m,V,L[0],L[1],n,a)),m=L[0],V=L[1];break;case"C":if(y&&s(m,V,L[0],L[1],L[2],L[3],L[4],L[5],t,n,a))return!0;k&&(o+=g(m,V,L[0],L[1],L[2],L[3],L[4],L[5],n,a)),m=L[4],V=L[5];break;case"Q":if(y&&l(m,V,L[0],L[1],L[2],L[3],t,n,a))return!0;k&&(o+=b(m,V,L[0],L[1],L[2],L[3],n,a)),m=L[2],V=L[3];break;case"A":var W=L[0],X=L[1],v=L[2],w=L[3],K=L[4],I=L[5],J=Math.cos(K)*v+W,C=Math.sin(K)*w+X;c?(c=!1,U=J,d=C):o+=u(m,V,J,C);var S=(n-W)*w/v+W;if(y&&h(W,X,w,K,K+I,1-L[7],t,S,a))return!0;k&&(o+=f(W,X,w,K,K+I,1-L[7],S,a)),m=Math.cos(K+I)*v+W,V=Math.sin(K+I)*w+X;break;case"z":if(y&&r(m,V,U,d,t,n,a))return!0;p=!0}}return k&&(o+=u(m,V,U,d,n,a)),0!==o}function x(e,t){var i=e+":"+t;if(v[i])return v[i];L=L||W.getContext(),L.save(),t&&(L.font=t),e=(e+"").split("\n");for(var n=0,a=0,o=e.length;o>a;a++)n=Math.max(L.measureText(e[a]).width,n);return L.restore(),v[i]=n,++K>J&&(K=0,v={}),n}function _(e,t){var i=e+":"+t;if(w[i])return w[i];L=L||W.getContext(),L.save(),t&&(L.font=t),e=(e+"").split("\n");var n=(L.measureText("国").width+2)*e.length;return L.restore(),w[i]=n,++I>J&&(I=0,w={}),n}var L,W=e("./util"),X=e("./curve"),v={},w={},K=0,I=0,J=5e3,C=2*Math.PI,S=[-1,-1,-1],E=[-1,-1];return{isInside:i,isOutside:o,getTextWidth:x,getTextHeight:_,isInsidePath:k,isInsidePolygon:c,isInsideSector:p,isInsideCircle:d,isInsideLine:r,isInsideRect:U,isInsidePolyline:m,isInsideCubicStroke:s,isInsideQuadraticStroke:l}}),i("zrender/shape/Base",["require","../tool/matrix","../tool/guid","../tool/util","../tool/log","../mixin/Transformable","../mixin/Eventful","../tool/area","../tool/color"],function(e){function t(t,n,a,o,r,s,l){r&&(t.font=r),t.textAlign=s,t.textBaseline=l;var h=i(n,a,o,r,s,l);n=(n+"").split("\n");var m=e("../tool/area").getTextHeight("国",r);switch(l){case"top":o=h.y;break;case"bottom":o=h.y+m;break;default:o=h.y+m/2}for(var V=0,U=n.length;U>V;V++)t.fillText(n[V],a,o),o+=m}function i(t,i,n,a,o,r){var s=e("../tool/area"),l=s.getTextWidth(t,a),h=s.getTextHeight("国",a);switch(t=(t+"").split("\n"),o){case"end":case"right":i-=l;break;case"center":i-=l/2}switch(r){case"top":break;case"bottom":n-=h*t.length;break;default:n-=h*t.length/2}return{x:i,y:n,width:l,height:h*t.length}}var n=window.G_vmlCanvasManager,a=e("../tool/matrix"),o=e("../tool/guid"),r=e("../tool/util"),s=e("../tool/log"),l=e("../mixin/Transformable"),h=e("../mixin/Eventful"),m=function(e){e=e||{},this.id=e.id||o();for(var t in e)this[t]=e[t];this.style=this.style||{},this.highlightStyle=this.highlightStyle||null,this.parent=null,this.__dirty=!0,this.__clipShapes=[],l.call(this),h.call(this)};m.prototype.invisible=!1,m.prototype.ignore=!1,m.prototype.zlevel=0,m.prototype.draggable=!1,m.prototype.clickable=!1,m.prototype.hoverable=!0,m.prototype.z=0,m.prototype.brush=function(e,t){var i=this.beforeBrush(e,t);switch(e.beginPath(),this.buildPath(e,i),i.brushType){case"both":e.fill();case"stroke":i.lineWidth>0&&e.stroke();break;default:e.fill()}this.drawText(e,i,this.style),this.afterBrush(e)},m.prototype.beforeBrush=function(e,t){var i=this.style;return this.brushTypeOnly&&(i.brushType=this.brushTypeOnly),t&&(i=this.getHighlightStyle(i,this.highlightStyle||{},this.brushTypeOnly)),"stroke"==this.brushTypeOnly&&(i.strokeColor=i.strokeColor||i.color),e.save(),this.doClip(e),this.setContext(e,i),this.setTransform(e),i},m.prototype.afterBrush=function(e){e.restore()};var V=[["color","fillStyle"],["strokeColor","strokeStyle"],["opacity","globalAlpha"],["lineCap","lineCap"],["lineJoin","lineJoin"],["miterLimit","miterLimit"],["lineWidth","lineWidth"],["shadowBlur","shadowBlur"],["shadowColor","shadowColor"],["shadowOffsetX","shadowOffsetX"],["shadowOffsetY","shadowOffsetY"]];m.prototype.setContext=function(e,t){for(var i=0,n=V.length;n>i;i++){var a=V[i][0],o=t[a],r=V[i][1];"undefined"!=typeof o&&(e[r]=o)}};var U=a.create();return m.prototype.doClip=function(e){if(this.__clipShapes&&!n)for(var t=0;t=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height},m.prototype.drawText=function(e,i,n){if("undefined"!=typeof i.text&&i.text!==!1){var a=i.textColor||i.color||i.strokeColor;e.fillStyle=a;var o,r,s,l,h=10,m=i.textPosition||this.textPosition||"top";switch(m){case"inside":case"top":case"bottom":case"left":case"right":if(this.getRect){var V=(n||i).__rect||this.getRect(n||i);switch(m){case"inside":s=V.x+V.width/2,l=V.y+V.height/2,o="center",r="middle","stroke"!=i.brushType&&a==i.color&&(e.fillStyle="#fff");break;case"left":s=V.x-h,l=V.y+V.height/2,o="end",r="middle";break;case"right":s=V.x+V.width+h,l=V.y+V.height/2,o="start",r="middle";break;case"top":s=V.x+V.width/2,l=V.y-h,o="center",r="bottom";break;case"bottom":s=V.x+V.width/2,l=V.y+V.height+h,o="center",r="top"}}break;case"start":case"end":var U=i.pointList||[[i.xStart||0,i.yStart||0],[i.xEnd||0,i.yEnd||0]],d=U.length;if(2>d)return;var p,c,u,y;switch(m){case"start":p=U[1][0],c=U[0][0],u=U[1][1],y=U[0][1];break;case"end":p=U[d-2][0],c=U[d-1][0],u=U[d-2][1],y=U[d-1][1]}s=c,l=y;var g=Math.atan((u-y)/(c-p))/Math.PI*180;0>c-p?g+=180:0>u-y&&(g+=360),h=5,g>=30&&150>=g?(o="center",r="bottom",l-=h):g>150&&210>g?(o="right",r="middle",s-=h):g>=210&&330>=g?(o="center",r="top",l+=h):(o="left",r="middle",s+=h);break;case"specific":s=i.textX||0,l=i.textY||0,o="start",r="middle"}null!=s&&null!=l&&t(e,i.text,s,l,i.textFont,i.textAlign||o,i.textBaseline||r)}},m.prototype.modSelf=function(){this.__dirty=!0,this.style&&(this.style.__rect=null),this.highlightStyle&&(this.highlightStyle.__rect=null)},m.prototype.isSilent=function(){return!(this.hoverable||this.draggable||this.clickable||this.onmousemove||this.onmouseover||this.onmouseout||this.onmousedown||this.onmouseup||this.onclick||this.ondragenter||this.ondragover||this.ondragleave||this.ondrop)},r.merge(m.prototype,l.prototype,!0),r.merge(m.prototype,h.prototype,!0),m}),i("zrender/tool/curve",["require","./vector"],function(e){function t(e){return e>-u&&u>e}function i(e){return e>u||-u>e}function n(e,t,i,n,a){var o=1-a;return o*o*(o*e+3*a*t)+a*a*(a*n+3*o*i)}function a(e,t,i,n,a){var o=1-a;return 3*(((t-e)*o+2*(i-t)*a)*o+(n-i)*a*a)}function o(e,i,n,a,o,r){var s=a+3*(i-n)-e,l=3*(n-2*i+e),h=3*(i-e),m=e-o,V=l*l-3*s*h,U=l*h-9*s*m,d=h*h-3*l*m,p=0;if(t(V)&&t(U))if(t(l))r[0]=0;else{var c=-h/l;c>=0&&1>=c&&(r[p++]=c)}else{var u=U*U-4*V*d;if(t(u)){var b=U/V,c=-l/s+b,f=-b/2;c>=0&&1>=c&&(r[p++]=c),f>=0&&1>=f&&(r[p++]=f)}else if(u>0){var k=Math.sqrt(u),x=V*l+1.5*s*(-U+k),_=V*l+1.5*s*(-U-k);x=0>x?-Math.pow(-x,g):Math.pow(x,g),_=0>_?-Math.pow(-_,g):Math.pow(_,g);var c=(-l-(x+_))/(3*s);c>=0&&1>=c&&(r[p++]=c)}else{var L=(2*V*l-3*s*U)/(2*Math.sqrt(V*V*V)),W=Math.acos(L)/3,X=Math.sqrt(V),v=Math.cos(W),c=(-l-2*X*v)/(3*s),f=(-l+X*(v+y*Math.sin(W)))/(3*s),w=(-l+X*(v-y*Math.sin(W)))/(3*s);c>=0&&1>=c&&(r[p++]=c),f>=0&&1>=f&&(r[p++]=f),w>=0&&1>=w&&(r[p++]=w)}}return p}function r(e,n,a,o,r){var s=6*a-12*n+6*e,l=9*n+3*o-3*e-9*a,h=3*n-3*e,m=0;if(t(l)){if(i(s)){var V=-h/s;V>=0&&1>=V&&(r[m++]=V)}}else{var U=s*s-4*l*h;if(t(U))r[0]=-s/(2*l);else if(U>0){var d=Math.sqrt(U),V=(-s+d)/(2*l),p=(-s-d)/(2*l);V>=0&&1>=V&&(r[m++]=V),p>=0&&1>=p&&(r[m++]=p)}}return m}function s(e,t,i,n,a,o){var r=(t-e)*a+e,s=(i-t)*a+t,l=(n-i)*a+i,h=(s-r)*a+r,m=(l-s)*a+s,V=(m-h)*a+h;o[0]=e,o[1]=r,o[2]=h,o[3]=V,o[4]=V,o[5]=m,o[6]=l,o[7]=n}function l(e,t,i,a,o,r,s,l,h,m,V){var U,d=.005,p=1/0;b[0]=h,b[1]=m;for(var y=0;1>y;y+=.05){f[0]=n(e,i,o,s,y),f[1]=n(t,a,r,l,y);var g=c.distSquare(b,f);p>g&&(U=y,p=g)}p=1/0;for(var x=0;32>x&&!(u>d);x++){var _=U-d,L=U+d;f[0]=n(e,i,o,s,_),f[1]=n(t,a,r,l,_);var g=c.distSquare(f,b);if(_>=0&&p>g)U=_,p=g;else{k[0]=n(e,i,o,s,L),k[1]=n(t,a,r,l,L);var W=c.distSquare(k,b);1>=L&&p>W?(U=L,p=W):d*=.5}}return V&&(V[0]=n(e,i,o,s,U),V[1]=n(t,a,r,l,U)),Math.sqrt(p)}function h(e,t,i,n){var a=1-n;return a*(a*e+2*n*t)+n*n*i}function m(e,t,i,n){return 2*((1-n)*(t-e)+n*(i-t))}function V(e,n,a,o,r){var s=e-2*n+a,l=2*(n-e),h=e-o,m=0;if(t(s)){if(i(l)){var V=-h/l;V>=0&&1>=V&&(r[m++]=V)}}else{var U=l*l-4*s*h;if(t(U)){var V=-l/(2*s);V>=0&&1>=V&&(r[m++]=V)}else if(U>0){var d=Math.sqrt(U),V=(-l+d)/(2*s),p=(-l-d)/(2*s);V>=0&&1>=V&&(r[m++]=V),p>=0&&1>=p&&(r[m++]=p)}}return m}function U(e,t,i){var n=e+i-2*t;return 0===n?.5:(e-t)/n}function d(e,t,i,n,a){var o=(t-e)*n+e,r=(i-t)*n+t,s=(r-o)*n+o;a[0]=e,a[1]=o,a[2]=s,a[3]=s,a[4]=r,a[5]=i}function p(e,t,i,n,a,o,r,s,l){var m,V=.005,U=1/0;b[0]=r,b[1]=s;for(var d=0;1>d;d+=.05){f[0]=h(e,i,a,d),f[1]=h(t,n,o,d);var p=c.distSquare(b,f);U>p&&(m=d,U=p)}U=1/0;for(var y=0;32>y&&!(u>V);y++){var g=m-V,x=m+V;f[0]=h(e,i,a,g),f[1]=h(t,n,o,g);var p=c.distSquare(f,b);if(g>=0&&U>p)m=g,U=p;else{k[0]=h(e,i,a,x),k[1]=h(t,n,o,x);var _=c.distSquare(k,b);1>=x&&U>_?(m=x,U=_):V*=.5}}return l&&(l[0]=h(e,i,a,m),l[1]=h(t,n,o,m)),Math.sqrt(U)}var c=e("./vector"),u=1e-4,y=Math.sqrt(3),g=1/3,b=c.create(),f=c.create(),k=c.create();return{cubicAt:n,cubicDerivativeAt:a,cubicRootAt:o,cubicExtrema:r,cubicSubdivide:s,cubicProjectPoint:l,quadraticAt:h,quadraticDerivativeAt:m,quadraticRootAt:V,quadraticExtremum:U,quadraticSubdivide:d,quadraticProjectPoint:p}}),i("zrender/mixin/Transformable",["require","../tool/matrix","../tool/vector"],function(e){"use strict";function t(e){return e>-s&&s>e}function i(e){return e>s||-s>e}var n=e("../tool/matrix"),a=e("../tool/vector"),o=[0,0],r=n.translate,s=5e-5,l=function(){this.position||(this.position=[0,0]),"undefined"==typeof this.rotation&&(this.rotation=[0,0,0]),this.scale||(this.scale=[1,1,0,0]),this.needLocalTransform=!1,this.needTransform=!1};return l.prototype={constructor:l,updateNeedTransform:function(){this.needLocalTransform=i(this.rotation[0])||i(this.position[0])||i(this.position[1])||i(this.scale[0]-1)||i(this.scale[1]-1)},updateTransform:function(){this.updateNeedTransform();var e=this.parent&&this.parent.needTransform;if(this.needTransform=this.needLocalTransform||e,this.needTransform){var t=this.transform||n.create();if(n.identity(t),this.needLocalTransform){var a=this.scale;if(i(a[0])||i(a[1])){o[0]=-a[2]||0,o[1]=-a[3]||0;var s=i(o[0])||i(o[1]);s&&r(t,t,o),n.scale(t,t,a),s&&(o[0]=-o[0],o[1]=-o[1],r(t,t,o))}if(this.rotation instanceof Array){if(0!==this.rotation[0]){o[0]=-this.rotation[1]||0,o[1]=-this.rotation[2]||0;var s=i(o[0])||i(o[1]);s&&r(t,t,o),n.rotate(t,t,this.rotation[0]),s&&(o[0]=-o[0],o[1]=-o[1],r(t,t,o))}}else 0!==this.rotation&&n.rotate(t,t,this.rotation);(i(this.position[0])||i(this.position[1]))&&r(t,t,this.position)}e&&(this.needLocalTransform?n.mul(t,this.parent.transform,t):n.copy(t,this.parent.transform)),this.transform=t,this.invTransform=this.invTransform||n.create(),n.invert(this.invTransform,t)}},setTransform:function(e){if(this.needTransform){var t=this.transform;e.transform(t[0],t[1],t[2],t[3],t[4],t[5])}},lookAt:function(){var e=a.create();return function(i){this.transform||(this.transform=n.create());var o=this.transform;if(a.sub(e,i,this.position),!t(e[0])||!t(e[1])){a.normalize(e,e);var r=this.scale;o[2]=e[0]*r[1],o[3]=e[1]*r[1],o[0]=e[1]*r[0],o[1]=-e[0]*r[0],o[4]=this.position[0],o[5]=this.position[1],this.decomposeTransform()}}}(),decomposeTransform:function(){if(this.transform){var e=this.transform,t=e[0]*e[0]+e[1]*e[1],n=this.position,a=this.scale,o=this.rotation;i(t-1)&&(t=Math.sqrt(t));var r=e[2]*e[2]+e[3]*e[3];i(r-1)&&(r=Math.sqrt(r)),n[0]=e[4],n[1]=e[5],a[0]=t,a[1]=r,a[2]=a[3]=0,o[0]=Math.atan2(-e[1]/r,e[0]/t),o[1]=o[2]=0}},transformCoordToLocal:function(e,t){var i=[e,t];return this.needTransform&&this.invTransform&&a.applyTransform(i,i,this.invTransform),i}},l}),i("zrender/Group",["require","./tool/guid","./tool/util","./mixin/Transformable","./mixin/Eventful"],function(e){var t=e("./tool/guid"),i=e("./tool/util"),n=e("./mixin/Transformable"),a=e("./mixin/Eventful"),o=function(e){e=e||{},this.id=e.id||t();for(var i in e)this[i]=e[i];this.type="group",this.clipShape=null,this._children=[],this._storage=null,this.__dirty=!0,n.call(this),a.call(this)};return o.prototype.ignore=!1,o.prototype.children=function(){return this._children.slice()},o.prototype.childAt=function(e){return this._children[e]},o.prototype.addChild=function(e){e!=this&&e.parent!=this&&(e.parent&&e.parent.removeChild(e),this._children.push(e),e.parent=this,this._storage&&this._storage!==e._storage&&(this._storage.addToMap(e),e instanceof o&&e.addChildrenToStorage(this._storage)))},o.prototype.removeChild=function(e){var t=i.indexOf(this._children,e);t>=0&&this._children.splice(t,1),e.parent=null,this._storage&&(this._storage.delFromMap(e.id),e instanceof o&&e.delChildrenFromStorage(this._storage))},o.prototype.clearChildren=function(){for(var e=0;et)){t=Math.min(t,1);var n="string"==typeof this.easing?i[this.easing]:this.easing,a="function"==typeof n?n(t):t;return this.fire("frame",a),1==t?this.loop?(this.restart(),"restart"):(this.__needsRemove=!0,"destroy"):null}},restart:function(){var e=(new Date).getTime(),t=(e-this._startTime)%this._life;this._startTime=(new Date).getTime()-t+this.gap,this.__needsRemove=!1},fire:function(e,t){for(var i=0,n=this._targetPool.length;n>i;i++)this["on"+e]&&this["on"+e](this._targetPool[i],t)},constructor:t},t}),i("zrender/animation/easing",[],function(){var e={Linear:function(e){return e},QuadraticIn:function(e){return e*e},QuadraticOut:function(e){return e*(2-e)},QuadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},CubicIn:function(e){return e*e*e},CubicOut:function(e){return--e*e*e+1},CubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},QuarticIn:function(e){return e*e*e*e},QuarticOut:function(e){return 1- --e*e*e*e},QuarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},QuinticIn:function(e){return e*e*e*e*e},QuinticOut:function(e){return--e*e*e*e*e+1},QuinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},SinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},SinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},SinusoidalInOut:function(e){return.5*(1-Math.cos(Math.PI*e))},ExponentialIn:function(e){return 0===e?0:Math.pow(1024,e-1)},ExponentialOut:function(e){return 1===e?1:1-Math.pow(2,-10*e)},ExponentialInOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},CircularIn:function(e){return 1-Math.sqrt(1-e*e)},CircularOut:function(e){return Math.sqrt(1- --e*e)},CircularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},ElasticIn:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n)))},ElasticOut:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*e)*Math.sin(2*(e-t)*Math.PI/n)+1)},ElasticInOut:function(e){var t,i=.1,n=.4;return 0===e?0:1===e?1:(!i||1>i?(i=1,t=n/4):t=n*Math.asin(1/i)/(2*Math.PI),(e*=2)<1?-.5*i*Math.pow(2,10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n):i*Math.pow(2,-10*(e-=1))*Math.sin(2*(e-t)*Math.PI/n)*.5+1)},BackIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},BackOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},BackInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*e*e*((t+1)*e-t):.5*((e-=2)*e*((t+1)*e+t)+2)},BounceIn:function(t){return 1-e.BounceOut(1-t)},BounceOut:function(e){return 1/2.75>e?7.5625*e*e:2/2.75>e?7.5625*(e-=1.5/2.75)*e+.75:2.5/2.75>e?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},BounceInOut:function(t){return.5>t?.5*e.BounceIn(2*t):.5*e.BounceOut(2*t-1)+.5}};return e}),i("echarts/chart/base",["require","zrender/shape/Image","../util/shape/Icon","../util/shape/MarkLine","../util/shape/Symbol","zrender/shape/Polyline","zrender/shape/ShapeBundle","../config","../util/ecData","../util/ecAnimation","../util/ecEffect","../util/accMath","../component/base","../layout/EdgeBundling","zrender/tool/util","zrender/tool/area"],function(e){function t(e){return null!=e.x&&null!=e.y}function i(e,t,i,n,a){p.call(this,e,t,i,n,a);var o=this;this.selectedMap={},this.lastShapeList=[],this.shapeHandler={onclick:function(){o.isClick=!0},ondragover:function(e){var t=e.target;t.highlightStyle=t.highlightStyle||{};var i=t.highlightStyle,n=i.brushTyep,a=i.strokeColor,r=i.lineWidth;i.brushType="stroke",i.strokeColor=o.ecTheme.calculableColor||h.calculableColor,i.lineWidth="icon"===t.type?30:10,o.zr.addHoverShape(t),setTimeout(function(){i&&(i.brushType=n,i.strokeColor=a,i.lineWidth=r)},20)},ondrop:function(e){null!=m.get(e.dragged,"data")&&(o.isDrop=!0)},ondragend:function(){o.isDragend=!0}}}var n=e("zrender/shape/Image"),a=e("../util/shape/Icon"),o=e("../util/shape/MarkLine"),r=e("../util/shape/Symbol"),s=e("zrender/shape/Polyline"),l=e("zrender/shape/ShapeBundle"),h=e("../config"),m=e("../util/ecData"),V=e("../util/ecAnimation"),U=e("../util/ecEffect"),d=e("../util/accMath"),p=e("../component/base"),c=e("../layout/EdgeBundling"),u=e("zrender/tool/util"),y=e("zrender/tool/area");return i.prototype={setCalculable:function(e){return e.dragEnableTime=this.ecTheme.DRAG_ENABLE_TIME||h.DRAG_ENABLE_TIME,e.ondragover=this.shapeHandler.ondragover,e.ondragend=this.shapeHandler.ondragend,e.ondrop=this.shapeHandler.ondrop,e},ondrop:function(e,t){if(this.isDrop&&e.target&&!t.dragIn){var i,n=e.target,a=e.dragged,o=m.get(n,"seriesIndex"),r=m.get(n,"dataIndex"),s=this.series,l=this.component.legend;if(-1===r){if(m.get(a,"seriesIndex")==o)return t.dragOut=t.dragIn=t.needRefresh=!0,void(this.isDrop=!1);i={value:m.get(a,"value"),name:m.get(a,"name")},this.type===h.CHART_TYPE_PIE&&i.value<0&&(i.value=0);for(var V=!1,U=s[o].data,p=0,c=U.length;c>p;p++)U[p].name===i.name&&"-"===U[p].value&&(s[o].data[p].value=i.value,V=!0);!V&&s[o].data.push(i),l&&l.add(i.name,a.style.color||a.style.strokeColor)}else i=s[o].data[r]||"-",null!=i.value?(s[o].data[r].value="-"!=i.value?d.accAdd(s[o].data[r].value,m.get(a,"value")):m.get(a,"value"),(this.type===h.CHART_TYPE_FUNNEL||this.type===h.CHART_TYPE_PIE)&&(l&&1===l.getRelatedAmount(i.name)&&this.component.legend.del(i.name),i.name+=this.option.nameConnector+m.get(a,"name"),l&&l.add(i.name,a.style.color||a.style.strokeColor))):s[o].data[r]="-"!=i?d.accAdd(s[o].data[r],m.get(a,"value")):m.get(a,"value");t.dragIn=t.dragIn||!0,this.isDrop=!1;var u=this;setTimeout(function(){u.zr.trigger("mousemove",e.event)},300)}},ondragend:function(e,t){if(this.isDragend&&e.target&&!t.dragOut){var i=e.target,n=m.get(i,"seriesIndex"),a=m.get(i,"dataIndex"),o=this.series;if(null!=o[n].data[a].value){o[n].data[a].value="-";var r=o[n].data[a].name,s=this.component.legend;s&&0===s.getRelatedAmount(r)&&s.del(r)}else o[n].data[a]="-";t.dragOut=!0,t.needRefresh=!0,this.isDragend=!1}},onlegendSelected:function(e,t){var i=e.selected;for(var n in this.selectedMap)this.selectedMap[n]!=i[n]&&(t.needRefresh=!0),this.selectedMap[n]=i[n]},_buildPosition:function(){this._symbol=this.option.symbolList,this._sIndex2ShapeMap={},this._sIndex2ColorMap={},this.selectedMap={},this.xMarkMap={};for(var e,t,i,n,a=this.series,o={top:[],bottom:[],left:[],right:[],other:[]},r=0,s=a.length;s>r;r++)a[r].type===this.type&&(a[r]=this.reformOption(a[r]),this.legendHoverLink=a[r].legendHoverLink||this.legendHoverLink,e=a[r].xAxisIndex,t=a[r].yAxisIndex,i=this.component.xAxis.getAxis(e),n=this.component.yAxis.getAxis(t),i.type===h.COMPONENT_TYPE_AXIS_CATEGORY?o[i.getPosition()].push(r):n.type===h.COMPONENT_TYPE_AXIS_CATEGORY?o[n.getPosition()].push(r):o.other.push(r));for(var l in o)o[l].length>0&&this._buildSinglePosition(l,o[l]);this.addShapeList()},_buildSinglePosition:function(e,t){var i=this._mapData(t),n=i.locationMap,a=i.maxDataLength;if(0!==a&&0!==n.length){switch(e){case"bottom":case"top":this._buildHorizontal(t,a,n,this.xMarkMap);break;case"left":case"right":this._buildVertical(t,a,n,this.xMarkMap);break;case"other":this._buildOther(t,a,n,this.xMarkMap)}for(var o=0,r=t.length;r>o;o++)this.buildMark(t[o])}},_mapData:function(e){for(var t,i,n,a,o=this.series,r=0,s={},l="__kener__stack__",m=this.component.legend,V=[],U=0,d=0,p=e.length;p>d;d++){if(t=o[e[d]],n=t.name,this._sIndex2ShapeMap[e[d]]=this._sIndex2ShapeMap[e[d]]||this.query(t,"symbol")||this._symbol[d%this._symbol.length],m){if(this.selectedMap[n]=m.isSelected(n),this._sIndex2ColorMap[e[d]]=m.getColor(n),a=m.getItemShape(n)){var c=a.style;if(this.type==h.CHART_TYPE_LINE)c.iconType="legendLineIcon",c.symbol=this._sIndex2ShapeMap[e[d]];else if(t.itemStyle.normal.barBorderWidth>0){var u=a.highlightStyle;c.brushType="both",c.x+=1,c.y+=1,c.width-=2,c.height-=2,c.strokeColor=u.strokeColor=t.itemStyle.normal.barBorderColor,u.lineWidth=3}m.setItemShape(n,a)}}else this.selectedMap[n]=!0,this._sIndex2ColorMap[e[d]]=this.zr.getColor(e[d]);this.selectedMap[n]&&(i=t.stack||l+e[d],null==s[i]?(s[i]=r,V[r]=[e[d]],r++):V[s[i]].push(e[d])),U=Math.max(U,t.data.length)}return{locationMap:V,maxDataLength:U}},_calculMarkMapXY:function(e,t,i){for(var n=this.series,a=0,o=t.length;o>a;a++)for(var r=0,s=t[a].length;s>r;r++){var l=t[a][r],h="xy"==i?0:"",m=this.component.grid,V=e[l];if("-1"!=i.indexOf("x")){V["counter"+h]>0&&(V["average"+h]=V["sum"+h]/V["counter"+h]);var U=this.component.xAxis.getAxis(n[l].xAxisIndex||0).getCoord(V["average"+h]);V["averageLine"+h]=[[U,m.getYend()],[U,m.getY()]],V["minLine"+h]=[[V["minX"+h],m.getYend()],[V["minX"+h],m.getY()]],V["maxLine"+h]=[[V["maxX"+h],m.getYend()],[V["maxX"+h],m.getY()]],V.isHorizontal=!1}if(h="xy"==i?1:"","-1"!=i.indexOf("y")){V["counter"+h]>0&&(V["average"+h]=V["sum"+h]/V["counter"+h]);var d=this.component.yAxis.getAxis(n[l].yAxisIndex||0).getCoord(V["average"+h]);V["averageLine"+h]=[[m.getX(),d],[m.getXend(),d]],V["minLine"+h]=[[m.getX(),V["minY"+h]],[m.getXend(),V["minY"+h]]],V["maxLine"+h]=[[m.getX(),V["maxY"+h]],[m.getXend(),V["maxY"+h]]],V.isHorizontal=!0}}},addLabel:function(e,t,i,n,a){var o=[i,t],r=this.deepMerge(o,"itemStyle.normal.label"),s=this.deepMerge(o,"itemStyle.emphasis.label"),l=r.textStyle||{},h=s.textStyle||{}; + +if(r.show){var m=e.style;m.text=this._getLabelText(t,i,n,"normal"),m.textPosition=null==r.position?"horizontal"===a?"right":"top":r.position,m.textColor=l.color,m.textFont=this.getFont(l),m.textAlign=l.align,m.textBaseline=l.baseline}if(s.show){var V=e.highlightStyle;V.text=this._getLabelText(t,i,n,"emphasis"),V.textPosition=r.show?e.style.textPosition:null==s.position?"horizontal"===a?"right":"top":s.position,V.textColor=h.color,V.textFont=this.getFont(h),V.textAlign=h.align,V.textBaseline=h.baseline}return e},_getLabelText:function(e,t,i,n){var a=this.deepQuery([t,e],"itemStyle."+n+".label.formatter");a||"emphasis"!==n||(a=this.deepQuery([t,e],"itemStyle.normal.label.formatter"));var o=this.getDataFromOption(t,"-");return a?"function"==typeof a?a.call(this.myChart,{seriesName:e.name,series:e,name:i,value:o,data:t,status:n}):"string"==typeof a?a=a.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{a0}",e.name).replace("{b0}",i).replace("{c0}",this.numAddCommas(o)):void 0:o instanceof Array?null!=o[2]?this.numAddCommas(o[2]):o[0]+" , "+o[1]:this.numAddCommas(o)},buildMark:function(e){var t=this.series[e];this.selectedMap[t.name]&&(t.markLine&&this._buildMarkLine(e),t.markPoint&&this._buildMarkPoint(e))},_buildMarkPoint:function(e){for(var t,i,n=(this.markAttachStyle||{})[e],a=this.series[e],o=u.clone(a.markPoint),r=0,s=o.data.length;s>r;r++)t=o.data[r],i=this.getMarkCoord(e,t),t.x=null!=t.x?t.x:i[0],t.y=null!=t.y?t.y:i[1],!t.type||"max"!==t.type&&"min"!==t.type||(t.value=i[3],t.name=t.name||t.type,t.symbolSize=t.symbolSize||y.getTextWidth(i[3],this.getFont())/2+5);for(var l=this._markPoint(e,o),r=0,s=l.length;s>r;r++){var m=l[r];m.zlevel=a.zlevel,m.z=a.z+1;for(var V in n)m[V]=u.clone(n[V]);this.shapeList.push(m)}if(this.type===h.CHART_TYPE_FORCE||this.type===h.CHART_TYPE_CHORD)for(var r=0,s=l.length;s>r;r++)this.zr.addShape(l[r])},_buildMarkLine:function(e){for(var t,i=(this.markAttachStyle||{})[e],n=this.series[e],a=u.clone(n.markLine),o=0,r=a.data.length;r>o;o++){var s=a.data[o];!s.type||"max"!==s.type&&"min"!==s.type&&"average"!==s.type?t=[this.getMarkCoord(e,s[0]),this.getMarkCoord(e,s[1])]:(t=this.getMarkCoord(e,s),a.data[o]=[u.clone(s),{}],a.data[o][0].name=s.name||s.type,a.data[o][0].value="average"!==s.type?t[3]:+t[3].toFixed(null!=a.precision?a.precision:this.deepQuery([this.ecTheme,h],"markLine.precision")),t=t[2],s=[{},{}]),null!=t&&null!=t[0]&&null!=t[1]&&(a.data[o][0].x=null!=s[0].x?s[0].x:t[0][0],a.data[o][0].y=null!=s[0].y?s[0].y:t[0][1],a.data[o][1].x=null!=s[1].x?s[1].x:t[1][0],a.data[o][1].y=null!=s[1].y?s[1].y:t[1][1])}var m=this._markLine(e,a),V=a.large;if(V){var U=new l({style:{shapeList:m}}),d=m[0];if(d){u.merge(U.style,d.style),u.merge(U.highlightStyle={},d.highlightStyle),U.style.brushType="stroke",U.zlevel=n.zlevel,U.z=n.z+1,U.hoverable=!1;for(var p in i)U[p]=u.clone(i[p])}this.shapeList.push(U),this.zr.addShape(U),U._mark="largeLine";var c=a.effect;c.show&&(U.effect=c)}else{for(var o=0,r=m.length;r>o;o++){var y=m[o];y.zlevel=n.zlevel,y.z=n.z+1;for(var p in i)y[p]=u.clone(i[p]);this.shapeList.push(y)}if(this.type===h.CHART_TYPE_FORCE||this.type===h.CHART_TYPE_CHORD)for(var o=0,r=m.length;r>o;o++)this.zr.addShape(m[o])}},_markPoint:function(e,t){var i=this.series[e],n=this.component;u.merge(u.merge(t,u.clone(this.ecTheme.markPoint||{})),u.clone(h.markPoint)),t.name=i.name;var a,o,r,s,l,V,U,d=[],p=t.data,c=n.dataRange,y=n.legend,g=this.zr.getWidth(),b=this.zr.getHeight();if(t.large)a=this.getLargeMarkPointShape(e,t),a._mark="largePoint",a&&d.push(a);else for(var f=0,k=p.length;k>f;f++)null!=p[f].x&&null!=p[f].y&&(r=null!=p[f].value?p[f].value:"",y&&(o=y.getColor(i.name)),c&&(o=isNaN(r)?o:c.getColor(r),s=[p[f],t],l=this.deepQuery(s,"itemStyle.normal.color")||o,V=this.deepQuery(s,"itemStyle.emphasis.color")||l,null==l&&null==V)||(o=null==o?this.zr.getColor(e):o,p[f].tooltip=p[f].tooltip||t.tooltip||{trigger:"item"},p[f].name=null!=p[f].name?p[f].name:"",p[f].value=r,a=this.getSymbolShape(t,e,p[f],f,p[f].name,this.parsePercent(p[f].x,g),this.parsePercent(p[f].y,b),"pin",o,"rgba(0,0,0,0)","horizontal"),a._mark="point",U=this.deepMerge([p[f],t],"effect"),U.show&&(a.effect=U),i.type===h.CHART_TYPE_MAP&&(a._geo=this.getMarkGeo(p[f])),m.pack(a,i,e,p[f],f,p[f].name,r),d.push(a)));return d},_markLine:function(){function e(e,t){e[t]=e[t]instanceof Array?e[t].length>1?e[t]:[e[t][0],e[t][0]]:[e[t],e[t]]}return function(i,n){var a=this.series[i],o=this.component,r=o.dataRange,s=o.legend;u.merge(u.merge(n,u.clone(this.ecTheme.markLine||{})),u.clone(h.markLine));var l=s?s.getColor(a.name):this.zr.getColor(i);e(n,"symbol"),e(n,"symbolSize"),e(n,"symbolRotate");for(var V=n.data,U=[],d=this.zr.getWidth(),p=this.zr.getHeight(),y=0;yy;y++){var K=U[y],I=K.rawEdge||K,g=I.rawData,x=null!=g.value?g.value:"",J=this.getMarkLineShape(n,i,g,y,K.points,W,I.color);J._mark="line";var C=this.deepMerge([g[0],g[1],n],"effect");C.show&&(J.effect=C,J.effect.large=n.large),a.type===h.CHART_TYPE_MAP&&(J._geo=[this.getMarkGeo(g[0]),this.getMarkGeo(g[1])]),m.pack(J,a,i,g[0],y,g[0].name+(""!==g[1].name?" > "+g[1].name:""),x),v.push(J)}return v}}(),getMarkCoord:function(){return[0,0]},getSymbolShape:function(e,t,i,o,r,s,l,h,V,U,d){var p=[i,e],c=this.getDataFromOption(i,"-");h=this.deepQuery(p,"symbol")||h;var u=this.deepQuery(p,"symbolSize");u="function"==typeof u?u(c):u,"number"==typeof u&&(u=[u,u]);var y=this.deepQuery(p,"symbolRotate"),g=this.deepMerge(p,"itemStyle.normal"),b=this.deepMerge(p,"itemStyle.emphasis"),f=null!=g.borderWidth?g.borderWidth:g.lineStyle&&g.lineStyle.width;null==f&&(f=h.match("empty")?2:0);var k=null!=b.borderWidth?b.borderWidth:b.lineStyle&&b.lineStyle.width;null==k&&(k=f+2);var x=this.getItemStyleColor(g.color,t,o,i),_=this.getItemStyleColor(b.color,t,o,i),L=u[0],W=u[1],X=new a({style:{iconType:h.replace("empty","").toLowerCase(),x:s-L,y:l-W,width:2*L,height:2*W,brushType:"both",color:h.match("empty")?U:x||V,strokeColor:g.borderColor||x||V,lineWidth:f},highlightStyle:{color:h.match("empty")?U:_||x||V,strokeColor:b.borderColor||g.borderColor||_||x||V,lineWidth:k},clickable:this.deepQuery(p,"clickable")});return h.match("image")&&(X.style.image=h.replace(new RegExp("^image:\\/\\/"),""),X=new n({style:X.style,highlightStyle:X.highlightStyle,clickable:this.deepQuery(p,"clickable")})),null!=y&&(X.rotation=[y*Math.PI/180,s,l]),h.match("star")&&(X.style.iconType="star",X.style.n=h.replace("empty","").replace("star","")-0||5),"none"===h&&(X.invisible=!0,X.hoverable=!1),X=this.addLabel(X,e,i,r,d),h.match("empty")&&(null==X.style.textColor&&(X.style.textColor=X.style.strokeColor),null==X.highlightStyle.textColor&&(X.highlightStyle.textColor=X.highlightStyle.strokeColor)),m.pack(X,e,t,i,o,r),X._x=s,X._y=l,X._dataIndex=o,X._seriesIndex=t,X},getMarkLineShape:function(e,t,i,n,a,r,l){var h=null!=i[0].value?i[0].value:"-",m=null!=i[1].value?i[1].value:"-",V=[i[0].symbol||e.symbol[0],i[1].symbol||e.symbol[1]],U=[i[0].symbolSize||e.symbolSize[0],i[1].symbolSize||e.symbolSize[1]];U[0]="function"==typeof U[0]?U[0](h):U[0],U[1]="function"==typeof U[1]?U[1](m):U[1];var d=[this.query(i[0],"symbolRotate")||e.symbolRotate[0],this.query(i[1],"symbolRotate")||e.symbolRotate[1]],p=[i[0],i[1],e],c=this.deepMerge(p,"itemStyle.normal");c.color=this.getItemStyleColor(c.color,t,n,i);var u=this.deepMerge(p,"itemStyle.emphasis");u.color=this.getItemStyleColor(u.color,t,n,i);var y=c.lineStyle,g=u.lineStyle,b=y.width;null==b&&(b=c.borderWidth);var f=g.width;null==f&&(f=null!=u.borderWidth?u.borderWidth:b+2);var k=this.deepQuery(p,"smoothness");this.deepQuery(p,"smooth")||(k=0);var x=r?s:o,_=new x({style:{symbol:V,symbolSize:U,symbolRotate:d,brushType:"both",lineType:y.type,shadowColor:y.shadowColor||y.color||c.borderColor||c.color||l,shadowBlur:y.shadowBlur,shadowOffsetX:y.shadowOffsetX,shadowOffsetY:y.shadowOffsetY,color:c.color||l,strokeColor:y.color||c.borderColor||c.color||l,lineWidth:b,symbolBorderColor:c.borderColor||c.color||l,symbolBorder:c.borderWidth},highlightStyle:{shadowColor:g.shadowColor,shadowBlur:g.shadowBlur,shadowOffsetX:g.shadowOffsetX,shadowOffsetY:g.shadowOffsetY,color:u.color||c.color||l,strokeColor:g.color||y.color||u.borderColor||c.borderColor||u.color||c.color||l,lineWidth:f,symbolBorderColor:u.borderColor||c.borderColor||u.color||c.color||l,symbolBorder:null==u.borderWidth?c.borderWidth+2:u.borderWidth},clickable:this.deepQuery(p,"clickable")}),L=_.style;return r?(L.pointList=a,L.smooth=k):(L.xStart=a[0][0],L.yStart=a[0][1],L.xEnd=a[1][0],L.yEnd=a[1][1],L.curveness=k,_.updatePoints(_.style)),_=this.addLabel(_,e,i[0],i[0].name+" : "+i[1].name)},getLargeMarkPointShape:function(e,t){var i,n,a,o,s,l,h=this.series[e],m=this.component,V=t.data,U=m.dataRange,d=m.legend,p=[V[0],t];if(d&&(n=d.getColor(h.name)),!U||(a=null!=V[0].value?V[0].value:"",n=isNaN(a)?n:U.getColor(a),o=this.deepQuery(p,"itemStyle.normal.color")||n,s=this.deepQuery(p,"itemStyle.emphasis.color")||o,null!=o||null!=s)){n=this.deepMerge(p,"itemStyle.normal").color||n;var c=this.deepQuery(p,"symbol")||"circle";c=c.replace("empty","").replace(/\d/g,""),l=this.deepMerge([V[0],t],"effect");var u=window.devicePixelRatio||1;return i=new r({style:{pointList:V,color:n,strokeColor:n,shadowColor:l.shadowColor||n,shadowBlur:(null!=l.shadowBlur?l.shadowBlur:8)*u,size:this.deepQuery(p,"symbolSize"),iconType:c,brushType:"fill",lineWidth:1},draggable:!1,hoverable:!1}),l.show&&(i.effect=l),i}},backupShapeList:function(){this.shapeList&&this.shapeList.length>0?(this.lastShapeList=this.shapeList,this.shapeList=[]):this.lastShapeList=[]},addShapeList:function(){var e,t,i=this.option.animationThreshold/(this.canvasSupported?2:4),n=this.lastShapeList,a=this.shapeList,o=n.length>0,r=o?this.query(this.option,"animationDurationUpdate"):this.query(this.option,"animationDuration"),s=this.query(this.option,"animationEasing"),l={},m={};if(this.option.animation&&!this.option.renderAsImage&&a.lengthV;V++)t=this._getAnimationKey(n[V]),t.match("undefined")?this.zr.delShape(n[V].id):(t+=n[V].type,l[t]?this.zr.delShape(n[V].id):l[t]=n[V]);for(var V=0,U=a.length;U>V;V++)t=this._getAnimationKey(a[V]),t.match("undefined")?this.zr.addShape(a[V]):(t+=a[V].type,m[t]=a[V]);for(t in l)m[t]||this.zr.delShape(l[t].id);for(t in m)l[t]?(this.zr.delShape(l[t].id),this._animateMod(l[t],m[t],r,s,0,o)):(e=this.type!=h.CHART_TYPE_LINE&&this.type!=h.CHART_TYPE_RADAR||0===t.indexOf("icon")?0:r/2,this._animateMod(!1,m[t],r,s,e,o));this.zr.refresh(),this.animationEffect()}else{this.motionlessOnce=!1,this.zr.delShape(n);for(var V=0,U=a.length;U>V;V++)this.zr.addShape(a[V])}},_getAnimationKey:function(e){return this.type!=h.CHART_TYPE_MAP&&this.type!=h.CHART_TYPE_TREEMAP&&this.type!=h.CHART_TYPE_VENN&&this.type!=h.CHART_TYPE_TREE?m.get(e,"seriesIndex")+"_"+m.get(e,"dataIndex")+(e._mark?e._mark:"")+(this.type===h.CHART_TYPE_RADAR?m.get(e,"special"):""):m.get(e,"seriesIndex")+"_"+m.get(e,"dataIndex")+(e._mark?e._mark:"undefined")},_animateMod:function(e,t,i,n,a,o){switch(t.type){case"polyline":case"half-smooth-polygon":V.pointList(this.zr,e,t,i,n);break;case"rectangle":V.rectangle(this.zr,e,t,i,n);break;case"image":case"icon":V.icon(this.zr,e,t,i,n,a);break;case"candle":o?this.zr.addShape(t):V.candle(this.zr,e,t,i,n);break;case"ring":case"sector":case"circle":o?"sector"===t.type?V.sector(this.zr,e,t,i,n):this.zr.addShape(t):V.ring(this.zr,e,t,i+(m.get(t,"dataIndex")||0)%20*100,n);break;case"text":V.text(this.zr,e,t,i,n);break;case"polygon":o?V.pointList(this.zr,e,t,i,n):V.polygon(this.zr,e,t,i,n);break;case"ribbon":V.ribbon(this.zr,e,t,i,n);break;case"gauge-pointer":V.gaugePointer(this.zr,e,t,i,n);break;case"mark-line":V.markline(this.zr,e,t,i,n);break;case"bezier-curve":case"line":V.line(this.zr,e,t,i,n);break;default:this.zr.addShape(t)}},animationMark:function(e,t,i){for(var i=i||this.shapeList,n=0,a=i.length;a>n;n++)i[n]._mark&&this._animateMod(!1,i[n],e,t,0,!0);this.animationEffect(i)},animationEffect:function(e){if(!e&&this.clearEffectShape(),e=e||this.shapeList,null!=e){var t=h.EFFECT_ZLEVEL;this.canvasSupported&&this.zr.modLayer(t,{motionBlur:!0,lastFrameAlpha:this.option.effectBlendAlpha||h.effectBlendAlpha});for(var i,n=0,a=e.length;a>n;n++)i=e[n],i._mark&&i.effect&&i.effect.show&&U[i._mark]&&(U[i._mark](this.zr,this.effectList,i,t),this.effectList[this.effectList.length-1]._mark=i._mark)}},clearEffectShape:function(e){var t=this.effectList;if(this.zr&&t&&t.length>0){e&&this.zr.modLayer(h.EFFECT_ZLEVEL,{motionBlur:!1}),this.zr.delShape(t);for(var i=0;il;l++)this.zr.addShape(this.shapeList[l]);this.zr.refreshNextFrame()}n[i].data=r}},delMark:function(e,t,i){i=i.replace("mark","").replace("large","").toLowerCase();var n=this.series[e];if(this.selectedMap[n.name]){for(var a=!1,o=[this.shapeList,this.effectList],r=2;r--;)for(var s=0,l=o[r].length;l>s;s++)if(o[r][s]._mark==i&&m.get(o[r][s],"seriesIndex")==e&&m.get(o[r][s],"name")==t){this.zr.delShape(o[r][s].id),o[r].splice(s,1),a=!0;break}a&&this.zr.refreshNextFrame()}}},u.inherits(i,p),i}),i("zrender/shape/Circle",["require","./Base","../tool/util"],function(e){"use strict";var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"circle",buildPath:function(e,t){e.moveTo(t.x+t.r,t.y),e.arc(t.x,t.y,t.r,0,2*Math.PI,!0)},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-e.r-t/2),y:Math.round(e.y-e.r-t/2),width:2*e.r+t,height:2*e.r+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/util/accMath",[],function(){function e(e,t){var i=e.toString(),n=t.toString(),a=0;try{a=n.split(".")[1].length}catch(o){}try{a-=i.split(".")[1].length}catch(o){}return(i.replace(".","")-0)/(n.replace(".","")-0)*Math.pow(10,a)}function t(e,t){var i=e.toString(),n=t.toString(),a=0;try{a+=i.split(".")[1].length}catch(o){}try{a+=n.split(".")[1].length}catch(o){}return(i.replace(".","")-0)*(n.replace(".","")-0)/Math.pow(10,a)}function i(e,t){var i=0,n=0;try{i=e.toString().split(".")[1].length}catch(a){}try{n=t.toString().split(".")[1].length}catch(a){}var o=Math.pow(10,Math.max(i,n));return(Math.round(e*o)+Math.round(t*o))/o}function n(e,t){return i(e,-t)}return{accDiv:e,accMul:t,accAdd:i,accSub:n}}),i("echarts/util/shape/Icon",["require","zrender/tool/util","zrender/shape/Star","zrender/shape/Heart","zrender/shape/Droplet","zrender/shape/Image","zrender/shape/Base"],function(e){function t(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+t.height),e.lineTo(i+5*a,n+14*o),e.lineTo(i+t.width,n+3*o),e.lineTo(i+13*a,n),e.lineTo(i+2*a,n+11*o),e.lineTo(i,n+t.height),e.moveTo(i+6*a,n+10*o),e.lineTo(i+14*a,n+2*o),e.moveTo(i+10*a,n+13*o),e.lineTo(i+t.width,n+13*o),e.moveTo(i+13*a,n+10*o),e.lineTo(i+13*a,n+t.height)}function i(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+t.height),e.lineTo(i+5*a,n+14*o),e.lineTo(i+t.width,n+3*o),e.lineTo(i+13*a,n),e.lineTo(i+2*a,n+11*o),e.lineTo(i,n+t.height),e.moveTo(i+6*a,n+10*o),e.lineTo(i+14*a,n+2*o),e.moveTo(i+10*a,n+13*o),e.lineTo(i+t.width,n+13*o)}function n(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i+4*a,n+15*o),e.lineTo(i+9*a,n+13*o),e.lineTo(i+14*a,n+8*o),e.lineTo(i+11*a,n+5*o),e.lineTo(i+6*a,n+10*o),e.lineTo(i+4*a,n+15*o),e.moveTo(i+5*a,n),e.lineTo(i+11*a,n),e.moveTo(i+5*a,n+o),e.lineTo(i+11*a,n+o),e.moveTo(i,n+2*o),e.lineTo(i+t.width,n+2*o),e.moveTo(i,n+5*o),e.lineTo(i+3*a,n+t.height),e.lineTo(i+13*a,n+t.height),e.lineTo(i+t.width,n+5*o)}function a(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n+3*o),e.lineTo(i+6*a,n+3*o),e.moveTo(i+3*a,n),e.lineTo(i+3*a,n+6*o),e.moveTo(i+3*a,n+8*o),e.lineTo(i+3*a,n+t.height),e.lineTo(i+t.width,n+t.height),e.lineTo(i+t.width,n+3*o),e.lineTo(i+8*a,n+3*o)}function o(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i+6*a,n),e.lineTo(i+2*a,n+3*o),e.lineTo(i+6*a,n+6*o),e.moveTo(i+2*a,n+3*o),e.lineTo(i+14*a,n+3*o),e.lineTo(i+14*a,n+11*o),e.moveTo(i+2*a,n+5*o),e.lineTo(i+2*a,n+13*o),e.lineTo(i+14*a,n+13*o),e.moveTo(i+10*a,n+10*o),e.lineTo(i+14*a,n+13*o),e.lineTo(i+10*a,n+t.height)}function r(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16,r=t.width/2;e.lineWidth=1.5,e.arc(i+r,n+r,r-a,0,2*Math.PI/3),e.moveTo(i+3*a,n+t.height),e.lineTo(i+0*a,n+12*o),e.lineTo(i+5*a,n+11*o),e.moveTo(i,n+8*o),e.arc(i+r,n+r,r-a,Math.PI,5*Math.PI/3),e.moveTo(i+13*a,n),e.lineTo(i+t.width,n+4*o),e.lineTo(i+11*a,n+5*o)}function s(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.moveTo(i+2*a,n+14*o),e.lineTo(i+7*a,n+6*o),e.lineTo(i+11*a,n+11*o),e.lineTo(i+15*a,n+2*o)}function l(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.moveTo(i+3*a,n+14*o),e.lineTo(i+3*a,n+6*o),e.lineTo(i+4*a,n+6*o),e.lineTo(i+4*a,n+14*o),e.moveTo(i+7*a,n+14*o),e.lineTo(i+7*a,n+2*o),e.lineTo(i+8*a,n+2*o),e.lineTo(i+8*a,n+14*o),e.moveTo(i+11*a,n+14*o),e.lineTo(i+11*a,n+9*o),e.lineTo(i+12*a,n+9*o),e.lineTo(i+12*a,n+14*o)}function h(e,t){var i=t.x,n=t.y,a=t.width-2,o=t.height-2,r=Math.min(a,o)/2;n+=2,e.moveTo(i+r+3,n+r-3),e.arc(i+r+3,n+r-3,r-1,0,-Math.PI/2,!0),e.lineTo(i+r+3,n+r-3),e.moveTo(i+r,n),e.lineTo(i+r,n+r),e.arc(i+r,n+r,r,-Math.PI/2,2*Math.PI,!0),e.lineTo(i+r,n+r),e.lineWidth=1.5}function m(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;n-=o,e.moveTo(i+1*a,n+2*o),e.lineTo(i+15*a,n+2*o),e.lineTo(i+14*a,n+3*o),e.lineTo(i+2*a,n+3*o),e.moveTo(i+3*a,n+6*o),e.lineTo(i+13*a,n+6*o),e.lineTo(i+12*a,n+7*o),e.lineTo(i+4*a,n+7*o),e.moveTo(i+5*a,n+10*o),e.lineTo(i+11*a,n+10*o),e.lineTo(i+10*a,n+11*o),e.lineTo(i+6*a,n+11*o),e.moveTo(i+7*a,n+14*o),e.lineTo(i+9*a,n+14*o),e.lineTo(i+8*a,n+15*o),e.lineTo(i+7*a,n+15*o)}function V(e,t){var i=t.x,n=t.y,a=t.width,o=t.height,r=a/16,s=o/16,l=2*Math.min(r,s);e.moveTo(i+r+l,n+s+l),e.arc(i+r,n+s,l,Math.PI/4,3*Math.PI),e.lineTo(i+7*r-l,n+6*s-l),e.arc(i+7*r,n+6*s,l,Math.PI/4*5,4*Math.PI),e.arc(i+7*r,n+6*s,l/2,Math.PI/4*5,4*Math.PI),e.moveTo(i+7*r-l/2,n+6*s+l),e.lineTo(i+r+l,n+14*s-l),e.arc(i+r,n+14*s,l,-Math.PI/4,2*Math.PI),e.moveTo(i+7*r+l/2,n+6*s),e.lineTo(i+14*r-l,n+10*s-l/2),e.moveTo(i+16*r,n+10*s),e.arc(i+14*r,n+10*s,l,0,3*Math.PI),e.lineWidth=1.5}function U(e,t){var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.min(a,o)/2;e.moveTo(i+a,n+o/2),e.arc(i+r,n+r,r,0,2*Math.PI),e.arc(i+r,n,r,Math.PI/4,Math.PI/5*4),e.arc(i,n+r,r,-Math.PI/3,Math.PI/3),e.arc(i+a,n+o,r,Math.PI,Math.PI/2*3),e.lineWidth=1.5}function d(e,t){for(var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.round(o/3),s=Math.round((r-2)/2),l=3;l--;)e.rect(i,n+r*l+s,a,2)}function p(e,t){for(var i=t.x,n=t.y,a=t.width,o=t.height,r=Math.round(a/3),s=Math.round((r-2)/2),l=3;l--;)e.rect(i+r*l+s,n,2,o)}function c(e,t){var i=t.x,n=t.y,a=t.width/16;e.moveTo(i+a,n),e.lineTo(i+a,n+t.height),e.lineTo(i+15*a,n+t.height),e.lineTo(i+15*a,n),e.lineTo(i+a,n),e.moveTo(i+3*a,n+3*a),e.lineTo(i+13*a,n+3*a),e.moveTo(i+3*a,n+6*a),e.lineTo(i+13*a,n+6*a),e.moveTo(i+3*a,n+9*a),e.lineTo(i+13*a,n+9*a),e.moveTo(i+3*a,n+12*a),e.lineTo(i+9*a,n+12*a)}function u(e,t){var i=t.x,n=t.y,a=t.width/16,o=t.height/16;e.moveTo(i,n),e.lineTo(i,n+t.height),e.lineTo(i+t.width,n+t.height),e.lineTo(i+t.width,n),e.lineTo(i,n),e.moveTo(i+4*a,n),e.lineTo(i+4*a,n+8*o),e.lineTo(i+12*a,n+8*o),e.lineTo(i+12*a,n),e.moveTo(i+6*a,n+11*o),e.lineTo(i+6*a,n+13*o),e.lineTo(i+10*a,n+13*o),e.lineTo(i+10*a,n+11*o),e.lineTo(i+6*a,n+11*o)}function y(e,t){var i=t.x,n=t.y,a=t.width,o=t.height;e.moveTo(i,n+o/2),e.lineTo(i+a,n+o/2),e.moveTo(i+a/2,n),e.lineTo(i+a/2,n+o)}function g(e,t){var i=t.width/2,n=t.height/2,a=Math.min(i,n);e.moveTo(t.x+i+a,t.y+n),e.arc(t.x+i,t.y+n,a,0,2*Math.PI),e.closePath()}function b(e,t){e.rect(t.x,t.y,t.width,t.height),e.closePath()}function f(e,t){var i=t.width/2,n=t.height/2,a=t.x+i,o=t.y+n,r=Math.min(i,n);e.moveTo(a,o-r),e.lineTo(a+r,o+r),e.lineTo(a-r,o+r),e.lineTo(a,o-r),e.closePath()}function k(e,t){var i=t.width/2,n=t.height/2,a=t.x+i,o=t.y+n,r=Math.min(i,n);e.moveTo(a,o-r),e.lineTo(a+r,o),e.lineTo(a,o+r),e.lineTo(a-r,o),e.lineTo(a,o-r),e.closePath()}function x(e,t){var i=t.x,n=t.y,a=t.width/16;e.moveTo(i+8*a,n),e.lineTo(i+a,n+t.height),e.lineTo(i+8*a,n+t.height/4*3),e.lineTo(i+15*a,n+t.height),e.lineTo(i+8*a,n),e.closePath()}function _(t,i){var n=e("zrender/shape/Star"),a=i.width/2,o=i.height/2;n.prototype.buildPath(t,{x:i.x+a,y:i.y+o,r:Math.min(a,o),n:i.n||5})}function L(t,i){var n=e("zrender/shape/Heart");n.prototype.buildPath(t,{x:i.x+i.width/2,y:i.y+.2*i.height,a:i.width/2,b:.8*i.height})}function W(t,i){var n=e("zrender/shape/Droplet");n.prototype.buildPath(t,{x:i.x+.5*i.width,y:i.y+.5*i.height,a:.5*i.width,b:.8*i.height})}function X(e,t){var i=t.x,n=t.y-t.height/2*1.5,a=t.width/2,o=t.height/2,r=Math.min(a,o);e.arc(i+a,n+o,r,Math.PI/5*4,Math.PI/5),e.lineTo(i+a,n+o+1.5*r),e.closePath()}function v(t,i,n){var a=e("zrender/shape/Image");this._imageShape=this._imageShape||new a({style:{}});for(var o in i)this._imageShape.style[o]=i[o];this._imageShape.brush(t,!1,n)}function w(e){I.call(this,e)}var K=e("zrender/tool/util"),I=e("zrender/shape/Base");return w.prototype={type:"icon",iconLibrary:{mark:t,markUndo:i,markClear:n,dataZoom:a,dataZoomReset:o,restore:r,lineChart:s,barChart:l,pieChart:h,funnelChart:m,forceChart:V,chordChart:U,stackChart:d,tiledChart:p,dataView:c,saveAsImage:u,cross:y,circle:g,rectangle:b,triangle:f,diamond:k,arrow:x,star:_,heart:L,droplet:W,pin:X,image:v},brush:function(t,i,n){var a=i?this.highlightStyle:this.style;a=a||{};var o=a.iconType||this.style.iconType;if("image"===o){var r=e("zrender/shape/Image");r.prototype.brush.call(this,t,i,n)}else{var a=this.beforeBrush(t,i);switch(t.beginPath(),this.buildPath(t,a,n),a.brushType){case"both":t.fill();case"stroke":a.lineWidth>0&&t.stroke();break;default:t.fill()}this.drawText(t,a,this.style),this.afterBrush(t)}},buildPath:function(e,t,i){this.iconLibrary[t.iconType]?this.iconLibrary[t.iconType].call(this,e,t,i):(e.moveTo(t.x,t.y),e.lineTo(t.x+t.width,t.y),e.lineTo(t.x+t.width,t.y+t.height),e.lineTo(t.x,t.y+t.height),e.lineTo(t.x,t.y),e.closePath())},getRect:function(e){return e.__rect?e.__rect:(e.__rect={x:Math.round(e.x),y:Math.round(e.y-("pin"==e.iconType?e.height/2*1.5:0)),width:e.width,height:e.height*("pin"===e.iconType?1.25:1)},e.__rect)},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);e=i[0],t=i[1];var n=this.style.__rect;n||(n=this.style.__rect=this.getRect(this.style));var a=n.height<8||n.width<8?4:0;return e>=n.x-a&&e<=n.x+n.width+a&&t>=n.y-a&&t<=n.y+n.height+a}},K.inherits(w,I),w}),i("echarts/util/shape/MarkLine",["require","zrender/shape/Base","./Icon","zrender/shape/Line","zrender/shape/BezierCurve","zrender/tool/area","zrender/shape/util/dashedLineTo","zrender/tool/util","zrender/tool/curve"],function(e){function t(e){i.call(this,e),this.style.curveness>0&&this.updatePoints(this.style),this.highlightStyle.curveness>0&&this.updatePoints(this.highlightStyle)}var i=e("zrender/shape/Base"),n=e("./Icon"),a=e("zrender/shape/Line"),o=new a({}),r=e("zrender/shape/BezierCurve"),s=new r({}),l=e("zrender/tool/area"),h=e("zrender/shape/util/dashedLineTo"),m=e("zrender/tool/util"),V=e("zrender/tool/curve");return t.prototype={type:"mark-line",brush:function(e,t){var i=this.style;t&&(i=this.getHighlightStyle(i,this.highlightStyle||{})),e.save(),this.setContext(e,i),this.setTransform(e),e.save(),e.beginPath(),this.buildPath(e,i),e.stroke(),e.restore(),this.brushSymbol(e,i,0),this.brushSymbol(e,i,1),this.drawText(e,i,this.style),e.restore()},buildPath:function(e,t){var i=t.lineType||"solid";if(e.moveTo(t.xStart,t.yStart),t.curveness>0){var n=null;switch(i){case"dashed":n=[5,5];break;case"dotted":n=[1,1]}n&&e.setLineDash&&e.setLineDash(n),e.quadraticCurveTo(t.cpX1,t.cpY1,t.xEnd,t.yEnd)}else if("solid"==i)e.lineTo(t.xEnd,t.yEnd);else{var a=(t.lineWidth||1)*("dashed"==t.lineType?5:1);h(e,t.xStart,t.yStart,t.xEnd,t.yEnd,a)}},updatePoints:function(e){var t=e.curveness||0,i=1,n=e.xStart,a=e.yStart,o=e.xEnd,r=e.yEnd,s=(n+o)/2-i*(a-r)*t,l=(a+r)/2-i*(o-n)*t;e.cpX1=s,e.cpY1=l},brushSymbol:function(e,t,i){if("none"!=t.symbol[i]){e.save(),e.beginPath(),e.lineWidth=t.symbolBorder,e.strokeStyle=t.symbolBorderColor;var a=t.symbol[i].replace("empty","").toLowerCase();t.symbol[i].match("empty")&&(e.fillStyle="#fff");var o=t.xStart,r=t.yStart,s=t.xEnd,l=t.yEnd,h=0===i?o:s,m=0===i?r:l,U=t.curveness||0,d=null!=t.symbolRotate[i]?t.symbolRotate[i]-0:0;if(d=d/180*Math.PI,"arrow"==a&&0===d)if(0===U){var p=0===i?-1:1;d=Math.PI/2+Math.atan2(p*(l-r),p*(s-o))}else{var c=t.cpX1,u=t.cpY1,y=V.quadraticDerivativeAt,g=y(o,c,s,i),b=y(r,u,l,i);d=Math.PI/2+Math.atan2(b,g)}e.translate(h,m),0!==d&&e.rotate(d);var f=t.symbolSize[i];n.prototype.buildPath(e,{x:-f,y:-f,width:2*f,height:2*f,iconType:a}),e.closePath(),e.fill(),e.stroke(),e.restore()}},getRect:function(e){return e.curveness>0?s.getRect(e):o.getRect(e),e.__rect},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);return e=i[0],t=i[1],this.isCoverRect(e,t)?this.style.curveness>0?l.isInside(s,this.style,e,t):l.isInside(o,this.style,e,t):!1}},m.inherits(t,i),t}),i("echarts/util/shape/Symbol",["require","zrender/shape/Base","zrender/shape/Polygon","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Polygon"),a=new n({}),o=e("zrender/tool/util");return t.prototype={type:"symbol",buildPath:function(e,t){var i=t.pointList,n=i.length;if(0!==n)for(var a,o,r,s,l,h=1e4,m=Math.ceil(n/h),V=i[0]instanceof Array,U=t.size?t.size:2,d=U,p=U/2,c=2*Math.PI,u=0;m>u;u++){e.beginPath(),a=u*h,o=a+h,o=o>n?n:o;for(var y=a;o>y;y++)if(t.random&&(r=t["randomMap"+y%20]/100,d=U*r*r,p=d/2),V?(s=i[y][0],l=i[y][1]):(s=i[y].x,l=i[y].y),3>d)e.rect(s-p,l-p,d,d);else switch(t.iconType){case"circle":e.moveTo(s,l),e.arc(s,l,p,0,c,!0);break;case"diamond":e.moveTo(s,l-p),e.lineTo(s+p/3,l-p/3),e.lineTo(s+p,l),e.lineTo(s+p/3,l+p/3),e.lineTo(s,l+p),e.lineTo(s-p/3,l+p/3),e.lineTo(s-p,l),e.lineTo(s-p/3,l-p/3),e.lineTo(s,l-p);break;default:e.rect(s-p,l-p,d,d)}if(e.closePath(),m-1>u)switch(t.brushType){case"both":e.fill(),t.lineWidth>0&&e.stroke();break;case"stroke":t.lineWidth>0&&e.stroke();break;default:e.fill()}}},getRect:function(e){return e.__rect||a.getRect(e)},isCover:e("./normalIsCover")},o.inherits(t,i),t}),i("zrender/shape/Polyline",["require","./Base","./util/smoothSpline","./util/smoothBezier","./util/dashedLineTo","./Polygon","../tool/util"],function(e){var t=e("./Base"),i=e("./util/smoothSpline"),n=e("./util/smoothBezier"),a=e("./util/dashedLineTo"),o=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return o.prototype={type:"polyline",buildPath:function(e,t){var n=t.pointList;if(!(n.length<2)){var o=Math.min(t.pointList.length,Math.round(t.pointListLength||t.pointList.length));if(t.smooth&&"spline"!==t.smooth){t.controlPointList||this.updateControlPoints(t);var r=t.controlPointList;e.moveTo(n[0][0],n[0][1]);for(var s,l,h,m=0;o-1>m;m++)s=r[2*m],l=r[2*m+1],h=n[m+1],e.bezierCurveTo(s[0],s[1],l[0],l[1],h[0],h[1])}else if("spline"===t.smooth&&(n=i(n),o=n.length),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var V=(t.lineWidth||1)*("dashed"==t.lineType?5:1);e.moveTo(n[0][0],n[0][1]);for(var m=1;o>m;m++)a(e,n[m-1][0],n[m-1][1],n[m][0],n[m][1],V)}}else{e.moveTo(n[0][0],n[0][1]);for(var m=1;o>m;m++)e.lineTo(n[m][0],n[m][1])}}},updateControlPoints:function(e){e.controlPointList=n(e.pointList,e.smooth,!1,e.smoothConstraint)},getRect:function(t){return e("./Polygon").prototype.getRect(t)}},e("../tool/util").inherits(o,t),o}),i("zrender/shape/ShapeBundle",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={constructor:i,type:"shape-bundle",brush:function(e,t){var i=this.beforeBrush(e,t);e.beginPath();for(var n=0;n0&&e.stroke();break;default:e.fill()}this.drawText(e,i,this.style),this.afterBrush(e)},getRect:function(e){if(e.__rect)return e.__rect;for(var t=1/0,i=-(1/0),n=1/0,a=-(1/0),o=0;oh;h++)o[h]=[r[h][0],l];else for(var m=r[0][0],h=0;s>h;h++)o[h]=[m,r[h][1]];"half-smooth-polygon"==i.type&&(o[s-1]=p.clone(r[s-1]),o[s-2]=p.clone(r[s-2])),t={style:{pointList:o}}}o=t.style.pointList;var V=o.length;i.style.pointList=V==s?o:s>V?o.concat(r.slice(V)):o.slice(0,s),e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{pointList:r}).during(function(){i.updateControlPoints&&i.updateControlPoints(i.style)}).done(function(){i.__animating=!1}).start(a)}function i(e,t){for(var i=arguments.length,n=2;i>n;n++){var a=arguments[n];e.style[a]=t.style[a]}}function n(e,t,n,a,o){var r=n.style;t||(t={position:n.position,style:{x:r.x,y:"vertical"==n._orient?r.y+r.height:r.y,width:"vertical"==n._orient?r.width:0,height:"vertical"!=n._orient?r.height:0}});var s=r.x,l=r.y,h=r.width,m=r.height,V=[n.position[0],n.position[1]];i(n,t,"x","y","width","height"),n.position=t.position,e.addShape(n),(V[0]!=t.position[0]||V[1]!=t.position[1])&&e.animate(n.id,"").when(a,{position:V}).start(o),n.__animating=!0,e.animate(n.id,"style").when(a,{x:s,y:l,width:h,height:m}).done(function(){n.__animating=!1}).start(o)}function a(e,t,i,n,a){if(!t){var o=i.style.y;t={style:{y:[o[0],o[0],o[0],o[0]]}}}var r=i.style.y;i.style.y=t.style.y,e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{y:r}).done(function(){i.__animating=!1}).start(a)}function o(e,t,i,n,a){var o=i.style.x,r=i.style.y,s=i.style.r0,l=i.style.r;i.__animating=!0,"r"!=i._animationAdd?(i.style.r0=0,i.style.r=0,i.rotation=[2*Math.PI,o,r],e.addShape(i),e.animate(i.id,"style").when(n,{r0:s,r:l}).done(function(){i.__animating=!1}).start(a),e.animate(i.id,"").when(n,{rotation:[0,o,r]}).start(a)):(i.style.r0=i.style.r,e.addShape(i),e.animate(i.id,"style").when(n,{r0:s}).done(function(){i.__animating=!1}).start(a))}function r(e,t,n,a,o){t||(t="r"!=n._animationAdd?{ +style:{startAngle:n.style.startAngle,endAngle:n.style.startAngle}}:{style:{r0:n.style.r}});var r=n.style.startAngle,s=n.style.endAngle;i(n,t,"startAngle","endAngle"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{startAngle:r,endAngle:s}).done(function(){n.__animating=!1}).start(o)}function s(e,t,n,a,o){t||(t={style:{x:"left"==n.style.textAlign?n.style.x+100:n.style.x-100,y:n.style.y}});var r=n.style.x,s=n.style.y;i(n,t,"x","y"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{x:r,y:s}).done(function(){n.__animating=!1}).start(o)}function l(t,i,n,a,o){var r=e("zrender/shape/Polygon").prototype.getRect(n.style),s=r.x+r.width/2,l=r.y+r.height/2;n.scale=[.1,.1,s,l],t.addShape(n),n.__animating=!0,t.animate(n.id,"").when(a,{scale:[1,1,s,l]}).done(function(){n.__animating=!1}).start(o)}function h(e,t,n,a,o){t||(t={style:{source0:0,source1:n.style.source1>0?360:-360,target0:0,target1:n.style.target1>0?360:-360}});var r=n.style.source0,s=n.style.source1,l=n.style.target0,h=n.style.target1;t.style&&i(n,t,"source0","source1","target0","target1"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{source0:r,source1:s,target0:l,target1:h}).done(function(){n.__animating=!1}).start(o)}function m(e,t,i,n,a){t||(t={style:{angle:i.style.startAngle}});var o=i.style.angle;i.style.angle=t.style.angle,e.addShape(i),i.__animating=!0,e.animate(i.id,"style").when(n,{angle:o}).done(function(){i.__animating=!1}).start(a)}function V(e,t,i,a,o,r){if(i.style._x=i.style.x,i.style._y=i.style.y,i.style._width=i.style.width,i.style._height=i.style.height,t)n(e,t,i,a,o);else{var s=i._x||0,l=i._y||0;i.scale=[.01,.01,s,l],e.addShape(i),i.__animating=!0,e.animate(i.id,"").delay(r).when(a,{scale:[1,1,s,l]}).done(function(){i.__animating=!1}).start(o||"QuinticOut")}}function U(e,t,n,a,o){t||(t={style:{xStart:n.style.xStart,yStart:n.style.yStart,xEnd:n.style.xStart,yEnd:n.style.yStart}});var r=n.style.xStart,s=n.style.xEnd,l=n.style.yStart,h=n.style.yEnd;i(n,t,"xStart","xEnd","yStart","yEnd"),e.addShape(n),n.__animating=!0,e.animate(n.id,"style").when(a,{xStart:r,xEnd:s,yStart:l,yEnd:h}).done(function(){n.__animating=!1}).start(o)}function d(e,t,i,n,a){a=a||"QuinticOut",i.__animating=!0,e.addShape(i);var o=i.style,r=function(){i.__animating=!1},s=o.xStart,l=o.yStart,h=o.xEnd,m=o.yEnd;if(o.curveness>0){i.updatePoints(o);var V={p:0},U=o.cpX1,d=o.cpY1,p=[],u=[],y=c.quadraticSubdivide;e.animation.animate(V).when(n,{p:1}).during(function(){y(s,U,h,V.p,p),y(l,d,m,V.p,u),o.cpX1=p[1],o.cpY1=u[1],o.xEnd=p[2],o.yEnd=u[2],e.modShape(i)}).done(r).start(a)}else e.animate(i.id,"style").when(0,{xEnd:s,yEnd:l}).when(n,{xEnd:h,yEnd:m}).done(r).start(a)}var p=e("zrender/tool/util"),c=e("zrender/tool/curve");return{pointList:t,rectangle:n,candle:a,ring:o,sector:r,text:s,polygon:l,ribbon:h,gaugePointer:m,icon:V,line:U,markline:d}}),i("echarts/util/ecEffect",["require","../util/ecData","zrender/shape/Circle","zrender/shape/Image","zrender/tool/curve","../util/shape/Icon","../util/shape/Symbol","zrender/shape/ShapeBundle","zrender/shape/Polyline","zrender/tool/vector","zrender/tool/env"],function(e){function t(e,t,i,n){var a,r=i.effect,l=r.color||i.style.strokeColor||i.style.color,m=r.shadowColor||l,V=r.scaleSize,U=r.bounceDistance,d="undefined"!=typeof r.shadowBlur?r.shadowBlur:V;"image"!==i.type?(a=new h({zlevel:n,style:{brushType:"stroke",iconType:"droplet"!=i.style.iconType?i.style.iconType:"circle",x:d+1,y:d+1,n:i.style.n,width:i.style._width*V,height:i.style._height*V,lineWidth:1,strokeColor:l,shadowColor:m,shadowBlur:d},draggable:!1,hoverable:!1}),"pin"==i.style.iconType&&(a.style.y+=a.style.height/2*1.5),p&&(a.style.image=e.shapeToImage(a,a.style.width+2*d+2,a.style.height+2*d+2).style.image,a=new s({zlevel:a.zlevel,style:a.style,draggable:!1,hoverable:!1}))):a=new s({zlevel:n,style:i.style,draggable:!1,hoverable:!1}),o.clone(i,a),a.position=i.position,t.push(a),e.addShape(a);var c="image"!==i.type?window.devicePixelRatio||1:1,u=(a.style.width/c-i.style._width)/2;a.style.x=i.style._x-u,a.style.y=i.style._y-u,"pin"==i.style.iconType&&(a.style.y-=i.style.height/2*1.5);var y=100*(r.period+10*Math.random());e.modShape(i.id,{invisible:!0});var g=a.style.x+a.style.width/2/c,b=a.style.y+a.style.height/2/c;"scale"===r.type?(e.modShape(a.id,{scale:[.1,.1,g,b]}),e.animate(a.id,"",r.loop).when(y,{scale:[1,1,g,b]}).done(function(){i.effect.show=!1,e.delShape(a.id)}).start()):e.animate(a.id,"style",r.loop).when(y,{y:a.style.y-U}).when(2*y,{y:a.style.y}).done(function(){i.effect.show=!1,e.delShape(a.id)}).start()}function i(e,t,i,n){var a=i.effect,o=a.color||i.style.strokeColor||i.style.color,r=a.scaleSize,s=a.shadowColor||o,l="undefined"!=typeof a.shadowBlur?a.shadowBlur:2*r,h=window.devicePixelRatio||1,V=new m({zlevel:n,position:i.position,scale:i.scale,style:{pointList:i.style.pointList,iconType:i.style.iconType,color:o,strokeColor:o,shadowColor:s,shadowBlur:l*h,random:!0,brushType:"fill",lineWidth:1,size:i.style.size},draggable:!1,hoverable:!1});t.push(V),e.addShape(V),e.modShape(i.id,{invisible:!0});for(var U=Math.round(100*a.period),d={},p={},c=0;20>c;c++)V.style["randomMap"+c]=0,d={},d["randomMap"+c]=100,p={},p["randomMap"+c]=0,V.style["randomMap"+c]=100*Math.random(),e.animate(V.id,"style",!0).when(U,d).when(2*U,p).when(3*U,d).when(4*U,d).delay(Math.random()*U*c).start()}function n(e,t,i,n,a){var s=i.effect,h=i.style,m=s.color||h.strokeColor||h.color,V=s.shadowColor||h.strokeColor||m,c=h.lineWidth*s.scaleSize,u="undefined"!=typeof s.shadowBlur?s.shadowBlur:c,y=new r({zlevel:n,style:{x:u,y:u,r:c,color:m,shadowColor:V,shadowBlur:u},hoverable:!1}),g=0;if(p&&!a){var n=y.zlevel;y=e.shapeToImage(y,2*(c+u),2*(c+u)),y.zlevel=n,y.hoverable=!1,g=u}a||(o.clone(i,y),y.position=i.position,t.push(y),e.addShape(y));var b=function(){a||(i.effect.show=!1,e.delShape(y.id)),y.effectAnimator=null};if(i instanceof U){for(var f=[0],k=0,x=h.pointList,_=h.controlPointList,L=1;L0){var F=h.cpX1-g,T=h.cpY1-g;y.effectAnimator=e.animation.animate(y,{loop:s.loop}).when(E,{p:1}).during(function(t,i){y.style.x=l.quadraticAt(K,F,J,i),y.style.y=l.quadraticAt(I,T,C,i),a||e.modShape(y)}).done(b).start()}else y.effectAnimator=e.animation.animate(y.style,{loop:s.loop}).when(E,{x:J,y:C}).during(function(){a||e.modShape(y)}).done(b).start();y.effectAnimator.duration=E}return y}function a(e,t,i,a){var o=new V({style:{shapeList:[]},zlevel:a,hoverable:!1}),r=i.style.shapeList,s=i.effect;o.position=i.position;for(var l=0,h=[],m=0;ml&&(l=d.duration),0===m&&(o.style.color=U.style.color,o.style.shadowBlur=U.style.shadowBlur,o.style.shadowColor=U.style.shadowColor),h.push(d)}t.push(o),e.addShape(o);var p=function(){for(var e=0;e=0;o--)t=s.type==i.CHART_TYPE_PIE||s.type==i.CHART_TYPE_FUNNEL?n.get(s.shapeList[o],"name"):(n.get(s.shapeList[o],"series")||{}).name,t!=a||s.shapeList[o].invisible||s.shapeList[o].__animating||s.zr.addHoverShape(s.shapeList[o])},t&&t.bind(i.EVENT.LEGEND_HOVERLINK,this._onlegendhoverlink)}var i=e("../config"),n=e("../util/ecData"),a=e("../util/ecQuery"),o=e("../util/number"),r=e("zrender/tool/util");return t.prototype={canvasSupported:e("zrender/tool/env").canvasSupported,_getZ:function(e){if(null!=this[e])return this[e];var t=this.ecTheme[this.type];return t&&null!=t[e]?t[e]:(t=i[this.type],t&&null!=t[e]?t[e]:0)},getZlevelBase:function(){return this._getZ("zlevel")},getZBase:function(){return this._getZ("z")},reformOption:function(e){return e=r.merge(r.merge(e||{},r.clone(this.ecTheme[this.type]||{})),r.clone(i[this.type]||{})),this.z=e.z,this.zlevel=e.zlevel,e},reformCssArray:function(e){if(!(e instanceof Array))return[e,e,e,e];switch(e.length+""){case"4":return e;case"3":return[e[0],e[1],e[2],e[1]];case"2":return[e[0],e[1],e[0],e[1]];case"1":return[e[0],e[0],e[0],e[0]];case"0":return[0,0,0,0]}},getShapeById:function(e){for(var t=0,i=this.shapeList.length;i>t;t++)if(this.shapeList[t].id===e)return this.shapeList[t];return null},getFont:function(e){var t=this.getTextStyle(r.clone(e));return t.fontStyle+" "+t.fontWeight+" "+t.fontSize+"px "+t.fontFamily},getTextStyle:function(e){return r.merge(r.merge(e||{},this.ecTheme.textStyle),i.textStyle)},getItemStyleColor:function(e,t,i,n){return"function"==typeof e?e.call(this.myChart,{seriesIndex:t,series:this.series[t],dataIndex:i,data:n}):e},getDataFromOption:function(e,t){return null!=e?null!=e.value?e.value:e:t},subPixelOptimize:function(e,t){return e=t%2===1?Math.floor(e)+.5:Math.round(e)},resize:function(){this.refresh&&this.refresh(),this.clearEffectShape&&this.clearEffectShape(!0);var e=this;setTimeout(function(){e.animationEffect&&e.animationEffect()},200)},clear:function(){this.clearEffectShape&&this.clearEffectShape(),this.zr&&this.zr.delShape(this.shapeList),this.shapeList=[]},dispose:function(){this.onbeforDispose&&this.onbeforDispose(),this.clear(),this.shapeList=null,this.effectList=null,this.messageCenter&&this.messageCenter.unbind(i.EVENT.LEGEND_HOVERLINK,this._onlegendhoverlink),this.onafterDispose&&this.onafterDispose()},query:a.query,deepQuery:a.deepQuery,deepMerge:a.deepMerge,parsePercent:o.parsePercent,parseCenter:o.parseCenter,parseRadius:o.parseRadius,numAddCommas:o.addCommas,getPrecision:o.getPrecision},t}),i("echarts/layout/EdgeBundling",["require","../data/KDTree","zrender/tool/vector"],function(e){function t(e,t){e=e.array,t=t.array;var i=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2],o=t[3]-e[3];return i*i+n*n+a*a+o*o}function i(e){this.points=[e.mp0,e.mp1],this.group=e}function n(e){var t=e.points;t[0][1]0&&t(e[o],n[a-1])||(n[a++]=U(e[o]));return i[0]&&!t(n[0],i[0])&&(n=n.reverse()),n}for(var a=this._iterate(e),o=0;o++f&&(f=W,k=L,V(g,c),V(y,p),b=u)}if(k){s+=f;var X;k.group||(X=new a,o.push(X),X.addEdge(k)),X=k.group,V(X.mp0,y),V(X.mp1,g),X.ink=b,k.group.addEdge(m)}else{var X=new a;o.push(X),V(X.mp0,m.getStartPoint()),V(X.mp1,m.getEndPoint()),X.ink=m.ink,X.addEdge(m)}}}return{groups:o,edges:i,savedInk:s}},_calculateEdgeEdgeInk:function(){var e=[],t=[];return function(i,n,a,o){e[0]=i.getStartPoint(),e[1]=n.getStartPoint(),t[0]=i.getEndPoint(),t[1]=n.getEndPoint(),this._calculateMeetPoints(e,t,a,o);var r=m(e[0],a)+m(a,o)+m(o,t[0])+m(e[1],a)+m(o,t[1]);return r}}(),_calculateGroupEdgeInk:function(e,t,i,n){for(var a=[],o=[],r=0;rl;l++)s.add(e,e,i[l]);s.scale(e,e,1/r),r=n.length;for(var l=0;r>l;l++)s.add(t,t,n[l]);s.scale(t,t,1/r),this._limitTurningAngle(i,e,t,a),this._limitTurningAngle(n,t,e,o)}}(),_limitTurningAngle:function(){var e=l(),t=l(),i=l(),n=l();return function(a,o,r,l){var V=Math.cos(this.maxTurningAngle),U=Math.tan(this.maxTurningAngle);s.sub(e,o,r),s.normalize(e,e),s.copy(l,o);for(var d=0,p=0;py){s.scaleAndAdd(i,o,e,u*y);var g=m(i,c),b=g/U;s.scaleAndAdd(n,i,e,-b);var f=h(n,o);f>d&&(d=f,s.copy(l,n))}}}}()},o}),i("zrender/shape/Star",["require","../tool/math","./Base","../tool/util"],function(e){var t=e("../tool/math"),i=t.sin,n=t.cos,a=Math.PI,o=e("./Base"),r=function(e){o.call(this,e)};return r.prototype={type:"star",buildPath:function(e,t){var o=t.n;if(o&&!(2>o)){var r=t.x,s=t.y,l=t.r,h=t.r0;null==h&&(h=o>4?l*n(2*a/o)/n(a/o):l/3);var m=a/o,V=-a/2,U=r+l*n(V),d=s+l*i(V);V+=m;var p=t.pointList=[];p.push([U,d]);for(var c,u=0,y=2*o-1;y>u;u++)c=u%2===0?h:l,p.push([r+c*n(V),s+c*i(V)]),V+=m;p.push([U,d]),e.moveTo(p[0][0],p[0][1]);for(var u=0;ur;r+=2)e[0]=Math.min(e[0],e[0],o[r]),e[1]=Math.min(e[1],e[1],o[r+1]),i[0]=Math.max(i[0],i[0],o[r]),i[1]=Math.max(i[1],i[1],o[r+1]);break;case"Q":for(var r=0;4>r;r+=2)e[0]=Math.min(e[0],e[0],o[r]),e[1]=Math.min(e[1],e[1],o[r+1]),i[0]=Math.max(i[0],i[0],o[r]),i[1]=Math.max(i[1],i[1],o[r+1]);break;case"A":var s=o[0],l=o[1],h=o[2],m=o[3];e[0]=Math.min(e[0],e[0],s-h),e[1]=Math.min(e[1],e[1],l-m),i[0]=Math.max(i[0],i[0],s+h),i[1]=Math.max(i[1],i[1],l+m)}}return{x:e[0],y:e[1],width:i[0]-e[0],height:i[1]-e[1]}},n.prototype.begin=function(e){return this._ctx=e||null,this.pathCommands.length=0,this},n.prototype.moveTo=function(e,t){return this.pathCommands.push(new i("M",[e,t])),this._ctx&&this._ctx.moveTo(e,t),this},n.prototype.lineTo=function(e,t){return this.pathCommands.push(new i("L",[e,t])),this._ctx&&this._ctx.lineTo(e,t),this},n.prototype.bezierCurveTo=function(e,t,n,a,o,r){return this.pathCommands.push(new i("C",[e,t,n,a,o,r])),this._ctx&&this._ctx.bezierCurveTo(e,t,n,a,o,r),this},n.prototype.quadraticCurveTo=function(e,t,n,a){return this.pathCommands.push(new i("Q",[e,t,n,a])),this._ctx&&this._ctx.quadraticCurveTo(e,t,n,a),this},n.prototype.arc=function(e,t,n,a,o,r){return this.pathCommands.push(new i("A",[e,t,n,n,a,o-a,0,r?0:1])),this._ctx&&this._ctx.arc(e,t,n,a,o,r),this},n.prototype.arcTo=function(e,t,i,n,a){return this._ctx&&this._ctx.arcTo(e,t,i,n,a),this},n.prototype.rect=function(e,t,i,n){return this._ctx&&this._ctx.rect(e,t,i,n),this},n.prototype.closePath=function(){return this.pathCommands.push(new i("z")),this._ctx&&this._ctx.closePath(),this},n.prototype.isEmpty=function(){return 0===this.pathCommands.length},n.PathSegment=i,n}),i("zrender/shape/Line",["require","./Base","./util/dashedLineTo","../tool/util"],function(e){var t=e("./Base"),i=e("./util/dashedLineTo"),n=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return n.prototype={type:"line",buildPath:function(e,t){if(t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var n=(t.lineWidth||1)*("dashed"==t.lineType?5:1);i(e,t.xStart,t.yStart,t.xEnd,t.yEnd,n)}}else e.moveTo(t.xStart,t.yStart),e.lineTo(t.xEnd,t.yEnd)},getRect:function(e){if(e.__rect)return e.__rect;var t=e.lineWidth||1;return e.__rect={x:Math.min(e.xStart,e.xEnd)-t,y:Math.min(e.yStart,e.yEnd)-t,width:Math.abs(e.xStart-e.xEnd)+t,height:Math.abs(e.yStart-e.yEnd)+t},e.__rect}},e("../tool/util").inherits(n,t),n}),i("zrender/shape/BezierCurve",["require","./Base","../tool/util"],function(e){"use strict";var t=e("./Base"),i=function(e){this.brushTypeOnly="stroke",this.textPosition="end",t.call(this,e)};return i.prototype={type:"bezier-curve",buildPath:function(e,t){e.moveTo(t.xStart,t.yStart),"undefined"!=typeof t.cpX2&&"undefined"!=typeof t.cpY2?e.bezierCurveTo(t.cpX1,t.cpY1,t.cpX2,t.cpY2,t.xEnd,t.yEnd):e.quadraticCurveTo(t.cpX1,t.cpY1,t.xEnd,t.yEnd)},getRect:function(e){if(e.__rect)return e.__rect;var t=Math.min(e.xStart,e.xEnd,e.cpX1),i=Math.min(e.yStart,e.yEnd,e.cpY1),n=Math.max(e.xStart,e.xEnd,e.cpX1),a=Math.max(e.yStart,e.yEnd,e.cpY1),o=e.cpX2,r=e.cpY2;"undefined"!=typeof o&&"undefined"!=typeof r&&(t=Math.min(t,o),i=Math.min(i,r),n=Math.max(n,o),a=Math.max(a,r));var s=e.lineWidth||1;return e.__rect={x:t-s,y:i-s,width:n-t+s,height:a-i+s},e.__rect}},e("../tool/util").inherits(i,t),i}),i("zrender/shape/util/dashedLineTo",[],function(){var e=[5,5];return function(t,i,n,a,o,r){if(t.setLineDash)return e[0]=e[1]=r,t.setLineDash(e),t.moveTo(i,n),void t.lineTo(a,o);r="number"!=typeof r?5:r;var s=a-i,l=o-n,h=Math.floor(Math.sqrt(s*s+l*l)/r);s/=h,l/=h;for(var m=!0,V=0;h>V;++V)m?t.moveTo(i,n):t.lineTo(i,n),m=!m,i+=s,n+=l;t.lineTo(a,o)}}),i("zrender/shape/Polygon",["require","./Base","./util/smoothSpline","./util/smoothBezier","./util/dashedLineTo","../tool/util"],function(e){var t=e("./Base"),i=e("./util/smoothSpline"),n=e("./util/smoothBezier"),a=e("./util/dashedLineTo"),o=function(e){t.call(this,e)};return o.prototype={type:"polygon",buildPath:function(e,t){var o=t.pointList;if(!(o.length<2)){if(t.smooth&&"spline"!==t.smooth){var r=n(o,t.smooth,!0,t.smoothConstraint);e.moveTo(o[0][0],o[0][1]);for(var s,l,h,m=o.length,V=0;m>V;V++)s=r[2*V],l=r[2*V+1],h=o[(V+1)%m],e.bezierCurveTo(s[0],s[1],l[0],l[1],h[0],h[1])}else if("spline"===t.smooth&&(o=i(o,!0)),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var U=t._dashLength||(t.lineWidth||1)*("dashed"==t.lineType?5:1);t._dashLength=U,e.moveTo(o[0][0],o[0][1]);for(var V=1,d=o.length;d>V;V++)a(e,o[V-1][0],o[V-1][1],o[V][0],o[V][1],U);a(e,o[o.length-1][0],o[o.length-1][1],o[0][0],o[0][1],U)}}else{e.moveTo(o[0][0],o[0][1]);for(var V=1,d=o.length;d>V;V++)e.lineTo(o[V][0],o[V][1]);e.lineTo(o[0][0],o[0][1])}e.closePath()}},getRect:function(e){if(e.__rect)return e.__rect;for(var t=Number.MAX_VALUE,i=Number.MIN_VALUE,n=Number.MAX_VALUE,a=Number.MIN_VALUE,o=e.pointList,r=0,s=o.length;s>r;r++)o[r][0]i&&(i=o[r][0]),o[r][1]a&&(a=o[r][1]);var l;return l="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(t-l/2),y:Math.round(n-l/2),width:i-t+l,height:a-n+l},e.__rect}},e("../tool/util").inherits(o,t),o}),i("echarts/util/shape/normalIsCover",[],function(){return function(e,t){var i=this.transformCoordToLocal(e,t);return e=i[0],t=i[1],this.isCoverRect(e,t)}}),i("zrender/shape/util/smoothSpline",["require","../../tool/vector"],function(e){function t(e,t,i,n,a,o,r){var s=.5*(i-e),l=.5*(n-t);return(2*(t-i)+s+l)*r+(-3*(t-i)-2*s-l)*o+s*a+t}var i=e("../../tool/vector");return function(e,n){for(var a=e.length,o=[],r=0,s=1;a>s;s++)r+=i.distance(e[s-1],e[s]);var l=r/5;l=a>l?a:l;for(var s=0;l>s;s++){var h,m,V,U=s/(l-1)*(n?a:a-1),d=Math.floor(U),p=U-d,c=e[d%a];n?(h=e[(d-1+a)%a],m=e[(d+1)%a],V=e[(d+2)%a]):(h=e[0===d?d:d-1],m=e[d>a-2?a-1:d+1],V=e[d>a-3?a-1:d+2]);var u=p*p,y=p*u;o.push([t(h[0],c[0],m[0],V[0],p,u,y),t(h[1],c[1],m[1],V[1],p,u,y)])}return o}}),i("zrender/shape/util/smoothBezier",["require","../../tool/vector"],function(e){var t=e("../../tool/vector");return function(e,i,n,a){var o,r,s,l,h=[],m=[],V=[],U=[],d=!!a;if(d){s=[1/0,1/0],l=[-(1/0),-(1/0)];for(var p=0,c=e.length;c>p;p++)t.min(s,s,e[p]),t.max(l,l,e[p]);t.min(s,s,a[0]),t.max(l,l,a[1])}for(var p=0,c=e.length;c>p;p++){var o,r,u=e[p];if(n)o=e[p?p-1:c-1],r=e[(p+1)%c];else{if(0===p||p===c-1){h.push(t.clone(e[p]));continue}o=e[p-1],r=e[p+1]}t.sub(m,r,o),t.scale(m,m,i);var y=t.distance(u,o),g=t.distance(u,r),b=y+g;0!==b&&(y/=b,g/=b),t.scale(V,m,-y),t.scale(U,m,g);var f=t.add([],u,V),k=t.add([],u,U);d&&(t.max(f,f,s),t.min(f,f,l),t.max(k,k,s),t.min(k,k,l)),h.push(f),h.push(k)}return n&&h.push(t.clone(h.shift())),h}}),i("echarts/util/ecQuery",["require","zrender/tool/util"],function(e){function t(e,t){if("undefined"!=typeof e){if(!t)return e;t=t.split(".");for(var i=t.length,n=0;i>n;){if(e=e[t[n]],"undefined"==typeof e)return;n++}return e}}function i(e,i){for(var n,a=0,o=e.length;o>a;a++)if(n=t(e[a],i),"undefined"!=typeof n)return n}function n(e,i){for(var n,o=e.length;o--;){var r=t(e[o],i);"undefined"!=typeof r&&("undefined"==typeof n?n=a.clone(r):a.merge(n,r,!0))}return n}var a=e("zrender/tool/util");return{query:t,deepQuery:i,deepMerge:n}}),i("echarts/util/number",[],function(){function e(e){return e.replace(/^\s+/,"").replace(/\s+$/,"")}function t(t,i){return"string"==typeof t?e(t).match(/%$/)?parseFloat(t)/100*i:parseFloat(t):t}function i(e,i){return[t(i[0],e.getWidth()),t(i[1],e.getHeight())]}function n(e,i){i instanceof Array||(i=[0,i]);var n=Math.min(e.getWidth(),e.getHeight())/2;return[t(i[0],n),t(i[1],n)]}function a(e){return isNaN(e)?"-":(e=(e+"").split("."),e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:""))}function o(e){for(var t=1,i=0;Math.round(e*t)/t!==e;)t*=10,i++;return i}return{parsePercent:t,parseCenter:i,parseRadius:n,addCommas:a,getPrecision:o}}),i("echarts/data/KDTree",["require","./quickSelect"],function(e){function t(e,t){this.left=null,this.right=null,this.axis=e,this.data=t}var i=e("./quickSelect"),n=function(e,t){e.length&&(t||(t=e[0].array.length),this.dimension=t,this.root=this._buildTree(e,0,e.length-1,0),this._stack=[],this._nearstNList=[])};return n.prototype._buildTree=function(e,n,a,o){if(n>a)return null;var r=Math.floor((n+a)/2);r=i(e,n,a,r,function(e,t){return e.array[o]-t.array[o]});var s=e[r],l=new t(o,s);return o=(o+1)%this.dimension,a>n&&(l.left=this._buildTree(e,n,r-1,o),l.right=this._buildTree(e,r+1,a,o)),l},n.prototype.nearest=function(e,t){var i=this.root,n=this._stack,a=0,o=1/0,r=null;for(i.data!==e&&(o=t(i.data,e),r=i),e.array[i.axis]s,h=!1;s*=s,o>s&&(s=t(i.data,e),o>s&&i.data!==e&&(o=s,r=i),h=!0),l?(h&&i.right&&(n[a++]=i.right),i.left&&(n[a++]=i.left)):(h&&i.left&&(n[a++]=i.left),i.right&&(n[a++]=i.right))}return r.data},n.prototype._addNearest=function(e,t,i){for(var n=this._nearstNList,a=e-1;a>0&&!(t>=n[a-1].dist);a--)n[a].dist=n[a-1].dist,n[a].node=n[a-1].node;n[a].dist=t,n[a].node=i},n.prototype.nearestN=function(e,t,i,n){if(0>=t)return n.length=0,n;for(var a=this.root,o=this._stack,r=0,s=this._nearstNList,l=0;t>l;l++)s[l]||(s[l]={}),s[l].dist=0,s[l].node=null;var h=i(a.data,e),m=0;for(a.data!==e&&(m++,this._addNearest(m,h,a)),e.array[a.axis]h,U=!1;h*=h,(t>m||hm||hm&&m++,this._addNearest(m,h,a)),U=!0),V?(U&&a.right&&(o[r++]=a.right),a.left&&(o[r++]=a.left)):(U&&a.left&&(o[r++]=a.left),a.right&&(o[r++]=a.right))}for(var l=0;m>l;l++)n[l]=s[l].node.data;return n.length=m,n},n}),i("echarts/data/quickSelect",["require"],function(){function e(e,t){return e-t}function t(e,t,i){var n=e[t];e[t]=e[i],e[i]=n}function i(e,i,n,a,o){for(var r=i;n>i;){var r=Math.round((n+i)/2),s=e[r];t(e,r,n),r=i;for(var l=i;n-1>=l;l++)o(s,e[l])>=0&&(t(e,l,r),r++);if(t(e,n,r),r===a)return r;a>r?i=r+1:n=r-1}return i}function n(t,n,a,o,r){return arguments.length<=3&&(o=n,r=2==arguments.length?e:a,n=0,a=t.length-1),i(t,n,a,o,r)}return n}),i("echarts/component/dataView",["require","./base","../config","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.dom=o.dom,this._tDom=document.createElement("div"),this._textArea=document.createElement("textArea"),this._buttonRefresh=document.createElement("button"),this._buttonRefresh.setAttribute("type","button"),this._buttonClose=document.createElement("button"),this._buttonClose.setAttribute("type","button"),this._hasShow=!1,this._zrHeight=n.getHeight(),this._zrWidth=n.getWidth(),this._tDom.className="echarts-dataview",this.hide(),this.dom.firstChild.appendChild(this._tDom),window.addEventListener?(this._tDom.addEventListener("click",this._stop),this._tDom.addEventListener("mousewheel",this._stop),this._tDom.addEventListener("mousemove",this._stop),this._tDom.addEventListener("mousedown",this._stop),this._tDom.addEventListener("mouseup",this._stop),this._tDom.addEventListener("touchstart",this._stop),this._tDom.addEventListener("touchmove",this._stop),this._tDom.addEventListener("touchend",this._stop)):(this._tDom.attachEvent("onclick",this._stop),this._tDom.attachEvent("onmousewheel",this._stop),this._tDom.attachEvent("onmousemove",this._stop),this._tDom.attachEvent("onmousedown",this._stop),this._tDom.attachEvent("onmouseup",this._stop))}var i=e("./base"),n=e("../config"),a=e("zrender/tool/util");return t.prototype={type:n.COMPONENT_TYPE_DATAVIEW,_lang:["Data View","close","refresh"],_gCssText:"position:absolute;display:block;overflow:hidden;transition:height 0.8s,background-color 1s;-moz-transition:height 0.8s,background-color 1s;-webkit-transition:height 0.8s,background-color 1s;-o-transition:height 0.8s,background-color 1s;z-index:1;left:0;top:0;",hide:function(){this._sizeCssText="width:"+this._zrWidth+"px;height:0px;background-color:#f0ffff;",this._tDom.style.cssText=this._gCssText+this._sizeCssText},show:function(e){this._hasShow=!0;var t=this.query(this.option,"toolbox.feature.dataView.lang")||this._lang;this.option=e,this._tDom.innerHTML='

                              '+(t[0]||this._lang[0])+"

                              ";var i=this.query(this.option,"toolbox.feature.dataView.optionToContent");"function"!=typeof i?this._textArea.value=this._optionToContent():(this._textArea=document.createElement("div"),this._textArea.innerHTML=i(this.option)),this._textArea.style.cssText="display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;width:100%;height:"+(this._zrHeight-100)+"px;",this._tDom.appendChild(this._textArea),this._buttonClose.style.cssText="float:right;padding:1px 6px;",this._buttonClose.innerHTML=t[1]||this._lang[1];var n=this;this._buttonClose.onclick=function(){n.hide()},this._tDom.appendChild(this._buttonClose),this.query(this.option,"toolbox.feature.dataView.readOnly")===!1?(this._buttonRefresh.style.cssText="float:right;margin-right:10px;padding:1px 6px;",this._buttonRefresh.innerHTML=t[2]||this._lang[2],this._buttonRefresh.onclick=function(){n._save()},this._textArea.readOnly=!1,this._textArea.style.cursor="default"):(this._buttonRefresh.style.cssText="display:none", +this._textArea.readOnly=!0,this._textArea.style.cursor="text"),this._tDom.appendChild(this._buttonRefresh),this._sizeCssText="width:"+this._zrWidth+"px;height:"+this._zrHeight+"px;background-color:#fff;",this._tDom.style.cssText=this._gCssText+this._sizeCssText},_optionToContent:function(){var e,t,i,a,o,r,s=[],l="";if(this.option.xAxis)for(s=this.option.xAxis instanceof Array?this.option.xAxis:[this.option.xAxis],e=0,a=s.length;a>e;e++)if("category"==(s[e].type||"category")){for(r=[],t=0,i=s[e].data.length;i>t;t++)r.push(this.getDataFromOption(s[e].data[t]));l+=r.join(", ")+"\n\n"}if(this.option.yAxis)for(s=this.option.yAxis instanceof Array?this.option.yAxis:[this.option.yAxis],e=0,a=s.length;a>e;e++)if("category"==s[e].type){for(r=[],t=0,i=s[e].data.length;i>t;t++)r.push(this.getDataFromOption(s[e].data[t]));l+=r.join(", ")+"\n\n"}var h,m=this.option.series;for(e=0,a=m.length;a>e;e++){for(r=[],t=0,i=m[e].data.length;i>t;t++)o=m[e].data[t],h=m[e].type==n.CHART_TYPE_PIE||m[e].type==n.CHART_TYPE_MAP?(o.name||"-")+":":"",m[e].type==n.CHART_TYPE_SCATTER&&(o=this.getDataFromOption(o).join(", ")),r.push(h+this.getDataFromOption(o));l+=(m[e].name||"-")+" : \n",l+=r.join(m[e].type==n.CHART_TYPE_SCATTER?"\n":", "),l+="\n\n"}return l},_save:function(){var e=this.query(this.option,"toolbox.feature.dataView.contentToOption");if("function"!=typeof e){for(var t=this._textArea.value.split("\n"),i=[],a=0,o=t.length;o>a;a++)t[a]=this._trim(t[a]),""!==t[a]&&i.push(t[a]);this._contentToOption(i)}else e(this._textArea,this.option);this.hide();var r=this;setTimeout(function(){r.messageCenter&&r.messageCenter.dispatch(n.EVENT.DATA_VIEW_CHANGED,null,{option:r.option},r.myChart)},r.canvasSupported?800:100)},_contentToOption:function(e){var t,i,a,o,r,s,l,h=[],m=0;if(this.option.xAxis)for(h=this.option.xAxis instanceof Array?this.option.xAxis:[this.option.xAxis],t=0,o=h.length;o>t;t++)if("category"==(h[t].type||"category")){for(s=e[m].split(","),i=0,a=h[t].data.length;a>i;i++)l=this._trim(s[i]||""),r=h[t].data[i],"undefined"!=typeof h[t].data[i].value?h[t].data[i].value=l:h[t].data[i]=l;m++}if(this.option.yAxis)for(h=this.option.yAxis instanceof Array?this.option.yAxis:[this.option.yAxis],t=0,o=h.length;o>t;t++)if("category"==h[t].type){for(s=e[m].split(","),i=0,a=h[t].data.length;a>i;i++)l=this._trim(s[i]||""),r=h[t].data[i],"undefined"!=typeof h[t].data[i].value?h[t].data[i].value=l:h[t].data[i]=l;m++}var V=this.option.series;for(t=0,o=V.length;o>t;t++)if(m++,V[t].type==n.CHART_TYPE_SCATTER)for(var i=0,a=V[t].data.length;a>i;i++)s=e[m],l=s.replace(" ","").split(","),"undefined"!=typeof V[t].data[i].value?V[t].data[i].value=l:V[t].data[i]=l,m++;else{s=e[m].split(",");for(var i=0,a=V[t].data.length;a>i;i++)l=(s[i]||"").replace(/.*:/,""),l=this._trim(l),l="-"!=l&&""!==l?l-0:"-","undefined"!=typeof V[t].data[i].value?V[t].data[i].value=l:V[t].data[i]=l;m++}},_trim:function(e){var t=new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)","g");return e.replace(t,"")},_stop:function(e){e=e||window.event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},resize:function(){this._zrHeight=this.zr.getHeight(),this._zrWidth=this.zr.getWidth(),this._tDom.offsetHeight>10&&(this._sizeCssText="width:"+this._zrWidth+"px;height:"+this._zrHeight+"px;background-color:#fff;",this._tDom.style.cssText=this._gCssText+this._sizeCssText,this._textArea.style.cssText="display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;width:100%;height:"+(this._zrHeight-100)+"px;")},dispose:function(){window.removeEventListener?(this._tDom.removeEventListener("click",this._stop),this._tDom.removeEventListener("mousewheel",this._stop),this._tDom.removeEventListener("mousemove",this._stop),this._tDom.removeEventListener("mousedown",this._stop),this._tDom.removeEventListener("mouseup",this._stop),this._tDom.removeEventListener("touchstart",this._stop),this._tDom.removeEventListener("touchmove",this._stop),this._tDom.removeEventListener("touchend",this._stop)):(this._tDom.detachEvent("onclick",this._stop),this._tDom.detachEvent("onmousewheel",this._stop),this._tDom.detachEvent("onmousemove",this._stop),this._tDom.detachEvent("onmousedown",this._stop),this._tDom.detachEvent("onmouseup",this._stop)),this._buttonRefresh.onclick=null,this._buttonClose.onclick=null,this._hasShow&&(this._tDom.removeChild(this._textArea),this._tDom.removeChild(this._buttonRefresh),this._tDom.removeChild(this._buttonClose)),this._textArea=null,this._buttonRefresh=null,this._buttonClose=null,this.dom.firstChild.removeChild(this._tDom),this._tDom=null}},a.inherits(t,i),e("../component").define("dataView",t),t}),i("echarts/util/shape/Cross",["require","zrender/shape/Base","zrender/shape/Line","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Line"),a=e("zrender/tool/util");return t.prototype={type:"cross",buildPath:function(e,t){var i=t.rect;t.xStart=i.x,t.xEnd=i.x+i.width,t.yStart=t.yEnd=t.y,n.prototype.buildPath(e,t),t.xStart=t.xEnd=t.x,t.yStart=i.y,t.yEnd=i.y+i.height,n.prototype.buildPath(e,t)},getRect:function(e){return e.rect},isCover:e("./normalIsCover")},a.inherits(t,i),t}),i("zrender/shape/Sector",["require","../tool/math","../tool/computeBoundingBox","../tool/vector","./Base","../tool/util"],function(e){var t=e("../tool/math"),i=e("../tool/computeBoundingBox"),n=e("../tool/vector"),a=e("./Base"),o=n.create(),r=n.create(),s=n.create(),l=n.create(),h=function(e){a.call(this,e)};return h.prototype={type:"sector",buildPath:function(e,i){var n=i.x,a=i.y,o=i.r0||0,r=i.r,s=i.startAngle,l=i.endAngle,h=i.clockWise||!1;s=t.degreeToRadian(s),l=t.degreeToRadian(l),h||(s=-s,l=-l);var m=t.cos(s),V=t.sin(s);e.moveTo(m*o+n,V*o+a),e.lineTo(m*r+n,V*r+a),e.arc(n,a,r,s,l,!h),e.lineTo(t.cos(l)*o+n,t.sin(l)*o+a),0!==o&&e.arc(n,a,o,l,s,h),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var a=e.x,h=e.y,m=e.r0||0,V=e.r,U=t.degreeToRadian(e.startAngle),d=t.degreeToRadian(e.endAngle),p=e.clockWise;return p||(U=-U,d=-d),m>1?i.arc(a,h,m,U,d,!p,o,s):(o[0]=s[0]=a,o[1]=s[1]=h),i.arc(a,h,V,U,d,!p,r,l),n.min(o,o,r),n.max(s,s,l),e.__rect={x:o[0],y:o[1],width:s[0]-o[0],height:s[1]-o[1]},e.__rect}},e("../tool/util").inherits(h,a),h}),i("echarts/util/shape/Candle",["require","zrender/shape/Base","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/tool/util");return t.prototype={type:"candle",_numberOrder:function(e,t){return t-e},buildPath:function(e,t){var i=n.clone(t.y).sort(this._numberOrder);e.moveTo(t.x,i[3]),e.lineTo(t.x,i[2]),e.moveTo(t.x-t.width/2,i[2]),e.rect(t.x-t.width/2,i[2],t.width,i[1]-i[2]),e.moveTo(t.x,i[1]),e.lineTo(t.x,i[0])},getRect:function(e){if(!e.__rect){var t=0;("stroke"==e.brushType||"fill"==e.brushType)&&(t=e.lineWidth||1);var i=n.clone(e.y).sort(this._numberOrder);e.__rect={x:Math.round(e.x-e.width/2-t/2),y:Math.round(i[3]-t/2),width:e.width+t,height:i[0]-i[3]+t}}return e.__rect},isCover:e("./normalIsCover")},n.inherits(t,i),t}),i("zrender/tool/computeBoundingBox",["require","./vector","./curve"],function(e){function t(e,t,i){if(0!==e.length){for(var n=e[0][0],a=e[0][0],o=e[0][1],r=e[0][1],s=1;sa&&(a=l[0]),l[1]r&&(r=l[1])}t[0]=n,t[1]=o,i[0]=a,i[1]=r}}function i(e,t,i,n,a,r){var s=[];o.cubicExtrema(e[0],t[0],i[0],n[0],s);for(var l=0;l=2*Math.PI)return m[0]=e-i,m[1]=t-i,V[0]=e+i,void(V[1]=t+i);if(r[0]=Math.cos(n)*i+e,r[1]=Math.sin(n)*i+t,s[0]=Math.cos(o)*i+e,s[1]=Math.sin(o)*i+t,a.min(m,r,s),a.max(V,r,s),n%=2*Math.PI,0>n&&(n+=2*Math.PI),o%=2*Math.PI,0>o&&(o+=2*Math.PI),n>o&&!h?o+=2*Math.PI:o>n&&h&&(n+=2*Math.PI),h){var U=o;o=n,n=U}for(var d=0;o>d;d+=Math.PI/2)d>n&&(l[0]=Math.cos(d)*i+e,l[1]=Math.sin(d)*i+t,a.min(m,l,m),a.max(V,l,V))};return t.cubeBezier=i,t.quadraticBezier=n,t.arc=h,t}),i("echarts/util/shape/Chain",["require","zrender/shape/Base","./Icon","zrender/shape/util/dashedLineTo","zrender/tool/util","zrender/tool/matrix"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("./Icon"),a=e("zrender/shape/util/dashedLineTo"),o=e("zrender/tool/util"),r=e("zrender/tool/matrix");return t.prototype={type:"chain",brush:function(e,t){var i=this.style;t&&(i=this.getHighlightStyle(i,this.highlightStyle||{})),e.save(),this.setContext(e,i),this.setTransform(e),e.save(),e.beginPath(),this.buildLinePath(e,i),e.stroke(),e.restore(),this.brushSymbol(e,i),e.restore()},buildLinePath:function(e,t){var i=t.x,n=t.y+5,o=t.width,r=t.height/2-10;if(e.moveTo(i,n),e.lineTo(i,n+r),e.moveTo(i+o,n),e.lineTo(i+o,n+r),e.moveTo(i,n+r/2),t.lineType&&"solid"!=t.lineType){if("dashed"==t.lineType||"dotted"==t.lineType){var s=(t.lineWidth||1)*("dashed"==t.lineType?5:1);a(e,i,n+r/2,i+o,n+r/2,s)}}else e.lineTo(i+o,n+r/2)},brushSymbol:function(e,t){var i=t.y+t.height/4;e.save();for(var a,o=t.chainPoint,r=0,s=o.length;s>r;r++){if(a=o[r],"none"!=a.symbol){e.beginPath();var l=a.symbolSize;n.prototype.buildPath(e,{iconType:a.symbol,x:a.x-l,y:i-l,width:2*l,height:2*l,n:a.n}),e.fillStyle=a.isEmpty?"#fff":t.strokeColor,e.closePath(),e.fill(),e.stroke()}a.showLabel&&(e.font=a.textFont,e.fillStyle=a.textColor,e.textAlign=a.textAlign,e.textBaseline=a.textBaseline,a.rotation?(e.save(),this._updateTextTransform(e,a.rotation),e.fillText(a.name,a.textX,a.textY),e.restore()):e.fillText(a.name,a.textX,a.textY))}e.restore()},_updateTextTransform:function(e,t){var i=r.create();if(r.identity(i),0!==t[0]){var n=t[1]||0,a=t[2]||0;(n||a)&&r.translate(i,i,[-n,-a]),r.rotate(i,i,t[0]),(n||a)&&r.translate(i,i,[n,a])}e.transform.apply(e,i)},isCover:function(e,t){var i=this.style;return e>=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height?!0:!1}},o.inherits(t,i),t}),i("zrender/shape/Ring",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"ring",buildPath:function(e,t){e.arc(t.x,t.y,t.r,0,2*Math.PI,!1),e.moveTo(t.x+t.r0,t.y),e.arc(t.x,t.y,t.r0,0,2*Math.PI,!0)},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-e.r-t/2),y:Math.round(e.y-e.r-t/2),width:2*e.r+t,height:2*e.r+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/component/axis",["require","./base","zrender/shape/Line","../config","../util/ecData","zrender/tool/util","zrender/tool/color","./categoryAxis","./valueAxis","../component"],function(e){function t(e,t,n,a,o,r){i.call(this,e,t,n,a,o),this.axisType=r,this._axisList=[],this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Line"),a=e("../config"),o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.COMPONENT_TYPE_AXIS,axisBase:{_buildAxisLine:function(){var e=this.option.axisLine.lineStyle.width,t=e/2,i={_axisShape:"axisLine",zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1},a=this.grid;switch(this.option.position){case"left":i.style={xStart:a.getX()-t,yStart:a.getYend(),xEnd:a.getX()-t,yEnd:a.getY(),lineCap:"round"};break;case"right":i.style={xStart:a.getXend()+t,yStart:a.getYend(),xEnd:a.getXend()+t,yEnd:a.getY(),lineCap:"round"};break;case"bottom":i.style={xStart:a.getX(),yStart:a.getYend()+t,xEnd:a.getXend(),yEnd:a.getYend()+t,lineCap:"round"};break;case"top":i.style={xStart:a.getX(),yStart:a.getY()-t,xEnd:a.getXend(),yEnd:a.getY()-t,lineCap:"round"}}var o=i.style;""!==this.option.name&&(o.text=this.option.name,o.textPosition=this.option.nameLocation,o.textFont=this.getFont(this.option.nameTextStyle),this.option.nameTextStyle.align&&(o.textAlign=this.option.nameTextStyle.align),this.option.nameTextStyle.baseline&&(o.textBaseline=this.option.nameTextStyle.baseline),this.option.nameTextStyle.color&&(o.textColor=this.option.nameTextStyle.color)),o.strokeColor=this.option.axisLine.lineStyle.color,o.lineWidth=e,this.isHorizontal()?o.yStart=o.yEnd=this.subPixelOptimize(o.yEnd,e):o.xStart=o.xEnd=this.subPixelOptimize(o.xEnd,e),o.lineType=this.option.axisLine.lineStyle.type,i=new n(i),this.shapeList.push(i)},_axisLabelClickable:function(e,t){return e?(o.pack(t,void 0,-1,void 0,-1,t.style.text),t.hoverable=!0,t.clickable=!0,t.highlightStyle={color:s.lift(t.style.color,1),brushType:"fill"},t):t},refixAxisShape:function(e,t){if(this.option.axisLine.onZero){var i;if(this.isHorizontal()&&null!=t)for(var n=0,a=this.shapeList.length;a>n;n++)"axisLine"===this.shapeList[n]._axisShape?(this.shapeList[n].style.yStart=this.shapeList[n].style.yEnd=this.subPixelOptimize(t,this.shapeList[n].stylelineWidth),this.zr.modShape(this.shapeList[n].id)):"axisTick"===this.shapeList[n]._axisShape&&(i=this.shapeList[n].style.yEnd-this.shapeList[n].style.yStart,this.shapeList[n].style.yStart=t-i,this.shapeList[n].style.yEnd=t,this.zr.modShape(this.shapeList[n].id));if(!this.isHorizontal()&&null!=e)for(var n=0,a=this.shapeList.length;a>n;n++)"axisLine"===this.shapeList[n]._axisShape?(this.shapeList[n].style.xStart=this.shapeList[n].style.xEnd=this.subPixelOptimize(e,this.shapeList[n].stylelineWidth),this.zr.modShape(this.shapeList[n].id)):"axisTick"===this.shapeList[n]._axisShape&&(i=this.shapeList[n].style.xEnd-this.shapeList[n].style.xStart,this.shapeList[n].style.xStart=e,this.shapeList[n].style.xEnd=e+i,this.zr.modShape(this.shapeList[n].id))}},getPosition:function(){return this.option.position},isHorizontal:function(){return"bottom"===this.option.position||"top"===this.option.position}},reformOption:function(e){if(!e||e instanceof Array&&0===e.length?e=[{type:a.COMPONENT_TYPE_AXIS_VALUE}]:e instanceof Array||(e=[e]),e.length>2&&(e=[e[0],e[1]]),"xAxis"===this.axisType){(!e[0].position||"bottom"!=e[0].position&&"top"!=e[0].position)&&(e[0].position="bottom"),e.length>1&&(e[1].position="bottom"===e[0].position?"top":"bottom");for(var t=0,i=e.length;i>t;t++)e[t].type=e[t].type||"category",e[t].xAxisIndex=t,e[t].yAxisIndex=-1}else{(!e[0].position||"left"!=e[0].position&&"right"!=e[0].position)&&(e[0].position="left"),e.length>1&&(e[1].position="left"===e[0].position?"right":"left");for(var t=0,i=e.length;i>t;t++)e[t].type=e[t].type||"value",e[t].xAxisIndex=-1,e[t].yAxisIndex=t}return e},refresh:function(t){var i;t&&(this.option=t,"xAxis"===this.axisType?(this.option.xAxis=this.reformOption(t.xAxis),i=this.option.xAxis):(this.option.yAxis=this.reformOption(t.yAxis),i=this.option.yAxis),this.series=t.series);for(var n=e("./categoryAxis"),a=e("./valueAxis"),o=Math.max(i&&i.length||0,this._axisList.length),r=0;o>r;r++)!this._axisList[r]||!t||i[r]&&this._axisList[r].type==i[r].type||(this._axisList[r].dispose&&this._axisList[r].dispose(),this._axisList[r]=!1),this._axisList[r]?this._axisList[r].refresh&&this._axisList[r].refresh(i?i[r]:!1,this.series):i&&i[r]&&(this._axisList[r]="category"===i[r].type?new n(this.ecTheme,this.messageCenter,this.zr,i[r],this.myChart,this.axisBase):new a(this.ecTheme,this.messageCenter,this.zr,i[r],this.myChart,this.axisBase,this.series))},getAxis:function(e){return this._axisList[e]},getAxisCount:function(){return this._axisList.length},clear:function(){for(var e=0,t=this._axisList.length;t>e;e++)this._axisList[e].dispose&&this._axisList[e].dispose();this._axisList=[]}},r.inherits(t,i),e("../component").define("axis",t),t}),i("echarts/component/grid",["require","./base","zrender/shape/Rectangle","../config","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("../config");a.grid={zlevel:0,z:0,x:80,y:60,x2:80,y2:60,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"};var o=e("zrender/tool/util");return t.prototype={type:a.COMPONENT_TYPE_GRID,getX:function(){return this._x},getY:function(){return this._y},getWidth:function(){return this._width},getHeight:function(){return this._height},getXend:function(){return this._x+this._width},getYend:function(){return this._y+this._height},getArea:function(){return{x:this._x,y:this._y,width:this._width,height:this._height}},getBbox:function(){return[[this._x,this._y],[this.getXend(),this.getYend()]]},refixAxisShape:function(e){for(var t,i,n,o=e.xAxis._axisList.concat(e.yAxis?e.yAxis._axisList:[]),r=o.length;r--;)n=o[r],n.type==a.COMPONENT_TYPE_AXIS_VALUE&&n._min<0&&n._max>=0&&(n.isHorizontal()?t=n.getCoord(0):i=n.getCoord(0));if("undefined"!=typeof t||"undefined"!=typeof i)for(r=o.length;r--;)o[r].refixAxisShape(t,i)},refresh:function(e){if(e||this._zrWidth!=this.zr.getWidth()||this._zrHeight!=this.zr.getHeight()){this.clear(),this.option=e||this.option,this.option.grid=this.reformOption(this.option.grid);var t=this.option.grid;this._zrWidth=this.zr.getWidth(),this._zrHeight=this.zr.getHeight(),this._x=this.parsePercent(t.x,this._zrWidth),this._y=this.parsePercent(t.y,this._zrHeight);var i=this.parsePercent(t.x2,this._zrWidth),a=this.parsePercent(t.y2,this._zrHeight);this._width="undefined"==typeof t.width?this._zrWidth-this._x-i:this.parsePercent(t.width,this._zrWidth),this._width=this._width<=0?10:this._width,this._height="undefined"==typeof t.height?this._zrHeight-this._y-a:this.parsePercent(t.height,this._zrHeight),this._height=this._height<=0?10:this._height,this._x=this.subPixelOptimize(this._x,t.borderWidth),this._y=this.subPixelOptimize(this._y,t.borderWidth),this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._x,y:this._y,width:this._width,height:this._height,brushType:t.borderWidth>0?"both":"fill",color:t.backgroundColor,strokeColor:t.borderColor,lineWidth:t.borderWidth}})),this.zr.addShape(this.shapeList[0])}}},o.inherits(t,i),e("../component").define("grid",t),t}),i("echarts/component/dataZoom",["require","./base","zrender/shape/Rectangle","zrender/shape/Polygon","../util/shape/Icon","../config","../util/date","zrender/tool/util","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._ondrift=function(e,t){return r.__ondrift(this,e,t)},r._ondragend=function(){return r.__ondragend()},this._fillerSize=30,this._isSilence=!1,this._zoom={},this.option.dataZoom=this.reformOption(this.option.dataZoom),this.zoomOption=this.option.dataZoom,this._handleSize=this.zoomOption.handleSize,this.myChart.canvasSupported||(this.zoomOption.realtime=!1),this._location=this._getLocation(),this._zoom=this._getZoom(),this._backupData(),this.option.dataZoom.show&&this._buildShape(),this._syncData()}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("zrender/shape/Polygon"),o=e("../util/shape/Icon"),r=e("../config");r.dataZoom={zlevel:0,z:4,show:!1,orient:"horizontal",backgroundColor:"rgba(0,0,0,0)",dataBackgroundColor:"#eee",fillerColor:"rgba(144,197,237,0.2)",handleColor:"rgba(70,130,180,0.8)",handleSize:8,showDetail:!0,realtime:!0};var s=e("../util/date"),l=e("zrender/tool/util");return t.prototype={type:r.COMPONENT_TYPE_DATAZOOM,_buildShape:function(){this._buildBackground(),this._buildFiller(),this._buildHandle(),this._buildFrame();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e]);this._syncFrameShape()},_getLocation:function(){var e,t,i,n,a=this.component.grid;return"horizontal"==this.zoomOption.orient?(i=this.zoomOption.width||a.getWidth(),n=this.zoomOption.height||this._fillerSize,e=null!=this.zoomOption.x?this.zoomOption.x:a.getX(),t=null!=this.zoomOption.y?this.zoomOption.y:this.zr.getHeight()-n-2):(i=this.zoomOption.width||this._fillerSize,n=this.zoomOption.height||a.getHeight(),e=null!=this.zoomOption.x?this.zoomOption.x:2,t=null!=this.zoomOption.y?this.zoomOption.y:a.getY()),{x:e,y:t,width:i,height:n}},_getZoom:function(){var e=this.option.series,t=this.option.xAxis;!t||t instanceof Array||(t=[t],this.option.xAxis=t);var i=this.option.yAxis;!i||i instanceof Array||(i=[i],this.option.yAxis=i);var n,a,o=[],s=this.zoomOption.xAxisIndex;if(t&&null==s){n=[];for(var l=0,h=t.length;h>l;l++)("category"==t[l].type||null==t[l].type)&&n.push(l)}else n=s instanceof Array?s:null!=s?[s]:[];if(s=this.zoomOption.yAxisIndex,i&&null==s){a=[];for(var l=0,h=i.length;h>l;l++)"category"==i[l].type&&a.push(l)}else a=s instanceof Array?s:null!=s?[s]:[];for(var m,l=0,h=e.length;h>l;l++)if(m=e[l],m.type==r.CHART_TYPE_LINE||m.type==r.CHART_TYPE_BAR||m.type==r.CHART_TYPE_SCATTER||m.type==r.CHART_TYPE_K){for(var V=0,U=n.length;U>V;V++)if(n[V]==(m.xAxisIndex||0)){o.push(l);break}for(var V=0,U=a.length;U>V;V++)if(a[V]==(m.yAxisIndex||0)){o.push(l);break}null==this.zoomOption.xAxisIndex&&null==this.zoomOption.yAxisIndex&&m.data&&this.getDataFromOption(m.data[0])instanceof Array&&(m.type==r.CHART_TYPE_SCATTER||m.type==r.CHART_TYPE_LINE||m.type==r.CHART_TYPE_BAR)&&o.push(l)}var d=null!=this._zoom.start?this._zoom.start:null!=this.zoomOption.start?this.zoomOption.start:0,p=null!=this._zoom.end?this._zoom.end:null!=this.zoomOption.end?this.zoomOption.end:100;d>p&&(d+=p,p=d-p,d-=p);var c=Math.round((p-d)/100*("horizontal"==this.zoomOption.orient?this._location.width:this._location.height));return{start:d,end:p,start2:0,end2:100,size:c,xAxisIndex:n,yAxisIndex:a,seriesIndex:o,scatterMap:this._zoom.scatterMap||{}}},_backupData:function(){this._originalData={xAxis:{},yAxis:{},series:{}};for(var e=this.option.xAxis,t=this._zoom.xAxisIndex,i=0,n=t.length;n>i;i++)this._originalData.xAxis[t[i]]=e[t[i]].data;for(var a=this.option.yAxis,o=this._zoom.yAxisIndex,i=0,n=o.length;n>i;i++)this._originalData.yAxis[o[i]]=a[o[i]].data;for(var s,l=this.option.series,h=this._zoom.seriesIndex,i=0,n=h.length;n>i;i++)s=l[h[i]],this._originalData.series[h[i]]=s.data,s.data&&this.getDataFromOption(s.data[0])instanceof Array&&(s.type==r.CHART_TYPE_SCATTER||s.type==r.CHART_TYPE_LINE||s.type==r.CHART_TYPE_BAR)&&(this._backupScale(),this._calculScatterMap(h[i]))},_calculScatterMap:function(t){this._zoom.scatterMap=this._zoom.scatterMap||{},this._zoom.scatterMap[t]=this._zoom.scatterMap[t]||{};var i=e("../component"),n=i.get("axis"),a=l.clone(this.option.xAxis);"category"==a[0].type&&(a[0].type="value"),a[1]&&"category"==a[1].type&&(a[1].type="value");var o=new n(this.ecTheme,null,!1,{xAxis:a,series:this.option.series},this,"xAxis"),r=this.option.series[t].xAxisIndex||0;this._zoom.scatterMap[t].x=o.getAxis(r).getExtremum(),o.dispose(),a=l.clone(this.option.yAxis),"category"==a[0].type&&(a[0].type="value"),a[1]&&"category"==a[1].type&&(a[1].type="value"),o=new n(this.ecTheme,null,!1,{yAxis:a,series:this.option.series},this,"yAxis"),r=this.option.series[t].yAxisIndex||0,this._zoom.scatterMap[t].y=o.getAxis(r).getExtremum(),o.dispose()},_buildBackground:function(){var e=this._location.width,t=this._location.height;this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._location.x,y:this._location.y,width:e,height:t,color:this.zoomOption.backgroundColor}}));for(var i=0,o=this._originalData.xAxis,s=this._zoom.xAxisIndex,l=0,h=s.length;h>l;l++)i=Math.max(i,o[s[l]].length);for(var m=this._originalData.yAxis,V=this._zoom.yAxisIndex,l=0,h=V.length;h>l;l++)i=Math.max(i,m[V[l]].length);for(var U,d=this._zoom.seriesIndex[0],p=this._originalData.series[d],c=Number.MIN_VALUE,u=Number.MAX_VALUE,l=0,h=p.length;h>l;l++)U=this.getDataFromOption(p[l],0),this.option.series[d].type==r.CHART_TYPE_K&&(U=U[1]),isNaN(U)&&(U=0),c=Math.max(c,U),u=Math.min(u,U);var y=c-u,g=[],b=e/(i-(i>1?1:0)),f=t/(i-(i>1?1:0)),k=1;"horizontal"==this.zoomOption.orient&&1>b?k=Math.floor(3*i/e):"vertical"==this.zoomOption.orient&&1>f&&(k=Math.floor(3*i/t));for(var l=0,h=i;h>l;l+=k)U=this.getDataFromOption(p[l],0),this.option.series[d].type==r.CHART_TYPE_K&&(U=U[1]),isNaN(U)&&(U=0),g.push("horizontal"==this.zoomOption.orient?[this._location.x+b*l,this._location.y+t-1-Math.round((U-u)/y*(t-10))]:[this._location.x+1+Math.round((U-u)/y*(e-10)),this._location.y+f*(h-l-1)]);"horizontal"==this.zoomOption.orient?(g.push([this._location.x+e,this._location.y+t]),g.push([this._location.x,this._location.y+t])):(g.push([this._location.x,this._location.y]),g.push([this._location.x,this._location.y+t])),this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:g,color:this.zoomOption.dataBackgroundColor},hoverable:!1}))},_buildFiller:function(){this._fillerShae={zlevel:this.getZlevelBase(),z:this.getZBase(),draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,_type:"filler"},this._fillerShae.style="horizontal"==this.zoomOption.orient?{x:this._location.x+Math.round(this._zoom.start/100*this._location.width)+this._handleSize,y:this._location.y,width:this._zoom.size-2*this._handleSize,height:this._location.height,color:this.zoomOption.fillerColor,text:":::",textPosition:"inside"}:{x:this._location.x,y:this._location.y+Math.round(this._zoom.start/100*this._location.height)+this._handleSize,width:this._location.width,height:this._zoom.size-2*this._handleSize,color:this.zoomOption.fillerColor,text:"::",textPosition:"inside"},this._fillerShae.highlightStyle={brushType:"fill",color:"rgba(0,0,0,0)"},this._fillerShae=new n(this._fillerShae),this.shapeList.push(this._fillerShae)},_buildHandle:function(){var e=this.zoomOption.showDetail?this._getDetail():{start:"",end:""};this._startShape={zlevel:this.getZlevelBase(),z:this.getZBase(),draggable:!0,style:{iconType:"rectangle",x:this._location.x,y:this._location.y,width:this._handleSize,height:this._handleSize,color:this.zoomOption.handleColor,text:"=",textPosition:"inside"},highlightStyle:{text:e.start,brushType:"fill",textPosition:"left"},ondrift:this._ondrift,ondragend:this._ondragend},"horizontal"==this.zoomOption.orient?(this._startShape.style.height=this._location.height,this._endShape=l.clone(this._startShape),this._startShape.style.x=this._fillerShae.style.x-this._handleSize,this._endShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._endShape.highlightStyle.text=e.end,this._endShape.highlightStyle.textPosition="right"):(this._startShape.style.width=this._location.width,this._endShape=l.clone(this._startShape),this._startShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._startShape.highlightStyle.textPosition="bottom",this._endShape.style.y=this._fillerShae.style.y-this._handleSize,this._endShape.highlightStyle.text=e.end,this._endShape.highlightStyle.textPosition="top"),this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_buildFrame:function(){var e=this.subPixelOptimize(this._location.x,1),t=this.subPixelOptimize(this._location.y,1);this._startFrameShape={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:e,y:t,width:this._location.width-(e>this._location.x?1:0),height:this._location.height-(t>this._location.y?1:0),lineWidth:1,brushType:"stroke",strokeColor:this.zoomOption.handleColor}},this._endFrameShape=l.clone(this._startFrameShape),this._startFrameShape=new n(this._startFrameShape),this._endFrameShape=new n(this._endFrameShape),this.shapeList.push(this._startFrameShape),this.shapeList.push(this._endFrameShape)},_syncHandleShape:function(){"horizontal"==this.zoomOption.orient?(this._startShape.style.x=this._fillerShae.style.x-this._handleSize,this._endShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._zoom.start=(this._startShape.style.x-this._location.x)/this._location.width*100,this._zoom.end=(this._endShape.style.x+this._handleSize-this._location.x)/this._location.width*100):(this._startShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._endShape.style.y=this._fillerShae.style.y-this._handleSize,this._zoom.start=(this._location.y+this._location.height-this._startShape.style.y)/this._location.height*100,this._zoom.end=(this._location.y+this._location.height-this._endShape.style.y-this._handleSize)/this._location.height*100),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this._syncFrameShape(),this.zr.refreshNextFrame()},_syncFillerShape:function(){var e,t;"horizontal"==this.zoomOption.orient?(e=this._startShape.style.x,t=this._endShape.style.x,this._fillerShae.style.x=Math.min(e,t)+this._handleSize,this._fillerShae.style.width=Math.abs(e-t)-this._handleSize,this._zoom.start=(Math.min(e,t)-this._location.x)/this._location.width*100,this._zoom.end=(Math.max(e,t)+this._handleSize-this._location.x)/this._location.width*100):(e=this._startShape.style.y,t=this._endShape.style.y,this._fillerShae.style.y=Math.min(e,t)+this._handleSize,this._fillerShae.style.height=Math.abs(e-t)-this._handleSize,this._zoom.start=(this._location.y+this._location.height-Math.max(e,t))/this._location.height*100,this._zoom.end=(this._location.y+this._location.height-Math.min(e,t)-this._handleSize)/this._location.height*100),this.zr.modShape(this._fillerShae.id),this._syncFrameShape(),this.zr.refreshNextFrame()},_syncFrameShape:function(){"horizontal"==this.zoomOption.orient?(this._startFrameShape.style.width=this._fillerShae.style.x-this._location.x,this._endFrameShape.style.x=this._fillerShae.style.x+this._fillerShae.style.width,this._endFrameShape.style.width=this._location.x+this._location.width-this._endFrameShape.style.x):(this._startFrameShape.style.y=this._fillerShae.style.y+this._fillerShae.style.height,this._startFrameShape.style.height=this._location.y+this._location.height-this._startFrameShape.style.y,this._endFrameShape.style.height=this._fillerShae.style.y-this._location.y),this.zr.modShape(this._startFrameShape.id),this.zr.modShape(this._endFrameShape.id)},_syncShape:function(){this.zoomOption.show&&("horizontal"==this.zoomOption.orient?(this._startShape.style.x=this._location.x+this._zoom.start/100*this._location.width,this._endShape.style.x=this._location.x+this._zoom.end/100*this._location.width-this._handleSize,this._fillerShae.style.x=this._startShape.style.x+this._handleSize,this._fillerShae.style.width=this._endShape.style.x-this._startShape.style.x-this._handleSize):(this._startShape.style.y=this._location.y+this._location.height-this._zoom.start/100*this._location.height,this._endShape.style.y=this._location.y+this._location.height-this._zoom.end/100*this._location.height-this._handleSize,this._fillerShae.style.y=this._endShape.style.y+this._handleSize,this._fillerShae.style.height=this._startShape.style.y-this._endShape.style.y-this._handleSize),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._fillerShae.id),this._syncFrameShape(),this.zr.refresh())},_syncData:function(e){var t,i,n,a,o;for(var s in this._originalData){t=this._originalData[s];for(var l in t)o=t[l],null!=o&&(a=o.length,i=Math.floor(this._zoom.start/100*a),n=Math.ceil(this._zoom.end/100*a),this.getDataFromOption(o[0])instanceof Array&&this.option[s][l].type!=r.CHART_TYPE_K?(this._setScale(),this.option[s][l].data=this._synScatterData(l,o)):this.option[s][l].data=o.slice(i,n))}this._isSilence||!this.zoomOption.realtime&&!e||this.messageCenter.dispatch(r.EVENT.DATA_ZOOM,null,{zoom:this._zoom},this.myChart)},_synScatterData:function(e,t){if(0===this._zoom.start&&100==this._zoom.end&&0===this._zoom.start2&&100==this._zoom.end2)return t;var i,n,a,o,r,s=[],l=this._zoom.scatterMap[e]; + +"horizontal"==this.zoomOption.orient?(i=l.x.max-l.x.min,n=this._zoom.start/100*i+l.x.min,a=this._zoom.end/100*i+l.x.min,i=l.y.max-l.y.min,o=this._zoom.start2/100*i+l.y.min,r=this._zoom.end2/100*i+l.y.min):(i=l.x.max-l.x.min,n=this._zoom.start2/100*i+l.x.min,a=this._zoom.end2/100*i+l.x.min,i=l.y.max-l.y.min,o=this._zoom.start/100*i+l.y.min,r=this._zoom.end/100*i+l.y.min);var h;(h=l.x.dataMappingMethods)&&(n=h.coord2Value(n),a=h.coord2Value(a)),(h=l.y.dataMappingMethods)&&(o=h.coord2Value(o),r=h.coord2Value(r));for(var m,V=0,U=t.length;U>V;V++)m=t[V].value||t[V],m[0]>=n&&m[0]<=a&&m[1]>=o&&m[1]<=r&&s.push(t[V]);return s},_setScale:function(){var e=0!==this._zoom.start||100!==this._zoom.end||0!==this._zoom.start2||100!==this._zoom.end2,t={xAxis:this.option.xAxis,yAxis:this.option.yAxis};for(var i in t)for(var n=0,a=t[i].length;a>n;n++)t[i][n].scale=e||t[i][n]._scale},_backupScale:function(){var e={xAxis:this.option.xAxis,yAxis:this.option.yAxis};for(var t in e)for(var i=0,n=e[t].length;n>i;i++)e[t][i]._scale=e[t][i].scale},_getDetail:function(){for(var e=["xAxis","yAxis"],t=0,i=e.length;i>t;t++){var n=this._originalData[e[t]];for(var a in n){var o=n[a];if(null!=o){var r=o.length,l=Math.floor(this._zoom.start/100*r),h=Math.ceil(this._zoom.end/100*r);return h-=h>0?1:0,{start:this.getDataFromOption(o[l]),end:this.getDataFromOption(o[h])}}}}e="horizontal"==this.zoomOption.orient?"xAxis":"yAxis";var m=this._zoom.seriesIndex[0],V=this.option.series[m][e+"Index"]||0,U=this.option[e][V].type,d=this._zoom.scatterMap[m][e.charAt(0)].min,p=this._zoom.scatterMap[m][e.charAt(0)].max,c=p-d;if("value"==U)return{start:d+c*this._zoom.start/100,end:d+c*this._zoom.end/100};if("time"==U){p=d+c*this._zoom.end/100,d+=c*this._zoom.start/100;var u=s.getAutoFormatter(d,p).formatter;return{start:s.format(u,d),end:s.format(u,p)}}return{start:"",end:""}},__ondrift:function(e,t,i){this.zoomOption.zoomLock&&(e=this._fillerShae);var n="filler"==e._type?this._handleSize:0;if("horizontal"==this.zoomOption.orient?e.style.x+t-n<=this._location.x?e.style.x=this._location.x+n:e.style.x+t+e.style.width+n>=this._location.x+this._location.width?e.style.x=this._location.x+this._location.width-e.style.width-n:e.style.x+=t:e.style.y+i-n<=this._location.y?e.style.y=this._location.y+n:e.style.y+i+e.style.height+n>=this._location.y+this._location.height?e.style.y=this._location.y+this._location.height-e.style.height-n:e.style.y+=i,"filler"==e._type?this._syncHandleShape():this._syncFillerShape(),this.zoomOption.realtime&&this._syncData(),this.zoomOption.showDetail){var a=this._getDetail();this._startShape.style.text=this._startShape.highlightStyle.text=a.start,this._endShape.style.text=this._endShape.highlightStyle.text=a.end,this._startShape.style.textPosition=this._startShape.highlightStyle.textPosition,this._endShape.style.textPosition=this._endShape.highlightStyle.textPosition}return!0},__ondragend:function(){this.zoomOption.showDetail&&(this._startShape.style.text=this._endShape.style.text="=",this._startShape.style.textPosition=this._endShape.style.textPosition="inside",this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.refreshNextFrame()),this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(!this.zoomOption.realtime&&this._syncData(),t.dragOut=!0,t.dragIn=!0,this._isSilence||this.zoomOption.realtime||this.messageCenter.dispatch(r.EVENT.DATA_ZOOM,null,{zoom:this._zoom},this.myChart),t.needRefresh=!1,this.isDragend=!1)},ondataZoom:function(e,t){t.needRefresh=!0},absoluteZoom:function(e){this._zoom.start=e.start,this._zoom.end=e.end,this._zoom.start2=e.start2,this._zoom.end2=e.end2,this._syncShape(),this._syncData(!0)},rectZoom:function(e){if(!e)return this._zoom.start=this._zoom.start2=0,this._zoom.end=this._zoom.end2=100,this._syncShape(),this._syncData(!0),this._zoom;var t=this.component.grid.getArea(),i={x:e.x,y:e.y,width:e.width,height:e.height};if(i.width<0&&(i.x+=i.width,i.width=-i.width),i.height<0&&(i.y+=i.height,i.height=-i.height),i.x>t.x+t.width||i.y>t.y+t.height)return!1;i.xt.x+t.width&&(i.width=t.x+t.width-i.x),i.y+i.height>t.y+t.height&&(i.height=t.y+t.height-i.y);var n,a=(i.x-t.x)/t.width,o=1-(i.x+i.width-t.x)/t.width,r=1-(i.y+i.height-t.y)/t.height,s=(i.y-t.y)/t.height;return"horizontal"==this.zoomOption.orient?(n=this._zoom.end-this._zoom.start,this._zoom.start+=n*a,this._zoom.end-=n*o,n=this._zoom.end2-this._zoom.start2,this._zoom.start2+=n*r,this._zoom.end2-=n*s):(n=this._zoom.end-this._zoom.start,this._zoom.start+=n*r,this._zoom.end-=n*s,n=this._zoom.end2-this._zoom.start2,this._zoom.start2+=n*a,this._zoom.end2-=n*o),this._syncShape(),this._syncData(!0),this._zoom},syncBackupData:function(e){for(var t,i,n=this._originalData.series,a=e.series,o=0,r=a.length;r>o;o++){i=a[o].data||a[o].eventList,t=n[o]?Math.floor(this._zoom.start/100*n[o].length):0;for(var s=0,l=i.length;l>s;s++)n[o]&&(n[o][s+t]=i[s])}},syncOption:function(e){this.silence(!0),this.option=e,this.option.dataZoom=this.reformOption(this.option.dataZoom),this.zoomOption=this.option.dataZoom,this.myChart.canvasSupported||(this.zoomOption.realtime=!1),this.clear(),this._location=this._getLocation(),this._zoom=this._getZoom(),this._backupData(),this.option.dataZoom&&this.option.dataZoom.show&&this._buildShape(),this._syncData(),this.silence(!1)},silence:function(e){this._isSilence=e},getRealDataIndex:function(e,t){if(!this._originalData||0===this._zoom.start&&100==this._zoom.end)return t;var i=this._originalData.series;return i[e]?Math.floor(this._zoom.start/100*i[e].length)+t:-1},resize:function(){this.clear(),this._location=this._getLocation(),this._zoom=this._getZoom(),this.option.dataZoom.show&&this._buildShape()}},l.inherits(t,i),e("../component").define("dataZoom",t),t}),i("echarts/component/categoryAxis",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","../config","zrender/tool/util","zrender/tool/area","../component"],function(e){function t(e,t,n,a,o,r){if(a.data.length<1)return void console.error("option.data.length < 1.");i.call(this,e,t,n,a,o),this.grid=this.component.grid;for(var s in r)this[s]=r[s];this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=e("../config");r.categoryAxis={zlevel:0,z:0,show:!0,position:"bottom",name:"",nameLocation:"end",nameTextStyle:{},boundaryGap:!0,axisLine:{show:!0,onZero:!0,lineStyle:{color:"#48b",width:2,type:"solid"}},axisTick:{show:!0,interval:"auto",inside:!1,length:5,lineStyle:{color:"#333",width:1}},axisLabel:{show:!0,interval:"auto",rotate:0,margin:8,textStyle:{color:"#333"}},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}};var s=e("zrender/tool/util"),l=e("zrender/tool/area");return t.prototype={type:r.COMPONENT_TYPE_AXIS_CATEGORY,_getReformedLabel:function(e){var t=this.getDataFromOption(this.option.data[e]),i=this.option.data[e].formatter||this.option.axisLabel.formatter;return i&&("function"==typeof i?t=i.call(this.myChart,t):"string"==typeof i&&(t=i.replace("{value}",t))),t},_getInterval:function(){var e=this.option.axisLabel.interval;if("auto"==e){var t=this.option.axisLabel.textStyle.fontSize,i=this.option.data,n=this.option.data.length;if(this.isHorizontal())if(n>3){var a,o,r=this.getGap(),h=!1,m=Math.floor(.5/r);for(m=1>m?1:m,e=Math.floor(15/r);!h&&n>e;){e+=m,h=!0,a=Math.floor(r*e);for(var V=Math.floor((n-1)/e)*e;V>=0;V-=e){if(0!==this.option.axisLabel.rotate)o=t;else if(i[V].textStyle)o=l.getTextWidth(this._getReformedLabel(V),this.getFont(s.merge(i[V].textStyle,this.option.axisLabel.textStyle)));else{var U=this._getReformedLabel(V)+"",d=(U.match(/\w/g)||"").length,p=U.length-d;o=d*t*2/3+p*t}if(o>a){h=!1;break}}}}else e=1;else if(n>3){var r=this.getGap();for(e=Math.floor(11/r);t>r*e-6&&n>e;)e++}else e=1}else e="function"==typeof e?1:e-0+1;return e},_buildShape:function(){if(this._interval=this._getInterval(),this.option.show){this.option.splitArea.show&&this._buildSplitArea(),this.option.splitLine.show&&this._buildSplitLine(),this.option.axisLine.show&&this._buildAxisLine(),this.option.axisTick.show&&this._buildAxisTick(),this.option.axisLabel.show&&this._buildAxisLabel();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildAxisTick:function(){var e,t=this.option.data,i=this.option.data.length,n=this.option.axisTick,o=n.length,r=n.lineStyle.color,s=n.lineStyle.width,l="function"==typeof n.interval?n.interval:"auto"==n.interval&&"function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,h=l?1:"auto"==n.interval?this._interval:n.interval-0+1,m=n.onGap,V=m?this.getGap()/2:"undefined"==typeof m&&this.option.boundaryGap?this.getGap()/2:0,U=V>0?-h:0;if(this.isHorizontal())for(var d,p="bottom"==this.option.position?n.inside?this.grid.getYend()-o-1:this.grid.getYend()+1:n.inside?this.grid.getY()+1:this.grid.getY()-o-1,c=U;i>c;c+=h)(!l||l(c,t[c]))&&(d=this.subPixelOptimize(this.getCoordByIndex(c)+(c>=0?V:0),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:d,yStart:p,xEnd:d,yEnd:p+o,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e)));else for(var u,y="left"==this.option.position?n.inside?this.grid.getX()+1:this.grid.getX()-o-1:n.inside?this.grid.getXend()-o-1:this.grid.getXend()+1,c=U;i>c;c+=h)(!l||l(c,t[c]))&&(u=this.subPixelOptimize(this.getCoordByIndex(c)-(c>=0?V:0),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:y,yStart:u,xEnd:y+o,yEnd:u,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e)))},_buildAxisLabel:function(){var e,t,i=this.option.data,a=this.option.data.length,o=this.option.axisLabel,r=o.rotate,l=o.margin,h=o.clickable,m=o.textStyle,V="function"==typeof o.interval?o.interval:!1;if(this.isHorizontal()){var U,d;"bottom"==this.option.position?(U=this.grid.getYend()+l,d="top"):(U=this.grid.getY()-l,d="bottom");for(var p=0;a>p;p+=this._interval)V&&!V(p,i[p])||""===this._getReformedLabel(p)||(t=s.merge(i[p].textStyle||{},m),e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:this.getCoordByIndex(p),y:U,color:t.color,text:this._getReformedLabel(p),textFont:this.getFont(t),textAlign:t.align||"center",textBaseline:t.baseline||d}},r&&(e.style.textAlign=r>0?"bottom"==this.option.position?"right":"left":"bottom"==this.option.position?"left":"right",e.rotation=[r*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(h,e))))}else{var c,u;"left"==this.option.position?(c=this.grid.getX()-l,u="right"):(c=this.grid.getXend()+l,u="left");for(var p=0;a>p;p+=this._interval)V&&!V(p,i[p])||""===this._getReformedLabel(p)||(t=s.merge(i[p].textStyle||{},m),e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:c,y:this.getCoordByIndex(p),color:t.color,text:this._getReformedLabel(p),textFont:this.getFont(t),textAlign:t.align||u,textBaseline:t.baseline||0===p&&""!==this.option.name?"bottom":p==a-1&&""!==this.option.name?"top":"middle"}},r&&(e.rotation=[r*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(h,e))))}},_buildSplitLine:function(){var e,t=this.option.data,i=this.option.data.length,n=this.option.splitLine,o=n.lineStyle.type,r=n.lineStyle.width,s=n.lineStyle.color;s=s instanceof Array?s:[s];var l=s.length,h="function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,m=n.onGap,V=m?this.getGap()/2:"undefined"==typeof m&&this.option.boundaryGap?this.getGap()/2:0;if(i-=m||"undefined"==typeof m&&this.option.boundaryGap?1:0,this.isHorizontal())for(var U,d=this.grid.getY(),p=this.grid.getYend(),c=0;i>c;c+=this._interval)(!h||h(c,t[c]))&&(U=this.subPixelOptimize(this.getCoordByIndex(c)+V,r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:U,yStart:d,xEnd:U,yEnd:p,strokeColor:s[c/this._interval%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e)));else for(var u,y=this.grid.getX(),g=this.grid.getXend(),c=0;i>c;c+=this._interval)(!h||h(c,t[c]))&&(u=this.subPixelOptimize(this.getCoordByIndex(c)-V,r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:y,yStart:u,xEnd:g,yEnd:u,strokeColor:s[c/this._interval%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e)))},_buildSplitArea:function(){var e,t=this.option.data,i=this.option.splitArea,n=i.areaStyle.color;if(n instanceof Array){var a=n.length,r=this.option.data.length,s="function"==typeof this.option.axisLabel.interval?this.option.axisLabel.interval:!1,l=i.onGap,h=l?this.getGap()/2:"undefined"==typeof l&&this.option.boundaryGap?this.getGap()/2:0;if(this.isHorizontal())for(var m,V=this.grid.getY(),U=this.grid.getHeight(),d=this.grid.getX(),p=0;r>=p;p+=this._interval)s&&!s(p,t[p])&&r>p||(m=r>p?this.getCoordByIndex(p)+h:this.grid.getXend(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:d,y:V,width:m-d,height:U,color:n[p/this._interval%a]}},this.shapeList.push(new o(e)),d=m);else for(var c,u=this.grid.getX(),y=this.grid.getWidth(),g=this.grid.getYend(),p=0;r>=p;p+=this._interval)s&&!s(p,t[p])&&r>p||(c=r>p?this.getCoordByIndex(p)-h:this.grid.getY(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:u,y:c,width:y,height:g-c,color:n[p/this._interval%a]}},this.shapeList.push(new o(e)),g=c)}else e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this.grid.getX(),y:this.grid.getY(),width:this.grid.getWidth(),height:this.grid.getHeight(),color:n}},this.shapeList.push(new o(e))},refresh:function(e){e&&(this.option=this.reformOption(e),this.option.axisLabel.textStyle=this.getTextStyle(this.option.axisLabel.textStyle)),this.clear(),this._buildShape()},getGap:function(){var e=this.option.data.length,t=this.isHorizontal()?this.grid.getWidth():this.grid.getHeight();return this.option.boundaryGap?t/e:t/(e>1?e-1:1)},getCoord:function(e){for(var t=this.option.data,i=t.length,n=this.getGap(),a=this.option.boundaryGap?n/2:0,o=0;i>o;o++){if(this.getDataFromOption(t[o])==e)return a=this.isHorizontal()?this.grid.getX()+a:this.grid.getYend()-a;a+=n}},getCoordByIndex:function(e){if(0>e)return this.isHorizontal()?this.grid.getX():this.grid.getYend();if(e>this.option.data.length-1)return this.isHorizontal()?this.grid.getXend():this.grid.getY();var t=this.getGap(),i=this.option.boundaryGap?t/2:0;return i+=e*t,i=this.isHorizontal()?this.grid.getX()+i:this.grid.getYend()-i},getNameByIndex:function(e){return this.getDataFromOption(this.option.data[e])},getIndexByName:function(e){for(var t=this.option.data,i=t.length,n=0;i>n;n++)if(this.getDataFromOption(t[n])==e)return n;return-1},getValueFromCoord:function(){return""},isMainAxis:function(e){return e%this._interval===0}},s.inherits(t,i),e("../component").define("categoryAxis",t),t}),i("echarts/component/valueAxis",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","../config","../util/date","zrender/tool/util","../util/smartSteps","../util/accMath","../util/smartLogSteps","../component"],function(e){function t(e,t,n,a,o,r,s){if(!s||0===s.length)return void console.err("option.series.length == 0.");i.call(this,e,t,n,a,o),this.series=s,this.grid=this.component.grid;for(var l in r)this[l]=r[l];this.refresh(a,s)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Rectangle"),r=e("../config");r.valueAxis={zlevel:0,z:0,show:!0,position:"left",name:"",nameLocation:"end",nameTextStyle:{},boundaryGap:[0,0],axisLine:{show:!0,onZero:!0,lineStyle:{color:"#48b",width:2,type:"solid"}},axisTick:{show:!1,inside:!1,length:5,lineStyle:{color:"#333",width:1}},axisLabel:{show:!0,rotate:0,margin:8,textStyle:{color:"#333"}},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}};var s=e("../util/date"),l=e("zrender/tool/util");return t.prototype={type:r.COMPONENT_TYPE_AXIS_VALUE,_buildShape:function(){if(this._hasData=!1,this._calculateValue(),this._hasData&&this.option.show){this.option.splitArea.show&&this._buildSplitArea(),this.option.splitLine.show&&this._buildSplitLine(),this.option.axisLine.show&&this._buildAxisLine(),this.option.axisTick.show&&this._buildAxisTick(),this.option.axisLabel.show&&this._buildAxisLabel();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildAxisTick:function(){var e,t=this._valueList,i=this._valueList.length,n=this.option.axisTick,o=n.length,r=n.lineStyle.color,s=n.lineStyle.width;if(this.isHorizontal())for(var l,h="bottom"===this.option.position?n.inside?this.grid.getYend()-o-1:this.grid.getYend()+1:n.inside?this.grid.getY()+1:this.grid.getY()-o-1,m=0;i>m;m++)l=this.subPixelOptimize(this.getCoord(t[m]),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:l,yStart:h,xEnd:l,yEnd:h+o,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e));else for(var V,U="left"===this.option.position?n.inside?this.grid.getX()+1:this.grid.getX()-o-1:n.inside?this.grid.getXend()-o-1:this.grid.getXend()+1,m=0;i>m;m++)V=this.subPixelOptimize(this.getCoord(t[m]),s),e={_axisShape:"axisTick",zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:U,yStart:V,xEnd:U+o,yEnd:V,strokeColor:r,lineWidth:s}},this.shapeList.push(new a(e))},_buildAxisLabel:function(){var e,t=this._valueList,i=this._valueList.length,a=this.option.axisLabel.rotate,o=this.option.axisLabel.margin,r=this.option.axisLabel.clickable,s=this.option.axisLabel.textStyle;if(this.isHorizontal()){var l,h;"bottom"===this.option.position?(l=this.grid.getYend()+o,h="top"):(l=this.grid.getY()-o,h="bottom");for(var m=0;i>m;m++)e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:this.getCoord(t[m]),y:l,color:"function"==typeof s.color?s.color(t[m]):s.color,text:this._valueLabel[m],textFont:this.getFont(s),textAlign:s.align||"center",textBaseline:s.baseline||h}},a&&(e.style.textAlign=a>0?"bottom"===this.option.position?"right":"left":"bottom"===this.option.position?"left":"right",e.rotation=[a*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(r,e)))}else{var V,U;"left"===this.option.position?(V=this.grid.getX()-o,U="right"):(V=this.grid.getXend()+o,U="left");for(var m=0;i>m;m++)e={zlevel:this.getZlevelBase(),z:this.getZBase()+3,hoverable:!1,style:{x:V,y:this.getCoord(t[m]),color:"function"==typeof s.color?s.color(t[m]):s.color,text:this._valueLabel[m],textFont:this.getFont(s),textAlign:s.align||U,textBaseline:s.baseline||(0===m&&""!==this.option.name?"bottom":m===i-1&&""!==this.option.name?"top":"middle")}},a&&(e.rotation=[a*Math.PI/180,e.style.x,e.style.y]),this.shapeList.push(new n(this._axisLabelClickable(r,e)))}},_buildSplitLine:function(){var e,t=this._valueList,i=this._valueList.length,n=this.option.splitLine,o=n.lineStyle.type,r=n.lineStyle.width,s=n.lineStyle.color;s=s instanceof Array?s:[s];var l=s.length;if(this.isHorizontal())for(var h,m=this.grid.getY(),V=this.grid.getYend(),U=0;i>U;U++)h=this.subPixelOptimize(this.getCoord(t[U]),r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:h,yStart:m,xEnd:h,yEnd:V,strokeColor:s[U%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e));else for(var d,p=this.grid.getX(),c=this.grid.getXend(),U=0;i>U;U++)d=this.subPixelOptimize(this.getCoord(t[U]),r),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{xStart:p,yStart:d,xEnd:c,yEnd:d,strokeColor:s[U%l],lineType:o,lineWidth:r}},this.shapeList.push(new a(e))},_buildSplitArea:function(){var e,t=this.option.splitArea.areaStyle.color;if(t instanceof Array){var i=t.length,n=this._valueList,a=this._valueList.length;if(this.isHorizontal())for(var r,s=this.grid.getY(),l=this.grid.getHeight(),h=this.grid.getX(),m=0;a>=m;m++)r=a>m?this.getCoord(n[m]):this.grid.getXend(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:h,y:s,width:r-h,height:l,color:t[m%i]}},this.shapeList.push(new o(e)),h=r;else for(var V,U=this.grid.getX(),d=this.grid.getWidth(),p=this.grid.getYend(),m=0;a>=m;m++)V=a>m?this.getCoord(n[m]):this.grid.getY(),e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:U,y:V,width:d,height:p-V,color:t[m%i]}},this.shapeList.push(new o(e)),p=V}else e={zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this.grid.getX(),y:this.grid.getY(),width:this.grid.getWidth(),height:this.grid.getHeight(),color:t}},this.shapeList.push(new o(e))},_calculateValue:function(){if(isNaN(this.option.min-0)||isNaN(this.option.max-0)){for(var e,t,i={},n=this.component.legend,a=0,o=this.series.length;o>a;a++)!(this.series[a].type!=r.CHART_TYPE_LINE&&this.series[a].type!=r.CHART_TYPE_BAR&&this.series[a].type!=r.CHART_TYPE_SCATTER&&this.series[a].type!=r.CHART_TYPE_K&&this.series[a].type!=r.CHART_TYPE_EVENTRIVER||n&&!n.isSelected(this.series[a].name)||(e=this.series[a].xAxisIndex||0,t=this.series[a].yAxisIndex||0,this.option.xAxisIndex!=e&&this.option.yAxisIndex!=t||!this._calculSum(i,a)));var s;for(var a in i){s=i[a];for(var l=0,h=s.length;h>l;l++)if(!isNaN(s[l])){this._hasData=!0,this._min=s[l],this._max=s[l];break}if(this._hasData)break}for(var a in i){s=i[a];for(var l=0,h=s.length;h>l;l++)isNaN(s[l])||(this._min=Math.min(this._min,s[l]),this._max=Math.max(this._max,s[l]))}var m="log"!==this.option.type?this.option.boundaryGap:[0,0],V=Math.abs(this._max-this._min);this._min=isNaN(this.option.min-0)?this._min-Math.abs(V*m[0]):this.option.min-0,this._max=isNaN(this.option.max-0)?this._max+Math.abs(V*m[1]):this.option.max-0,this._min===this._max&&(0===this._max?this._max=1:this._max>0?this._min=this._max/this.option.splitNumber!=null?this.option.splitNumber:5:this._max=this._max/this.option.splitNumber!=null?this.option.splitNumber:5),"time"===this.option.type?this._reformTimeValue():"log"===this.option.type?this._reformLogValue():this._reformValue(this.option.scale)}else this._hasData=!0,this._min=this.option.min-0,this._max=this.option.max-0,"time"===this.option.type?this._reformTimeValue():"log"===this.option.type?this._reformLogValue():this._customerValue()},_calculSum:function(e,t){var i,n,a=this.series[t].name||"kener";if(this.series[t].stack){var o="__Magic_Key_Positive__"+this.series[t].stack,l="__Magic_Key_Negative__"+this.series[t].stack;e[o]=e[o]||[],e[l]=e[l]||[],e[a]=e[a]||[],n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)i=this.getDataFromOption(n[h]),"-"!==i&&(i-=0,i>=0?null!=e[o][h]?e[o][h]+=i:e[o][h]=i:null!=e[l][h]?e[l][h]+=i:e[l][h]=i,this.option.scale&&e[a].push(i))}else if(e[a]=e[a]||[],this.series[t].type!=r.CHART_TYPE_EVENTRIVER){n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)i=this.getDataFromOption(n[h]),this.series[t].type===r.CHART_TYPE_K?(e[a].push(i[0]),e[a].push(i[1]),e[a].push(i[2]),e[a].push(i[3])):i instanceof Array?(-1!=this.option.xAxisIndex&&e[a].push("time"!=this.option.type?i[0]:s.getNewDate(i[0])),-1!=this.option.yAxisIndex&&e[a].push("time"!=this.option.type?i[1]:s.getNewDate(i[1]))):e[a].push(i)}else{n=this.series[t].data;for(var h=0,m=n.length;m>h;h++)for(var V=n[h].evolution,U=0,d=V.length;d>U;U++)e[a].push(s.getNewDate(V[U].time))}},_reformValue:function(t){var i=e("../util/smartSteps"),n=this.option.splitNumber;!t&&this._min>=0&&this._max>=0&&(this._min=0),!t&&this._min<=0&&this._max<=0&&(this._max=0);var a=i(this._min,this._max,n);n=null!=n?n:a.secs,this._min=a.min,this._max=a.max,this._valueList=a.pnts,this._reformLabelData()},_reformTimeValue:function(){var e=null!=this.option.splitNumber?this.option.splitNumber:5,t=s.getAutoFormatter(this._min,this._max,e),i=t.formatter,n=t.gapValue;this._valueList=[s.getNewDate(this._min)];var a;switch(i){case"week":a=s.nextMonday(this._min);break;case"month":a=s.nextNthOnMonth(this._min,1);break;case"quarter":a=s.nextNthOnQuarterYear(this._min,1);break;case"half-year":a=s.nextNthOnHalfYear(this._min,1);break;case"year":a=s.nextNthOnYear(this._min,1);break;default:72e5>=n?a=(Math.floor(this._min/n)+1)*n:(a=s.getNewDate(this._min- -n),a.setHours(6*Math.round(a.getHours()/6)),a.setMinutes(0),a.setSeconds(0))}for(a-this._min=0&&(("month"==i||"quarter"==i||"half-year"==i||"year"==i)&&t.setDate(1),!(this._max-t=a;a++)this._valueList.push(t.accAdd(this._min,t.accMul(n,a)));this._reformLabelData()},_reformLogValue:function(){var t=this.option,i=e("../util/smartLogSteps")({dataMin:this._min,dataMax:this._max,logPositive:t.logPositive,logLabelBase:t.logLabelBase,splitNumber:t.splitNumber});this._min=i.dataMin,this._max=i.dataMax,this._valueList=i.tickList,this._dataMappingMethods=i.dataMappingMethods,this._reformLabelData(i.labelFormatter)},_reformLabelData:function(e){this._valueLabel=[];var t=this.option.axisLabel.formatter;if(t)for(var i=0,n=this._valueList.length;n>i;i++)"function"==typeof t?this._valueLabel.push(e?t.call(this.myChart,this._valueList[i],e):t.call(this.myChart,this._valueList[i])):"string"==typeof t&&this._valueLabel.push(e?s.format(t,this._valueList[i]):t.replace("{value}",this._valueList[i]));else for(var i=0,n=this._valueList.length;n>i;i++)this._valueLabel.push(e?e(this._valueList[i]):this.numAddCommas(this._valueList[i]))},getExtremum:function(){this._calculateValue();var e=this._dataMappingMethods;return{min:this._min,max:this._max,dataMappingMethods:e?l.merge({},e):null}},refresh:function(e,t){e&&(this.option=this.reformOption(e),this.option.axisLabel.textStyle=l.merge(this.option.axisLabel.textStyle||{},this.ecTheme.textStyle),this.series=t),this.zr&&(this.clear(),this._buildShape())},getCoord:function(e){this._dataMappingMethods&&(e=this._dataMappingMethods.value2Coord(e)),e=ethis._max?this._max:e;var t;return t=this.isHorizontal()?this.grid.getX()+(e-this._min)/(this._max-this._min)*this.grid.getWidth():this.grid.getYend()-(e-this._min)/(this._max-this._min)*this.grid.getHeight()},getCoordSize:function(e){return Math.abs(this.isHorizontal()?e/(this._max-this._min)*this.grid.getWidth():e/(this._max-this._min)*this.grid.getHeight())},getValueFromCoord:function(e){var t;return this.isHorizontal()?(e=ethis.grid.getXend()?this.grid.getXend():e,t=this._min+(e-this.grid.getX())/this.grid.getWidth()*(this._max-this._min)):(e=ethis.grid.getYend()?this.grid.getYend():e,t=this._max-(e-this.grid.getY())/this.grid.getHeight()*(this._max-this._min)),this._dataMappingMethods&&(t=this._dataMappingMethods.coord2Value(t)),t.toFixed(2)-0},isMaindAxis:function(e){for(var t=0,i=this._valueList.length;i>t;t++)if(this._valueList[t]===e)return!0;return!1}},l.inherits(t,i),e("../component").define("valueAxis",t),t}),i("echarts/util/date",[],function(){function e(e,t,i){i=i>1?i:2;for(var n,a,o,r,s=0,l=m.length;l>s;s++)if(n=m[s].value,a=Math.ceil(t/n)*n-Math.floor(e/n)*n,Math.round(a/n)<=1.2*i){o=m[s].formatter,r=m[s].value;break}return null==o&&(o="year",n=317088e5,a=Math.ceil(t/n)*n-Math.floor(e/n)*n,r=Math.round(a/(i-1)/n)*n),{formatter:o,gapValue:r}}function t(e){return 10>e?"0"+e:e}function i(e,i){("week"==e||"month"==e||"quarter"==e||"half-year"==e||"year"==e)&&(e="MM - dd\nyyyy");var n=h(i),a=n.getFullYear(),o=n.getMonth()+1,r=n.getDate(),s=n.getHours(),l=n.getMinutes(),m=n.getSeconds();return e=e.replace("MM",t(o)),e=e.toLowerCase(),e=e.replace("yyyy",a),e=e.replace("yy",a%100),e=e.replace("dd",t(r)),e=e.replace("d",r),e=e.replace("hh",t(s)),e=e.replace("h",s),e=e.replace("mm",t(l)),e=e.replace("m",l),e=e.replace("ss",t(m)),e=e.replace("s",m)}function n(e){return e=h(e),e.setDate(e.getDate()+8-e.getDay()),e}function a(e,t,i){return e=h(e),e.setMonth(Math.ceil((e.getMonth()+1)/i)*i),e.setDate(t),e}function o(e,t){return a(e,t,1)}function r(e,t){return a(e,t,3)}function s(e,t){return a(e,t,6)}function l(e,t){return a(e,t,12)}function h(e){return e instanceof Date?e:new Date("string"==typeof e?e.replace(/-/g,"/"):e)}var m=[{formatter:"hh : mm : ss",value:1e3},{formatter:"hh : mm : ss",value:5e3},{formatter:"hh : mm : ss",value:1e4},{formatter:"hh : mm : ss",value:15e3},{formatter:"hh : mm : ss",value:3e4},{formatter:"hh : mm\nMM - dd",value:6e4},{formatter:"hh : mm\nMM - dd",value:3e5},{formatter:"hh : mm\nMM - dd",value:6e5},{formatter:"hh : mm\nMM - dd",value:9e5},{formatter:"hh : mm\nMM - dd",value:18e5},{formatter:"hh : mm\nMM - dd",value:36e5},{formatter:"hh : mm\nMM - dd",value:72e5},{formatter:"hh : mm\nMM - dd",value:216e5},{formatter:"hh : mm\nMM - dd",value:432e5},{formatter:"MM - dd\nyyyy",value:864e5},{formatter:"week",value:6048e5},{formatter:"month",value:26784e5},{formatter:"quarter",value:8208e6},{formatter:"half-year",value:16416e6},{formatter:"year",value:32832e6}];return{getAutoFormatter:e,getNewDate:h,format:i,nextMonday:n,nextNthPerNmonth:a,nextNthOnMonth:o,nextNthOnQuarterYear:r,nextNthOnHalfYear:s,nextNthOnYear:l}}),i("echarts/util/smartSteps",[],function(){function e(e){return X.log(I(e))/X.LN10}function t(e){return X.pow(10,e)}function i(e){return e===w(e)}function n(e,t,n,a){b=a||{},f=b.steps||L,k=b.secs||W,n=v(+n||0)%99,e=+e||0,t=+t||0,x=_=0,"min"in b&&(e=+b.min||0,x=1),"max"in b&&(t=+b.max||0,_=1),e>t&&(t=[e,e=t][0]);var o=t-e;if(x&&_)return g(e,t,n);if((n||5)>o){if(i(e)&&i(t))return d(e,t,n);if(0===o)return p(e,t,n)}return h(e,t,n)}function a(e,i,n,a){a=a||0;var s=o((i-e)/n,-1),l=o(e,-1,1),h=o(i,-1),m=X.min(s.e,l.e,h.e);0===l.c?m=X.min(s.e,h.e):0===h.c&&(m=X.min(s.e,l.e)),r(s,{c:0,e:m}),r(l,s,1),r(h,s),a+=m,e=l.c,i=h.c;for(var V=(i-e)/n,U=t(a),d=0,p=[],c=n+1;c--;)p[c]=(e+V*c)*U;if(0>a){d=u(U),V=+(V*U).toFixed(d),e=+(e*U).toFixed(d),i=+(i*U).toFixed(d);for(var c=p.length;c--;)p[c]=p[c].toFixed(d),0===+p[c]&&(p[c]="0")}else e*=U,i*=U,V*=U;return k=0,f=0,b=0,{min:e,max:i,secs:n,step:V,fix:d,exp:a,pnts:p}}function o(n,a,o){a=v(a%10)||2,0>a&&(i(n)?a=(""+I(n)).replace(/0+$/,"").length||1:(n=n.toFixed(15).replace(/0+$/,""),a=n.replace(".","").replace(/^[-0]+/,"").length,n=+n));var r=w(e(n))-a+1,s=+(n*t(-r)).toFixed(15)||0;return s=o?w(s):K(s),!s&&(r=0),(""+I(s)).length>a&&(r+=1,s/=10),{c:s,e:r}}function r(e,i,n){var a=i.e-e.e;a&&(e.e+=a,e.c*=t(-a),e.c=n?w(e.c):K(e.c))}function s(e,t,i){e.et[n];)n++;if(!t[n])for(i/=10,e.e+=1,n=0;i>t[n];)n++;return e.c=t[n],e}function h(e,t,n){var s,h=n||+k.slice(-1),p=l((t-e)/h,f),u=o(t-e),g=o(e,-1,1),b=o(t,-1);if(r(u,p),r(g,p,1),r(b,p),n?s=V(g,b,h):h=m(g,b),i(e)&&i(t)&&e*t>=0){if(h>t-e)return d(e,t,h);h=U(e,t,n,g,b,h)}var L=c(e,t,g.c,b.c);return g.c=L[0],b.c=L[1],(x||_)&&y(e,t,g,b),a(g.c,b.c,h,b.e)}function m(e,i){for(var n,a,o,r,s=[],h=k.length;h--;)n=k[h],a=l((i.c-e.c)/n,f),a=a.c*t(a.e),o=w(e.c/a)*a,r=K(i.c/a)*a,s[h]={min:o,max:r,step:a,span:r-o};return s.sort(function(e,t){var i=e.span-t.span;return 0===i&&(i=e.step-t.step),i}),s=s[0],n=s.span/s.step,e.c=s.min,i.c=s.max,3>n?2*n:n}function V(e,i,n){for(var a,o,r=i.c,s=(i.c-e.c)/n-1;r>e.c;)s=l(s+1,f),s=s.c*t(s.e),a=s*n,o=K(i.c/s)*s,r=o-a;var h=e.c-r,m=o-i.c,V=h-m;return V>1.1*s&&(V=v(V/s/2)*s,r+=V,o+=V),e.c=r,i.c=o,s}function U(e,n,a,o,r,s){var l=r.c-o.c,h=l/s*t(r.e);if(!i(h)&&(h=w(h),l=h*s,n-e>l&&(h+=1,l=h*s,!a&&h*(s-1)>=n-e&&(s-=1,l=h*s)),l>=n-e)){var m=l-(n-e);o.c=v(e-m/2),r.c=v(n+m/2),o.e=0,r.e=0}return s}function d(e,t,i){if(i=i||5,x)t=e+i;else if(_)e=t-i;else{var n=i-(t-e),o=v(e-n/2),r=v(t+n/2),s=c(e,t,o,r);e=s[0],t=s[1]}return a(e,t,i)}function p(e,t,i){i=i||5;var n=X.min(I(t/i),i)/2.1;return x?t=e+n:_?e=t-n:(e-=n,t+=n),h(e,t,i)}function c(e,t,i,n){ +return e>=0&&0>i?(n-=i,i=0):0>=t&&n>0&&(i-=n,n=0),[i,n]}function u(e){return e=(+e).toFixed(15).split("."),e.pop().replace(/0+$/,"").length}function y(e,t,i,n){if(x){var a=o(e,4,1);i.e-a.e>6&&(a={c:0,e:i.e}),s(i,a),s(n,a),n.c+=a.c-i.c,i.c=a.c}else if(_){var r=o(t,4);n.e-r.e>6&&(r={c:0,e:n.e}),s(i,r),s(n,r),i.c+=r.c-n.c,n.c=r.c}}function g(e,t,i){var n=i?[i]:k,s=t-e;if(0===s)return t=o(t,3),i=n[0],t.c=v(t.c+i/2),a(t.c-i,t.c,i,t.e);I(t/s)<1e-6&&(t=0),I(e/s)<1e-6&&(e=0);var l,h,m,V=[[5,10],[10,2],[50,10],[100,2]],U=[],d=[],p=o(t-e,3),c=o(e,-1,1),u=o(t,-1);r(c,p,1),r(u,p),s=u.c-c.c,p.c=s;for(var y=n.length;y--;){i=n[y],l=K(s/i),h=l*i-s,m=3*(h+3),m+=2*(i-n[0]+2),i%5===0&&(m-=10);for(var g=V.length;g--;)l%V[g][0]===0&&(m/=V[g][1]);d[y]=[i,l,h,m].join(),U[y]={secs:i,step:l,delta:h,score:m}}return U.sort(function(e,t){return e.score-t.score}),U=U[0],c.c=v(c.c-U.delta/2),u.c=v(u.c+U.delta/2),a(c.c,u.c,U.secs,p.e)}var b,f,k,x,_,L=[10,20,25,50],W=[4,5,6],X=Math,v=X.round,w=X.floor,K=X.ceil,I=X.abs;return n}),i("echarts/util/smartLogSteps",["require","./number"],function(e){function t(e){return i(),u=e||{},n(),a(),[o(),i()][0]}function i(){U=u=g=c=b=f=y=k=d=p=null}function n(){d=u.logLabelBase,null==d?(p="plain",d=10,c=I):(d=+d,1>d&&(d=10),p="exponent",c=L(d)),y=u.splitNumber,null==y&&(y=E);var e=parseFloat(u.dataMin),t=parseFloat(u.dataMax);isFinite(e)||isFinite(t)?isFinite(e)?isFinite(t)?e>t&&(t=[e,e=t][0]):t=e:e=t:e=t=1,U=u.logPositive,null==U&&(U=t>0||0===e),b=U?e:-t,f=U?t:-e,S>b&&(b=S),S>f&&(f=S)}function a(){function e(){y>m&&(y=m);var e=w(l(m/y)),t=v(l(m/e)),i=e*t,n=(i-U)/2,a=w(l(r-n));V(a-r)&&(a-=1),g=-a*c;for(var s=a;o>=s-e;s+=e)k.push(W(d,s))}function t(){for(var e=i(h,0),t=e+2;t>e&&a(e+1)+n(e+1)*Ct&&a(l-1)+n(l-1)*C>o;)l--;g=-(a(e)*I+n(e)*J);for(var m=e;l>=m;m++){var V=a(m),U=n(m);k.push(W(10,V)*W(2,U))}}function i(e,t){return 3*e+t}function n(e){return e-3*a(e)}function a(e){return w(l(e/3))}k=[];var o=l(L(f)/c),r=l(L(b)/c),s=v(o),h=w(r),m=s-h,U=o-r;"exponent"===p?e():F>=m&&y>F?t():e()}function o(){for(var e=[],t=0,i=k.length;i>t;t++)e[t]=(U?1:-1)*k[t];!U&&e.reverse();var n=s(),a=n.value2Coord,o=a(e[0]),l=a(e[e.length-1]);return o===l&&(o-=1,l+=1),{dataMin:o,dataMax:l,tickList:e,logPositive:U,labelFormatter:r(),dataMappingMethods:n}}function r(){if("exponent"===p){var e=d,t=c;return function(i){if(!isFinite(parseFloat(i)))return"";var n="";return 0>i&&(i=-i,n="-"),n+e+m(L(i)/t)}}return function(e){return isFinite(parseFloat(e))?x.addCommas(h(e)):""}}function s(){var e=U,t=g;return{value2Coord:function(i){return null==i||isNaN(i)||!isFinite(i)?i:(i=parseFloat(i),isFinite(i)?e&&S>i?i=S:!e&&i>-S&&(i=-S):i=S,i=X(i),(e?1:-1)*(L(i)+t))},coord2Value:function(i){return null==i||isNaN(i)||!isFinite(i)?i:(i=parseFloat(i),isFinite(i)||(i=S),e?W(K,i-t):-W(K,-i+t))}}}function l(e){return+Number(+e).toFixed(14)}function h(e){return Number(e).toFixed(15).replace(/\.?0*$/,"")}function m(e){e=h(Math.round(e));for(var t=[],i=0,n=e.length;n>i;i++){var a=e.charAt(i);t.push(T[a]||"")}return t.join("")}function V(e){return e>-S&&S>e}var U,d,p,c,u,y,g,b,f,k,x=e("./number"),_=Math,L=_.log,W=_.pow,X=_.abs,v=_.ceil,w=_.floor,K=_.E,I=_.LN10,J=_.LN2,C=J/I,S=1e-9,E=5,F=2,T={0:"⁰",1:"¹",2:"²",3:"³",4:"⁴",5:"⁵",6:"⁶",7:"⁷",8:"⁸",9:"⁹","-":"⁻"};return t}),i("echarts/chart/line",["require","./base","zrender/shape/Polyline","../util/shape/Icon","../util/shape/HalfSmoothPolygon","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,i,a,o){n.call(this,e,t,i,a,o),this.refresh(a)}function i(e,t,i){var n=t.x,a=t.y,r=t.width,s=t.height,l=s/2;t.symbol.match("empty")&&(e.fillStyle="#fff"),t.brushType="both";var h=t.symbol.replace("empty","").toLowerCase();h.match("star")?(l=h.replace("star","")-0||5,a-=1,h="star"):("rectangle"===h||"arrow"===h)&&(n+=(r-s)/2,r=s);var m="";if(h.match("image")&&(m=h.replace(new RegExp("^image:\\/\\/"),""),h="image",n+=Math.round((r-s)/2)-1,r=s+=2),h=o.prototype.iconLibrary[h]){var V=t.x,U=t.y;e.moveTo(V,U+l),e.lineTo(V+5,U+l),e.moveTo(V+t.width-5,U+l),e.lineTo(V+t.width,U+l);var d=this;h(e,{x:n+4,y:a+4,width:r-8,height:s-8,n:l,image:m},function(){d.modSelf(),i()})}else e.moveTo(n,a+l),e.lineTo(n+r,a+l)}var n=e("./base"),a=e("zrender/shape/Polyline"),o=e("../util/shape/Icon"),r=e("../util/shape/HalfSmoothPolygon");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var s=e("../config");s.line={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,dataFilter:"nearest",itemStyle:{normal:{label:{show:!1},lineStyle:{width:2,type:"solid",shadowColor:"rgba(0,0,0,0)",shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0}},emphasis:{label:{show:!1}}},symbolSize:2,showAllSymbol:!1};var l=e("../util/ecData"),h=e("zrender/tool/util"),m=e("zrender/tool/color");return t.prototype={type:s.CHART_TYPE_LINE,_buildShape:function(){this.finalPLMap={},this._buildPosition()},_buildHorizontal:function(e,t,i,n){for(var a,o,r,s,l,h,m,V,U,d=this.series,p=i[0][0],c=d[p],u=this.component.xAxis.getAxis(c.xAxisIndex||0),y={},g=0,b=t;b>g&&null!=u.getNameByIndex(g);g++){o=u.getCoordByIndex(g);for(var f=0,k=i.length;k>f;f++){a=this.component.yAxis.getAxis(d[i[f][0]].yAxisIndex||0),l=s=m=h=a.getCoord(0);for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),y[p]=y[p]||[],n[p]=n[p]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},"-"!==U?(U>=0?(s-=x>0?a.getCoordSize(U):l-a.getCoord(U),r=s):0>U&&(h+=x>0?a.getCoordSize(U):a.getCoord(U)-m,r=h),y[p].push([o,r,g,u.getNameByIndex(g),o,l]),n[p].min>U&&(n[p].min=U,n[p].minY=r,n[p].minX=o),n[p].max0&&(this.finalPLMap[p]=this.finalPLMap[p]||[],this.finalPLMap[p].push(y[p]),y[p]=[])}s=this.component.grid.getY();for(var L,f=0,k=i.length;k>f;f++)for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),"-"==U&&this.deepQuery([V,c,this.option],"calculable")&&(L=this.deepQuery([V,c],"symbolSize"),s+=2*L+5,r=s,this.shapeList.push(this._getCalculableItem(p,g,u.getNameByIndex(g),o,r,"horizontal")))}for(var W in y)y[W].length>0&&(this.finalPLMap[W]=this.finalPLMap[W]||[],this.finalPLMap[W].push(y[W]),y[W]=[]);this._calculMarkMapXY(n,i,"y"),this._buildBorkenLine(e,this.finalPLMap,u,"horizontal")},_buildVertical:function(e,t,i,n){for(var a,o,r,s,l,h,m,V,U,d=this.series,p=i[0][0],c=d[p],u=this.component.yAxis.getAxis(c.yAxisIndex||0),y={},g=0,b=t;b>g&&null!=u.getNameByIndex(g);g++){r=u.getCoordByIndex(g);for(var f=0,k=i.length;k>f;f++){a=this.component.xAxis.getAxis(d[i[f][0]].xAxisIndex||0),l=s=m=h=a.getCoord(0);for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),y[p]=y[p]||[],n[p]=n[p]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},"-"!==U?(U>=0?(s+=x>0?a.getCoordSize(U):a.getCoord(U)-l,o=s):0>U&&(h-=x>0?a.getCoordSize(U):m-a.getCoord(U),o=h),y[p].push([o,r,g,u.getNameByIndex(g),l,r]),n[p].min>U&&(n[p].min=U,n[p].minX=o,n[p].minY=r),n[p].max0&&(this.finalPLMap[p]=this.finalPLMap[p]||[],this.finalPLMap[p].push(y[p]),y[p]=[])}s=this.component.grid.getXend();for(var L,f=0,k=i.length;k>f;f++)for(var x=0,_=i[f].length;_>x;x++)p=i[f][x],c=d[p],V=c.data[g],U=this.getDataFromOption(V,"-"),"-"==U&&this.deepQuery([V,c,this.option],"calculable")&&(L=this.deepQuery([V,c],"symbolSize"),s-=2*L+5,o=s,this.shapeList.push(this._getCalculableItem(p,g,u.getNameByIndex(g),o,r,"vertical")))}for(var W in y)y[W].length>0&&(this.finalPLMap[W]=this.finalPLMap[W]||[],this.finalPLMap[W].push(y[W]),y[W]=[]);this._calculMarkMapXY(n,i,"x"),this._buildBorkenLine(e,this.finalPLMap,u,"vertical")},_buildOther:function(e,t,i,n){for(var a,o=this.series,r={},s=0,l=i.length;l>s;s++)for(var h=0,m=i[s].length;m>h;h++){var V=i[s][h],U=o[V];a=this.component.xAxis.getAxis(U.xAxisIndex||0);var d=this.component.yAxis.getAxis(U.yAxisIndex||0),p=d.getCoord(0);r[V]=r[V]||[],n[V]=n[V]||{min0:Number.POSITIVE_INFINITY,min1:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum0:0,sum1:0,counter0:0,counter1:0,average0:0,average1:0};for(var c=0,u=U.data.length;u>c;c++){var y=U.data[c],g=this.getDataFromOption(y,"-");if(g instanceof Array){var b=a.getCoord(g[0]),f=d.getCoord(g[1]);r[V].push([b,f,c,g[0],b,p]),n[V].min0>g[0]&&(n[V].min0=g[0],n[V].minY0=f,n[V].minX0=b),n[V].max0g[1]&&(n[V].min1=g[1],n[V].minY1=f,n[V].minX1=b),n[V].max10&&(this.finalPLMap[k]=this.finalPLMap[k]||[],this.finalPLMap[k].push(r[k]),r[k]=[]);this._calculMarkMapXY(n,i,"xy"),this._buildBorkenLine(e,this.finalPLMap,a,"other")},_buildBorkenLine:function(e,t,i,n){for(var o,s="other"==n?"horizontal":n,V=this.series,U=e.length-1;U>=0;U--){var d=e[U],p=V[d],c=t[d];if(p.type===this.type&&null!=c)for(var u=this._getBbox(d,s),y=this._sIndex2ColorMap[d],g=this.query(p,"itemStyle.normal.lineStyle.width"),b=this.query(p,"itemStyle.normal.lineStyle.type"),f=this.query(p,"itemStyle.normal.lineStyle.color"),k=this.getItemStyleColor(this.query(p,"itemStyle.normal.color"),d,-1),x=null!=this.query(p,"itemStyle.normal.areaStyle"),_=this.query(p,"itemStyle.normal.areaStyle.color"),L=0,W=c.length;W>L;L++){var X=c[L],v="other"!=n&&this._isLarge(s,X);if(v)X=this._getLargePointList(s,X,p.dataFilter);else for(var w=0,K=X.length;K>w;w++)o=p.data[X[w][2]],(this.deepQuery([o,p,this.option],"calculable")||this.deepQuery([o,p],"showAllSymbol")||"categoryAxis"===i.type&&i.isMainAxis(X[w][2])&&"none"!=this.deepQuery([o,p],"symbol"))&&this.shapeList.push(this._getSymbol(d,X[w][2],X[w][3],X[w][0],X[w][1],s));var I=new a({zlevel:p.zlevel,z:p.z,style:{miterLimit:g,pointList:X,strokeColor:f||k||y,lineWidth:g,lineType:b,smooth:this._getSmooth(p.smooth),smoothConstraint:u,shadowColor:this.query(p,"itemStyle.normal.lineStyle.shadowColor"),shadowBlur:this.query(p,"itemStyle.normal.lineStyle.shadowBlur"),shadowOffsetX:this.query(p,"itemStyle.normal.lineStyle.shadowOffsetX"),shadowOffsetY:this.query(p,"itemStyle.normal.lineStyle.shadowOffsetY")},hoverable:!1,_main:!0,_seriesIndex:d,_orient:s});if(l.pack(I,V[d],d,0,L,V[d].name),this.shapeList.push(I),x){var J=new r({zlevel:p.zlevel,z:p.z,style:{miterLimit:g,pointList:h.clone(X).concat([[X[X.length-1][4],X[X.length-1][5]],[X[0][4],X[0][5]]]),brushType:"fill",smooth:this._getSmooth(p.smooth),smoothConstraint:u,color:_?_:m.alpha(y,.5)},highlightStyle:{brushType:"fill"},hoverable:!1,_main:!0,_seriesIndex:d,_orient:s});l.pack(J,V[d],d,0,L,V[d].name),this.shapeList.push(J)}}}},_getBbox:function(e,t){var i=this.component.grid.getBbox(),n=this.xMarkMap[e];return null!=n.minX0?[[Math.min(n.minX0,n.maxX0,n.minX1,n.maxX1),Math.min(n.minY0,n.maxY0,n.minY1,n.maxY1)],[Math.max(n.minX0,n.maxX0,n.minX1,n.maxX1),Math.max(n.minY0,n.maxY0,n.minY1,n.maxY1)]]:("horizontal"===t?(i[0][1]=Math.min(n.minY,n.maxY),i[1][1]=Math.max(n.minY,n.maxY)):(i[0][0]=Math.min(n.minX,n.maxX),i[1][0]=Math.max(n.minX,n.maxX)),i)},_isLarge:function(e,t){return t.length<2?!1:"horizontal"===e?Math.abs(t[0][0]-t[1][0])<.5:Math.abs(t[0][1]-t[1][1])<.5},_getLargePointList:function(e,t,i){var n;n="horizontal"===e?this.component.grid.getWidth():this.component.grid.getHeight();var a=t.length,o=[];if("function"!=typeof i)switch(i){case"min":i=function(e){return Math.max.apply(null,e)};break;case"max":i=function(e){return Math.min.apply(null,e)};break;case"average":i=function(e){for(var t=0,i=0;is;s++){var l=Math.floor(a/n*s),h=Math.min(Math.floor(a/n*(s+1)),a);if(!(l>=h)){for(var m=l;h>m;m++)r[m-l]="horizontal"===e?t[m][1]:t[m][0];r.length=h-l;for(var V=i(r),U=-1,d=1/0,m=l;h>m;m++){var p="horizontal"===e?t[m][1]:t[m][0],c=Math.abs(p-V);d>c&&(U=m,d=c)}var u=t[U].slice();"horizontal"===e?u[1]=V:u[0]=V,o.push(u)}}return o},_getSmooth:function(e){return e?.3:0},_getCalculableItem:function(e,t,i,n,a,o){var r=this.series,l=r[e].calculableHolderColor||this.ecTheme.calculableHolderColor||s.calculableHolderColor,h=this._getSymbol(e,t,i,n,a,o);return h.style.color=l,h.style.strokeColor=l,h.rotation=[0,0],h.hoverable=!1,h.draggable=!1,h.style.text=void 0,h},_getSymbol:function(e,t,i,n,a,o){var r=this.series,s=r[e],l=s.data[t],h=this.getSymbolShape(s,e,l,t,i,n,a,this._sIndex2ShapeMap[e],this._sIndex2ColorMap[e],"#fff","vertical"===o?"horizontal":"vertical");return h.zlevel=s.zlevel,h.z=s.z+1,this.deepQuery([l,s,this.option],"calculable")&&(this.setCalculable(h),h.draggable=!0),h},getMarkCoord:function(e,t){var i=this.series[e],n=this.xMarkMap[e],a=this.component.xAxis.getAxis(i.xAxisIndex),o=this.component.yAxis.getAxis(i.yAxisIndex);if(t.type&&("max"===t.type||"min"===t.type||"average"===t.type)){var r=null!=t.valueIndex?t.valueIndex:null!=n.maxX0?"1":"";return[n[t.type+"X"+r],n[t.type+"Y"+r],n[t.type+"Line"+r],n[t.type+r]]}return["string"!=typeof t.xAxis&&a.getCoordByIndex?a.getCoordByIndex(t.xAxis||0):a.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&o.getCoordByIndex?o.getCoordByIndex(t.yAxis||0):o.getCoord(t.yAxis||0)]},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},ontooltipHover:function(e,t){for(var i,n,a=e.seriesIndex,o=e.dataIndex,r=a.length;r--;)if(i=this.finalPLMap[a[r]])for(var s=0,l=i.length;l>s;s++){n=i[s];for(var h=0,m=n.length;m>h;h++)o===n[h][2]&&t.push(this._getSymbol(a[r],n[h][2],n[h][3],n[h][0],n[h][1],"horizontal"))}},addDataAnimation:function(e,t){function i(){c--,0===c&&t&&t()}function n(e){e.style.controlPointList=null}for(var a=this.series,o={},r=0,s=e.length;s>r;r++)o[e[r][0]]=e[r];for(var l,h,m,V,U,d,p,c=0,r=this.shapeList.length-1;r>=0;r--)if(U=this.shapeList[r]._seriesIndex,o[U]&&!o[U][3]){if(this.shapeList[r]._main&&this.shapeList[r].style.pointList.length>1){if(d=this.shapeList[r].style.pointList,h=Math.abs(d[0][0]-d[1][0]),V=Math.abs(d[0][1]-d[1][1]),p="horizontal"===this.shapeList[r]._orient,o[U][2]){if("half-smooth-polygon"===this.shapeList[r].type){var u=d.length;this.shapeList[r].style.pointList[u-3]=d[u-2],this.shapeList[r].style.pointList[u-3][p?0:1]=d[u-4][p?0:1],this.shapeList[r].style.pointList[u-2]=d[u-1]}this.shapeList[r].style.pointList.pop(),p?(l=h,m=0):(l=0,m=-V)}else{if(this.shapeList[r].style.pointList.shift(),"half-smooth-polygon"===this.shapeList[r].type){var y=this.shapeList[r].style.pointList.pop();p?y[0]=d[0][0]:y[1]=d[0][1],this.shapeList[r].style.pointList.push(y)}p?(l=-h,m=0):(l=0,m=V)}this.shapeList[r].style.controlPointList=null,this.zr.modShape(this.shapeList[r])}else{if(o[U][2]&&this.shapeList[r]._dataIndex===a[U].data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!o[U][2]&&0===this.shapeList[r]._dataIndex){this.zr.delShape(this.shapeList[r].id);continue}}this.shapeList[r].position=[0,0],c++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).during(n).done(i).start()}c||t&&t()}},o.prototype.iconLibrary.legendLineIcon=i,h.inherits(t,n),e("../chart").define("line",t),t}),i("echarts/util/shape/HalfSmoothPolygon",["require","zrender/shape/Base","zrender/shape/util/smoothBezier","zrender/tool/util","zrender/shape/Polygon"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/util/smoothBezier"),a=e("zrender/tool/util");return t.prototype={type:"half-smooth-polygon",buildPath:function(t,i){var a=i.pointList;if(!(a.length<2))if(i.smooth){var o=n(a.slice(0,-2),i.smooth,!1,i.smoothConstraint);t.moveTo(a[0][0],a[0][1]);for(var r,s,l,h=a.length,m=0;h-3>m;m++)r=o[2*m],s=o[2*m+1],l=a[m+1],t.bezierCurveTo(r[0],r[1],s[0],s[1],l[0],l[1]);t.lineTo(a[h-2][0],a[h-2][1]),t.lineTo(a[h-1][0],a[h-1][1]),t.lineTo(a[0][0],a[0][1])}else e("zrender/shape/Polygon").prototype.buildPath(t,i)}},a.inherits(t,i),t}),i("echarts/chart/bar",["require","./base","zrender/shape/Rectangle","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Rectangle");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var a=e("../config");a.bar={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,barMinHeight:0,barGap:"30%",barCategoryGap:"20%",itemStyle:{normal:{barBorderColor:"#fff",barBorderRadius:0,barBorderWidth:0,label:{show:!1}},emphasis:{barBorderColor:"#fff",barBorderRadius:0,barBorderWidth:0,label:{show:!1}}}};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_BAR,_buildShape:function(){this._buildPosition()},_buildNormal:function(e,t,i,o,r){for(var s,l,h,m,V,U,d,p,c,u,y,g,b=this.series,f=i[0][0],k=b[f],x="horizontal"==r,_=this.component.xAxis,L=this.component.yAxis,W=x?_.getAxis(k.xAxisIndex):L.getAxis(k.yAxisIndex),X=this._mapSize(W,i),v=X.gap,w=X.barGap,K=X.barWidthMap,I=X.barMaxWidthMap,J=X.barWidth,C=X.barMinHeightMap,S=X.interval,E=this.deepQuery([this.ecTheme,a],"island.r"),F=0,T=t;T>F&&null!=W.getNameByIndex(F);F++){x?m=W.getCoordByIndex(F)-v/2:V=W.getCoordByIndex(F)+v/2;for(var z=0,A=i.length;A>z;z++){var M=b[i[z][0]].yAxisIndex||0,O=b[i[z][0]].xAxisIndex||0;s=x?L.getAxis(M):_.getAxis(O),d=U=c=p=s.getCoord(0);for(var P=0,D=i[z].length;D>P;P++)f=i[z][P],k=b[f],y=k.data[F],g=this.getDataFromOption(y,"-"),o[f]=o[f]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},h=Math.min(I[f]||Number.MAX_VALUE,K[f]||J),"-"!==g&&(g>0?(l=P>0?s.getCoordSize(g):x?d-s.getCoord(g):s.getCoord(g)-d,1===D&&C[f]>l&&(l=C[f]),x?(U-=l,V=U):(m=U,U+=l)):0>g?(l=P>0?s.getCoordSize(g):x?s.getCoord(g)-c:c-s.getCoord(g),1===D&&C[f]>l&&(l=C[f]),x?(V=p,p+=l):(p-=l,m=p)):(l=0,x?(U-=l,V=U):(m=U,U+=l)),o[f][F]=x?m+h/2:V-h/2,o[f].min>g&&(o[f].min=g,x?(o[f].minY=V,o[f].minX=o[f][F]):(o[f].minX=m+l,o[f].minY=o[f][F])),o[f].maxP;P++)f=i[z][P],k=b[f],y=k.data[F],g=this.getDataFromOption(y,"-"),h=Math.min(I[f]||Number.MAX_VALUE,K[f]||J),"-"==g&&this.deepQuery([y,k,this.option],"calculable")&&(x?(U-=E,V=U):(m=U,U+=E),u=this._getBarItem(f,F,W.getNameByIndex(F),m,V-(x?0:h),x?h:E,x?E:h,x?"vertical":"horizontal"),u.hoverable=!1,u.draggable=!1,u.style.lineWidth=1,u.style.brushType="stroke",u.style.strokeColor=k.calculableHolderColor||this.ecTheme.calculableHolderColor||a.calculableHolderColor,this.shapeList.push(new n(u)));x?m+=h+w:V-=h+w}}this._calculMarkMapXY(o,i,x?"y":"x")},_buildHorizontal:function(e,t,i,n){return this._buildNormal(e,t,i,n,"horizontal")},_buildVertical:function(e,t,i,n){return this._buildNormal(e,t,i,n,"vertical")},_buildOther:function(e,t,i,a){for(var o=this.series,r=0,s=i.length;s>r;r++)for(var l=0,h=i[r].length;h>l;l++){var m=i[r][l],V=o[m],U=V.xAxisIndex||0,d=this.component.xAxis.getAxis(U),p=d.getCoord(0),c=V.yAxisIndex||0,u=this.component.yAxis.getAxis(c),y=u.getCoord(0);a[m]=a[m]||{min0:Number.POSITIVE_INFINITY,min1:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum0:0,sum1:0,counter0:0,counter1:0,average0:0,average1:0};for(var g=0,b=V.data.length;b>g;g++){var f=V.data[g],k=this.getDataFromOption(f,"-");if(k instanceof Array){var x,_,L=d.getCoord(k[0]),W=u.getCoord(k[1]),X=[f,V],v=this.deepQuery(X,"barWidth")||10,w=this.deepQuery(X,"barHeight");null!=w?(x="horizontal",k[0]>0?(v=L-p,L-=v):v=k[0]<0?p-L:0,_=this._getBarItem(m,g,k[0],L,W-w/2,v,w,x)):(x="vertical",k[1]>0?w=y-W:k[1]<0?(w=W-y,W-=w):w=0,_=this._getBarItem(m,g,k[0],L-v/2,W,v,w,x)),this.shapeList.push(new n(_)),L=d.getCoord(k[0]),W=u.getCoord(k[1]),a[m].min0>k[0]&&(a[m].min0=k[0],a[m].minY0=W,a[m].minX0=L),a[m].max0k[1]&&(a[m].min1=k[1],a[m].minY1=W,a[m].minX1=L),a[m].max1=a&&(d=Math.floor(t.length/n),a=1);else if(n="string"==typeof U&&U.match(/%$/)?(e.getGap()*(100-parseFloat(U))/100).toFixed(2)-0:e.getGap()-U,"string"==typeof V&&V.match(/%$/)?(V=parseFloat(V)/100,a=+((n-m)/((t.length-1)*V+t.length-h)).toFixed(2),V=a*V):(V=parseFloat(V),a=+((n-m-V*(t.length-1))/(t.length-h)).toFixed(2)),0>=a)return this._mapSize(e,t,!0)}else if(n=h>1?"string"==typeof U&&U.match(/%$/)?+(e.getGap()*(100-parseFloat(U))/100).toFixed(2):e.getGap()-U:m,a=0,V=h>1?+((n-m)/(h-1)).toFixed(2):0,0>V)return this._mapSize(e,t,!0);return this._recheckBarMaxWidth(t,r,s,l,n,a,V,d)},_findSpecialBarSzie:function(e,t){for(var i,n,a,o,r=this.series,s={},l={},h={},m=0,V=0,U=0,d=e.length;d>U;U++)for(var p={barWidth:!1,barMaxWidth:!1},c=0,u=e[U].length;u>c;c++){var y=e[U][c],g=r[y];if(!t){if(p.barWidth)s[y]=i;else if(i=this.query(g,"barWidth"),null!=i){s[y]=i,V+=i,m++,p.barWidth=!0;for(var b=0,f=c;f>b;b++){var k=e[U][b];s[k]=i}}if(p.barMaxWidth)l[y]=n;else if(n=this.query(g,"barMaxWidth"),null!=n){l[y]=n,p.barMaxWidth=!0;for(var b=0,f=c;f>b;b++){var k=e[U][b];l[k]=n}}}h[y]=this.query(g,"barMinHeight"),a=null!=a?a:this.query(g,"barGap"),o=null!=o?o:this.query(g,"barCategoryGap")}return{barWidthMap:s,barMaxWidthMap:l,barMinHeightMap:h,sBarWidth:i,sBarMaxWidth:n,sBarWidthCounter:m,sBarWidthTotal:V,barGap:a,barCategoryGap:o}},_recheckBarMaxWidth:function(e,t,i,n,a,o,r,s){for(var l=0,h=e.length;h>l;l++){var m=e[l][0];i[m]&&i[m]0&&b.height>g&&b.width>g?(b.y+=g/2,b.height-=g,b.x+=g/2,b.width-=g):b.brushType="fill",m.highlightStyle.textColor=m.highlightStyle.color,m=this.addLabel(m,U,d,i,h);for(var f=[b,m.highlightStyle],k=0,x=f.length;x>k;k++){var _=f[k].textPosition;if("insideLeft"===_||"insideRight"===_||"insideTop"===_||"insideBottom"===_){var L=5;switch(_){case"insideLeft":f[k].textX=b.x+L,f[k].textY=b.y+b.height/2,f[k].textAlign="left",f[k].textBaseline="middle";break;case"insideRight":f[k].textX=b.x+b.width-L,f[k].textY=b.y+b.height/2,f[k].textAlign="right",f[k].textBaseline="middle";break;case"insideTop":f[k].textX=b.x+b.width/2,f[k].textY=b.y+L/2,f[k].textAlign="center",f[k].textBaseline="top";break;case"insideBottom":f[k].textX=b.x+b.width/2,f[k].textY=b.y+b.height-L/2,f[k].textAlign="center",f[k].textBaseline="bottom"}f[k].textPosition="specific",f[k].textColor=f[k].textColor||"#fff"}}return this.deepQuery([d,U,this.option],"calculable")&&(this.setCalculable(m),m.draggable=!0),o.pack(m,V[e],e,V[e].data[t],t,i),m},getMarkCoord:function(e,t){var i,n,a=this.series[e],o=this.xMarkMap[e],r=this.component.xAxis.getAxis(a.xAxisIndex),s=this.component.yAxis.getAxis(a.yAxisIndex);if(!t.type||"max"!==t.type&&"min"!==t.type&&"average"!==t.type)if(o.isHorizontal){i="string"==typeof t.xAxis&&r.getIndexByName?r.getIndexByName(t.xAxis):t.xAxis||0;var l=o[i];l=null!=l?l:"string"!=typeof t.xAxis&&r.getCoordByIndex?r.getCoordByIndex(t.xAxis||0):r.getCoord(t.xAxis||0),n=[l,s.getCoord(t.yAxis||0)]}else{i="string"==typeof t.yAxis&&s.getIndexByName?s.getIndexByName(t.yAxis):t.yAxis||0;var h=o[i];h=null!=h?h:"string"!=typeof t.yAxis&&s.getCoordByIndex?s.getCoordByIndex(t.yAxis||0):s.getCoord(t.yAxis||0),n=[r.getCoord(t.xAxis||0),h]}else{var m=null!=t.valueIndex?t.valueIndex:null!=o.maxX0?"1":"";n=[o[t.type+"X"+m],o[t.type+"Y"+m],o[t.type+"Line"+m],o[t.type+m]]}return n},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){c--,0===c&&t&&t()}for(var n=this.series,a={},r=0,s=e.length;s>r;r++)a[e[r][0]]=e[r];for(var l,h,m,V,U,d,p,c=0,r=this.shapeList.length-1;r>=0;r--)if(d=o.get(this.shapeList[r],"seriesIndex"),a[d]&&!a[d][3]&&"rectangle"===this.shapeList[r].type){if(p=o.get(this.shapeList[r],"dataIndex"),U=n[d],a[d][2]&&p===U.data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!a[d][2]&&0===p){this.zr.delShape(this.shapeList[r].id);continue}"horizontal"===this.shapeList[r]._orient?(V=this.component.yAxis.getAxis(U.yAxisIndex||0).getGap(),m=a[d][2]?-V:V,l=0):(h=this.component.xAxis.getAxis(U.xAxisIndex||0).getGap(),l=a[d][2]?h:-h,m=0),this.shapeList[r].position=[0,0],c++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).done(i).start()}c||t&&t()}},r.inherits(t,i),e("../chart").define("bar",t),t}),i("echarts/chart/scatter",["require","./base","../util/shape/Symbol","../component/axis","../component/grid","../component/dataZoom","../component/dataRange","../config","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/Symbol");e("../component/axis"),e("../component/grid"),e("../component/dataZoom"),e("../component/dataRange");var a=e("../config");a.scatter={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbolSize:4,large:!1,largeThreshold:2e3,itemStyle:{normal:{label:{show:!1}},emphasis:{label:{show:!1}}}};var o=e("zrender/tool/util"),r=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_SCATTER,_buildShape:function(){var e=this.series;this._sIndex2ColorMap={},this._symbol=this.option.symbolList,this._sIndex2ShapeMap={},this.selectedMap={},this.xMarkMap={};for(var t,i,n,o,s=this.component.legend,l=[],h=0,m=e.length;m>h;h++)if(t=e[h],i=t.name,t.type===a.CHART_TYPE_SCATTER){if(e[h]=this.reformOption(e[h]),this.legendHoverLink=e[h].legendHoverLink||this.legendHoverLink,this._sIndex2ShapeMap[h]=this.query(t,"symbol")||this._symbol[h%this._symbol.length],s){if(this.selectedMap[i]=s.isSelected(i),this._sIndex2ColorMap[h]=r.alpha(s.getColor(i),.5),n=s.getItemShape(i)){var o=this._sIndex2ShapeMap[h];n.style.brushType=o.match("empty")?"stroke":"both",o=o.replace("empty","").toLowerCase(),o.match("rectangle")&&(n.style.x+=Math.round((n.style.width-n.style.height)/2),n.style.width=n.style.height),o.match("star")&&(n.style.n=o.replace("star","")-0||5,o="star"),o.match("image")&&(n.style.image=o.replace(new RegExp("^image:\\/\\/"),""),n.style.x+=Math.round((n.style.width-n.style.height)/2),n.style.width=n.style.height,o="image"),n.style.iconType=o,s.setItemShape(i,n)}}else this.selectedMap[i]=!0,this._sIndex2ColorMap[h]=r.alpha(this.zr.getColor(h),.5);this.selectedMap[i]&&l.push(h)}this._buildSeries(l),this.addShapeList()},_buildSeries:function(e){if(0!==e.length){for(var t,i,n,a,o,r,s,l,h=this.series,m={},V=0,U=e.length;U>V;V++)if(t=e[V],i=h[t],0!==i.data.length){o=this.component.xAxis.getAxis(i.xAxisIndex||0),r=this.component.yAxis.getAxis(i.yAxisIndex||0),m[t]=[];for(var d=0,p=i.data.length;p>d;d++)n=i.data[d],a=this.getDataFromOption(n,"-"),"-"===a||a.length<2||(s=o.getCoord(a[0]),l=r.getCoord(a[1]),m[t].push([s,l,d,n.name||""]));this.xMarkMap[t]=this._markMap(o,r,i.data,m[t]),this.buildMark(t)}this._buildPointList(m)}},_markMap:function(e,t,i,n){for(var a,o={min0:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,sum0:0,counter0:0,average0:0,min1:Number.POSITIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum1:0,counter1:0,average1:0},r=0,s=n.length;s>r;r++)a=i[n[r][2]].value||i[n[r][2]],o.min0>a[0]&&(o.min0=a[0],o.minY0=n[r][1],o.minX0=n[r][0]),o.max0a[1]&&(o.min1=a[1],o.minY1=n[r][1],o.minX1=n[r][0]),o.max1t.largeThreshold)this.shapeList.push(this._getLargeSymbol(t,i,this.getItemStyleColor(this.query(t,"itemStyle.normal.color"),r,-1)||this._sIndex2ColorMap[r]));else for(var s=0,l=i.length;l>s;s++)n=i[s],a=this._getSymbol(r,n[2],n[3],n[0],n[1]),a&&this.shapeList.push(a)},_getSymbol:function(e,t,i,n,a){var o,r=this.series,s=r[e],l=s.data[t],h=this.component.dataRange;if(h){if(o=isNaN(l[2])?this._sIndex2ColorMap[e]:h.getColor(l[2]),!o)return null}else o=this._sIndex2ColorMap[e];var m=this.getSymbolShape(s,e,l,t,i,n,a,this._sIndex2ShapeMap[e],o,"rgba(0,0,0,0)","vertical");return m.zlevel=s.zlevel,m.z=s.z,m._main=!0,m},_getLargeSymbol:function(e,t,i){return new n({zlevel:e.zlevel,z:e.z,_main:!0,hoverable:!1,style:{pointList:t,color:i,strokeColor:i},highlightStyle:{pointList:[]}})},getMarkCoord:function(e,t){var i,n=this.series[e],a=this.xMarkMap[e],o=this.component.xAxis.getAxis(n.xAxisIndex),r=this.component.yAxis.getAxis(n.yAxisIndex);if(!t.type||"max"!==t.type&&"min"!==t.type&&"average"!==t.type)i=["string"!=typeof t.xAxis&&o.getCoordByIndex?o.getCoordByIndex(t.xAxis||0):o.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&r.getCoordByIndex?r.getCoordByIndex(t.yAxis||0):r.getCoord(t.yAxis||0)];else{var s=null!=t.valueIndex?t.valueIndex:1;i=[a[t.type+"X"+s],a[t.type+"Y"+s],a[t.type+"Line"+s],a[t.type+s]]}return i},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},ondataRange:function(e,t){this.component.dataRange&&(this.refresh(),t.needRefresh=!0)}},o.inherits(t,i),e("../chart").define("scatter",t),t}),i("echarts/component/dataRange",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../util/shape/HandlePolygon","../config","zrender/tool/util","zrender/tool/event","zrender/tool/area","zrender/tool/color","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var s=this;s._ondrift=function(e,t){return s.__ondrift(this,e,t)},s._ondragend=function(){return s.__ondragend()},s._dataRangeSelected=function(e){return s.__dataRangeSelected(e)},s._dispatchHoverLink=function(e){return s.__dispatchHoverLink(e)},s._onhoverlink=function(e){return s.__onhoverlink(e); + +},this._selectedMap={},this._range={},this.refresh(a),t.bind(r.EVENT.HOVER,this._onhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("../util/shape/HandlePolygon"),r=e("../config");r.dataRange={zlevel:0,z:4,show:!0,orient:"vertical",x:"left",y:"bottom",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:20,itemHeight:14,precision:0,splitNumber:5,splitList:null,calculable:!1,selectedMode:!0,hoverLink:!0,realtime:!0,color:["#006edd","#e0ffff"],textStyle:{color:"#333"}};var s=e("zrender/tool/util"),l=e("zrender/tool/event"),h=e("zrender/tool/area"),m=e("zrender/tool/color");return t.prototype={type:r.COMPONENT_TYPE_DATARANGE,_textGap:10,_buildShape:function(){if(this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._isContinuity()?this._buildGradient():this._buildItem(),this.dataRangeOption.show)for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e]);this._syncShapeFromRange()},_buildItem:function(){var e,t,i,o,r=this._valueTextList,s=r.length,l=this.getFont(this.dataRangeOption.textStyle),m=this._itemGroupLocation.x,V=this._itemGroupLocation.y,U=this.dataRangeOption.itemWidth,d=this.dataRangeOption.itemHeight,p=this.dataRangeOption.itemGap,c=h.getTextHeight("国",l);"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(m=this._itemGroupLocation.x+this._itemGroupLocation.width-U);var u=!0;this.dataRangeOption.text&&(u=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(m,V,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?m+=h.getTextWidth(this.dataRangeOption.text[0],l)+this._textGap:(V+=c+this._textGap,i.style.y+=c/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var y=0;s>y;y++)e=r[y],o=this.getColorByIndex(y),t=this._getItemShape(m,V,U,d,this._selectedMap[y]?o:"#ccc"),t._idx=y,t.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(t.clickable=!0,t.onclick=this._dataRangeSelected),this.shapeList.push(new a(t)),u&&(i={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:m+U+5,y:V,color:this._selectedMap[y]?this.dataRangeOption.textStyle.color:"#ccc",text:r[y],textFont:l,textBaseline:"top"},highlightStyle:{brushType:"fill"}},"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(i.style.x-=U+10,i.style.textAlign="right"),i._idx=y,i.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(i.clickable=!0,i.onclick=this._dataRangeSelected),this.shapeList.push(new n(i))),"horizontal"==this.dataRangeOption.orient?m+=U+(u?5:0)+(u?h.getTextWidth(e,l):0)+p:V+=d+p;!u&&this.dataRangeOption.text[1]&&("horizontal"==this.dataRangeOption.orient?m=m-p+this._textGap:V=V-p+this._textGap,i=this._getTextShape(m,V,this.dataRangeOption.text[1]),"horizontal"!=this.dataRangeOption.orient&&(i.style.y-=5,i.style.textBaseline="top"),this.shapeList.push(new n(i)))},_buildGradient:function(){var t,i,o=this.getFont(this.dataRangeOption.textStyle),r=this._itemGroupLocation.x,s=this._itemGroupLocation.y,l=this.dataRangeOption.itemWidth,m=this.dataRangeOption.itemHeight,V=h.getTextHeight("国",o),U=10,d=!0;this.dataRangeOption.text&&(d=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?r+=h.getTextWidth(this.dataRangeOption.text[0],o)+this._textGap:(s+=V+this._textGap,i.style.y+=V/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var p=e("zrender/tool/color"),c=1/(this.dataRangeOption.color.length-1),u=[],y=0,g=this.dataRangeOption.color.length;g>y;y++)u.push([y*c,this.dataRangeOption.color[y]]);"horizontal"==this.dataRangeOption.orient?(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l*U,height:m,color:p.getLinearGradient(r,s,r+l*U,s,u)},hoverable:!1},r+=l*U+this._textGap):(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l,height:m*U,color:p.getLinearGradient(r,s,r,s+m*U,u)},hoverable:!1},s+=m*U+this._textGap),this.shapeList.push(new a(t)),this._calculableLocation=t.style,this.dataRangeOption.calculable&&(this._buildFiller(),this._bulidMask(),this._bulidHandle()),this._buildIndicator(),!d&&this.dataRangeOption.text[1]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[1]),this.shapeList.push(new n(i)))},_buildIndicator:function(){var e,t,i=this._calculableLocation.x,n=this._calculableLocation.y,a=this._calculableLocation.width,r=this._calculableLocation.height,s=5;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[i,n+r],[i-s,n+r+s],[i+s,n+r+s]],t="bottom"):(e=[[i,n],[i-s,n-s],[i+s,n-s]],t="top"):"right"!=this.dataRangeOption.x?(e=[[i+a,n],[i+a+s,n-s],[i+a+s,n+s]],t="right"):(e=[[i,n],[i-s,n-s],[i-s,n+s]],t="left"),this._indicatorShape={style:{pointList:e,color:"#fff",__rect:{x:Math.min(e[0][0],e[1][0]),y:Math.min(e[0][1],e[1][1]),width:s*("horizontal"==this.dataRangeOption.orient?2:1),height:s*("horizontal"==this.dataRangeOption.orient?1:2)}},highlightStyle:{brushType:"fill",textPosition:t,textColor:this.dataRangeOption.textStyle.color},hoverable:!1},this._indicatorShape=new o(this._indicatorShape)},_buildFiller:function(){this._fillerShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:this._calculableLocation.x,y:this._calculableLocation.y,width:this._calculableLocation.width,height:this._calculableLocation.height,color:"rgba(255,255,255,0)"},highlightStyle:{strokeColor:"rgba(255,255,255,0.5)",lineWidth:1},draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,onmousemove:this._dispatchHoverLink,_type:"filler"},this._fillerShape=new a(this._fillerShape),this.shapeList.push(this._fillerShape)},_bulidHandle:function(){var e,t,i,n,a,r,s,l,m=this._calculableLocation.x,V=this._calculableLocation.y,U=this._calculableLocation.width,d=this._calculableLocation.height,p=this.getFont(this.dataRangeOption.textStyle),c=h.getTextHeight("国",p),u=Math.max(h.getTextWidth(this._textFormat(this.dataRangeOption.max),p),h.getTextWidth(this._textFormat(this.dataRangeOption.min),p))+2;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[m,V],[m,V+d+c],[m-c,V+d+c],[m-1,V+d],[m-1,V]],t=m-u/2-c,i=V+d+c/2+2,n={x:m-u-c,y:V+d,width:u+c,height:c},a=[[m+U,V],[m+U,V+d+c],[m+U+c,V+d+c],[m+U+1,V+d],[m+U+1,V]],r=m+U+u/2+c,s=i,l={x:m+U,y:V+d,width:u+c,height:c}):(e=[[m,V+d],[m,V-c],[m-c,V-c],[m-1,V],[m-1,V+d]],t=m-u/2-c,i=V-c/2-2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+U,V+d],[m+U,V-c],[m+U+c,V-c],[m+U+1,V],[m+U+1,V+d]],r=m+U+u/2+c,s=i,l={x:m+U,y:V-c,width:u+c,height:c}):(u+=c,"right"!=this.dataRangeOption.x?(e=[[m,V],[m+U+c,V],[m+U+c,V-c],[m+U,V-1],[m,V-1]],t=m+U+u/2+c/2,i=V-c/2,n={x:m+U,y:V-c,width:u+c,height:c},a=[[m,V+d],[m+U+c,V+d],[m+U+c,V+c+d],[m+U,V+1+d],[m,V+d+1]],r=t,s=V+d+c/2,l={x:m+U,y:V+d,width:u+c,height:c}):(e=[[m+U,V],[m-c,V],[m-c,V-c],[m,V-1],[m+U,V-1]],t=m-u/2-c/2,i=V-c/2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+U,V+d],[m-c,V+d],[m-c,V+c+d],[m,V+1+d],[m+U,V+d+1]],r=t,s=V+d+c/2,l={x:m-u-c,y:V+d,width:u+c,height:c})),this._startShape={style:{pointList:e,text:this._textFormat(this.dataRangeOption.max),textX:t,textY:i,textFont:p,color:this.getColor(this.dataRangeOption.max),rect:n,x:e[0][0],y:e[0][1],_x:e[0][0],_y:e[0][1]}},this._startShape.highlightStyle={strokeColor:this._startShape.style.color,lineWidth:1},this._endShape={style:{pointList:a,text:this._textFormat(this.dataRangeOption.min),textX:r,textY:s,textFont:p,color:this.getColor(this.dataRangeOption.min),rect:l,x:a[0][0],y:a[0][1],_x:a[0][0],_y:a[0][1]}},this._endShape.highlightStyle={strokeColor:this._endShape.style.color,lineWidth:1},this._startShape.zlevel=this._endShape.zlevel=this.getZlevelBase(),this._startShape.z=this._endShape.z=this.getZBase()+1,this._startShape.draggable=this._endShape.draggable=!0,this._startShape.ondrift=this._endShape.ondrift=this._ondrift,this._startShape.ondragend=this._endShape.ondragend=this._ondragend,this._startShape.style.textColor=this._endShape.style.textColor=this.dataRangeOption.textStyle.color,this._startShape.style.textAlign=this._endShape.style.textAlign="center",this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape.style.textBaseline=this._endShape.style.textBaseline="middle",this._startShape.style.width=this._endShape.style.width=0,this._startShape.style.height=this._endShape.style.height=0,this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_bulidMask:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;this._startMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:e,y:t,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._endMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:"horizontal"==this.dataRangeOption.orient?e+i:e,y:"horizontal"==this.dataRangeOption.orient?t:t+n,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._startMask=new a(this._startMask),this._endMask=new a(this._endMask),this.shapeList.push(this._startMask),this.shapeList.push(this._endMask)},_buildBackground:function(){var e=this.reformCssArray(this.dataRangeOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.dataRangeOption.borderWidth?"fill":"both",color:this.dataRangeOption.backgroundColor,strokeColor:this.dataRangeOption.borderColor,lineWidth:this.dataRangeOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this._valueTextList,t=e.length,i=this.dataRangeOption.itemGap,n=this.dataRangeOption.itemWidth,a=this.dataRangeOption.itemHeight,o=0,r=0,s=this.getFont(this.dataRangeOption.textStyle),l=h.getTextHeight("国",s),m=10;if("horizontal"==this.dataRangeOption.orient){if(this.dataRangeOption.text||this._isContinuity())o=(this._isContinuity()?n*m+i:t*(n+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?h.getTextWidth(this.dataRangeOption.text[0],s)+this._textGap:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?h.getTextWidth(this.dataRangeOption.text[1],s)+this._textGap:0);else{n+=5;for(var V=0;t>V;V++)o+=n+h.getTextWidth(e[V],s)+i}o-=i,r=Math.max(l,a)}else{var U;if(this.dataRangeOption.text||this._isContinuity())r=(this._isContinuity()?a*m+i:t*(a+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?this._textGap+l:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?this._textGap+l:0),U=Math.max(h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[0]||"",s),h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[1]||"",s)),o=Math.max(n,U);else{r=(a+i)*t,n+=5,U=0;for(var V=0;t>V;V++)U=Math.max(U,h.getTextWidth(e[V],s));o=n+U}r-=i}var d,p=this.reformCssArray(this.dataRangeOption.padding),c=this.zr.getWidth();switch(this.dataRangeOption.x){case"center":d=Math.floor((c-o)/2);break;case"left":d=p[3]+this.dataRangeOption.borderWidth;break;case"right":d=c-o-p[1]-this.dataRangeOption.borderWidth;break;default:d=this.parsePercent(this.dataRangeOption.x,c),d=isNaN(d)?0:d}var u,y=this.zr.getHeight();switch(this.dataRangeOption.y){case"top":u=p[0]+this.dataRangeOption.borderWidth;break;case"bottom":u=y-r-p[2]-this.dataRangeOption.borderWidth;break;case"center":u=Math.floor((y-r)/2);break;default:u=this.parsePercent(this.dataRangeOption.y,y),u=isNaN(u)?0:u}if(this.dataRangeOption.calculable){var g=Math.max(h.getTextWidth(this.dataRangeOption.max,s),h.getTextWidth(this.dataRangeOption.min,s))+l;"horizontal"==this.dataRangeOption.orient?(g>d&&(d=g),d+o+g>c&&(d-=g)):(l>u&&(u=l),u+r+l>y&&(u-=l))}return{x:d,y:u,width:o,height:r}},_getTextShape:function(e,t,i){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:"horizontal"==this.dataRangeOption.orient?e:this._itemGroupLocation.x+this._itemGroupLocation.width/2,y:"horizontal"==this.dataRangeOption.orient?this._itemGroupLocation.y+this._itemGroupLocation.height/2:t,color:this.dataRangeOption.textStyle.color,text:i,textFont:this.getFont(this.dataRangeOption.textStyle),textBaseline:"horizontal"==this.dataRangeOption.orient?"middle":"top",textAlign:"horizontal"==this.dataRangeOption.orient?"left":"center"},hoverable:!1}},_getItemShape:function(e,t,i,n,a){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:e,y:t+1,width:i,height:n-2,color:a},highlightStyle:{strokeColor:a,lineWidth:1}}},__ondrift:function(e,t,i){var n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;return"horizontal"==this.dataRangeOption.orient?e.style.x+t<=n?e.style.x=n:e.style.x+t+e.style.width>=n+o?e.style.x=n+o-e.style.width:e.style.x+=t:e.style.y+i<=a?e.style.y=a:e.style.y+i+e.style.height>=a+r?e.style.y=a+r-e.style.height:e.style.y+=i,"filler"==e._type?this._syncHandleShape():this._syncFillerShape(e),this.dataRangeOption.realtime&&this._dispatchDataRange(),!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,this.dataRangeOption.realtime||this._dispatchDataRange(),t.needRefresh=!1,this.isDragend=!1)},_syncShapeFromRange:function(){var e=this.dataRangeOption.range||{},t=e.start,i=e.end;if(t>i&&(t=[i,i=t][0]),this._range.end=null!=t?t:null!=this._range.end?this._range.end:0,this._range.start=null!=i?i:null!=this._range.start?this._range.start:100,100!=this._range.start||0!==this._range.end){if("horizontal"==this.dataRangeOption.orient){var n=this._fillerShape.style.width;this._fillerShape.style.x+=n*(100-this._range.start)/100,this._fillerShape.style.width=n*(this._range.start-this._range.end)/100}else{var a=this._fillerShape.style.height;this._fillerShape.style.y+=a*(100-this._range.start)/100,this._fillerShape.style.height=a*(this._range.start-this._range.end)/100}this.zr.modShape(this._fillerShape.id),this._syncHandleShape()}},_syncHandleShape:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(this._startShape.style.x=this._fillerShape.style.x,this._startMask.style.width=this._startShape.style.x-e,this._endShape.style.x=this._fillerShape.style.x+this._fillerShape.style.width,this._endMask.style.x=this._endShape.style.x,this._endMask.style.width=e+i-this._endShape.style.x,this._range.start=Math.ceil(100-(this._startShape.style.x-e)/i*100),this._range.end=Math.floor(100-(this._endShape.style.x-e)/i*100)):(this._startShape.style.y=this._fillerShape.style.y,this._startMask.style.height=this._startShape.style.y-t,this._endShape.style.y=this._fillerShape.style.y+this._fillerShape.style.height,this._endMask.style.y=this._endShape.style.y,this._endMask.style.height=t+n-this._endShape.style.y,this._range.start=Math.ceil(100-(this._startShape.style.y-t)/n*100),this._range.end=Math.floor(100-(this._endShape.style.y-t)/n*100)),this._syncShape()},_syncFillerShape:function(e){var t,i,n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(t=this._startShape.style.x,i=this._endShape.style.x,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.x=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.x=t),this._fillerShape.style.x=t,this._fillerShape.style.width=i-t,this._startMask.style.width=t-n,this._endMask.style.x=i,this._endMask.style.width=n+o-i,this._range.start=Math.ceil(100-(t-n)/o*100),this._range.end=Math.floor(100-(i-n)/o*100)):(t=this._startShape.style.y,i=this._endShape.style.y,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.y=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.y=t),this._fillerShape.style.y=t,this._fillerShape.style.height=i-t,this._startMask.style.height=t-a,this._endMask.style.y=i,this._endMask.style.height=a+r-i,this._range.start=Math.ceil(100-(t-a)/r*100),this._range.end=Math.floor(100-(i-a)/r*100)),this._syncShape()},_syncShape:function(){this._startShape.position=[this._startShape.style.x-this._startShape.style._x,this._startShape.style.y-this._startShape.style._y],this._startShape.style.text=this._textFormat(this._gap*this._range.start+this.dataRangeOption.min),this._startShape.style.color=this._startShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.start+this.dataRangeOption.min),this._endShape.position=[this._endShape.style.x-this._endShape.style._x,this._endShape.style.y-this._endShape.style._y],this._endShape.style.text=this._textFormat(this._gap*this._range.end+this.dataRangeOption.min),this._endShape.style.color=this._endShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.end+this.dataRangeOption.min),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._startMask.id),this.zr.modShape(this._endMask.id),this.zr.modShape(this._fillerShape.id),this.zr.refreshNextFrame()},_dispatchDataRange:function(){this.messageCenter.dispatch(r.EVENT.DATA_RANGE,null,{range:{start:this._range.end,end:this._range.start}},this.myChart)},__dataRangeSelected:function(e){if("single"===this.dataRangeOption.selectedMode)for(var t in this._selectedMap)this._selectedMap[t]=!1;var i=e.target._idx;this._selectedMap[i]=!this._selectedMap[i];var n,a;this._useCustomizedSplit()?(n=this._splitList[i].max,a=this._splitList[i].min):(n=(this._colorList.length-i)*this._gap+this.dataRangeOption.min,a=n-this._gap),this.messageCenter.dispatch(r.EVENT.DATA_RANGE_SELECTED,e.event,{selected:this._selectedMap,target:i,valueMax:n,valueMin:a},this.myChart),this.messageCenter.dispatch(r.EVENT.REFRESH,null,null,this.myChart)},__dispatchHoverLink:function(e){var t,i;if(this.dataRangeOption.calculable){var n,a=this.dataRangeOption.max-this.dataRangeOption.min;n="horizontal"==this.dataRangeOption.orient?(1-(l.getX(e.event)-this._calculableLocation.x)/this._calculableLocation.width)*a:(1-(l.getY(e.event)-this._calculableLocation.y)/this._calculableLocation.height)*a,t=n-.05*a,i=n+.05*a}else if(this._useCustomizedSplit()){var o=e.target._idx;i=this._splitList[o].max,t=this._splitList[o].min}else{var o=e.target._idx;i=(this._colorList.length-o)*this._gap+this.dataRangeOption.min,t=i-this._gap}this.messageCenter.dispatch(r.EVENT.DATA_RANGE_HOVERLINK,e.event,{valueMin:t,valueMax:i},this.myChart)},__onhoverlink:function(e){if(this.dataRangeOption.show&&this.dataRangeOption.hoverLink&&this._indicatorShape&&e&&null!=e.seriesIndex&&null!=e.dataIndex){var t=e.value;if(""===t||isNaN(t))return;tthis.dataRangeOption.max&&(t=this.dataRangeOption.max),this._indicatorShape.position="horizontal"==this.dataRangeOption.orient?[(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.width,0]:[0,(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.height],this._indicatorShape.style.text=this._textFormat(e.value),this._indicatorShape.style.color=this.getColor(t),this.zr.addHoverShape(this._indicatorShape)}},_textFormat:function(e,t){var i=this.dataRangeOption;if(e!==-Number.MAX_VALUE&&(e=(+e).toFixed(i.precision)),null!=t&&t!==Number.MAX_VALUE&&(t=(+t).toFixed(i.precision)),i.formatter){if("string"==typeof i.formatter)return i.formatter.replace("{value}",e===-Number.MAX_VALUE?"min":e).replace("{value2}",t===Number.MAX_VALUE?"max":t);if("function"==typeof i.formatter)return i.formatter.call(this.myChart,e,t)}return null==t?e:e===-Number.MAX_VALUE?"< "+t:t===Number.MAX_VALUE?"> "+e:e+" - "+t},_isContinuity:function(){var e=this.dataRangeOption;return!(e.splitList?e.splitList.length>0:e.splitNumber>0)||e.calculable},_useCustomizedSplit:function(){var e=this.dataRangeOption;return e.splitList&&e.splitList.length>0},_buildColorList:function(e){if(this._colorList=m.getGradientColors(this.dataRangeOption.color,Math.max((e-this.dataRangeOption.color.length)/(this.dataRangeOption.color.length-1),0)+1),this._colorList.length>e){for(var t=this._colorList.length,i=[this._colorList[0]],n=t/(e-1),a=1;e-1>a;a++)i.push(this._colorList[Math.floor(a*n)]);i.push(this._colorList[t-1]),this._colorList=i}if(this._useCustomizedSplit())for(var o=this._splitList,a=0,t=o.length;t>a;a++)o[a].color&&(this._colorList[a]=o[a].color)},_buildGap:function(e){if(!this._useCustomizedSplit()){var t=this.dataRangeOption.precision;for(this._gap=(this.dataRangeOption.max-this.dataRangeOption.min)/e;this._gap.toFixed(t)-0!=this._gap&&5>t;)t++;this.dataRangeOption.precision=t,this._gap=((this.dataRangeOption.max-this.dataRangeOption.min)/e).toFixed(t)-0}},_buildDataList:function(e){for(var t=this._valueTextList=[],i=this.dataRangeOption,n=this._useCustomizedSplit(),a=0;e>a;a++){this._selectedMap[a]=!0;var o="";if(n){var r=this._splitList[e-1-a];o=null!=r.label?r.label:null!=r.single?this._textFormat(r.single):this._textFormat(r.min,r.max)}else o=this._textFormat(a*this._gap+i.min,(a+1)*this._gap+i.min);t.unshift(o)}},_buildSplitList:function(){if(this._useCustomizedSplit())for(var e=this.dataRangeOption.splitList,t=this._splitList=[],i=0,n=e.length;n>i;i++){var a=e[i];if(!a||null==a.start&&null==a.end)throw new Error("Empty item exists in splitList!");var o={label:a.label,color:a.color};o.min=a.start,o.max=a.end,o.min>o.max&&(o.min=[o.max,o.max=o.min][0]),o.min===o.max&&(o.single=o.max),null==o.min&&(o.min=-Number.MAX_VALUE),null==o.max&&(o.max=Number.MAX_VALUE),t.push(o)}},refresh:function(e){if(e){this.option=e,this.option.dataRange=this.reformOption(this.option.dataRange);var t=this.dataRangeOption=this.option.dataRange;if(!this._useCustomizedSplit()&&(null==t.min||null==t.max))throw new Error("option.dataRange.min or option.dataRange.max has not been defined.");this.myChart.canvasSupported||(t.realtime=!1);var i=this._isContinuity()?100:this._useCustomizedSplit()?t.splitList.length:t.splitNumber;this._buildSplitList(),this._buildColorList(i),this._buildGap(i),this._buildDataList(i)}this.clear(),this._buildShape()},getColor:function(e){if(isNaN(e))return null;var t;if(this._useCustomizedSplit()){for(var i=this._splitList,n=0,a=i.length;a>n;n++)if(i[n].min<=e&&i[n].max>=e){t=n;break}}else{if(this.dataRangeOption.min==this.dataRangeOption.max)return this._colorList[0];if(ethis.dataRangeOption.max&&(e=this.dataRangeOption.max),this.dataRangeOption.calculable&&(e-(this._gap*this._range.start+this.dataRangeOption.min)>5e-5||e-(this._gap*this._range.end+this.dataRangeOption.min)<-5e-5))return null;t=this._colorList.length-Math.ceil((e-this.dataRangeOption.min)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._colorList.length),t==this._colorList.length&&t--}return this._selectedMap[t]?this._colorList[t]:null},getColorByIndex:function(e){return e>=this._colorList.length?e=this._colorList.length-1:0>e&&(e=0),this._colorList[e]},onbeforDispose:function(){this.messageCenter.unbind(r.EVENT.HOVER,this._onhoverlink)}},s.inherits(t,i),e("../component").define("dataRange",t),t}),i("echarts/util/shape/HandlePolygon",["require","zrender/shape/Base","zrender/shape/Polygon","zrender/tool/util"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Polygon"),a=e("zrender/tool/util");return t.prototype={type:"handle-polygon",buildPath:function(e,t){n.prototype.buildPath(e,t)},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);e=i[0],t=i[1];var n=this.style.rect;return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height?!0:!1}},a.inherits(t,i),t}),i("echarts/chart/k",["require","./base","../util/shape/Candle","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/Candle");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var a=e("../config");a.k={zlevel:0,z:2,clickable:!0,hoverable:!0,legendHoverLink:!1,xAxisIndex:0,yAxisIndex:0,itemStyle:{normal:{color:"#fff",color0:"#00aa11",lineStyle:{width:1,color:"#ff3200",color0:"#00aa11"},label:{show:!1}},emphasis:{label:{show:!1}}}};var o=e("../util/ecData"),r=e("zrender/tool/util");return t.prototype={type:a.CHART_TYPE_K,_buildShape:function(){var e=this.series;this.selectedMap={};for(var t,i={top:[],bottom:[]},n=0,o=e.length;o>n;n++)e[n].type===a.CHART_TYPE_K&&(e[n]=this.reformOption(e[n]),this.legendHoverLink=e[n].legendHoverLink||this.legendHoverLink,t=this.component.xAxis.getAxis(e[n].xAxisIndex),t.type===a.COMPONENT_TYPE_AXIS_CATEGORY&&i[t.getPosition()].push(n));for(var r in i)i[r].length>0&&this._buildSinglePosition(r,i[r]);this.addShapeList()},_buildSinglePosition:function(e,t){var i=this._mapData(t),n=i.locationMap,a=i.maxDataLength;if(0!==a&&0!==n.length){this._buildHorizontal(t,a,n);for(var o=0,r=t.length;r>o;o++)this.buildMark(t[o])}},_mapData:function(e){for(var t,i,n=this.series,a=this.component.legend,o=[],r=0,s=0,l=e.length;l>s;s++)t=n[e[s]],i=t.name,this.selectedMap[i]=a?a.isSelected(i):!0,this.selectedMap[i]&&o.push(e[s]),r=Math.max(r,t.data.length);return{locationMap:o,maxDataLength:r}},_buildHorizontal:function(e,t,i){for(var n,a,o,r,s,l,h,m,V,U,d=this.series,p={},c=0,u=i.length;u>c;c++){n=i[c],a=d[n],o=a.xAxisIndex||0,r=this.component.xAxis.getAxis(o),h=a.barWidth||Math.floor(r.getGap()/2),U=a.barMaxWidth,U&&h>U&&(h=U),s=a.yAxisIndex||0,l=this.component.yAxis.getAxis(s),p[n]=[];for(var y=0,g=t;g>y&&null!=r.getNameByIndex(y);y++)m=a.data[y],V=this.getDataFromOption(m,"-"),"-"!==V&&4==V.length&&p[n].push([r.getCoordByIndex(y),h,l.getCoord(V[0]),l.getCoord(V[1]),l.getCoord(V[2]),l.getCoord(V[3]),y,r.getNameByIndex(y)])}this._buildKLine(e,p)},_buildKLine:function(e,t){for(var i,n,o,r,s,l,h,m,V,U,d,p,c,u,y,g,b,f=this.series,k=0,x=e.length;x>k;k++)if(b=e[k],d=f[b],u=t[b],this._isLarge(u)&&(u=this._getLargePointList(u)),d.type===a.CHART_TYPE_K&&null!=u){p=d,i=this.query(p,"itemStyle.normal.lineStyle.width"),n=this.query(p,"itemStyle.normal.lineStyle.color"),o=this.query(p,"itemStyle.normal.lineStyle.color0"),r=this.query(p,"itemStyle.normal.color"),s=this.query(p,"itemStyle.normal.color0"),l=this.query(p,"itemStyle.emphasis.lineStyle.width"),h=this.query(p,"itemStyle.emphasis.lineStyle.color"),m=this.query(p,"itemStyle.emphasis.lineStyle.color0"),V=this.query(p,"itemStyle.emphasis.color"),U=this.query(p,"itemStyle.emphasis.color0");for(var _=0,L=u.length;L>_;_++)y=u[_],c=d.data[y[6]],p=c,g=y[3]a;a++)n[a]=e[Math.floor(i/t*a)];return n},_getCandle:function(e,t,i,a,r,s,l,h,m,V,U,d,p,c,u){var y=this.series,g=y[e],b=g.data[t],f=[b,g],k={zlevel:g.zlevel,z:g.z,clickable:this.deepQuery(f,"clickable"),hoverable:this.deepQuery(f,"hoverable"),style:{x:a,y:[s,l,h,m],width:r,color:V,strokeColor:d,lineWidth:U,brushType:"both"},highlightStyle:{color:p,strokeColor:u,lineWidth:c},_seriesIndex:e};return k=this.addLabel(k,g,b,i),o.pack(k,g,e,b,t,i),k=new n(k)},getMarkCoord:function(e,t){var i=this.series[e],n=this.component.xAxis.getAxis(i.xAxisIndex),a=this.component.yAxis.getAxis(i.yAxisIndex);return["string"!=typeof t.xAxis&&n.getCoordByIndex?n.getCoordByIndex(t.xAxis||0):n.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&a.getCoordByIndex?a.getCoordByIndex(t.yAxis||0):a.getCoord(t.yAxis||0)]},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){p--,0===p&&t&&t()}for(var n=this.series,a={},r=0,s=e.length;s>r;r++)a[e[r][0]]=e[r];for(var l,h,m,V,U,d,p=0,r=0,s=this.shapeList.length;s>r;r++)if(U=this.shapeList[r]._seriesIndex,a[U]&&!a[U][3]&&"candle"===this.shapeList[r].type){if(d=o.get(this.shapeList[r],"dataIndex"),V=n[U],a[U][2]&&d===V.data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!a[U][2]&&0===d){this.zr.delShape(this.shapeList[r].id);continue}h=this.component.xAxis.getAxis(V.xAxisIndex||0).getGap(),l=a[U][2]?h:-h,m=0,p++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,m]}).done(i).start()}p||t&&t()}},r.inherits(t,i),e("../chart").define("k",t),t}),i("echarts/chart/pie",["require","./base","zrender/shape/Text","zrender/shape/Ring","zrender/shape/Circle","zrender/shape/Sector","zrender/shape/Polyline","../config","../util/ecData","zrender/tool/util","zrender/tool/math","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r.shapeHandler.onmouseover=function(e){var t=e.target,i=h.get(t,"seriesIndex"),n=h.get(t,"dataIndex"),a=h.get(t,"special"),o=[t.style.x,t.style.y],s=t.style.startAngle,l=t.style.endAngle,m=((l+s)/2+360)%360,V=t.highlightStyle.color,U=r.getLabel(i,n,a,o,m,V,!0);U&&r.zr.addHoverShape(U);var d=r.getLabelLine(i,n,o,t.style.r0,t.style.r,m,V,!0);d&&r.zr.addHoverShape(d)},this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Ring"),o=e("zrender/shape/Circle"),r=e("zrender/shape/Sector"),s=e("zrender/shape/Polyline"),l=e("../config");l.pie={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockWise:!0,startAngle:90,minAngle:0,selectedOffset:10,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1,type:"solid"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!1},labelLine:{show:!1,length:20,lineStyle:{width:1,type:"solid"}}}}};var h=e("../util/ecData"),m=e("zrender/tool/util"),V=e("zrender/tool/math"),U=e("zrender/tool/color");return t.prototype={type:l.CHART_TYPE_PIE,_buildShape:function(){var e=this.series,t=this.component.legend;this.selectedMap={},this._selected={};var i,n,r;this._selectedMode=!1;for(var s,m=0,V=e.length;V>m;m++)if(e[m].type===l.CHART_TYPE_PIE){if(e[m]=this.reformOption(e[m]),this.legendHoverLink=e[m].legendHoverLink||this.legendHoverLink,s=e[m].name||"",this.selectedMap[s]=t?t.isSelected(s):!0,!this.selectedMap[s])continue;i=this.parseCenter(this.zr,e[m].center),n=this.parseRadius(this.zr,e[m].radius),this._selectedMode=this._selectedMode||e[m].selectedMode,this._selected[m]=[],this.deepQuery([e[m],this.option],"calculable")&&(r={zlevel:e[m].zlevel,z:e[m].z,hoverable:!1,style:{x:i[0],y:i[1],r0:n[0]<=10?0:n[0]-10,r:n[1]+10,brushType:"stroke",lineWidth:1,strokeColor:e[m].calculableHolderColor||this.ecTheme.calculableHolderColor||l.calculableHolderColor}},h.pack(r,e[m],m,void 0,-1),this.setCalculable(r),r=n[0]<=10?new o(r):new a(r),this.shapeList.push(r)),this._buildSinglePie(m),this.buildMark(m)}this.addShapeList()},_buildSinglePie:function(e){for(var t,i=this.series,n=i[e],a=n.data,o=this.component.legend,r=0,s=0,l=0,h=Number.NEGATIVE_INFINITY,m=[],V=0,U=a.length;U>V;V++)t=a[V].name, +this.selectedMap[t]=o?o.isSelected(t):!0,this.selectedMap[t]&&!isNaN(a[V].value)&&(0!==+a[V].value?r++:s++,l+=+a[V].value,h=Math.max(h,+a[V].value));if(0!==l){for(var d,p,c,u,y,g,b=100,f=n.clockWise,k=(n.startAngle.toFixed(2)-0+360)%360,x=n.minAngle||.01,_=360-x*r-.01*s,L=n.roseType,V=0,U=a.length;U>V;V++)if(t=a[V].name,this.selectedMap[t]&&!isNaN(a[V].value)){if(p=o?o.getColor(t):this.zr.getColor(V),b=a[V].value/l,d="area"!=L?f?k-b*_-(0!==b?x:.01):b*_+k+(0!==b?x:.01):f?k-360/U:360/U+k,d=d.toFixed(2)-0,b=(100*b).toFixed(2),c=this.parseCenter(this.zr,n.center),u=this.parseRadius(this.zr,n.radius),y=+u[0],g=+u[1],"radius"===L?g=a[V].value/h*(g-y)*.8+.2*(g-y)+y:"area"===L&&(g=Math.sqrt(a[V].value/h)*(g-y)+y),f){var W;W=k,k=d,d=W}this._buildItem(m,e,V,b,a[V].selected,c,y,g,k,d,p),f||(k=d)}this._autoLabelLayout(m,c,g);for(var V=0,U=m.length;U>V;V++)this.shapeList.push(m[V]);m=null}},_buildItem:function(e,t,i,n,a,o,r,s,l,m,V){var U=this.series,d=((m+l)/2+360)%360,p=this.getSector(t,i,n,a,o,r,s,l,m,V);h.pack(p,U[t],t,U[t].data[i],i,U[t].data[i].name,n),e.push(p);var c=this.getLabel(t,i,n,o,d,V,!1),u=this.getLabelLine(t,i,o,r,s,d,V,!1);u&&(h.pack(u,U[t],t,U[t].data[i],i,U[t].data[i].name,n),e.push(u)),c&&(h.pack(c,U[t],t,U[t].data[i],i,U[t].data[i].name,n),c._labelLine=u,e.push(c))},getSector:function(e,t,i,n,a,o,s,l,h,m){var d=this.series,p=d[e],c=p.data[t],u=[c,p],y=this.deepMerge(u,"itemStyle.normal")||{},g=this.deepMerge(u,"itemStyle.emphasis")||{},b=this.getItemStyleColor(y.color,e,t,c)||m,f=this.getItemStyleColor(g.color,e,t,c)||("string"==typeof b?U.lift(b,-.2):b),k={zlevel:p.zlevel,z:p.z,clickable:this.deepQuery(u,"clickable"),style:{x:a[0],y:a[1],r0:o,r:s,startAngle:l,endAngle:h,brushType:"both",color:b,lineWidth:y.borderWidth,strokeColor:y.borderColor,lineJoin:"round"},highlightStyle:{color:f,lineWidth:g.borderWidth,strokeColor:g.borderColor,lineJoin:"round"},_seriesIndex:e,_dataIndex:t};if(n){var x=((k.style.startAngle+k.style.endAngle)/2).toFixed(2)-0;k.style._hasSelected=!0,k.style._x=k.style.x,k.style._y=k.style.y;var _=this.query(p,"selectedOffset");k.style.x+=V.cos(x,!0)*_,k.style.y-=V.sin(x,!0)*_,this._selected[e][t]=!0}else this._selected[e][t]=!1;return this._selectedMode&&(k.onclick=this.shapeHandler.onclick),this.deepQuery([c,p,this.option],"calculable")&&(this.setCalculable(k),k.draggable=!0),(this._needLabel(p,c,!0)||this._needLabelLine(p,c,!0))&&(k.onmouseover=this.shapeHandler.onmouseover),k=new r(k)},getLabel:function(e,t,i,a,o,r,s){var l=this.series,h=l[e],U=h.data[t];if(this._needLabel(h,U,s)){var d,p,c,u=s?"emphasis":"normal",y=m.merge(m.clone(U.itemStyle)||{},h.itemStyle),g=y[u].label,b=g.textStyle||{},f=a[0],k=a[1],x=this.parseRadius(this.zr,h.radius),_="middle";g.position=g.position||y.normal.label.position,"center"===g.position?(d=f,p=k,c="center"):"inner"===g.position||"inside"===g.position?(x=(x[0]+x[1])*(g.distance||.5),d=Math.round(f+x*V.cos(o,!0)),p=Math.round(k-x*V.sin(o,!0)),r="#fff",c="center"):(x=x[1]- -y[u].labelLine.length,d=Math.round(f+x*V.cos(o,!0)),p=Math.round(k-x*V.sin(o,!0)),c=o>=90&&270>=o?"right":"left"),"center"!=g.position&&"inner"!=g.position&&"inside"!=g.position&&(d+="left"===c?20:-20),U.__labelX=d-("left"===c?5:-5),U.__labelY=p;var L=new n({zlevel:h.zlevel,z:h.z+1,hoverable:!1,style:{x:d,y:p,color:b.color||r,text:this.getLabelText(e,t,i,u),textAlign:b.align||c,textBaseline:b.baseline||_,textFont:this.getFont(b)},highlightStyle:{brushType:"fill"}});return L._radius=x,L._labelPosition=g.position||"outer",L._rect=L.getRect(L.style),L._seriesIndex=e,L._dataIndex=t,L}},getLabelText:function(e,t,i,n){var a=this.series,o=a[e],r=o.data[t],s=this.deepQuery([r,o],"itemStyle."+n+".label.formatter");return s?"function"==typeof s?s.call(this.myChart,{seriesIndex:e,seriesName:o.name||"",series:o,dataIndex:t,data:r,name:r.name,value:r.value,percent:i}):"string"==typeof s?(s=s.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{d}","{d0}"),s=s.replace("{a0}",o.name).replace("{b0}",r.name).replace("{c0}",r.value).replace("{d0}",i)):void 0:r.name},getLabelLine:function(e,t,i,n,a,o,r,l){var h=this.series,U=h[e],d=U.data[t];if(this._needLabelLine(U,d,l)){var p=l?"emphasis":"normal",c=m.merge(m.clone(d.itemStyle)||{},U.itemStyle),u=c[p].labelLine,y=u.lineStyle||{},g=i[0],b=i[1],f=a,k=this.parseRadius(this.zr,U.radius)[1]- -u.length,x=V.cos(o,!0),_=V.sin(o,!0);return new s({zlevel:U.zlevel,z:U.z+1,hoverable:!1,style:{pointList:[[g+f*x,b-f*_],[g+k*x,b-k*_],[d.__labelX,d.__labelY]],strokeColor:y.color||r,lineType:y.type,lineWidth:y.width},_seriesIndex:e,_dataIndex:t})}},_needLabel:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".label.show")},_needLabelLine:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".labelLine.show")},_autoLabelLayout:function(e,t,i){for(var n=[],a=[],o=0,r=e.length;r>o;o++)("outer"===e[o]._labelPosition||"outside"===e[o]._labelPosition)&&(e[o]._rect._y=e[o]._rect.y,e[o]._rect.xa;a++)if(e[a]._rect.y+=n,e[a].style.y+=n,e[a]._labelLine&&(e[a]._labelLine.style.pointList[1][1]+=n,e[a]._labelLine.style.pointList[2][1]+=n),a>t&&i>a+1&&e[a+1]._rect.y>e[a]._rect.y+e[a]._rect.height)return void o(a,n/2);o(i-1,n/2)}function o(t,i){for(var n=t;n>=0&&(e[n]._rect.y-=i,e[n].style.y-=i,e[n]._labelLine&&(e[n]._labelLine.style.pointList[1][1]-=i,e[n]._labelLine.style.pointList[2][1]-=i),!(n>0&&e[n]._rect.y>e[n-1]._rect.y+e[n-1]._rect.height));n--);}function r(e,t,i,n,a){for(var o,r,s,l=i[0],h=i[1],m=a>0?t?Number.MAX_VALUE:0:t?Number.MAX_VALUE:0,V=0,U=e.length;U>V;V++)r=Math.abs(e[V]._rect.y-h),s=e[V]._radius-n,o=n+s>r?Math.sqrt((n+s+20)*(n+s+20)-Math.pow(e[V]._rect.y-h,2)):Math.abs(e[V]._rect.x+(a>0?0:e[V]._rect.width)-l),t&&o>=m&&(o=m-10),!t&&m>=o&&(o=m+10),e[V]._rect.x=e[V].style.x=l+o*a,e[V]._labelLine&&(e[V]._labelLine.style.pointList[2][0]=l+(o-5)*a,e[V]._labelLine.style.pointList[1][0]=l+(o-20)*a),m=o}e.sort(function(e,t){return e._rect.y-t._rect.y});for(var s,l=0,h=e.length,m=[],V=[],U=0;h>U;U++)s=e[U]._rect.y-l,0>s&&a(U,h,-s,n),l=e[U]._rect.y+e[U]._rect.height;this.zr.getHeight()-l<0&&o(h-1,l-this.zr.getHeight());for(var U=0;h>U;U++)e[U]._rect.y>=t[1]?V.push(e[U]):m.push(e[U]);r(V,!0,t,i,n),r(m,!1,t,i,n)},reformOption:function(e){var t=m.merge;return e=t(t(e||{},m.clone(this.ecTheme.pie||{})),m.clone(l.pie)),e.itemStyle.normal.label.textStyle=this.getTextStyle(e.itemStyle.normal.label.textStyle),e.itemStyle.emphasis.label.textStyle=this.getTextStyle(e.itemStyle.emphasis.label.textStyle),this.z=e.z,this.zlevel=e.zlevel,e},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){s--,0===s&&t&&t()}for(var n=this.series,a={},o=0,r=e.length;r>o;o++)a[e[o][0]]=e[o];var s=0,h={},m={},V={},U=this.shapeList;this.shapeList=[];for(var d,p,c,u={},o=0,r=e.length;r>o;o++)d=e[o][0],p=e[o][2],c=e[o][3],n[d]&&n[d].type===l.CHART_TYPE_PIE&&(p?(c||(h[d+"_"+n[d].data.length]="delete"),u[d]=1):c?u[d]=0:(h[d+"_-1"]="delete",u[d]=-1),this._buildSinglePie(d));for(var y,g,o=0,r=this.shapeList.length;r>o;o++)switch(d=this.shapeList[o]._seriesIndex,y=this.shapeList[o]._dataIndex,g=d+"_"+y,this.shapeList[o].type){case"sector":h[g]=this.shapeList[o];break;case"text":m[g]=this.shapeList[o];break;case"polyline":V[g]=this.shapeList[o]}this.shapeList=[];for(var b,o=0,r=U.length;r>o;o++)if(d=U[o]._seriesIndex,a[d]){if(y=U[o]._dataIndex+u[d],g=d+"_"+y,b=h[g],!b)continue;if("sector"===U[o].type)"delete"!=b?(s++,this.zr.animate(U[o].id,"style").when(400,{startAngle:b.style.startAngle,endAngle:b.style.endAngle}).done(i).start()):(s++,this.zr.animate(U[o].id,"style").when(400,u[d]<0?{startAngle:U[o].style.startAngle}:{endAngle:U[o].style.endAngle}).done(i).start());else if("text"===U[o].type||"polyline"===U[o].type)if("delete"===b)this.zr.delShape(U[o].id);else switch(U[o].type){case"text":s++,b=m[g],this.zr.animate(U[o].id,"style").when(400,{x:b.style.x,y:b.style.y}).done(i).start();break;case"polyline":s++,b=V[g],this.zr.animate(U[o].id,"style").when(400,{pointList:b.style.pointList}).done(i).start()}}this.shapeList=U,s||t&&t()},onclick:function(e){var t=this.series;if(this.isClick&&e.target){this.isClick=!1;for(var i,n=e.target,a=n.style,o=h.get(n,"seriesIndex"),r=h.get(n,"dataIndex"),s=0,m=this.shapeList.length;m>s;s++)if(this.shapeList[s].id===n.id){if(o=h.get(n,"seriesIndex"),r=h.get(n,"dataIndex"),a._hasSelected)n.style.x=n.style._x,n.style.y=n.style._y,n.style._hasSelected=!1,this._selected[o][r]=!1;else{var U=((a.startAngle+a.endAngle)/2).toFixed(2)-0;n.style._hasSelected=!0,this._selected[o][r]=!0,n.style._x=n.style.x,n.style._y=n.style.y,i=this.query(t[o],"selectedOffset"),n.style.x+=V.cos(U,!0)*i,n.style.y-=V.sin(U,!0)*i}this.zr.modShape(n.id)}else this.shapeList[s].style._hasSelected&&"single"===this._selectedMode&&(o=h.get(this.shapeList[s],"seriesIndex"),r=h.get(this.shapeList[s],"dataIndex"),this.shapeList[s].style.x=this.shapeList[s].style._x,this.shapeList[s].style.y=this.shapeList[s].style._y,this.shapeList[s].style._hasSelected=!1,this._selected[o][r]=!1,this.zr.modShape(this.shapeList[s].id));this.messageCenter.dispatch(l.EVENT.PIE_SELECTED,e.event,{selected:this._selected,target:h.get(n,"name")},this.myChart),this.zr.refreshNextFrame()}}},m.inherits(t,i),e("../chart").define("pie",t),t}),i("echarts/chart/radar",["require","./base","zrender/shape/Polygon","../component/polar","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../util/accMath","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Polygon");e("../component/polar");var a=e("../config");a.radar={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,polarIndex:0,itemStyle:{normal:{label:{show:!1},lineStyle:{width:2,type:"solid"}},emphasis:{label:{show:!1}}},symbolSize:2};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_RADAR,_buildShape:function(){this.selectedMap={},this._symbol=this.option.symbolList,this._queryTarget,this._dropBoxList=[],this._radarDataCounter=0;for(var e,t=this.series,i=this.component.legend,n=0,o=t.length;o>n;n++)t[n].type===a.CHART_TYPE_RADAR&&(this.serie=this.reformOption(t[n]),this.legendHoverLink=t[n].legendHoverLink||this.legendHoverLink,e=this.serie.name||"",this.selectedMap[e]=i?i.isSelected(e):!0,this.selectedMap[e]&&(this._queryTarget=[this.serie,this.option],this.deepQuery(this._queryTarget,"calculable")&&this._addDropBox(n),this._buildSingleRadar(n),this.buildMark(n)));this.addShapeList()},_buildSingleRadar:function(e){for(var t,i,n,a,o=this.component.legend,r=this.serie.data,s=this.deepQuery(this._queryTarget,"calculable"),l=0;lr;r++)n=this.getDataFromOption(t.value[r]),i="-"!=n?o.getVector(e,r,n):!1,i&&a.push(i);return a},_addSymbol:function(e,t,i,n,a){for(var r,s=this.series,l=this.component.polar,h=0,m=e.length;m>h;h++)r=this.getSymbolShape(this.deepMerge([s[n].data[i],s[n]]),n,s[n].data[i].value[h],h,l.getIndicatorText(a,h),e[h][0],e[h][1],this._symbol[this._radarDataCounter%this._symbol.length],t,"#fff","vertical"),r.zlevel=this.getZlevelBase(),r.z=this.getZBase()+1,o.set(r,"data",s[n].data[i]),o.set(r,"value",s[n].data[i].value),o.set(r,"dataIndex",i),o.set(r,"special",h),this.shapeList.push(r)},_addDataShape:function(e,t,i,a,r,l){var h=this.series,m=[i,this.serie],V=this.getItemStyleColor(this.deepQuery(m,"itemStyle.normal.color"),a,r,i),U=this.deepQuery(m,"itemStyle.normal.lineStyle.width"),d=this.deepQuery(m,"itemStyle.normal.lineStyle.type"),p=this.deepQuery(m,"itemStyle.normal.areaStyle.color"),c=this.deepQuery(m,"itemStyle.normal.areaStyle"),u={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:e,brushType:c?"both":"stroke",color:p||V||("string"==typeof t?s.alpha(t,.5):t),strokeColor:V||t,lineWidth:U,lineType:d},highlightStyle:{brushType:this.deepQuery(m,"itemStyle.emphasis.areaStyle")||c?"both":"stroke",color:this.deepQuery(m,"itemStyle.emphasis.areaStyle.color")||p||V||("string"==typeof t?s.alpha(t,.5):t),strokeColor:this.getItemStyleColor(this.deepQuery(m,"itemStyle.emphasis.color"),a,r,i)||V||t,lineWidth:this.deepQuery(m,"itemStyle.emphasis.lineStyle.width")||U,lineType:this.deepQuery(m,"itemStyle.emphasis.lineStyle.type")||d}};o.pack(u,h[a],a,i,r,i.name,this.component.polar.getIndicator(h[a].polarIndex)),l&&(u.draggable=!0,this.setCalculable(u)),u=new n(u),this.shapeList.push(u)},_addDropBox:function(e){var t=this.series,i=this.deepQuery(this._queryTarget,"polarIndex");if(!this._dropBoxList[i]){var n=this.component.polar.getDropBox(i);n.zlevel=this.getZlevelBase(),n.z=this.getZBase(),this.setCalculable(n),o.pack(n,t,e,void 0,-1),this.shapeList.push(n),this._dropBoxList[i]=!0}},ondragend:function(e,t){var i=this.series;if(this.isDragend&&e.target){var n=e.target,a=o.get(n,"seriesIndex"),r=o.get(n,"dataIndex");this.component.legend&&this.component.legend.del(i[a].data[r].name),i[a].data.splice(r,1),t.dragOut=!0,t.needRefresh=!0,this.isDragend=!1}},ondrop:function(t,i){var n=this.series;if(this.isDrop&&t.target){var a,r,s=t.target,l=t.dragged,h=o.get(s,"seriesIndex"),m=o.get(s,"dataIndex"),V=this.component.legend;if(-1===m)a={value:o.get(l,"value"),name:o.get(l,"name")},n[h].data.push(a),V&&V.add(a.name,l.style.color||l.style.strokeColor);else{var U=e("../util/accMath");a=n[h].data[m],V&&V.del(a.name),a.name+=this.option.nameConnector+o.get(l,"name"),r=o.get(l,"value");for(var d=0;dh;h++)t=m.polar2cartesian(s,o*Math.PI/180+r*h),l.push({vector:[t[1],-t[0]]})},_getRadius:function(){var e=this.polar[this._index];return this.parsePercent(e.radius,Math.min(this.zr.getWidth(),this.zr.getHeight())/2)},_buildSpiderWeb:function(e){var t=this.polar[e],i=t.__ecIndicator,n=t.splitArea,a=t.splitLine,o=this.getCenter(e),r=t.splitNumber,s=a.lineStyle.color,l=a.lineStyle.width,h=a.show,m=this.deepQuery(this._queryTarget,"axisLine");this._addArea(i,r,o,n,s,l,h),m.show&&this._addLine(i,o,m)},_addAxisLabel:function(t){for(var i,a,o,r,a,s,l,m,V,U,d=e("../util/accMath"),p=this.polar[t],c=this.deepQuery(this._queryTarget,"indicator"),u=p.__ecIndicator,y=this.deepQuery(this._queryTarget,"splitNumber"),g=this.getCenter(t),b=0;b=x;x+=U+1)r=h.merge({},o),l=d.accAdd(s.min,d.accMul(s.step,x)),l="function"==typeof k?k(l):"string"==typeof k?k.replace("{a}","{a0}").replace("{a0}",l):this.numAddCommas(l),r.text=l,r.x=x*a[0]/y+Math.cos(m)*V+g[0],r.y=x*a[1]/y+Math.sin(m)*V+g[1],this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:r,draggable:!1,hoverable:!1}))}},_buildText:function(e){for(var t,i,a,o,r,s,l,h=this.polar[e],m=h.__ecIndicator,V=this.deepQuery(this._queryTarget,"indicator"),U=this.getCenter(e),d=0,p=0,c=0;c0?"left":Math.round(t[0])<0?"right":"center",null==o.margin?t=this._mapVector(t,U,1.1):(s=o.margin,d=t[0]>0?s:-s,p=t[1]>0?s:-s,d=0===t[0]?0:d,p=0===t[1]?0:p,t=this._mapVector(t,U,1)),i.textAlign=a,i.x=t[0]+d,i.y=t[1]+p,r=o.rotate?[o.rotate/180*Math.PI,t[0],t[1]]:[0,0,0],this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:i,draggable:!1,hoverable:!1,rotation:r})))},getIndicatorText:function(e,t){return this.polar[e]&&this.polar[e].__ecIndicator[t]&&this.polar[e].__ecIndicator[t].text},getDropBox:function(e){var t,i,e=e||0,n=this.polar[e],a=this.getCenter(e),o=n.__ecIndicator,r=o.length,s=[],l=n.type;if("polygon"==l){for(var h=0;r>h;h++)t=o[h].vector,s.push(this._mapVector(t,a,1.2));i=this._getShape(s,"fill","rgba(0,0,0,0)","",1)}else"circle"==l&&(i=this._getCircle("",1,1.2,a,"fill","rgba(0,0,0,0)"));return i},_addArea:function(e,t,i,n,a,o,r){for(var s,l,h,m,V=this.deepQuery(this._queryTarget,"type"),U=0;t>U;U++)l=(t-U)/t,r&&("polygon"==V?(m=this._getPointList(e,l,i),s=this._getShape(m,"stroke","",a,o)):"circle"==V&&(s=this._getCircle(a,o,l,i,"stroke")),this.shapeList.push(s)),n.show&&(h=(t-U-1)/t,this._addSplitArea(e,n,l,h,i,U))},_getCircle:function(e,t,i,n,a,o){var s=this._getRadius();return new r({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:n[0],y:n[1],r:s*i,brushType:a,strokeColor:e,lineWidth:t,color:o},hoverable:!1,draggable:!1})},_getRing:function(e,t,i,n){var a=this._getRadius();return new s({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:n[0],y:n[1],r:t*a,r0:i*a,color:e,brushType:"fill"},hoverable:!1,draggable:!1})},_getPointList:function(e,t,i){for(var n,a=[],o=e.length,r=0;o>r;r++)n=e[r].vector,a.push(this._mapVector(n,i,t));return a},_getShape:function(e,t,i,n,a){return new o({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:e,brushType:t,color:i,strokeColor:n,lineWidth:a},hoverable:!1,draggable:!1})},_addSplitArea:function(e,t,i,n,a,o){var r,s,l,h,m,V=e.length,U=t.areaStyle.color,d=[],V=e.length,p=this.deepQuery(this._queryTarget,"type");if("string"==typeof U&&(U=[U]),s=U.length,r=U[o%s],"polygon"==p)for(var c=0;V>c;c++)d=[],l=e[c].vector,h=e[(c+1)%V].vector,d.push(this._mapVector(l,a,i)),d.push(this._mapVector(l,a,n)),d.push(this._mapVector(h,a,n)),d.push(this._mapVector(h,a,i)),m=this._getShape(d,"fill",r,"",1),this.shapeList.push(m);else"circle"==p&&(m=this._getRing(r,i,n,a),this.shapeList.push(m))},_mapVector:function(e,t,i){return[e[0]*i+t[0],e[1]*i+t[1]]},getCenter:function(e){var e=e||0;return this.parseCenter(this.zr,this.polar[e].center)},_addLine:function(e,t,i){for(var n,a,o=e.length,r=i.lineStyle,s=r.color,l=r.width,h=r.type,m=0;o>m;m++)a=e[m].vector,n=this._getLine(t[0],t[1],a[0]+t[0],a[1]+t[1],s,l,h),this.shapeList.push(n)},_getLine:function(e,t,i,n,o,r,s){return new a({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{xStart:e,yStart:t,xEnd:i,yEnd:n,strokeColor:o,lineWidth:r,lineType:s},hoverable:!1})},_adjustIndicatorValue:function(t){for(var i,n,a,o=this.polar[t],r=this.deepQuery(this._queryTarget,"indicator"),s=r.length,l=o.__ecIndicator,h=this._getSeriesData(t),m=o.boundaryGap,V=o.splitNumber,U=o.scale,d=e("../util/smartSteps"),p=0;s>p;p++){if("number"==typeof r[p].max)i=r[p].max,n=r[p].min||0,a={max:i,min:n};else{var c=this._findValue(h,p,V,m);n=c.min,i=c.max}!U&&n>=0&&i>=0&&(n=0),!U&&0>=n&&0>=i&&(i=0);var u=d(n,i,V,a);l[p].value={min:u.min,max:u.max,step:u.step}}},_getSeriesData:function(e){for(var t,i,n,a=[],o=this.component.legend,r=0;ro||void 0===o)&&(o=e),(r>e||void 0===r)&&(r=e)}var o,r,s;if(e&&0!==e.length){if(1==e.length&&(r=0),1!=e.length)for(var l=0;l0?r=o/i:o/=i),{max:o,min:r}}},getVector:function(e,t,i){e=e||0,t=t||0;var n=this.polar[e].__ecIndicator;if(!(t>=n.length)){var a,o=this.polar[e].__ecIndicator[t],r=this.getCenter(e),s=o.vector,l=o.value.max,h=o.value.min;if("undefined"==typeof i)return r;switch(i){case"min":i=h;break;case"max":i=l;break;case"center":i=(l+h)/2}return a=l!=h?(i-h)/(l-h):.5,this._mapVector(s,r,a)}},isInside:function(e){var t=this.getNearestIndex(e);return t?t.polarIndex:-1},getNearestIndex:function(e){for(var t,i,n,a,o,r,s,l,h,V=0;Va[0])return{polarIndex:V,valueIndex:Math.floor((h+l/2)/l)%s}}},getIndicator:function(e){var e=e||0;return this.polar[e].indicator},refresh:function(e){e&&(this.option=e,this.polar=this.option.polar,this.series=this.option.series),this.clear(),this._buildShape()}},h.inherits(t,i),e("../component").define("polar",t),t}),i("echarts/util/coordinates",["require","zrender/tool/math"],function(e){function t(e,t){return[e*n.sin(t),e*n.cos(t)]}function i(e,t){return[Math.sqrt(e*e+t*t),Math.atan(t/e)]}var n=e("zrender/tool/math");return{polar2cartesian:t,cartesian2polar:i}}),i("echarts/chart/chord",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Sector","../util/shape/Ribbon","../util/shape/Icon","zrender/shape/BezierCurve","../config","../util/ecData","zrender/tool/util","zrender/tool/vector","../data/Graph","../layout/Chord","../chart"],function(e){"use strict";function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.scaleLineLength=4,this.scaleUnitAngle=4,this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Sector"),r=e("../util/shape/Ribbon"),s=e("../util/shape/Icon"),l=e("zrender/shape/BezierCurve"),h=e("../config");h.chord={zlevel:0,z:2,clickable:!0,radius:["65%","75%"],center:["50%","50%"],padding:2,sort:"none",sortSub:"none",startAngle:90,clockWise:!0,ribbonType:!0,minRadius:10,maxRadius:20,symbol:"circle",showScale:!1,showScaleText:!1,itemStyle:{normal:{borderWidth:0,borderColor:"#000",label:{show:!0,rotate:!1,distance:5},chordStyle:{width:1,color:"black",borderWidth:1,borderColor:"#999",opacity:.5}},emphasis:{borderWidth:0,borderColor:"#000",chordStyle:{width:1,color:"black",borderWidth:1,borderColor:"#999"}}}};var m=e("../util/ecData"),V=e("zrender/tool/util"),U=e("zrender/tool/vector"),d=e("../data/Graph"),p=e("../layout/Chord");return t.prototype={type:h.CHART_TYPE_CHORD,_init:function(){var e=this.series;this.selectedMap={};for(var t={},i={},n=0,a=e.length;a>n;n++)if(e[n].type===this.type){var o=this.isSelected(e[n].name);this.selectedMap[e[n].name]=o,o&&this.buildMark(n),this.reformOption(e[n]),t[e[n].name]=e[n]}for(var n=0,a=e.length;a>n;n++)if(e[n].type===this.type)if(e[n].insertToSerie){var r=t[e[n].insertToSerie];e[n]._referenceSerie=r}else i[e[n].name]=[e[n]];for(var n=0,a=e.length;a>n;n++)if(e[n].type===this.type&&e[n].insertToSerie){for(var s=e[n]._referenceSerie;s&&s._referenceSerie;)s=s._referenceSerie;i[s.name]&&this.selectedMap[e[n].name]&&i[s.name].push(e[n])}for(var l in i)this._buildChords(i[l]);this.addShapeList()},_getNodeCategory:function(e,t){return e.categories&&e.categories[t.category||0]},_getNodeQueryTarget:function(e,t){var i=this._getNodeCategory(e,t);return[t,i,e]},_getEdgeQueryTarget:function(e,t,i){return i=i||"normal",[t.itemStyle&&t.itemStyle[i],e.itemStyle[i].chordStyle]},_buildChords:function(e){for(var t=[],i=e[0],n=function(e){return e.layout.size>0},a=function(e){return function(t){return e.getEdge(t.node2,t.node1)}},o=0;oa;a++){var r=n[a];if(r&&!r.ignore){var s=this._getNodeCategory(t,r),l=s?s.name:r.name;if(this.selectedMap[l]=this.isSelected(l),this.selectedMap[l]){var h=i.addNode(r.name,r);h.rawIndex=a}}}for(var a=0,o=e.links.length;o>a;a++){var m=e.links[a],V=m.source,U=m.target;"number"==typeof V&&(V=n[V],V&&(V=V.name)),"number"==typeof U&&(U=n[U],U&&(U=U.name));var p=i.addEdge(V,U,m);p&&(p.rawIndex=a)}return i.eachNode(function(e){var i=e.data.value;if(null==i)if(i=0,t.ribbonType)for(var n=0;n0&&(p.style.brushType="both"),p.highlightStyle.lineWidth>0&&(p.highlightStyle.brushType="both"),m.pack(p,e,t,i.data,i.rawIndex,i.id,i.category),this.shapeList.push(p),i.shape=p},this)},_buildNodeIcons:function(e,t,i,n){var a=this.parseCenter(this.zr,n.center),o=this.parseRadius(this.zr,n.radius),r=o[1];i.eachNode(function(i){var o=i.layout.startAngle,l=i.layout.endAngle,h=(o+l)/2,V=r*Math.cos(h),U=r*Math.sin(h),d=this._getNodeQueryTarget(n,i.data),p=this._getNodeCategory(n,i.data),c=this.deepQuery(d,"itemStyle.normal.color");c||(c=this.getColor(p?p.name:i.id));var u=new s({zlevel:e.zlevel,z:e.z+1,style:{x:-i.layout.size,y:-i.layout.size,width:2*i.layout.size,height:2*i.layout.size,iconType:this.deepQuery(d,"symbol"),color:c,brushType:"both",lineWidth:this.deepQuery(d,"itemStyle.normal.borderWidth"),strokeColor:this.deepQuery(d,"itemStyle.normal.borderColor")},highlightStyle:{color:this.deepQuery(d,"itemStyle.emphasis.color"),lineWidth:this.deepQuery(d,"itemStyle.emphasis.borderWidth"),strokeColor:this.deepQuery(d,"itemStyle.emphasis.borderColor")},clickable:n.clickable,position:[V+a[0],U+a[1]]});m.pack(u,e,t,i.data,i.rawIndex,i.id,i.category),this.shapeList.push(u),i.shape=u},this)},_buildLabels:function(e,t,i,a){var o=this.query(a,"itemStyle.normal.label.rotate"),r=this.query(a,"itemStyle.normal.label.distance"),s=this.parseCenter(this.zr,a.center),l=this.parseRadius(this.zr,a.radius),h=a.clockWise,m=h?1:-1; + +i.eachNode(function(t){var i=t.layout.startAngle/Math.PI*180*m,h=t.layout.endAngle/Math.PI*180*m,V=(i*-m+h*-m)/2;V%=360,0>V&&(V+=360);var d=90>=V||V>=270;V=V*Math.PI/180;var p=[Math.cos(V),-Math.sin(V)],c=0;c=a.ribbonType?a.showScaleText?35+r:r:r+t.layout.size;var u=U.scale([],p,l[1]+c);U.add(u,u,s);var y={zlevel:e.zlevel,z:e.z+1,hoverable:!1,style:{text:null==t.data.label?t.id:t.data.label,textAlign:d?"left":"right"}};o?(y.rotation=d?V:Math.PI+V,y.style.x=d?l[1]+c:-l[1]-c,y.style.y=0,y.position=s.slice()):(y.style.x=u[0],y.style.y=u[1]),y.style.color=this.deepQuery([t.data,a],"itemStyle.normal.label.textStyle.color")||"#000000",y.style.textFont=this.getFont(this.deepQuery([t.data,a],"itemStyle.normal.label.textStyle")),y=new n(y),this.shapeList.push(y),t.labelShape=y},this)},_buildRibbons:function(e,t,i,n){var a=e[t],o=this.parseCenter(this.zr,n.center),s=this.parseRadius(this.zr,n.radius);i.eachEdge(function(l,h){var V,U=i.getEdge(l.node2,l.node1);if(U&&!l.shape){if(U.shape)return void(l.shape=U.shape);var d=l.layout.startAngle/Math.PI*180,p=l.layout.endAngle/Math.PI*180,c=U.layout.startAngle/Math.PI*180,u=U.layout.endAngle/Math.PI*180;V=this.getColor(1===e.length?l.layout.weight<=U.layout.weight?l.node1.id:l.node2.id:a.name);var y,g,b=this._getEdgeQueryTarget(a,l.data),f=this._getEdgeQueryTarget(a,l.data,"emphasis"),k=new r({zlevel:a.zlevel,z:a.z,style:{x:o[0],y:o[1],r:s[0],source0:d,source1:p,target0:c,target1:u,brushType:"both",opacity:this.deepQuery(b,"opacity"),color:V,lineWidth:this.deepQuery(b,"borderWidth"),strokeColor:this.deepQuery(b,"borderColor"),clockWise:n.clockWise},clickable:n.clickable,highlightStyle:{brushType:"both",opacity:this.deepQuery(f,"opacity"),lineWidth:this.deepQuery(f,"borderWidth"),strokeColor:this.deepQuery(f,"borderColor")}});l.layout.weight<=U.layout.weight?(y=U.node1,g=U.node2):(y=l.node1,g=l.node2),m.pack(k,a,t,l.data,null==l.rawIndex?h:l.rawIndex,l.data.name||y.id+"-"+g.id,y.id,g.id),this.shapeList.push(k),l.shape=k}},this)},_buildEdgeCurves:function(e,t,i,n,a){var o=e[t],r=this.parseCenter(this.zr,n.center);i.eachEdge(function(e,i){var n=a.getNodeById(e.node1.id),s=a.getNodeById(e.node2.id),h=n.shape,V=s.shape,U=this._getEdgeQueryTarget(o,e.data),d=this._getEdgeQueryTarget(o,e.data,"emphasis"),p=new l({zlevel:o.zlevel,z:o.z,style:{xStart:h.position[0],yStart:h.position[1],xEnd:V.position[0],yEnd:V.position[1],cpX1:r[0],cpY1:r[1],lineWidth:this.deepQuery(U,"width"),strokeColor:this.deepQuery(U,"color"),opacity:this.deepQuery(U,"opacity")},highlightStyle:{lineWidth:this.deepQuery(d,"width"),strokeColor:this.deepQuery(d,"color"),opacity:this.deepQuery(d,"opacity")}});m.pack(p,o,t,e.data,null==e.rawIndex?i:e.rawIndex,e.data.name||e.node1.id+"-"+e.node2.id,e.node1.id,e.node2.id),this.shapeList.push(p),e.shape=p},this)},_buildScales:function(e,t,i){var o,r,s=e.clockWise,l=this.parseCenter(this.zr,e.center),h=this.parseRadius(this.zr,e.radius),m=s?1:-1,V=0,d=-(1/0);e.showScaleText&&(i.eachNode(function(e){var t=e.data.value;t>d&&(d=t),V+=t}),d>1e10?(o="b",r=1e-9):d>1e7?(o="m",r=1e-6):d>1e4?(o="k",r=.001):(o="",r=1));var p=V/(360-e.padding);i.eachNode(function(t){for(var i=t.layout.startAngle/Math.PI*180,V=t.layout.endAngle/Math.PI*180,d=i;;){if(s&&d>V||!s&&V>d)break;var c=d/180*Math.PI,u=[Math.cos(c),Math.sin(c)],y=U.scale([],u,h[1]+1);U.add(y,y,l);var g=U.scale([],u,h[1]+this.scaleLineLength);U.add(g,g,l);var b=new a({zlevel:e.zlevel,z:e.z-1,hoverable:!1,style:{xStart:y[0],yStart:y[1],xEnd:g[0],yEnd:g[1],lineCap:"round",brushType:"stroke",strokeColor:"#666",lineWidth:1}});this.shapeList.push(b),d+=m*this.scaleUnitAngle}if(e.showScaleText)for(var f=i,k=5*p*this.scaleUnitAngle,x=0;;){if(s&&f>V||!s&&V>f)break;var c=f;c%=360,0>c&&(c+=360);var _=90>=c||c>=270,L=new n({zlevel:e.zlevel,z:e.z-1,hoverable:!1,style:{x:_?h[1]+this.scaleLineLength+4:-h[1]-this.scaleLineLength-4,y:0,text:Math.round(10*x)/10+o,textAlign:_?"left":"right"},position:l.slice(),rotation:_?[-c/180*Math.PI,0,0]:[-(c+180)/180*Math.PI,0,0]});this.shapeList.push(L),x+=k*r,f+=m*this.scaleUnitAngle*5}},this)},refresh:function(e){if(e&&(this.option=e,this.series=e.series),this.legend=this.component.legend,this.legend)this.getColor=function(e){return this.legend.getColor(e)},this.isSelected=function(e){return this.legend.isSelected(e)};else{var t={},i=0;this.getColor=function(e){return t[e]?t[e]:(t[e]||(t[e]=this.zr.getColor(i++)),t[e])},this.isSelected=function(){return!0}}this.backupShapeList(),this._init()},reformOption:function(e){var t=V.merge;e=t(t(e||{},this.ecTheme.chord),h.chord),e.itemStyle.normal.label.textStyle=this.getTextStyle(e.itemStyle.normal.label.textStyle),this.z=e.z,this.zlevel=e.zlevel}},V.inherits(t,i),e("../chart").define("chord",t),t}),i("echarts/util/shape/Ribbon",["require","zrender/shape/Base","zrender/shape/util/PathProxy","zrender/tool/util","zrender/tool/area"],function(e){function t(e){i.call(this,e),this._pathProxy=new n}var i=e("zrender/shape/Base"),n=e("zrender/shape/util/PathProxy"),a=e("zrender/tool/util"),o=e("zrender/tool/area");return t.prototype={type:"ribbon",buildPath:function(e,t){var i=t.clockWise||!1,n=this._pathProxy;n.begin(e);var a=t.x,o=t.y,r=t.r,s=t.source0/180*Math.PI,l=t.source1/180*Math.PI,h=t.target0/180*Math.PI,m=t.target1/180*Math.PI,V=a+Math.cos(s)*r,U=o+Math.sin(s)*r,d=a+Math.cos(l)*r,p=o+Math.sin(l)*r,c=a+Math.cos(h)*r,u=o+Math.sin(h)*r,y=a+Math.cos(m)*r,g=o+Math.sin(m)*r;n.moveTo(V,U),n.arc(a,o,t.r,s,l,!i),n.bezierCurveTo(.7*(a-d)+d,.7*(o-p)+p,.7*(a-c)+c,.7*(o-u)+u,c,u),(t.source0!==t.target0||t.source1!==t.target1)&&(n.arc(a,o,t.r,h,m,!i),n.bezierCurveTo(.7*(a-y)+y,.7*(o-g)+g,.7*(a-V)+V,.7*(o-U)+U,V,U))},getRect:function(e){return e.__rect?e.__rect:(this._pathProxy.isEmpty()||this.buildPath(null,e),this._pathProxy.fastBoundingRect())},isCover:function(e,t){var i=this.getRect(this.style);return e>=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height?o.isInsidePath(this._pathProxy.pathCommands,0,"fill",e,t):void 0}},a.inherits(t,i),t}),i("echarts/data/Graph",["require","zrender/tool/util"],function(e){var t=e("zrender/tool/util"),i=function(e){this._directed=e||!1,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={}};i.prototype.isDirected=function(){return this._directed},i.prototype.addNode=function(e,t){if(this._nodesMap[e])return this._nodesMap[e];var n=new i.Node(e,t);return this.nodes.push(n),this._nodesMap[e]=n,n},i.prototype.getNodeById=function(e){return this._nodesMap[e]},i.prototype.addEdge=function(e,t,n){if("string"==typeof e&&(e=this._nodesMap[e]),"string"==typeof t&&(t=this._nodesMap[t]),e&&t){var a=e.id+"-"+t.id;if(this._edgesMap[a])return this._edgesMap[a];var o=new i.Edge(e,t,n);return this._directed&&(e.outEdges.push(o),t.inEdges.push(o)),e.edges.push(o),e!==t&&t.edges.push(o),this.edges.push(o),this._edgesMap[a]=o,o}},i.prototype.removeEdge=function(e){var i=e.node1,n=e.node2,a=i.id+"-"+n.id;this._directed&&(i.outEdges.splice(t.indexOf(i.outEdges,e),1),n.inEdges.splice(t.indexOf(n.inEdges,e),1)),i.edges.splice(t.indexOf(i.edges,e),1),i!==n&&n.edges.splice(t.indexOf(n.edges,e),1),delete this._edgesMap[a],this.edges.splice(t.indexOf(this.edges,e),1)},i.prototype.getEdge=function(e,t){return"string"!=typeof e&&(e=e.id),"string"!=typeof t&&(t=t.id),this._directed?this._edgesMap[e+"-"+t]:this._edgesMap[e+"-"+t]||this._edgesMap[t+"-"+e]},i.prototype.removeNode=function(e){if("string"!=typeof e||(e=this._nodesMap[e])){delete this._nodesMap[e.id],this.nodes.splice(t.indexOf(this.nodes,e),1);for(var i=0;in;)e.call(t,this.nodes[n],n)?n++:(this.removeNode(this.nodes[n]),i--)},i.prototype.filterEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;)e.call(t,this.edges[n],n)?n++:(this.removeEdge(this.edges[n]),i--)},i.prototype.eachNode=function(e,t){for(var i=this.nodes.length,n=0;i>n;n++)this.nodes[n]&&e.call(t,this.nodes[n],n)},i.prototype.eachEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;n++)this.edges[n]&&e.call(t,this.edges[n],n)},i.prototype.clear=function(){this.nodes.length=0,this.edges.length=0,this._nodesMap={},this._edgesMap={}},i.prototype.breadthFirstTraverse=function(e,t,i,n){if("string"==typeof t&&(t=this._nodesMap[t]),t){var a="edges";"out"===i?a="outEdges":"in"===i&&(a="inEdges");for(var o=0;or;r++){var s=o.addNode(e[r].id,e[r]);s.data.value=0,n&&(s.data.outValue=s.data.inValue=0)}for(var r=0;a>r;r++)for(var l=0;a>l;l++){var h=t[r][l];n&&(o.nodes[r].data.outValue+=h,o.nodes[l].data.inValue+=h),o.nodes[r].data.value+=h,o.nodes[l].data.value+=h}for(var r=0;a>r;r++)for(var l=r;a>l;l++){var h=t[r][l];if(0!==h){var m=o.nodes[r],V=o.nodes[l],U=o.addEdge(m,V,{});if(U.data.weight=h,r!==l&&n&&t[l][r]){var d=o.addEdge(V,m,{});d.data.weight=t[l][r]}}}return o}},i}),i("echarts/layout/Chord",["require"],function(){var e=function(e){e=e||{},this.sort=e.sort||null,this.sortSub=e.sortSub||null,this.padding=.05,this.startAngle=e.startAngle||0,this.clockWise=null==e.clockWise?!1:e.clockWise,this.center=e.center||[0,0],this.directed=!0};e.prototype.run=function(e){e instanceof Array||(e=[e]);var n=e.length;if(n){for(var a=e[0],o=a.nodes.length,r=[],s=0,l=0;o>l;l++){var h=a.nodes[l],m={size:0,subGroups:[],node:h};r.push(m);for(var V=0,U=0;Ul;l++){var m=r[l];m.node.layout.startAngle=f,m.node.layout.endAngle=f+k*m.size*b,m.node.layout.subGroups=[];for(var u=0;un;n++){var o=i[n];if(o.type===d.CHART_TYPE_FORCE){if(i[n]=this.reformOption(i[n]),e=i[n].name||"",this.selectedMap[e]=t?t.isSelected(e):!0,!this.selectedMap[e])continue;this.buildMark(n),this._initSerie(o,n);break}}this.animationEffect()},_getNodeCategory:function(e,t){return e.categories&&e.categories[t.category||0]},_getNodeQueryTarget:function(e,t,i){i=i||"normal";var n=this._getNodeCategory(e,t)||{};return[t.itemStyle&&t.itemStyle[i],n&&n.itemStyle&&n.itemStyle[i],e.itemStyle[i].nodeStyle]},_getEdgeQueryTarget:function(e,t,i){return i=i||"normal",[t.itemStyle&&t.itemStyle[i],e.itemStyle[i].linkStyle]},_initSerie:function(e,t){this._temperature=1,e.matrix?this._graph=this._getSerieGraphFromDataMatrix(e):e.links&&(this._graph=this._getSerieGraphFromNodeLinks(e)),this._buildLinkShapes(e,t),this._buildNodeShapes(e,t);var i=e.roam===!0||"move"===e.roam,n=e.roam===!0||"scale"===e.roam;this.zr.modLayer(this.getZlevelBase(),{panable:i,zoomable:n}),(this.query("markPoint.effect.show")||this.query("markLine.effect.show"))&&this.zr.modLayer(d.EFFECT_ZLEVEL,{panable:i,zoomable:n}),this._initLayout(e),this._step()},_getSerieGraphFromDataMatrix:function(e){for(var t=[],i=0,n=[],a=0;an;n++){var o=i[n];if(o&&!o.ignore){var r=this._getNodeCategory(e,o),l=r?r.name:o.name;if(this.selectedMap[l]=this.isSelected(l),this.selectedMap[l]){var h=t.addNode(o.name,o);h.rawIndex=n}}}for(var n=0,a=e.links.length;a>n;n++){var m=e.links[n],V=m.source,U=m.target;"number"==typeof V&&(V=i[V],V&&(V=V.name)),"number"==typeof U&&(U=i[U],U&&(U=U.name));var d=t.addEdge(V,U,m);d&&(d.rawIndex=n)}return t.eachNode(function(e){var t=e.data.value;if(null==t){t=0;for(var i=0;ih;h++){var m=t.nodes[h];l=Math.max(m.layout.size,l),s=Math.min(m.layout.size,s)}for(var V=l-s,h=0;i>h;h++){var m=t.nodes[h];V>0?(m.layout.size=(m.layout.size-s)*(a-n)/V+n,m.layout.mass=m.layout.size/a):(m.layout.size=(a-n)/2,m.layout.mass=.5)}for(var h=0;i>h;h++){var m=t.nodes[h];if("undefined"!=typeof this.__nodePositionMap[m.id])m.layout.position=y.create(),y.copy(m.layout.position,this.__nodePositionMap[m.id]);else if("undefined"!=typeof m.data.initial)m.layout.position=y.create(),y.copy(m.layout.position,m.data.initial);else{var U=this._layout.center,d=Math.min(this._layout.width,this._layout.height);m.layout.position=o(U[0],U[1],.8*d)}var p=m.shape.style,c=m.layout.size;p.width=p.width||2*c,p.height=p.height||2*c,p.x=-p.width/2,p.y=-p.height/2,y.copy(m.shape.position,m.layout.position)}i=t.edges.length,l=-(1/0);for(var h=0;i>h;h++){var u=t.edges[h];u.layout.weight>l&&(l=u.layout.weight)}for(var h=0;i>h;h++){var u=t.edges[h];u.layout.weight/=l}this._layout.init(t,e.useWorker)},_buildNodeShapes:function(e,t){var i=this._graph,n=this.query(e,"categories");i.eachNode(function(i){var a=this._getNodeCategory(e,i.data),o=[i.data,a,e],r=this._getNodeQueryTarget(e,i.data),s=this._getNodeQueryTarget(e,i.data,"emphasis"),l=new U({style:{x:0,y:0,color:this.deepQuery(r,"color"),brushType:"both",strokeColor:this.deepQuery(r,"strokeColor")||this.deepQuery(r,"borderColor"),lineWidth:this.deepQuery(r,"lineWidth")||this.deepQuery(r,"borderWidth")},highlightStyle:{color:this.deepQuery(s,"color"),strokeColor:this.deepQuery(s,"strokeColor")||this.deepQuery(s,"borderColor"),lineWidth:this.deepQuery(s,"lineWidth")||this.deepQuery(s,"borderWidth")},clickable:e.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()});l.style.color||(l.style.color=this.getColor(a?a.name:i.id)),l.style.iconType=this.deepQuery(o,"symbol");var h=this.deepQuery(o,"symbolSize")||0;"number"==typeof h&&(h=[h,h]),l.style.width=2*h[0],l.style.height=2*h[1],l.style.iconType.match("image")&&(l.style.image=l.style.iconType.replace(new RegExp("^image:\\/\\/"),""),l=new V({style:l.style,highlightStyle:l.highlightStyle,clickable:l.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()})),this.deepQuery(o,"itemStyle.normal.label.show")&&(l.style.text=null==i.data.label?i.id:i.data.label,l.style.textPosition=this.deepQuery(o,"itemStyle.normal.label.position"),l.style.textColor=this.deepQuery(o,"itemStyle.normal.label.textStyle.color"),l.style.textFont=this.getFont(this.deepQuery(o,"itemStyle.normal.label.textStyle")||{})),this.deepQuery(o,"itemStyle.emphasis.label.show")&&(l.highlightStyle.textPosition=this.deepQuery(o,"itemStyle.emphasis.label.position"),l.highlightStyle.textColor=this.deepQuery(o,"itemStyle.emphasis.label.textStyle.color"),l.highlightStyle.textFont=this.getFont(this.deepQuery(o,"itemStyle.emphasis.label.textStyle")||{})),this.deepQuery(o,"draggable")&&(this.setCalculable(l),l.dragEnableTime=0,l.draggable=!0,l.ondragstart=this.shapeHandler.ondragstart,l.ondragover=null);var m="";if("undefined"!=typeof i.category){var a=n[i.category];m=a&&a.name||""}p.pack(l,e,t,i.data,i.rawIndex,i.data.name||"",i.category),this.shapeList.push(l),this.zr.addShape(l),i.shape=l},this)},_buildLinkShapes:function(e,t){for(var i=this._graph,n=i.edges.length,a=0;n>a;a++){var o=i.edges[a],r=o.data,s=o.node1,l=o.node2,V=i.getEdge(l,s),d=this._getEdgeQueryTarget(e,r),u=this.deepQuery(d,"type");e.linkSymbol&&"none"!==e.linkSymbol&&(u="line");var y="line"===u?h:m,g=new y({style:{xStart:0,yStart:0,xEnd:0,yEnd:0},clickable:this.query(e,"clickable"),highlightStyle:{},zlevel:this.getZlevelBase(),z:this.getZBase()});if(V&&V.shape&&(g.style.offset=4,V.shape.style.offset=4),c.merge(g.style,this.query(e,"itemStyle.normal.linkStyle"),!0),c.merge(g.highlightStyle,this.query(e,"itemStyle.emphasis.linkStyle"),!0),"undefined"!=typeof r.itemStyle&&(r.itemStyle.normal&&c.merge(g.style,r.itemStyle.normal,!0),r.itemStyle.emphasis&&c.merge(g.highlightStyle,r.itemStyle.emphasis,!0)),g.style.lineWidth=g.style.lineWidth||g.style.width,g.style.strokeColor=g.style.strokeColor||g.style.color,g.highlightStyle.lineWidth=g.highlightStyle.lineWidth||g.highlightStyle.width,g.highlightStyle.strokeColor=g.highlightStyle.strokeColor||g.highlightStyle.color,p.pack(g,e,t,o.data,null==o.rawIndex?a:o.rawIndex,o.data.name||s.id+" - "+l.id,s.id,l.id),this.shapeList.push(g),this.zr.addShape(g),o.shape=g,e.linkSymbol&&"none"!==e.linkSymbol){var b=new U({style:{x:-5,y:0,width:e.linkSymbolSize[0],height:e.linkSymbolSize[1],iconType:e.linkSymbol,brushType:"fill",color:g.style.strokeColor},highlightStyle:{brushType:"fill"},position:[0,0],rotation:0,zlevel:this.getZlevelBase(),z:this.getZBase()});g._symbolShape=b,this.shapeList.push(b),this.zr.addShape(b)}}},_updateLinkShapes:function(){for(var e=y.create(),t=y.create(),i=y.create(),n=y.create(),a=this._graph.edges,o=0,r=a.length;r>o;o++){var s=a[o],l=s.node1.shape,h=s.node2.shape;y.copy(i,l.position),y.copy(n,h.position);var m=s.shape.style;if(y.sub(e,i,n),y.normalize(e,e),m.offset?(t[0]=e[1],t[1]=-e[0],y.scaleAndAdd(i,i,t,m.offset),y.scaleAndAdd(n,n,t,m.offset)):"bezier-curve"===s.shape.type&&(m.cpX1=(i[0]+n[0])/2-(n[1]-i[1])/4,m.cpY1=(i[1]+n[1])/2-(i[0]-n[0])/4),m.xStart=i[0],m.yStart=i[1],m.xEnd=n[0],m.yEnd=n[1],s.shape.modSelf(),s.shape._symbolShape){var V=s.shape._symbolShape;y.copy(V.position,n),y.scaleAndAdd(V.position,V.position,e,h.style.width/2+2);var U=Math.atan2(e[1],e[0]);V.rotation=Math.PI/2-U,V.modSelf()}}},_syncNodePositions:function(){for(var e=this._graph,t=0;t.01?this._layout.step(this._steps):this.messageCenter.dispatch(d.EVENT.FORCE_LAYOUT_END,{},{},this.myChart)},refresh:function(e){if(e&&(this.option=e,this.series=this.option.series),this.legend=this.component.legend,this.legend)this.getColor=function(e){return this.legend.getColor(e)},this.isSelected=function(e){return this.legend.isSelected(e)};else{var t={},i=0;this.getColor=function(e){return t[e]?t[e]:(t[e]||(t[e]=this.zr.getColor(i++)),t[e])},this.isSelected=function(){return!0}}this._init()},dispose:function(){this.clear(),this.shapeList=null,this.effectList=null,this._layout.dispose(),this._layout=null,this.__nodePositionMap={}},getPosition:function(){var e=[];return this._graph.eachNode(function(t){t.layout&&e.push({name:t.data.name,position:Array.prototype.slice.call(t.layout.position)})}),e}},c.inherits(t,r),e("../chart").define("force",t),t}),i("echarts/layout/Force",["require","./forceLayoutWorker","zrender/tool/vector"],function(e){function t(){if("undefined"!=typeof Worker&&"undefined"!=typeof Blob)try{var e=new Blob([n.getWorkerCode()]);i=window.URL.createObjectURL(e)}catch(t){i=""}return i}var i,n=e("./forceLayoutWorker"),a=e("zrender/tool/vector"),o=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},r="undefined"==typeof Float32Array?Array:Float32Array,s=function(e){"undefined"==typeof i&&t(),e=e||{},this.width=e.width||500,this.height=e.height||500,this.center=e.center||[this.width/2,this.height/2],this.ratioScaling=e.ratioScaling||!1,this.scaling=e.scaling||1,this.gravity="undefined"!=typeof e.gravity?e.gravity:1,this.large=e.large||!1,this.preventNodeOverlap=e.preventNodeOverlap||!1,this.preventNodeEdgeOverlap=e.preventNodeEdgeOverlap||!1,this.maxSpeedIncrease=e.maxSpeedIncrease||1,this.onupdate=e.onupdate||function(){},this.temperature=e.temperature||1,this.coolDown=e.coolDown||.99,this._layout=null,this._layoutWorker=null;var n=this,a=this._$onupdate;this._$onupdate=function(e){a.call(n,e)}};return s.prototype.updateConfig=function(){var e=this.width,t=this.height,i=Math.min(e,t),n={center:this.center,width:this.ratioScaling?e:i,height:this.ratioScaling?t:i,scaling:this.scaling||1,gravity:this.gravity||1,barnesHutOptimize:this.large,preventNodeOverlap:this.preventNodeOverlap,preventNodeEdgeOverlap:this.preventNodeEdgeOverlap,maxSpeedIncrease:this.maxSpeedIncrease};if(this._layoutWorker)this._layoutWorker.postMessage({cmd:"updateConfig",config:n});else for(var a in n)this._layout[a]=n[a]},s.prototype.init=function(e,t){if(this._layoutWorker&&(this._layoutWorker.terminate(),this._layoutWorker=null),i&&t)try{this._layoutWorker||(this._layoutWorker=new Worker(i),this._layoutWorker.onmessage=this._$onupdate),this._layout=null}catch(a){this._layoutWorker=null,this._layout||(this._layout=new n)}else this._layout||(this._layout=new n);this.temperature=1,this.graph=e;for(var o=e.nodes.length,s=new r(2*o),l=new r(o),h=new r(o),m=0;o>m;m++){var V=e.nodes[m];s[2*m]=V.layout.position[0],s[2*m+1]=V.layout.position[1],l[m]="undefined"==typeof V.layout.mass?1:V.layout.mass,h[m]="undefined"==typeof V.layout.size?1:V.layout.size,V.layout.__index=m}o=e.edges.length;for(var U=new r(2*o),d=new r(o),m=0;o>m;m++){var p=e.edges[m];U[2*m]=p.node1.layout.__index,U[2*m+1]=p.node2.layout.__index,d[m]=p.layout.weight||1}this._layoutWorker?this._layoutWorker.postMessage({cmd:"init",nodesPosition:s,nodesMass:l,nodesSize:h,edges:U,edgesWeight:d}):(this._layout.initNodes(s,l,h),this._layout.initEdges(U,d)),this.updateConfig()},s.prototype.step=function(e){var t=this.graph.nodes;if(this._layoutWorker){for(var i=new r(2*t.length),n=0;nn;n++)this.temperature*=this.coolDown}else{o(this._$onupdate);for(var n=0;nn;n++)this._layout.temperature=this.temperature,this._layout.update(),this.temperature*=this.coolDown}},s.prototype._$onupdate=function(e){if(this._layoutWorker){for(var t=new Float32Array(e.data),i=0;i0&&(a=1/Math.sqrt(a),e[0]=t[0]*a,e[1]=t[1]*a),e},negate:function(e,t){return e[0]=-t[0],e[1]=-t[1],e},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e},set:function(e,t,i){return e[0]=t,e[1]=i,e}}:e("zrender/tool/vector");var l="undefined"==typeof Float32Array?Array:Float32Array;if(t.prototype.beforeUpdate=function(){for(var e=0;e=e&&this.bbox[1]<=t&&this.bbox[3]>=t},t.prototype.setBBox=function(e,t,i,n){this.bbox[0]=e,this.bbox[1]=t,this.bbox[2]=i,this.bbox[3]=n,this.size=(i-e+n-t)/2},t.prototype._newSubRegion=function(){var e=this.subRegions[this.nSubRegions];return e||(e=new t,this.subRegions[this.nSubRegions]=e),this.nSubRegions++,e},t.prototype._addNodeToSubRegion=function(e){var t=this.findSubRegion(e.position[0],e.position[1]),i=this.bbox;if(!t){var n=(i[0]+i[2])/2,a=(i[1]+i[3])/2,o=(i[2]-i[0])/2,r=(i[3]-i[1])/2,s=e.position[0]>=n?1:0,l=e.position[1]>=a?1:0,t=this._newSubRegion();t.setBBox(s*o+i[0],l*r+i[1],(s+1)*o+i[0],(l+1)*r+i[1])}t.addNode(e)},t.prototype._updateCenterOfMass=function(e){null==this.centerOfMass&&(this.centerOfMass=r.create());var t=this.centerOfMass[0]*this.mass,i=this.centerOfMass[1]*this.mass;t+=e.position[0]*e.mass,i+=e.position[1]*e.mass,this.mass+=e.mass,this.centerOfMass[0]=t/this.mass,this.centerOfMass[1]=i/this.mass},a.prototype.nodeToNodeRepulsionFactor=function(e,t,i){return i*i*e/t},a.prototype.edgeToNodeRepulsionFactor=function(e,t,i){return i*e/t},a.prototype.attractionFactor=function(e,t,i){return e*t/i},a.prototype.initNodes=function(e,t,n){this.temperature=1;var a=e.length/2;this.nodes.length=0;for(var o="undefined"!=typeof n,r=0;a>r;r++){var s=new i;s.position[0]=e[2*r],s.position[1]=e[2*r+1],s.mass=t[r],o&&(s.size=n[r]),this.nodes.push(s)}this._massArr=t,o&&(this._sizeArr=n)},a.prototype.initEdges=function(e,t){var i=e.length/2;this.edges.length=0;for(var a="undefined"!=typeof t,o=0;i>o;o++){var r=e[2*o],s=e[2*o+1],l=this.nodes[r],h=this.nodes[s];if(l&&h){l.outDegree++,h.inDegree++;var m=new n(l,h);a&&(m.weight=t[o]),this.edges.push(m)}}},a.prototype.update=function(){var e=this.nodes.length;if(this.updateBBox(),this._k=.4*this.scaling*Math.sqrt(this.width*this.height/e),this.barnesHutOptimize){this._rootRegion.setBBox(this.bbox[0],this.bbox[1],this.bbox[2],this.bbox[3]),this._rootRegion.beforeUpdate();for(var t=0;e>t;t++)this._rootRegion.addNode(this.nodes[t]);this._rootRegion.afterUpdate()}else{var i=0,n=this._rootRegion.centerOfMass;r.set(n,0,0);for(var t=0;e>t;t++){var a=this.nodes[t];i+=a.mass,r.scaleAndAdd(n,n,a.position,a.mass); + +}i>0&&r.scale(n,n,1/i)}this.updateForce(),this.updatePosition()},a.prototype.updateForce=function(){for(var e=this.nodes.length,t=0;e>t;t++){var i=this.nodes[t];r.copy(i.forcePrev,i.force),r.copy(i.speedPrev,i.speed),r.set(i.force,0,0)}this.updateNodeNodeForce(),this.gravity>0&&this.updateGravityForce(),this.updateEdgeForce(),this.preventNodeEdgeOverlap&&this.updateNodeEdgeForce()},a.prototype.updatePosition=function(){for(var e=this.nodes.length,t=r.create(),i=0;e>i;i++){var n=this.nodes[i],a=n.speed;r.scale(n.force,n.force,1/30);var o=r.len(n.force)+.1,s=Math.min(o,500)/o;r.scale(n.force,n.force,s),r.add(a,a,n.force),r.scale(a,a,this.temperature),r.sub(t,a,n.speedPrev);var l=r.len(t);if(l>0){r.scale(t,t,1/l);var h=r.len(n.speedPrev);h>0&&(l=Math.min(l/h,this.maxSpeedIncrease)*h,r.scaleAndAdd(a,n.speedPrev,t,l))}var m=r.len(a),s=Math.min(m,100)/(m+.1);r.scale(a,a,s),r.add(n.position,n.position,a)}},a.prototype.updateNodeNodeForce=function(){for(var e=this.nodes.length,t=0;e>t;t++){var i=this.nodes[t];if(this.barnesHutOptimize)this.applyRegionToNodeRepulsion(this._rootRegion,i);else for(var n=t+1;e>n;n++){var a=this.nodes[n];this.applyNodeToNodeRepulsion(i,a,!1)}}},a.prototype.updateGravityForce=function(){for(var e=0;ethis.barnesHutTheta*t.size*t.size){var a=this._k*this._k*(i.mass+t.mass)/(n+1);r.scaleAndAdd(i.force,i.force,e,2*a)}else for(var o=0;o0?o=this.nodeToNodeRepulsionFactor(s,l,this._k):0>=l&&(o=this._k*this._k*10*s)):o=this.nodeToNodeRepulsionFactor(s,l,this._k),n||r.scaleAndAdd(t.force,t.force,e,2*o),r.scaleAndAdd(i.force,i.force,e,2*-o)}}}}(),a.prototype.applyEdgeAttraction=function(){var e=r.create();return function(t){var i=t.node1,n=t.node2;r.sub(e,i.position,n.position);var a,o=r.len(e);a=0===this.edgeWeightInfluence?1:1==this.edgeWeightInfluence?t.weight:Math.pow(t.weight,this.edgeWeightInfluence);var s;if(!(this.preventOverlap&&(o=o-i.size-n.size,0>=o))){var s=this.attractionFactor(a,o,this._k);r.scaleAndAdd(i.force,i.force,e,-s),r.scaleAndAdd(n.force,n.force,e,s)}}}(),a.prototype.applyNodeGravity=function(){var e=r.create();return function(t){r.sub(e,this.center,t.position),this.width>this.height?e[1]*=this.width/this.height:e[0]*=this.height/this.width;var i=r.len(e)/100;this.strongGravity?r.scaleAndAdd(t.force,t.force,e,i*this.gravity*t.mass):r.scaleAndAdd(t.force,t.force,e,this.gravity*t.mass/(i+1))}}(),a.prototype.applyEdgeToNodeRepulsion=function(){var e=r.create(),t=r.create(),i=r.create();return function(n,a){var o=n.node1,s=n.node2;if(o!==a&&s!==a){r.sub(e,s.position,o.position),r.sub(t,a.position,o.position);var l=r.len(e);r.scale(e,e,1/l);var h=r.dot(e,t);if(!(0>h||h>l)){r.scaleAndAdd(i,o.position,e,h);var m=r.dist(i,a.position)-a.size,V=this.edgeToNodeRepulsionFactor(a.mass,Math.max(m,.1),100);r.sub(e,a.position,i),r.normalize(e,e),r.scaleAndAdd(a.force,a.force,e,V),r.scaleAndAdd(o.force,o.force,e,-V),r.scaleAndAdd(s.force,s.force,e,-V)}}}}(),a.prototype.updateBBox=function(){for(var e=1/0,t=1/0,i=-(1/0),n=-(1/0),a=0;an;n++){var o=h.nodes[n];o.position[0]=t[2*n],o.position[1]=t[2*n+1]}}else switch(e.data.cmd){case"init":h||(h=new a),h.initNodes(e.data.nodesPosition,e.data.nodesMass,e.data.nodesSize),h.initEdges(e.data.edges,e.data.edgesWeight);break;case"updateConfig":if(h)for(var r in e.data.config)h[r]=e.data.config[r];break;case"update":var s=e.data.steps;if(h){var i=h.nodes.length,t=new Float32Array(2*i);h.temperature=e.data.temperature;for(var n=0;s>n;n++)h.update(),h.temperature*=e.data.coolDown;for(var n=0;i>n;n++){var o=h.nodes[n];t[2*n]=o.position[0],t[2*n+1]=o.position[1]}self.postMessage(t.buffer,[t.buffer])}else{var l=new Float32Array;self.postMessage(l.buffer,[l.buffer])}}}}return a}),i("echarts/chart/map",["require","./base","zrender/shape/Text","zrender/shape/Path","zrender/shape/Circle","zrender/shape/Rectangle","zrender/shape/Line","zrender/shape/Polygon","zrender/shape/Ellipse","zrender/shape/Image","../component/dataRange","../component/roamController","../layer/heatmap","../config","../util/ecData","zrender/tool/util","zrender/config","zrender/tool/event","../util/mapData/params","../util/mapData/textFixed","../util/mapData/geoCoord","../util/projection/svg","../util/projection/normal","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._onmousewheel=function(e){return r.__onmousewheel(e)},r._onmousedown=function(e){return r.__onmousedown(e)},r._onmousemove=function(e){return r.__onmousemove(e)},r._onmouseup=function(e){return r.__onmouseup(e)},r._onroamcontroller=function(e){return r.__onroamcontroller(e)},r._ondrhoverlink=function(e){return r.__ondrhoverlink(e)},this._isAlive=!0,this._selectedMode={},this._activeMapType={},this._clickable={},this._hoverable={},this._showLegendSymbol={},this._selected={},this._mapTypeMap={},this._mapDataMap={},this._nameMap={},this._specialArea={},this._refreshDelayTicket,this._mapDataRequireCounter,this._markAnimation=!1,this._hoverLinkMap={},this._roamMap={},this._scaleLimitMap={},this._mx,this._my,this._mousedown,this._justMove,this._curMapType,this.refresh(a),this.zr.on(c.EVENT.MOUSEWHEEL,this._onmousewheel),this.zr.on(c.EVENT.MOUSEDOWN,this._onmousedown),t.bind(U.EVENT.ROAMCONTROLLER,this._onroamcontroller),t.bind(U.EVENT.DATA_RANGE_HOVERLINK,this._ondrhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Path"),o=e("zrender/shape/Circle"),r=e("zrender/shape/Rectangle"),s=e("zrender/shape/Line"),l=e("zrender/shape/Polygon"),h=e("zrender/shape/Ellipse"),m=e("zrender/shape/Image");e("../component/dataRange"),e("../component/roamController");var V=e("../layer/heatmap"),U=e("../config");U.map={zlevel:0,z:2,mapType:"china",showLegendSymbol:!0,dataRangeHoverLink:!0,hoverable:!0,clickable:!0,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,areaStyle:{color:"#ccc"},label:{show:!1,textStyle:{color:"rgb(139,69,19)"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,areaStyle:{color:"rgba(255,215,0,0.8)"},label:{show:!1,textStyle:{color:"rgb(100,0,0)"}}}}};var d=e("../util/ecData"),p=e("zrender/tool/util"),c=e("zrender/config"),u=e("zrender/tool/event"),y=e("../util/mapData/params").params,g=e("../util/mapData/textFixed"),b=e("../util/mapData/geoCoord");return t.prototype={type:U.CHART_TYPE_MAP,_buildShape:function(){var e=this.series;this.selectedMap={},this._activeMapType={};for(var t,i,n,a,o=this.component.legend,r={},s={},l={},h={},m=0,V=e.length;V>m;m++)if(e[m].type==U.CHART_TYPE_MAP&&(e[m]=this.reformOption(e[m]),i=e[m].mapType,s[i]=s[i]||{},s[i][m]=!0,l[i]=l[i]||e[m].mapValuePrecision,this._scaleLimitMap[i]=this._scaleLimitMap[i]||{},e[m].scaleLimit&&p.merge(this._scaleLimitMap[i],e[m].scaleLimit,!0),this._roamMap[i]=e[m].roam||this._roamMap[i],(null==this._hoverLinkMap[i]||this._hoverLinkMap[i])&&(this._hoverLinkMap[i]=e[m].dataRangeHoverLink),this._nameMap[i]=this._nameMap[i]||{},e[m].nameMap&&p.merge(this._nameMap[i],e[m].nameMap,!0),this._activeMapType[i]=!0,e[m].textFixed&&p.merge(g,e[m].textFixed,!0),e[m].geoCoord&&p.merge(b,e[m].geoCoord,!0),this._selectedMode[i]=this._selectedMode[i]||e[m].selectedMode,(null==this._hoverable[i]||this._hoverable[i])&&(this._hoverable[i]=e[m].hoverable),(null==this._clickable[i]||this._clickable[i])&&(this._clickable[i]=e[m].clickable),(null==this._showLegendSymbol[i]||this._showLegendSymbol[i])&&(this._showLegendSymbol[i]=e[m].showLegendSymbol),h[i]=h[i]||e[m].mapValueCalculation,t=e[m].name,this.selectedMap[t]=o?o.isSelected(t):!0,this.selectedMap[t])){r[i]=r[i]||{},n=e[m].data;for(var d=0,c=n.length;c>d;d++){a=this._nameChange(i,n[d].name),r[i][a]=r[i][a]||{seriesIndex:[],valueMap:{},precision:0};for(var u in n[d])"value"!=u?r[i][a][u]=n[d][u]:isNaN(n[d].value)||(null==r[i][a].value&&(r[i][a].value=0),r[i][a].precision=Math.max(this.getPrecision(+n[d].value),r[i][a].precision),r[i][a].value+=+n[d].value,r[i][a].valueMap[m]=+n[d].value);r[i][a].seriesIndex.push(m)}}this._mapDataRequireCounter=0;for(var f in r)this._mapDataRequireCounter++;this._clearSelected(),0===this._mapDataRequireCounter&&(this.clear(),this.zr&&this.zr.delShape(this.lastShapeList),this.lastShapeList=[]);for(var f in r){for(var c in r[f]){"average"==h[f]&&(r[f][c].value/=r[f][c].seriesIndex.length);var k=r[f][c].value;null!=k&&(r[f][c].value=k.toFixed(null==l[f]?r[f][c].precision:l[f])-0)}this._mapDataMap[f]=this._mapDataMap[f]||{},this._mapDataMap[f].mapData?this._mapDataCallback(f,r[f],s[f])(this._mapDataMap[f].mapData):y[f.replace(/\|.*/,"")].getGeoJson&&(this._specialArea[f]=y[f.replace(/\|.*/,"")].specialArea||this._specialArea[f],y[f.replace(/\|.*/,"")].getGeoJson(this._mapDataCallback(f,r[f],s[f])))}},_mapDataCallback:function(t,i,n){var a=this;return function(o){a._isAlive&&null!=a._activeMapType[t]&&(-1!=t.indexOf("|")&&(o=a._getSubMapData(t,o)),a._mapDataMap[t].mapData=o,o.firstChild?(a._mapDataMap[t].rate=1,a._mapDataMap[t].projection=e("../util/projection/svg")):(a._mapDataMap[t].rate=.75,a._mapDataMap[t].projection=e("../util/projection/normal")),a._buildMap(t,a._getProjectionData(t,o,n),i,n),a._buildMark(t,n),--a._mapDataRequireCounter<=0&&(a.addShapeList(),a.zr.refreshNextFrame()),a._buildHeatmap(t))}},_clearSelected:function(){for(var e in this._selected)this._activeMapType[this._mapTypeMap[e]]||(delete this._selected[e],delete this._mapTypeMap[e])},_getSubMapData:function(e,t){for(var i=e.replace(/^.*\|/,""),n=t.features,a=0,o=n.length;o>a;a++)if(n[a].properties&&n[a].properties.name==i){n=n[a],"United States of America"==i&&n.geometry.coordinates.length>1&&(n={geometry:{coordinates:n.geometry.coordinates.slice(5,6),type:n.geometry.type},id:n.id,properties:n.properties,type:n.type});break}return{type:"FeatureCollection",features:[n]}},_getProjectionData:function(e,t,i){var n,a=this._mapDataMap[e].projection,o=[],r=this._mapDataMap[e].bbox||a.getBbox(t,this._specialArea[e]);n=this._mapDataMap[e].hasRoam?this._mapDataMap[e].transform:this._getTransform(r,i,this._mapDataMap[e].rate);var s,l=this._mapDataMap[e].lastTransform||{scale:{}};n.left!=l.left||n.top!=l.top||n.scale.x!=l.scale.x||n.scale.y!=l.scale.y?(s=a.geoJson2Path(t,n,this._specialArea[e]),l=p.clone(n)):(n=this._mapDataMap[e].transform,s=this._mapDataMap[e].pathArray),this._mapDataMap[e].bbox=r,this._mapDataMap[e].transform=n,this._mapDataMap[e].lastTransform=l,this._mapDataMap[e].pathArray=s;for(var h=[n.left,n.top],m=0,V=s.length;V>m;m++)o.push(this._getSingleProvince(e,s[m],h));if(this._specialArea[e])for(var U in this._specialArea[e])o.push(this._getSpecialProjectionData(e,t,U,this._specialArea[e][U],h));if("china"==e){var d=this.geo2pos(e,b["南海诸岛"]||y["南海诸岛"].textCoord),c=n.scale.x/10.5,u=[32*c+d[0],83*c+d[1]];g["南海诸岛"]&&(u[0]+=g["南海诸岛"][0],u[1]+=g["南海诸岛"][1]),o.push({name:this._nameChange(e,"南海诸岛"),path:y["南海诸岛"].getPath(d,c),position:h,textX:u[0],textY:u[1]})}return o},_getSpecialProjectionData:function(t,i,n,a,o){i=this._getSubMapData("x|"+n,i);var r=e("../util/projection/normal"),s=r.getBbox(i),l=this.geo2pos(t,[a.left,a.top]),h=this.geo2pos(t,[a.left+a.width,a.top+a.height]),m=Math.abs(h[0]-l[0]),V=Math.abs(h[1]-l[1]),U=s.width,d=s.height,p=m/.75/U,c=V/d;p>c?(p=.75*c,m=U*p):(c=p,p=.75*c,V=d*c);var u={OffsetLeft:l[0],OffsetTop:l[1],scale:{x:p,y:c}},y=r.geoJson2Path(i,u);return this._getSingleProvince(t,y[0],o)},_getSingleProvince:function(e,t,i){var n,a=t.properties.name,o=g[a]||[0,0];if(b[a])n=this.geo2pos(e,b[a]);else if(t.cp)n=[t.cp[0]+o[0],t.cp[1]+o[1]];else{var r=this._mapDataMap[e].bbox;n=this.geo2pos(e,[r.left+r.width/2,r.top+r.height/2]),n[0]+=o[0],n[1]+=o[1]}return t.name=this._nameChange(e,a),t.position=i,t.textX=n[0],t.textY=n[1],t},_getTransform:function(e,t,i){var n,a,o,r,s,l,h,m=this.series,V=this.zr.getWidth(),U=this.zr.getHeight(),d=Math.round(.02*Math.min(V,U));for(var p in t)n=m[p].mapLocation||{},o=n.x||o,s=n.y||s,l=n.width||l,h=n.height||h;a=this.parsePercent(o,V),a=isNaN(a)?d:a,r=this.parsePercent(s,U),r=isNaN(r)?d:r,l=null==l?V-a-2*d:this.parsePercent(l,V),h=null==h?U-r-2*d:this.parsePercent(h,U);var c=e.width,u=e.height,y=l/i/c,g=h/u;if(y>g?(y=g*i,l=c*y):(g=y,y=g*i,h=u*g),isNaN(o))switch(o=o||"center",o+""){case"center":a=Math.floor((V-l)/2);break;case"right":a=V-l}if(isNaN(s))switch(s=s||"center",s+""){case"center":r=Math.floor((U-h)/2);break;case"bottom":r=U-h}return{left:a,top:r,width:l,height:h,baseScale:1,scale:{x:y,y:g}}},_buildMap:function(e,t,i,m){for(var V,c,u,y,g,b,f,k,x,_,L,W=this.series,X=this.component.legend,v=this.component.dataRange,w=0,K=t.length;K>w;w++){if(k=p.clone(t[w]),x={name:k.name,path:k.path,position:p.clone(k.position)},c=k.name,u=i[c]){g=[u],V="";for(var I=0,J=u.seriesIndex.length;J>I;I++){var C=W[u.seriesIndex[I]];g.push(C),V+=C.name+" ",X&&this._showLegendSymbol[e]&&X.hasColor(C.name)&&this.shapeList.push(new o({zlevel:C.zlevel,z:C.z+1,position:p.clone(k.position),_mapType:e,style:{x:k.textX+3+7*I,y:k.textY-10,r:3,color:X.getColor(C.name)},hoverable:!1}))}y=u.value}else{u={name:c,value:"-"},V="",g=[];for(var S in m)g.push(W[S]);y="-"}switch(this.ecTheme.map&&g.push(this.ecTheme.map),g.push(U.map),b=v&&!isNaN(y)?v.getColor(y):null,k.color=k.color||b||this.getItemStyleColor(this.deepQuery(g,"itemStyle.normal.color"),u.seriesIndex,-1,u)||this.deepQuery(g,"itemStyle.normal.areaStyle.color"),k.strokeColor=k.strokeColor||this.deepQuery(g,"itemStyle.normal.borderColor"),k.lineWidth=k.lineWidth||this.deepQuery(g,"itemStyle.normal.borderWidth"),x.color=this.getItemStyleColor(this.deepQuery(g,"itemStyle.emphasis.color"),u.seriesIndex,-1,u)||this.deepQuery(g,"itemStyle.emphasis.areaStyle.color")||k.color,x.strokeColor=this.deepQuery(g,"itemStyle.emphasis.borderColor")||k.strokeColor,x.lineWidth=this.deepQuery(g,"itemStyle.emphasis.borderWidth")||k.lineWidth,k.brushType=x.brushType=k.brushType||"both",k.lineJoin=x.lineJoin="round",k._name=x._name=c,f=this.deepQuery(g,"itemStyle.normal.label.textStyle"),L={zlevel:this.getZlevelBase(),z:this.getZBase()+1,position:p.clone(k.position),_mapType:e,_geo:this.pos2geo(e,[k.textX,k.textY]),style:{brushType:"fill",x:k.textX,y:k.textY,text:this.getLabelText(c,y,g,"normal"),_name:c,textAlign:"center",color:this.deepQuery(g,"itemStyle.normal.label.show")?this.deepQuery(g,"itemStyle.normal.label.textStyle.color"):"rgba(0,0,0,0)",textFont:this.getFont(f)}},L._style=p.clone(L.style),L.highlightStyle=p.clone(L.style),this.deepQuery(g,"itemStyle.emphasis.label.show")?(L.highlightStyle.text=this.getLabelText(c,y,g,"emphasis"),L.highlightStyle.color=this.deepQuery(g,"itemStyle.emphasis.label.textStyle.color")||L.style.color,f=this.deepQuery(g,"itemStyle.emphasis.label.textStyle")||f,L.highlightStyle.textFont=this.getFont(f)):L.highlightStyle.color="rgba(0,0,0,0)",_={zlevel:this.getZlevelBase(),z:this.getZBase(),position:p.clone(k.position),style:k,highlightStyle:x,_style:p.clone(k),_mapType:e},null!=k.scale&&(_.scale=p.clone(k.scale)),L=new n(L),_.style.shapeType){case"rectangle":_=new r(_);break;case"line":_=new s(_);break;case"circle":_=new o(_);break;case"polygon":_=new l(_);break;case"ellipse":_=new h(_);break;default:_=new a(_),_.buildPathArray&&(_.style.pathArray=_.buildPathArray(_.style.path))}(this._selectedMode[e]&&this._selected[c]&&u.selected!==!1||u.selected===!0)&&(L.style=L.highlightStyle,_.style=_.highlightStyle),L.clickable=_.clickable=this._clickable[e]&&(null==u.clickable||u.clickable),this._selectedMode[e]&&(this._selected[c]=null!=this._selected[c]?this._selected[c]:u.selected,this._mapTypeMap[c]=e,(null==u.selectable||u.selectable)&&(_.clickable=L.clickable=!0,_.onclick=L.onclick=this.shapeHandler.onclick)),this._hoverable[e]&&(null==u.hoverable||u.hoverable)?(L.hoverable=_.hoverable=!0,_.hoverConnect=L.id,L.hoverConnect=_.id):L.hoverable=_.hoverable=!1,d.pack(L,{name:V,tooltip:this.deepQuery(g,"tooltip")},0,u,0,c),this.shapeList.push(L),d.pack(_,{name:V,tooltip:this.deepQuery(g,"tooltip")},0,u,0,c),this.shapeList.push(_)}},_buildMark:function(e,t){this._seriesIndexToMapType=this._seriesIndexToMapType||{},this.markAttachStyle=this.markAttachStyle||{};var i=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top];"none"==e&&(i=[0,0]);for(var n in t)this._seriesIndexToMapType[n]=e,this.markAttachStyle[n]={position:i,_mapType:e},this.buildMark(n)},_buildHeatmap:function(e){for(var t=this.series,i=0,n=t.length;n>i;i++)if(t[i].heatmap){var a=t[i].heatmap.data;if(t[i].heatmap.needsTransform===!1){for(var o=[],r=0,s=a.length;s>r;++r)o.push([a[r][3],a[r][4],a[r][2]]);var l=[0,0]}else{var h=t[i].heatmap._geoData;if(void 0===h){t[i].heatmap._geoData=[];for(var r=0,s=a.length;s>r;++r)t[i].heatmap._geoData[r]=a[r];h=t[i].heatmap._geoData}for(var s=a.length,U=0;s>U;++U)a[U]=this.geo2pos(e,[h[U][0],h[U][1]]);var l=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top]}var d=new V(t[i].heatmap),p=d.getCanvas(a[0][3]?o:a,this.zr.getWidth(),this.zr.getHeight()),c=new m({zlevel:this.getZlevelBase(),z:this.getZBase()+1,position:l,scale:[1,1],hoverable:!1,style:{x:0,y:0,image:p,width:p.width,height:p.height}});c.type="heatmap",c._mapType=e,this.shapeList.push(c),this.zr.addShape(c)}},getMarkCoord:function(e,t){return t.geoCoord||b[t.name]?this.geo2pos(this._seriesIndexToMapType[e],t.geoCoord||b[t.name]):[0,0]},getMarkGeo:function(e){return e.geoCoord||b[e.name]},_nameChange:function(e,t){return this._nameMap[e][t]||t},getLabelText:function(e,t,i,n){var a=this.deepQuery(i,"itemStyle."+n+".label.formatter");return a?"function"==typeof a?a.call(this.myChart,e,t):"string"==typeof a?(a=a.replace("{a}","{a0}").replace("{b}","{b0}"),a=a.replace("{a0}",e).replace("{b0}",t)):void 0:e},_findMapTypeByPos:function(e,t){var i,n,a,o,r;for(var s in this._mapDataMap)if(i=this._mapDataMap[s].transform,i&&this._roamMap[s]&&this._activeMapType[s]&&(n=i.left,a=i.top,o=i.width,r=i.height,e>=n&&n+o>=e&&t>=a&&a+r>=t))return s},__onmousewheel:function(e){function t(e,t){for(var i=0;in;n++){var o=this.shapeList[n];if(o.__animating)return}var r,s,l=e.event,h=u.getX(l),m=u.getY(l),V=u.getDelta(l),d=e.mapTypeControl;d||(d={},s=this._findMapTypeByPos(h,m),s&&this._roamMap[s]&&"move"!=this._roamMap[s]&&(d[s]=!0));var p=!1;for(s in d)if(d[s]){p=!0;var c=this._mapDataMap[s].transform,y=c.left,g=c.top,b=c.width,f=c.height,k=this.pos2geo(s,[h-y,m-g]);if(V>0){if(r=1.2,null!=this._scaleLimitMap[s].max&&c.baseScale>=this._scaleLimitMap[s].max)continue}else if(r=1/1.2,null!=this._scaleLimitMap[s].min&&c.baseScale<=this._scaleLimitMap[s].min)continue;c.baseScale*=r,c.scale.x*=r,c.scale.y*=r,c.width=b*r,c.height=f*r,this._mapDataMap[s].hasRoam=!0,this._mapDataMap[s].transform=c,k=this.geo2pos(s,k),c.left-=k[0]-(h-y),c.top-=k[1]-(m-g),this._mapDataMap[s].transform=c,this.clearEffectShape(!0);for(var n=0,a=this.shapeList.length;a>n;n++){var o=this.shapeList[n];if(o._mapType==s){var x=o.type,_=o.style;switch(o.position[0]=c.left,o.position[1]=c.top,x){case"path":case"symbol":case"circle":case"rectangle":case"polygon":case"line":case"ellipse":case"heatmap":o.scale[0]*=r,o.scale[1]*=r;break;case"mark-line":i(_,r);break;case"polyline":t(_,r);break;case"shape-bundle":for(var L=0;L<_.shapeList.length;L++){var W=_.shapeList[L];"mark-line"==W.type?i(W.style,r):"polyline"==W.type&&t(W.style,r)}break;case"icon":case"image":k=this.geo2pos(s,o._geo),_.x=_._x=k[0]-_.width/2,_.y=_._y=k[1]-_.height/2;break;default:k=this.geo2pos(s,o._geo),_.x=k[0],_.y=k[1],"text"==x&&(o._style.x=o.highlightStyle.x=k[0],o._style.y=o.highlightStyle.y=k[1])}this.zr.modShape(o.id)}}}if(p){u.stop(l),this.zr.refreshNextFrame();var X=this;clearTimeout(this._refreshDelayTicket),this._refreshDelayTicket=setTimeout(function(){X&&X.shapeList&&X.animationEffect()},100),this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"scale"},this.myChart)}}},__onmousedown:function(e){if(!(this.shapeList.length<=0)){var t=e.target;if(!t||!t.draggable){var i=e.event,n=u.getX(i),a=u.getY(i),o=this._findMapTypeByPos(n,a);if(o&&this._roamMap[o]&&"scale"!=this._roamMap[o]){this._mousedown=!0,this._mx=n,this._my=a,this._curMapType=o,this.zr.on(c.EVENT.MOUSEUP,this._onmouseup);var r=this;setTimeout(function(){r.zr.on(c.EVENT.MOUSEMOVE,r._onmousemove)},100)}}}},__onmousemove:function(e){if(this._mousedown&&this._isAlive){var t=e.event,i=u.getX(t),n=u.getY(t),a=this._mapDataMap[this._curMapType].transform;a.hasRoam=!0,a.left-=this._mx-i,a.top-=this._my-n,this._mx=i,this._my=n,this._mapDataMap[this._curMapType].transform=a;for(var o=0,r=this.shapeList.length;r>o;o++)this.shapeList[o]._mapType==this._curMapType&&(this.shapeList[o].position[0]=a.left,this.shapeList[o].position[1]=a.top,this.zr.modShape(this.shapeList[o].id));this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"move"},this.myChart),this.clearEffectShape(!0),this.zr.refreshNextFrame(),this._justMove=!0,u.stop(t)}},__onmouseup:function(e){var t=e.event;this._mx=u.getX(t),this._my=u.getY(t),this._mousedown=!1;var i=this;setTimeout(function(){i._justMove&&i.animationEffect(),i._justMove=!1,i.zr.un(c.EVENT.MOUSEMOVE,i._onmousemove),i.zr.un(c.EVENT.MOUSEUP,i._onmouseup)},120)},__onroamcontroller:function(e){var t=e.event;t.zrenderX=this.zr.getWidth()/2,t.zrenderY=this.zr.getHeight()/2;var i=e.mapTypeControl,n=0,a=0,o=e.step;switch(e.roamType){case"scaleUp":return t.zrenderDelta=1,void this.__onmousewheel({event:t,mapTypeControl:i});case"scaleDown":return t.zrenderDelta=-1,void this.__onmousewheel({event:t,mapTypeControl:i});case"up":n=-o;break;case"down":n=o;break;case"left":a=-o;break;case"right":a=o}var r,s;for(s in i)this._mapDataMap[s]&&this._activeMapType[s]&&(r=this._mapDataMap[s].transform,r.hasRoam=!0,r.left-=a,r.top-=n,this._mapDataMap[s].transform=r);for(var l=0,h=this.shapeList.length;h>l;l++)s=this.shapeList[l]._mapType,i[s]&&this._activeMapType[s]&&(r=this._mapDataMap[s].transform,this.shapeList[l].position[0]=r.left,this.shapeList[l].position[1]=r.top,this.zr.modShape(this.shapeList[l].id));this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"move"},this.myChart),this.clearEffectShape(!0),this.zr.refreshNextFrame(),clearTimeout(this.dircetionTimer);var m=this;this.dircetionTimer=setTimeout(function(){m.animationEffect()},150)},__ondrhoverlink:function(e){for(var t,i,n=0,a=this.shapeList.length;a>n;n++)t=this.shapeList[n]._mapType,this._hoverLinkMap[t]&&this._activeMapType[t]&&(i=d.get(this.shapeList[n],"value"),null!=i&&i>=e.valueMin&&i<=e.valueMax&&this.zr.addHoverShape(this.shapeList[n]))},onclick:function(e){if(this.isClick&&e.target&&!this._justMove&&"icon"!=e.target.type){this.isClick=!1;var t=e.target,i=t.style._name,n=this.shapeList.length,a=t._mapType||"";if("single"==this._selectedMode[a])for(var o in this._selected)if(this._selected[o]&&this._mapTypeMap[o]==a){for(var r=0;n>r;r++)this.shapeList[r].style._name==o&&this.shapeList[r]._mapType==a&&(this.shapeList[r].style=this.shapeList[r]._style,this.zr.modShape(this.shapeList[r].id));o!=i&&(this._selected[o]=!1)}this._selected[i]=!this._selected[i];for(var r=0;n>r;r++)this.shapeList[r].style._name==i&&this.shapeList[r]._mapType==a&&(this.shapeList[r].style=this._selected[i]?this.shapeList[r].highlightStyle:this.shapeList[r]._style,this.zr.modShape(this.shapeList[r].id));this.messageCenter.dispatch(U.EVENT.MAP_SELECTED,e.event,{selected:this._selected,target:i},this.myChart),this.zr.refreshNextFrame();var s=this;setTimeout(function(){s.zr.trigger(c.EVENT.MOUSEMOVE,e.event)},100)}},refresh:function(e){e&&(this.option=e,this.series=e.series),this._mapDataRequireCounter>0?this.clear():this.backupShapeList(),this._buildShape(),this.zr.refreshHover()},ondataRange:function(e,t){this.component.dataRange&&(this.refresh(),t.needRefresh=!0)},pos2geo:function(e,t){return this._mapDataMap[e].transform?this._mapDataMap[e].projection.pos2geo(this._mapDataMap[e].transform,t):null},getGeoByPos:function(e,t){if(!this._mapDataMap[e].transform)return null;var i=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top];return t instanceof Array?(t[0]-=i[0],t[1]-=i[1]):(t.x-=i[0],t.y-=i[1]),this.pos2geo(e,t)},geo2pos:function(e,t){return this._mapDataMap[e].transform?this._mapDataMap[e].projection.geo2pos(this._mapDataMap[e].transform,t):null},getPosByGeo:function(e,t){if(!this._mapDataMap[e].transform)return null;var i=this.geo2pos(e,t);return i[0]+=this._mapDataMap[e].transform.left,i[1]+=this._mapDataMap[e].transform.top,i},getMapPosition:function(e){return this._mapDataMap[e].transform?[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top]:null},onbeforDispose:function(){this._isAlive=!1,this.zr.un(c.EVENT.MOUSEWHEEL,this._onmousewheel),this.zr.un(c.EVENT.MOUSEDOWN,this._onmousedown),this.messageCenter.unbind(U.EVENT.ROAMCONTROLLER,this._onroamcontroller),this.messageCenter.unbind(U.EVENT.DATA_RANGE_HOVERLINK,this._ondrhoverlink)}},p.inherits(t,i),e("../chart").define("map",t),t}),i("zrender/shape/Path",["require","./Base","./util/PathProxy","../tool/util"],function(e){var t=e("./Base"),i=e("./util/PathProxy"),n=i.PathSegment,a=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},o=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(a(e)*a(t))},r=function(e,t){return(e[0]*t[1]0&&""===d[0]&&d.shift();for(var p=0;p0&&!isNaN(d[0]);){var c,u,y,g,b,f,k,x,_=null,L=[],W=h,X=m;switch(U){case"l":h+=d.shift(),m+=d.shift(),_="L",L.push(h,m);break;case"L":h=d.shift(),m=d.shift(),L.push(h,m);break;case"m":h+=d.shift(),m+=d.shift(),_="M",L.push(h,m),U="l";break;case"M":h=d.shift(),m=d.shift(),_="M",L.push(h,m),U="L";break;case"h":h+=d.shift(),_="L",L.push(h,m);break;case"H":h=d.shift(),_="L",L.push(h,m);break;case"v":m+=d.shift(),_="L",L.push(h,m);break;case"V":m=d.shift(),_="L",L.push(h,m);break;case"C":L.push(d.shift(),d.shift(),d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"c":L.push(h+d.shift(),m+d.shift(),h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="C",L.push(h,m);break;case"S":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,d.shift(),d.shift()),h=d.shift(),m=d.shift(),_="C",L.push(h,m);break;case"s":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="C",L.push(h,m);break;case"Q":L.push(d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"q":L.push(h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),_="Q",L.push(h,m);break;case"T":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h=d.shift(),m=d.shift(),_="Q",L.push(c,u,h,m);break;case"t":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h+=d.shift(),m+=d.shift(),_="Q",L.push(c,u,h,m);break;case"A":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),x=d.shift(),W=h,X=m,h=d.shift(),m=d.shift(),_="A",L=this._convertPoint(W,X,h,m,k,x,g,b,f);break;case"a":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),x=d.shift(),W=h,X=m,h+=d.shift(),m+=d.shift(),_="A",L=this._convertPoint(W,X,h,m,k,x,g,b,f)}for(var v=0,w=L.length;w>v;v+=2)L[v]+=t,L[v+1]+=i;l.push(new n(_||U,L))}("z"===U||"Z"===U)&&l.push(new n("z",[]))}return l},_convertPoint:function(e,t,i,n,a,s,l,h,m){var V=m*(Math.PI/180),U=Math.cos(V)*(e-i)/2+Math.sin(V)*(t-n)/2,d=-1*Math.sin(V)*(e-i)/2+Math.cos(V)*(t-n)/2,p=U*U/(l*l)+d*d/(h*h);p>1&&(l*=Math.sqrt(p),h*=Math.sqrt(p));var c=Math.sqrt((l*l*h*h-l*l*d*d-h*h*U*U)/(l*l*d*d+h*h*U*U));a===s&&(c*=-1),isNaN(c)&&(c=0);var u=c*l*d/h,y=c*-h*U/l,g=(e+i)/2+Math.cos(V)*u-Math.sin(V)*y,b=(t+n)/2+Math.sin(V)*u+Math.cos(V)*y,f=r([1,0],[(U-u)/l,(d-y)/h]),k=[(U-u)/l,(d-y)/h],x=[(-1*U-u)/l,(-1*d-y)/h],_=r(k,x);return o(k,x)<=-1&&(_=Math.PI),o(k,x)>=1&&(_=0),0===s&&_>0&&(_-=2*Math.PI),1===s&&0>_&&(_+=2*Math.PI),[g,b,l,h,f,_,V,s]},buildPath:function(e,t){var i=t.path,n=t.x||0,a=t.y||0;t.pathArray=t.pathArray||this.buildPathArray(i,n,a);for(var o=t.pathArray,r=t.pointList=[],s=[],l=0,h=o.length;h>l;l++){"M"==o[l].command.toUpperCase()&&(s.length>0&&r.push(s),s=[]);for(var m=o[l].points,V=0,U=m.length;U>V;V+=2)s.push([m[V],m[V+1]])}s.length>0&&r.push(s);for(var l=0,h=o.length;h>l;l++){var d=o[l].command,m=o[l].points;switch(d){case"L":e.lineTo(m[0],m[1]);break;case"M":e.moveTo(m[0],m[1]);break;case"C":e.bezierCurveTo(m[0],m[1],m[2],m[3],m[4],m[5]);break;case"Q":e.quadraticCurveTo(m[0],m[1],m[2],m[3]);break;case"A":var p=m[0],c=m[1],u=m[2],y=m[3],g=m[4],b=m[5],f=m[6],k=m[7],x=u>y?u:y,_=u>y?1:u/y,L=u>y?y/u:1;e.translate(p,c),e.rotate(f),e.scale(_,L),e.arc(0,0,x,g,g+b,1-k),e.scale(1/_,1/L),e.rotate(-f),e.translate(-p,-c);break;case"z":e.closePath()}}},getRect:function(e){if(e.__rect)return e.__rect;var t;t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0;for(var i=Number.MAX_VALUE,n=Number.MIN_VALUE,a=Number.MAX_VALUE,o=Number.MIN_VALUE,r=e.x||0,s=e.y||0,l=e.pathArray||this.buildPathArray(e.path),h=0;hn&&(n=m[V])):(m[V]+so&&(o=m[V]));var U;return U=i===Number.MAX_VALUE||n===Number.MIN_VALUE||a===Number.MAX_VALUE||o===Number.MIN_VALUE?{x:0,y:0,width:0,height:0}:{x:Math.round(i-t/2),y:Math.round(a-t/2),width:n-i+t,height:o-a+t},e.__rect=U,U}},e("../tool/util").inherits(s,t),s}),i("zrender/shape/Ellipse",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"ellipse",buildPath:function(e,t){var i=.5522848,n=t.x,a=t.y,o=t.a,r=t.b,s=o*i,l=r*i;e.moveTo(n-o,a),e.bezierCurveTo(n-o,a-l,n-s,a-r,n,a-r),e.bezierCurveTo(n+s,a-r,n+o,a-l,n+o,a),e.bezierCurveTo(n+o,a+l,n+s,a+r,n,a+r),e.bezierCurveTo(n-s,a+r,n-o,a+l,n-o,a),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-e.a-t/2), +y:Math.round(e.y-e.b-t/2),width:2*e.a+t,height:2*e.b+t},e.__rect}},e("../tool/util").inherits(i,t),i}),i("echarts/component/roamController",["require","./base","zrender/shape/Rectangle","zrender/shape/Sector","zrender/shape/Circle","../config","zrender/tool/util","zrender/tool/color","zrender/tool/event","../component"],function(e){function t(e,t,n,a,o){if(this.rcOption={},a.roamController&&a.roamController.show){if(!a.roamController.mapTypeControl)return void console.error("option.roamController.mapTypeControl has not been defined.");i.call(this,e,t,n,a,o),this.rcOption=a.roamController;var r=this;this._drictionMouseDown=function(e){return r.__drictionMouseDown(e)},this._drictionMouseUp=function(e){return r.__drictionMouseUp(e)},this._drictionMouseMove=function(e){return r.__drictionMouseMove(e)},this._drictionMouseOut=function(e){return r.__drictionMouseOut(e)},this._scaleHandler=function(e){return r.__scaleHandler(e)},this.refresh(a)}}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("zrender/shape/Sector"),o=e("zrender/shape/Circle"),r=e("../config");r.roamController={zlevel:0,z:4,show:!0,x:"left",y:"top",width:80,height:120,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,handleColor:"#6495ed",fillerColor:"#fff",step:15,mapTypeControl:null};var s=e("zrender/tool/util"),l=e("zrender/tool/color"),h=e("zrender/tool/event");return t.prototype={type:r.COMPONENT_TYPE_ROAMCONTROLLER,_buildShape:function(){if(this.rcOption.show){this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildItem:function(){this.shapeList.push(this._getDirectionShape("up")),this.shapeList.push(this._getDirectionShape("down")),this.shapeList.push(this._getDirectionShape("left")),this.shapeList.push(this._getDirectionShape("right")),this.shapeList.push(this._getScaleShape("scaleUp")),this.shapeList.push(this._getScaleShape("scaleDown"))},_getDirectionShape:function(e){var t=this._itemGroupLocation.r,i=this._itemGroupLocation.x+t,n=this._itemGroupLocation.y+t,o={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:i,y:n,r:t,startAngle:-45,endAngle:45,color:this.rcOption.handleColor,text:">",textX:i+t/2+4,textY:n-.5,textAlign:"center",textBaseline:"middle",textPosition:"specific",textColor:this.rcOption.fillerColor,textFont:Math.floor(t/2)+"px arial"},highlightStyle:{color:l.lift(this.rcOption.handleColor,-.2),brushType:"fill"},clickable:!0};switch(e){case"up":o.rotation=[Math.PI/2,i,n];break;case"left":o.rotation=[Math.PI,i,n];break;case"down":o.rotation=[-Math.PI/2,i,n]}return o=new a(o),o._roamType=e,o.onmousedown=this._drictionMouseDown,o.onmouseup=this._drictionMouseUp,o.onmousemove=this._drictionMouseMove,o.onmouseout=this._drictionMouseOut,o},_getScaleShape:function(e){var t=this._itemGroupLocation.width,i=this._itemGroupLocation.height-t;i=0>i?20:i;var n=Math.min(t/2-5,i)/2,a=this._itemGroupLocation.x+("scaleDown"===e?t-n:n),r=this._itemGroupLocation.y+this._itemGroupLocation.height-n,s={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:a,y:r,r:n,color:this.rcOption.handleColor,text:"scaleDown"===e?"-":"+",textX:a,textY:r-2,textAlign:"center",textBaseline:"middle",textPosition:"specific",textColor:this.rcOption.fillerColor,textFont:Math.floor(n)+"px verdana"},highlightStyle:{color:l.lift(this.rcOption.handleColor,-.2),brushType:"fill"},clickable:!0};return s=new o(s),s._roamType=e,s.onmousedown=this._scaleHandler,s},_buildBackground:function(){var e=this.reformCssArray(this.rcOption.padding);this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.rcOption.borderWidth?"fill":"both",color:this.rcOption.backgroundColor,strokeColor:this.rcOption.borderColor,lineWidth:this.rcOption.borderWidth}}))},_getItemGroupLocation:function(){var e,t=this.reformCssArray(this.rcOption.padding),i=this.rcOption.width,n=this.rcOption.height,a=this.zr.getWidth(),o=this.zr.getHeight();switch(this.rcOption.x){case"center":e=Math.floor((a-i)/2);break;case"left":e=t[3]+this.rcOption.borderWidth;break;case"right":e=a-i-t[1]-t[3]-2*this.rcOption.borderWidth;break;default:e=this.parsePercent(this.rcOption.x,a)}var r;switch(this.rcOption.y){case"top":r=t[0]+this.rcOption.borderWidth;break;case"bottom":r=o-n-t[0]-t[2]-2*this.rcOption.borderWidth;break;case"center":r=Math.floor((o-n)/2);break;default:r=this.parsePercent(this.rcOption.y,o)}return{x:e,y:r,r:i/2,width:i,height:n}},__drictionMouseDown:function(e){this.mousedown=!0,this._drictionHandlerOn(e)},__drictionMouseUp:function(e){this.mousedown=!1,this._drictionHandlerOff(e)},__drictionMouseMove:function(e){this.mousedown&&this._drictionHandlerOn(e)},__drictionMouseOut:function(e){this._drictionHandlerOff(e)},_drictionHandlerOn:function(e){this._dispatchEvent(e.event,e.target._roamType),clearInterval(this.dircetionTimer);var t=this;this.dircetionTimer=setInterval(function(){t._dispatchEvent(e.event,e.target._roamType)},100),h.stop(e.event)},_drictionHandlerOff:function(){clearInterval(this.dircetionTimer)},__scaleHandler:function(e){this._dispatchEvent(e.event,e.target._roamType),h.stop(e.event)},_dispatchEvent:function(e,t){this.messageCenter.dispatch(r.EVENT.ROAMCONTROLLER,e,{roamType:t,mapTypeControl:this.rcOption.mapTypeControl,step:this.rcOption.step},this.myChart)},refresh:function(e){e&&(this.option=e||this.option,this.option.roamController=this.reformOption(this.option.roamController),this.rcOption=this.option.roamController),this.clear(),this._buildShape()}},s.inherits(t,i),e("../component").define("roamController",t),t}),i("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var U=e[V],d=U[0],p=U[1],c=U[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,d-s,p-s)}for(var y=h.getImageData(0,0,l.width,l.height),g=y.data,m=g.length/4;m--;){var b=4*m+3,u=g[b]/256,f=Math.floor(u*(n-1));g[b-3]=r[4*f],g[b-2]=r[4*f+1],g[b-1]=r[4*f+2],g[b]*=this.option.opacity}return h.putImageData(y,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e}),i("echarts/util/mapData/params",["require"],function(e){function t(e){if(!e.UTF8Encoding)return e;for(var t=e.features,n=0;n>1^-(1&r),s=s>>1^-(1&s),r+=n,s+=a,n=r,a=s,i.push([r/1024,s/1024])}return i}var n={none:{getGeoJson:function(e){e({type:"FeatureCollection",features:[{type:"Feature",geometry:{coordinates:[],encodeOffsets:[],type:"Polygon"},properties:{}}]})}},world:{getGeoJson:function(i){e(["./geoJson/world_geo"],function(e){i(t(e))})}},china:{getGeoJson:function(i){e(["./geoJson/china_geo"],function(e){i(t(e))})}},"南海诸岛":{textCoord:[126,25],getPath:function(e,t){for(var i=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],n="",a=e[0],o=e[1],r=0,s=i.length;s>r;r++){n+="M "+((i[r][0][0]*t+a).toFixed(2)-0)+" "+((i[r][0][1]*t+o).toFixed(2)-0)+" ";for(var l=1,h=i[r].length;h>l;l++)n+="L "+((i[r][l][0]*t+a).toFixed(2)-0)+" "+((i[r][l][1]*t+o).toFixed(2)-0)+" "}return n+" Z"}},"新疆":{getGeoJson:function(i){e(["./geoJson/xin_jiang_geo"],function(e){i(t(e))})}},"西藏":{getGeoJson:function(i){e(["./geoJson/xi_zang_geo"],function(e){i(t(e))})}},"内蒙古":{getGeoJson:function(i){e(["./geoJson/nei_meng_gu_geo"],function(e){i(t(e))})}},"青海":{getGeoJson:function(i){e(["./geoJson/qing_hai_geo"],function(e){i(t(e))})}},"四川":{getGeoJson:function(i){e(["./geoJson/si_chuan_geo"],function(e){i(t(e))})}},"黑龙江":{getGeoJson:function(i){e(["./geoJson/hei_long_jiang_geo"],function(e){i(t(e))})}},"甘肃":{getGeoJson:function(i){e(["./geoJson/gan_su_geo"],function(e){i(t(e))})}},"云南":{getGeoJson:function(i){e(["./geoJson/yun_nan_geo"],function(e){i(t(e))})}},"广西":{getGeoJson:function(i){e(["./geoJson/guang_xi_geo"],function(e){i(t(e))})}},"湖南":{getGeoJson:function(i){e(["./geoJson/hu_nan_geo"],function(e){i(t(e))})}},"陕西":{getGeoJson:function(i){e(["./geoJson/shan_xi_1_geo"],function(e){i(t(e))})}},"广东":{getGeoJson:function(i){e(["./geoJson/guang_dong_geo"],function(e){i(t(e))})}},"吉林":{getGeoJson:function(i){e(["./geoJson/ji_lin_geo"],function(e){i(t(e))})}},"河北":{getGeoJson:function(i){e(["./geoJson/he_bei_geo"],function(e){i(t(e))})}},"湖北":{getGeoJson:function(i){e(["./geoJson/hu_bei_geo"],function(e){i(t(e))})}},"贵州":{getGeoJson:function(i){e(["./geoJson/gui_zhou_geo"],function(e){i(t(e))})}},"山东":{getGeoJson:function(i){e(["./geoJson/shan_dong_geo"],function(e){i(t(e))})}},"江西":{getGeoJson:function(i){e(["./geoJson/jiang_xi_geo"],function(e){i(t(e))})}},"河南":{getGeoJson:function(i){e(["./geoJson/he_nan_geo"],function(e){i(t(e))})}},"辽宁":{getGeoJson:function(i){e(["./geoJson/liao_ning_geo"],function(e){i(t(e))})}},"山西":{getGeoJson:function(i){e(["./geoJson/shan_xi_2_geo"],function(e){i(t(e))})}},"安徽":{getGeoJson:function(i){e(["./geoJson/an_hui_geo"],function(e){i(t(e))})}},"福建":{getGeoJson:function(i){e(["./geoJson/fu_jian_geo"],function(e){i(t(e))})}},"浙江":{getGeoJson:function(i){e(["./geoJson/zhe_jiang_geo"],function(e){i(t(e))})}},"江苏":{getGeoJson:function(i){e(["./geoJson/jiang_su_geo"],function(e){i(t(e))})}},"重庆":{getGeoJson:function(i){e(["./geoJson/chong_qing_geo"],function(e){i(t(e))})}},"宁夏":{getGeoJson:function(i){e(["./geoJson/ning_xia_geo"],function(e){i(t(e))})}},"海南":{getGeoJson:function(i){e(["./geoJson/hai_nan_geo"],function(e){i(t(e))})}},"台湾":{getGeoJson:function(i){e(["./geoJson/tai_wan_geo"],function(e){i(t(e))})}},"北京":{getGeoJson:function(i){e(["./geoJson/bei_jing_geo"],function(e){i(t(e))})}},"天津":{getGeoJson:function(i){e(["./geoJson/tian_jin_geo"],function(e){i(t(e))})}},"上海":{getGeoJson:function(i){e(["./geoJson/shang_hai_geo"],function(e){i(t(e))})}},"香港":{getGeoJson:function(i){e(["./geoJson/xiang_gang_geo"],function(e){i(t(e))})}},"澳门":{getGeoJson:function(i){e(["./geoJson/ao_men_geo"],function(e){i(t(e))})}}};return{decode:t,params:n}}),i("echarts/util/mapData/textFixed",[],function(){return{"广东":[0,-10],"香港":[10,10],"澳门":[-10,18],"黑龙江":[0,20],"天津":[5,5],"深圳市":[-35,0],"红河哈尼族彝族自治州":[0,20],"楚雄彝族自治州":[-5,15],"石河子市":[-5,5],"五家渠市":[0,-10],"昌吉回族自治州":[10,10],"昌江黎族自治县":[0,20],"陵水黎族自治县":[0,20],"东方市":[0,20],"渭南市":[0,20]}}),i("echarts/util/mapData/geoCoord",[],function(){return{Russia:[100,60],"United States of America":[-99,38]}}),i("echarts/util/projection/svg",["require","zrender/shape/Path"],function(e){function t(e){return parseFloat(e||0)}function i(e){for(var i=e.firstChild;"svg"!=i.nodeName.toLowerCase()||1!=i.nodeType;)i=i.nextSibling;var n=t(i.getAttribute("x")),a=t(i.getAttribute("y")),o=t(i.getAttribute("width")),r=t(i.getAttribute("height"));return{left:n,top:a,width:o,height:r}}function n(e,t){function i(e){var t=e.tagName;if(m[t]){var o=m[t](e,n);o&&(o.scale=n,o.properties={name:e.getAttribute("name")||""},o.id=e.id,s(o,e),a.push(o))}for(var r=e.childNodes,l=0,h=r.length;h>l;l++)i(r[l])}var n=[t.scale.x,t.scale.y],a=[];return i(e),a}function a(e,t){var i=t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y];return[i[0]/e.scale.x,i[1]/e.scale.y]}function o(e,t){var i=t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y];return[i[0]*e.scale.x,i[1]*e.scale.y]}function r(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function s(e,t){var i=t.getAttribute("fill"),n=t.getAttribute("stroke"),a=t.getAttribute("stroke-width"),o=t.getAttribute("opacity");i&&"none"!=i?(e.color=i,n?(e.brushType="both",e.strokeColor=n):e.brushType="fill"):n&&"none"!=n&&(e.strokeColor=n,e.brushType="stroke"),a&&"none"!=a&&(e.lineWidth=parseFloat(a)),o&&"none"!=o&&(e.opacity=parseFloat(o))}function l(e){for(var t=r(e).replace(/,/g," ").split(/\s+/),i=[],n=0;no;o++)if(n=a[o],!n.properties.name||!t[n.properties.name])switch(n.type){case"Feature":r[n.geometry.type](n.geometry.coordinates);break;case"GeometryCollection":i=n.geometries;for(var l=0,h=i.length;h>l;l++)r[i[l].type](i[l].coordinates)}return e.srcSize={left:1*r.xmin.toFixed(4),top:1*r.ymin.toFixed(4),width:1*(r.xmax-r.xmin).toFixed(4),height:1*(r.ymax-r.ymin).toFixed(4)},e}function i(e,i,n){function a(e,t){c=e.type,u=e.coordinates,o._bbox={xmin:360,xmax:-360,ymin:180,ymax:-180},y=o[c](u),m.push({path:y,cp:o.makePoint(t.properties.cp?t.properties.cp:[(o._bbox.xmin+o._bbox.xmax)/2,(o._bbox.ymin+o._bbox.ymax)/2]),properties:t.properties,id:t.id})}n=n||{},o.scale=null,o.offset=null,e.srcSize||t(e,n),i.offset={x:e.srcSize.left,y:e.srcSize.top,left:i.OffsetLeft||0,top:i.OffsetTop||0},o.scale=i.scale,o.offset=i.offset;for(var r,s,l,h=e.features,m=[],V=0,U=h.length;U>V;V++)if(l=h[V],!l.properties.name||!n[l.properties.name])if("Feature"==l.type)a(l.geometry,l);else if("GeometryCollection"==l.type){r=l.geometries;for(var d=0,p=r.length;p>d;d++)s=r[d],a(s,s)}var c,u,y;return m}function n(e,t){var i,n;return t instanceof Array?(i=1*t[0],n=1*t[1]):(i=1*t.x,n=1*t.y),i=i/e.scale.x+e.offset.x-168.5,i=i>180?i-360:i,n=90-(n/e.scale.y+e.offset.y),[i,n]}function a(e,t){return o.offset=e.offset,o.scale=e.scale,o.makePoint(t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y])}var o={formatPoint:function(e){return[(e[0]<-168.5&&e[1]>63.8?e[0]+360:e[0])+168.5,90-e[1]]},makePoint:function(e){var t=this,i=t.formatPoint(e);t._bbox.xmin>e[0]&&(t._bbox.xmin=e[0]),t._bbox.xmaxe[1]&&(t._bbox.ymin=e[1]),t._bbox.ymaxn;n++)t=o.makePoint(e[n]),i=0===n?"M"+t.join(","):i+"L"+t.join(",");return i},Polygon:function(e){for(var t="",i=0,n=e.length;n>i;i++)t=t+o.LineString(e[i])+"z";return t},MultiPoint:function(e){for(var t=[],i=0,n=e.length;n>i;i++)t.push(o.Point(e[i]));return t},MultiLineString:function(e){for(var t="",i=0,n=e.length;n>i;i++)t+=o.LineString(e[i]);return t},MultiPolygon:function(e){for(var t="",i=0,n=e.length;n>i;i++)t+=o.Polygon(e[i]);return t}},r={formatPoint:o.formatPoint,makePoint:function(e){var t=this,i=t.formatPoint(e),n=i[0],a=i[1];t.xmin>n&&(t.xmin=n),t.xmaxa&&(t.ymin=a),t.ymaxt;t++)this.makePoint(e[t])},Polygon:function(e){for(var t=0,i=e.length;i>t;t++)this.LineString(e[t])},MultiPoint:function(e){for(var t=0,i=e.length;i>t;t++)this.Point(e[t])},MultiLineString:function(e){for(var t=0,i=e.length;i>t;t++)this.LineString(e[t])},MultiPolygon:function(e){for(var t=0,i=e.length;i>t;t++)this.Polygon(e[t])}};return{getBbox:e,geoJson2Path:i,pos2geo:n,geo2pos:a}}),i("echarts/util/mapData/geoJson/an_hui_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3415",properties:{name:"六安市",cp:[116.3123,31.8329],childNum:6},geometry:{type:"Polygon",coordinates:["@@„„nJ‚UXUVƒ°U„ÑnU@mlLVaVln@@bn@VU@xlb@lšLnKlšƒVI„JšUVxnI@lVL@b„ްVX@˜b„x„nVVUnVVnU‚›@kX@VwV@„al¥UUnUWa@ƒ@wĸU„LU¥lKUa@aUI@alLVaUƒ¯anƒWkUKm@XV@VaXlW@aU_UWVUƒI¯@ma¯W¯™™I@UU@WWU@U@@UU@VkV@@WUUm@UaU@„lK@IUK„L@KWmXUWaXI@ƒ@a@a@U@U@KV¥lw„k°b²JVIVKlV@UX„la„Ul`œUVLVVVUšJ„U@Lnm@_VK@KUIW@™J@Xk@WW@U—ƒmm™XmWk@kK@aUUƒVmmkUwUmWL™@WmU@™UJmUULkKWakLWVkIƒlƒwULƒW@X°lUJ@°ULƒWV—wmJ@bmb¯Vkm@@WkWm¯wƒL@lkXƒWmXym¯UImJUbkV™@Vn¯„@V@lUbƒ@mk@maUxmlUbULWn@J—LmKUkWKkwUKƒbm„X„WxkVUKmLkVV@JUUWL@xkJUUƒV@X@VVlUbVX@xk¤šx‚¼œxWxn„‚nn@Þ¼„JVb°aVn„@šmlnXU„JlbVlkz@‚lUŽlXJmxVxXnWxXÈWlUŽ@šUxU@VX@xUL@šUÆmLnV@lWXk@@JlbXblnlJ"],encodeOffsets:[[118710,33351]]}},{type:"Feature",id:"3408",properties:{name:"安庆市",cp:[116.7517,30.5255],childNum:9},geometry:{type:"Polygon",coordinates:["@@n°‚znW„XlW@k„K°xXn‚l@Xn@l‚°Una@anI˜xXU„ŽVK@¯VIkW¯X@‚„VK„x„klJXUlKXblLVKnVVIšŽV@Xn‚@šŽXKVnVxlŽnn„UlmV@²óUkV™lW„b„lƒšƒn@VVVIn@lw@WVIXblV„@Èx‚aUaVIVVnKVLšK„ƒln@b²K@»U£ƒÑķƒġÝÅb™K™a@Im@ۍ„@kWÓkkmKÅnóJƒUÅ£›W@w„ĕ@wĉţ¯¯ƒUkK±l¯Uƒ¥UÑkÝUķ»Ý¥¯™JƒIUŽVbUl¯ÈV¼VJU¼Vb@bkLUl@„VJ@bUXǚ@lkVmXmKkLVxš‚Ž„VƒL@VkVVVlzW˜kbmLUUUbVbUV™šlÒnJlUnLllUL@bU„Vx„l‚LXVƦÈVU¦WJ"],encodeOffsets:[[118834,31759]]}},{type:"Feature",id:"3411",properties:{name:"滁州市",cp:[118.1909,32.536],childNum:7},geometry:{type:"Polygon",coordinates:["@@š„@`nnl@„xšK@X°KXV˜IXVlbXVWnX‚lL@šÈ»‚LVan@VJ„êVVn@‚X@laÞbVaƒyn@„_‚xnWVXnWl@VnUVkI@l‚nXKVLVV@V@kW@LlVô„@J@bVnnKnkVa@»lç@ƒnwšKma™UUUVњ@n™mWXalI@alVn@VwUaVU„@„nlaôJnU„VVXlJšaXXVK@UšV@VWx@nXVWšXVšUlLUbV‚ULVVnUVbUbVbš@@a„KÆnnKVK@U@UU@@a„@Vƒ°¯ÈJVIlķ@aa˜UaVKU_@mkxUI@aƒUlyU@@™wkKWmUbUnUVWbkJW_J@bƒn@Vm@@KULk@V@@bVbÅm@LW@UVVbkK@UkKWL@VULUKWIUJUbkK@_WVXU›Jka@XƒVa@kšy@aVIUUW@@m„UlLœKWÑUKVan@UkVmmIXKƒaVaUwVU@UmykU¯@±UUL@WUIVUU@KkIWaƒaU@kUUaǃUó»mKƒk¯@y@kWK@bkI¯`mn™l¯XWlkVUzUJlbUbVJl@nnm„@VULV`XnWƗbmUUn™JmUknƒJ¯km@ƒyk@kU›xL@VUbmnn¤lX@`™z@JmaULUVl@Xn@xllkXWa—aW@UVmUbƒ@mVXšWxXbWbUŽƒÒnVVnVVUL"],encodeOffsets:[[120004,33520]]}},{type:"Feature",id:"3418",properties:{name:"宣城市",cp:[118.8062,30.6244],childNum:7},geometry:{type:"Polygon",coordinates:["@@Vb@„XL˜JXxlIXxlVlV@I²¤šnlUnVšU@VULWVUJ@Lnb@lV@UnV@@VVVlLnbnJ‚UVkUUVWn@@anUVnVJVIV‚@@nUJVbUb‚„@VUbVK@bn@VbnIlxkllXVlXKWUXUlL°¤UVVb@bš„UlkXW‚ƒxXz@‚„Ila„UlƒnUlJVInVÆJ„U„LVUnV„K°@VnlVnxV@XLlK@wVL@KnUlJXU˜bnKVLX„lUw@VWlLXKm@@a„@VLnmlIVVnKn@škVašVlwk@@a@k@ƒVIUa™@maUa@wna@kmWƒ™UUmVUIVǗ@aƒKm™aƒ™kU™J@InmUUaVa„k‚lX@Vk@m@VU@wnK@alKVUkUkKƒbmUkmƒ@U£WVk@@UÝbbƒaÇx@b@WVUa¯ƒ@wVwUUV@VwnK@KWaŁ@KšIUyUI@WmXó™UbWaKm™@km@IUyƒIUaWKƒx@zUKUL@llVUnkLVVkJWX@VUKUVƒIkVWakb@VWb@n@JkXUlmL@xkL@`VxšLUÈUJ@Vm@@bmIUlUL@VUVVbknm@mKUw™KVÈ@J@LV±kkJUIƒl"],encodeOffsets:[[120803,31247]]}},{type:"Feature",id:"3412",properties:{name:"阜阳市",cp:[115.7629,32.9919],childNum:6},geometry:{type:"Polygon",coordinates:["@@V™nƒš@ša„k°aš±@‚¥@UUI@aUmlwUUx›b@¥XU@mmI@a@Kn@@_W@@W„I@mšUVVXUl@XaV@‚K@I@a„LX@aVI°K@KVL„UUw‚yXkšK@kšKÆbXnlK@k@a„JlU@w@U@»@aXKWƒn_‚JXkVKnƒ@°LlKXƒW@¯Uƒ@aUK@kmJUw™VƒIUJ™„kŽmL™K@kka@wUVm@@am@UkUbkK@nmVƒÒ¯VU„WVVmIƒƒULk@ƒƒma@kkKƒƒ@nUbUamU™`UUVUkKVkkƒW@@bkmƒnƒmUXVKXVƒL@VƒbU„m‚™bVXJ@nmKÅI@KWKUXVJUL@VUKUX@KUKWL@LUJmaXXm@kVVV@L@VUL@VlK@L@V@LUK@VUb@UUU@°@nVxU`‚Lkn@`@XVJ@X™Vm„k@UKmV¯LVVn±Wm@Ub@JlLUl„@VLk„@lmVVn@bnV@V°IV™šaVJXI°K°V@XXVlVVU„nšKVlUš„bWXnV@bV`U„„@@m@@‚ƒ@nxmn@bXVlL@¤nb„Ul¦šVVUnJVU„Vl@@bÞL"],encodeOffsets:[[118418,34392]]}},{type:"Feature",id:"3413",properties:{name:"宿州市",cp:[117.5208,33.6841],childNum:5},geometry:{type:"Polygon",coordinates:["@@@UWU@bkW@aWU@aUIkWV™lLXb„lVIUVV@‚mn@V_n@VaUK@I‚@UašanJVU„@lV„UVnnKVVlaUa„I@wnK‚Lnll@nVlk@wVKXkl@@b„bUJ@V‚U@U„UUyVk@aVUXwlWXX‚WU¹@aU™@WUI@mlUšn„J@Il@šaXbV@VKl@XxVL@W„IšJlb„@„al@„IUUm@@aVK@¥¯—@mUķ¯bWƒk£Vm@akm@VaÅ@UVWaƒ@UJWkƒJ—UƒbWbU@UlƒXk@ƒamV@K¯nk@ƒlU@Uxmz@bU`ÇbUbÅVm£U@Ww™x@akLUK@UlakwUJWVkLmaUal@n_ƒmVUnKVUUmÅXWa™@kJmx@XUJ@bVLXxl@VVUVV„UbkLWbU@@lUVV„VVX„›K@XkJ@nU@@bV@VxUVlb„U@xXLWŽn@UxVbVĊ„V@b@XV`mnkJ@kUKmbƒaU@VbnbÆx@XU@@`k@@bl„™@@bkL@WƒakXWaU@Vmkx@XWW@@wUUUbƒJ™U¯V™@¯ÞU@WxXŽlL@bkb@ŽlVlnb™JW@kkU@mbkaWJ—IVlmz¯`UnU@mb™@@„ƒ`@bkVlœnV@b@šV@„aVxn@Vx‚KXnl@nbVK„bVK@a„_V@Vƒ„w@W„LlwnK@UmIU@VWš@šUÈ@lKnal„wš@@V°@šaUmlUUw@„ƒV@@UXK"],encodeOffsets:[[119836,35061]]}},{type:"Feature",id:"3410",properties:{name:"黄山市",cp:[118.0481,29.9542],childNum:5},geometry:{type:"Polygon",coordinates:["@@lXnlWX@VUJVnUJVzXJVx„kVJlI²l‚U@K@IUǚLVxnLn@lmUaVU@UVKVknJ@an@@UVIVǙKUw@_lK@wnKVklW@I@mXa@UlaXblU„JVUVL@UXWlIUUlKVmkU@kVKVL@y„wXLVb„JVz@Jlnš@nŽ‚LXbVaôšnW@la@UVWUa@@a@mk@WIk@VwUa¯¥m@UUVK@ImK@aX£ƒkK›ÅV™a™™ƒ_@±ƒakXWW—LƒƒƒnU@@a@¯mK@L™JUWwUV™VmbXX@lWLn`mzUJUb™Lƒ„k@makVWmkX™ambkKknƒaƒ@ƒaƒb@‚U@Unm@—ƒWVƒ@VbUbUJWIk@@lmL@°UVUVm„nš™@@kmWkb@xƒ_m@@aU@b@JlŽUz™lWxXn„@‚b²@l`„IVl„UlL@VšK„nVbUl@VlIn@@b„bVWUk‚@@bX@Valb@bnb°Vn@„xVKlbVnV@V‚x„L@ln@UXVV‚L˜"],encodeOffsets:[[120747,31095]]}},{type:"Feature",id:"3414",properties:{name:"巢湖市",cp:[117.7734,31.4978],childNum:5},geometry:{type:"Polygon",coordinates:["@@VV@blL@ŽXlWnnšnŽ˜„@VXXl@@WšIX@VJ@LšxŎxlnšŽ@bXJVblX@VVbUVn@VbUVlb@LnJVbVLV‚XLšÒVL„ÒšV„bVIVylUXk°Wšknm°_lJ@aXL@l‚z°@„lnLô¼V‚È„VUUaVKU@WW@@UUa@knmVLlaV@„a@kšak±@UmwkKmk™lj™ÝUUkL@mlIVmnÝWkkUÝ@KƑĉ™a@»ƒmma@mX™¤¯Uƒw@ƒ@UU@bU±±L@akmƒ„™LUKmLUUUJVbbÇwƒ@kUWaUJ@Xkxm@UJUUm@™„k„ƒ‚ƒakXUšVl±ôU@kn"],encodeOffsets:[[119847,32007]]}},{type:"Feature",id:"3416",properties:{name:"亳州市",cp:[116.1914,33.4698],childNum:4},geometry:{type:"Polygon",coordinates:["@@lU@Un@@anUlw@KVmUwlaX_lKna@KU@@kWKUU@ankW™XK˜@@V²VVIÈU@al@VaÈamK@wU™@klaUƒV@XƒVUU»WUUbkmUkVmk@aÈw@mWU@VkIkVWKUÑķXȭºU¯lƒ@kkLWmÅa™L@l™LWlzVxƒVUK@L¯LUJ@bWƒK@b@JLU@Wbk@WVUU™V@nƒJ@XX@@`m@@L@bnJ@nWV@¦œa‚wVVkxVn@bVJ@V¦@Ž™²¯bƒl™b™@m„UšUŽƒŽ@¼ƒ¦Xb‚UV`@nnxUxWLkUkVWKkV@XV@@VVL@VX„@lVV@L@blL@`šL@xXKVL‚@„VnUš@lwnU@ml@XnV@@UVW°LnalƒUI@aUK@a‚a@U„kXW@I@mWL@UXK@UVW@U‚@@k„Wn‚@@V„@XblaVxšL@bVKXb„IlJ"],encodeOffsets:[[119183,34594]]}},{type:"Feature",id:"3417",properties:{name:"池州市",cp:[117.3889,30.2014],childNum:4},geometry:{type:"Polygon",coordinates:["@@„V°°ĊŤ@xƒĖ@xœXƤ„VôIÆmnLllXÔ@lƒÜŽn@@JšbšLÆaĢÞĸ„°VVUUKVanK@UV@VL„VVn„ln@‚xnklxXamk@WV@Xa˜@naVk„Klk™@mkUWwkJWw—IWK@ƒUaUwWIUyVIUmVI@UXWmkkW‚—KUUVWm@@kƒKw@U‚UUmkaULƒwm@¯Uma@akaUbW@@a@VlUXƒa@am@kJ@UVkUaƒm™L@UkKƒVUkƒJk_±@aƒ@WmXwÇkkaVaUa±ƒœwV@VkƒwnyUaW@UU¯amLk@m™@kmmU™™¯K@L@lUX¯ƒWlkXƒŽVb„bƒVUL@J@LVKnlJXnlb@`nXlalV@bnL@Vnb˜¼@lXbWlkL™K@zUJmIUxUVUVmX","@@llUL@VlxšL@a@UƒwXa¯@"],encodeOffsets:[[119543,30781],[120061,31152]]}},{type:"Feature",id:"3401",properties:{name:"合肥市",cp:[117.29,32.0581],childNum:4},geometry:{type:"Polygon",coordinates:["@@„L„xV‚ĊLÞkšVlVVXaWaXwW™nU„@‚anVVUX@˜bXblWkk@wWmk@VUVKnb@Išy@_kWm£nmVa@U‚KœwlVl@„zn@°l„IlmnVšIVmnV˜aXÅWmU_VK@Unƒmmk@UIVakaƒa™UƒÑUK™ÑWKUUKUamI@KkaVUUam@VUUa@UkWUaWI@a™kmōw™wUL@`mn@KƒV™IUVUUUK›Vk_ƒVkbWƒ@VkUULUJ±I¯aƒlkxU¦@L@V@V@b@b@„WJXbWVXn@LƒKVL@JkLƒŽV@Vbn@VV@XU@UlV@@VV@V@XXV@@VšJ°š°Xnb°@„JUVVXV`@bkXWŽUbU@WŽn@VLXlm„°bV„UbkK@bVJ@bVbkLV¦ƒKķV@x@„XbmVVVk¦"],encodeOffsets:[[119678,33323]]}},{type:"Feature",id:"3403",properties:{name:"蚌埠市",cp:[117.4109,33.1073],childNum:4},geometry:{type:"Polygon",coordinates:["@@VÒXLlUlJ@UXV@nÇx@bnlUVllnVaXVV¼UVW„U@V„²wVV@Vl@„VnwlIš@XbÆWVnUVmLUV„nm`k@VbnblKXUVIlxkb@VVLlK@bšwXxV@n¤ÆUVaÈaV_@anyVwV@„kl@°m@LnU„bl@„WVkV@Xa„a˜V„IXl‚IV‚„@XbVUÆ@XKWwUkmW@_UmnIlJXkWKXmV@‚w@_XV@Kl@kU@KlX@@UUUUKWLm@klJVUUmk@mXUWmXwƒ`m@„zUbÝakbW@m@UUƒéUIm@UbKǼ@™kKWXmWUkaWU—JWU¯L@W™Lƒwk@mm@_™ƒÅl™UVkmWUnV@VWLUb™bƑĬ¯l"],encodeOffsets:[[119543,33722]]}},{type:"Feature",id:"3402",properties:{name:"芜湖市",cp:[118.3557,31.0858],childNum:4},geometry:{type:"Polygon",coordinates:["@@„bVaV@XllLXU°ŽlL@V@VUnVl¯Ikš›VUVU@@b@lUXUWmb„n@¼šbƒĊ‚LÞ@lVXlmÞUnkJ@nlKVVšÞXklWVaVI@aUKn»lL@Kn@‚XXwlm@mn°@„V@Wy„wXlWVk™ƒ@aUaVU¯£kKWVXVWLUkkWlkkwmJUam@@aULVa@UƒVaUaVI@m‚@UUJUIUmmV@bm@UXVVUlVmImakKUU@UU@VmU@@kma@KVIXUVK@U™VmUkV™m±£@JkU@nlšk‚ƒLUlmb—@WbU@@XnlWb"],encodeOffsets:[[120814,31585]]}},{type:"Feature",id:"3406",properties:{name:"淮北市",cp:[116.6968,33.6896],childNum:3},geometry:{type:"MultiPolygon",coordinates:[["@@lnnK@¦n@@V‚V„@@VV@nIV„V@VW²a@b@bVnUVVV@V™z@lš@°UšV„IVaVV@x@ŽXX@WlwUnV@XblW„b@XlK@aš@kƒ@al@@_V@@WÅwmaUaV@„bnaVL@llInmU_@W@aƒUUĉUaVwm@XWK@wƒVkaVUUwU@@aV@@mlI@WœLWƒUUUƒVU@kV@XalKVaUƒVUUUk@WwUK@aVI@WƒUk@@UUU±xkb@lVš@xnLÇbUbk@@bÇVUJ±U@U—@WLXšml@bVVXL@lV@@LmbkLW`kbVxUn@LkxmV@bm@@VkV"],["@@VVVkV@¥@UV@U@VUUJƒkWakKUšlXVJ@bXV@blX@aXV@V"]],encodeOffsets:[[[119183,34594]],[[119836,35061]]]}},{type:"Feature",id:"3404",properties:{name:"淮南市",cp:[116.7847,32.7722],childNum:2},geometry:{type:"Polygon",coordinates:["@@°kƒīšaVaXK@U‚UVmnXUlšVÆkVKUUUmmU„ÑkU™UÝlĉKUƒwƒKƒbU@UxW@@lœmVUUVmUUƒmƒw—aW„kL¯K@Žm„ULWlIm`X„WL@b@¼@V@xkVƒI@b@l@lk„V°Ȯ¹ĸW"],encodeOffsets:[[119543,33722]]}},{type:"Feature",id:"3405",properties:{name:"马鞍山市",cp:[118.6304,31.5363],childNum:2},geometry:{type:"Polygon",coordinates:["@@šNJnllLnxV@laXLVKma„aXbVI„bVKVVVIVyn@n_ƒƒW@@ƒ„UnJlUVVXlLnaUWlV@VV„IXW@_W@XK@K@UVUUwVamÑXmmwƒw™KUnUK™çU@ƒJƒU¯@mŽ@nknWxWm@@LkKm¼VL@bUJUbkXWl"],encodeOffsets:[[121219,32288]]}},{type:"Feature",id:"3407",properties:{name:"铜陵市",cp:[117.9382,30.9375],childNum:3},geometry:{type:"MultiPolygon",coordinates:[["@@„ÒV¤@¼V²@aVV@Ž@„„x°Vš£nW‚@nbnaVXVW@k@aV@VUœUl™°JUkVm@U@UkK¯WVkKWkU@Ubƒakwmlwm@ƒkUmƒUUKU@@VmLUbVLUV¯U"],["@@LllUL@VlxšL@a@UƒwXamK"]],encodeOffsets:[[[120522,31529]],[[120094,31146]]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ao_men_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"8200",properties:{name:"澳门",cp:[113.5715,22.1583],childNum:1},geometry:{type:"Polygon",coordinates:["@@HQFMDIDGBI@E@EEKEGCEIGGEKEMGSEU@CBEDAJAP@F@LBT@JCHMPOdADCFADAB@LFLDFFP@DAB@@AF@D@B@@FBD@FADHBBHAD@FAJ@JEDCJI`gFIJW"],encodeOffsets:[[116325,22699]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/bei_jing_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"110228",properties:{name:"密云县",cp:[117.0923,40.5121],childNum:1},geometry:{type:"Polygon",coordinates:["@@vIHZDZQtDLNMXIbHRCXXITbJ@H`LGPRDDJNCLHTOCWFGvGBUJMKGFO^IHWXITQCI’Y^AXGfRˆDXF`DJOLB~G\\DZIHHpErUVMhHb]\\M†BVF@FTP`@zTbD\\@~M\\K`H^EVODWICAakAQXoIcCOCIgGYNWFWNGGKKGaJEGMEIKYJUT_J_Go@_SyQaSFMEGTcYOQLIIi@EKAUPCV[EEXQCW|aMUMAaYCYNIDGGACIMGGSKDQGaF_C[GaB@GOIiOKAYL“mI@CN]F[SWWAcKKI@HMUimEKbeYQYISNUOcBKPIFBNgvDPGZYFSf]CMSIWGEUFgDIQ[MeDMJS@RR@LphFPCHaBAJKF@J]IBJO@HlO@@RKAMPJHCNDJTHFP@ZGNANBRFH@J_fM^ONJNF\\VTDJHDON@XRND\\XRCPVETCLBVKDFJINHRGPRV@\\CLJN@VbXbLVT"],encodeOffsets:[[119561,41684]]}},{type:"Feature",id:"110116",properties:{name:"怀柔区",cp:[116.6377,40.6219],childNum:1},geometry:{type:"Polygon",coordinates:["@@JHTVHXCHPfnDJGHNDJSB[JSBGVSAOH@PMPuDEHHXZN@PHF@ZLJ@LHVYJA\\OFWP]BMtMBSRGV[JeVAPQVIFENMD¡–@^NV\\JH@NNL@NM\\kTQ\\I^FNIpBHGTBFFAZQfKDIXQTLXFXNNVMVHRGpCFLlRLEVBBH`IVO\\G`RDPAXLXBXORHZEHTDLLN@VGTMrQNFPeASKG@GMOAKBYMK@GTUHUXSHMVDNMOUEOZMJML@^KRACMZEZMRQLUHE@OFENPR@DI\\ChMHIDG\\GJMDWHCKGMDCIQCHO_K@GaIJSWWQDaGWJMNCKRsCYGYuJUSaKaW@UIMDK@[QUHOGQJMEILCAUDKFSOUQD[WMC‚Q@WPMGCCIUSE[IMPMN]`e@IEGAQBMHM@YEOSGCIDMIGNOLB@QP@GkP@AI^J@ILEBIbADGEOog@KQQWSekWQQUOFKZLF@PUNmIaHIUeBCTSHENcJa@_IWSaGu`GLSBKJQFOXGDXVQVOBIHcDSJWBEFGTMH[^mLaXcHiKElTRKtFXZ`MHMPCNRDxZˆB\\ICIHK@KŽHbIVFZ@BPnGTGbDXRDJaZKRiGEFSFEJhjFNZFjn"],encodeOffsets:[[119314,41552]]}},{type:"Feature",id:"110111",properties:{name:"房山区",cp:[115.8453,39.7163],childNum:1},geometry:{type:"Polygon",coordinates:["@@h@bl@HRJDZ``TA\\VVD^H`\\pF\\JŒ`JGv@ZO\\GPSTEjPTR`FnEbDTDHEhLFMTK@ETSPULKEI@OVISKSJACEQNQbV˜IXGDIN@dMB[IIBcN]ZHNLP@XOWCFWŠCNRHTpATD@^NVNLED@Rh@jCEF}E[OOHUEW]W@QGGDIQSH_MmFmCUT_K]i@MHCMW—FCF‹E{BMHMPOHKS]CFNGBELDH_@BcAKOACESAOBELaXAROB@FODMEDWJAG[aE@UM@DImEWJMC@OeCA{aE[@{L@MINUCQXKfUJORCHqJBF@TCXWNQX]M[EAJO@@KMBQJIC]EWMCCUBEBFHKDOTMBGNGF]MWDBRDdMDQVyE@LPVHDCP@JVVMTG~HNSH[CmRUvHPHBbA\\PTNRC\\YNJ€PRARPJDDR"],encodeOffsets:[[118343,40770]]}},{type:"Feature",id:"110229",properties:{name:"延庆县",cp:[116.1543,40.5286],childNum:1},geometry:{type:"Polygon",coordinates:["@@^AXOPEB[ZIGU@KKI@YGE@OYMGWFGvCNO@OPGTBHUTA\\ITACIGMIHmCOeDGGWSUIGimYEEMgiFITEFEjHLQbYCIWQaCSHmHAOY@UEaJG@LGLDJ[J‡AwYQCDMNONGY_EWLsSQFkMO[NWAIGaIYL@HMBOKiOQDWEUDMQSF_QIUBWdg@[NaAKQ@M]OQ@WhgLUMMFYQDIRCEUZOOCIOJ[KIUMKL@HIDKVEBM`HJAJSJUdBLGNEdMBMO[BYEWJSNKNaD]PE\\SjOT_RQVEZPpƒNQXfŠNA~lNG`@PNLp¼RFLfbdKbATUh@FSNWjGFZVLFHVA~X¨PPROfFJbNJPLFbENJPrEFNPFRHDDJdENJLVEPBJTVTHGHFRFH@PXP\\ORQHW\\BjWFDERLPPBbB\\E`B\\D\\L`@F]FCnJ^AZL"],encodeOffsets:[[119262,41751]]}},{type:"Feature",id:"110109",properties:{name:"门头沟区",cp:[115.8,39.9957],childNum:1},geometry:{type:"Polygon",coordinates:["@@V@XMnGPY²‰JQNEhH\\AZMPDVTTDZCPiJkHSHCjIdFtEHITCNITQEKUAMCEIKCECABYESKFWAKBEIIHABGDCKCAIHMHALKEI\\CFIBILIJQZS]BBEECS@E@@C]COKI@CABAAEEDMGƒCH]A[M@CJWH—JaUMRFRBDTITLUJ@PFJKLOVST@FSLENgKGFSCaCmF_ESQiOSFOT[HYPu@IH‹_[IoE_[]GUC[USB__CYQI@Gakg@qZeHQNMNV\\FVLPgJAFJPRLCH[XcPELUT[JiV_EELFTADBXRTRLJC@fHXHHbPd`fR@NfT`@TLplHMpCEJHJBVLFŽ@JT‚VnG^KXDXHNVGRLRXFJVdDHSNWLGfEzA"],encodeOffsets:[[118635,41113]]}},{type:"Feature",id:"110114",properties:{name:"昌平区",cp:[116.1777,40.2134],childNum:1},geometry:{type:"Polygon",coordinates:["@@VNLJI\\JPPDYPFVQDCJZRNEVNhKXgR@^P@NLRbB\\Mh@XcVARJE`RTCNFV€XRCjPPLNA@GZKbJJHXB\\MNPjLdGbWnK\\]NGHSFEXATIdCJGPARUWUHCPWRELITAHKv_E@iYCaW_BQ\\Y@QIO@QDCIGZCEMWGFMFAFgHEDOCSqKCCFGAMKEAC@ODGCGs@WH@KQA@EE@CE@GEA@EH@GGUEEJEAYD@JM@@DAA@FHD@FTJEHUC@JUBKCKG@G[CIIQReAYhO@OXGDO@@FF@IHJFCPEBACBIAAKDOABXARHPNEHGbQAAKQFGIAM[C@WHKaGiCEGOA‹HUKCIokSCUSOCYN[BgGMFIR±ŠOZmHWNU@ShbbXDHVXXGJ^lZ@PZ\\Nb@\\FHJAD"], +encodeOffsets:[[118750,41232]]}},{type:"Feature",id:"110115",properties:{name:"大兴区",cp:[116.4716,39.6352],childNum:1},geometry:{type:"Polygon",coordinates:["@@F\\E~DFN@BDFEpHFCHBBEGCDCJBHUDSBB@ELCPbF@B\\J@BJVAFJ\\ADKTCBGECFMT@BMN@@FH@DaNBEnvB@FPBATK@FHEFIAKFBFL@@PKBFJHC@FXBRAFCDMPDTOL@JIVFDHH@DDH@BGRFCDLD@N^@@CNA@KNOAEBCECFEGCFGMGFIPMOEJOLBADBBHGG@GCHIECY@INC@DMGS\\AIOZAAEYA@GT@KKMBEETCGMVINFxA@MJADB@FlA@HJA@NND@DFA@DVAZBBOFKH_JA@K^GBC@EFE„G@gAENMXKJigC@IbSJMqGOP£RGSMGE@kbQFDPEFiBSGGSBK]I{CDWCIDOic[C_G@SuSO@EWKCO@MNY@\\uZOPENQD[LKESSKGBKEG@EJGAGHoH¥CqhifeJkX_XFFGHFNEDFPENKHM^IFIVL^S`DVEnNnG`RTCJHH@R^XFXGVPP"],encodeOffsets:[[119042,40704]]}},{type:"Feature",id:"110113",properties:{name:"顺义区",cp:[116.7242,40.1619],childNum:1},geometry:{type:"Polygon",coordinates:["@@EhEBENXHFNYDJHCD@RJP@R[ZARX`DbjZF@bHXT`Jb@dIFMTGDSfAJVbGnJVM@OKELYPERVXRflXTT@NIfC\\NJRhCVEHFJXNT^DTeZEHYCOhuAMJELOdAVPTMOWBWNMNEJgl]@WGUFIC[T{EEDEHGCIGMI@SECUQI[D{A{GQESPUH]CsiMCmHUeoHENcAaDGCMDGMQCACCBaCGLMAHB@DIEQLOAAEEJ@CW@CDINGAAGKQOCgV@LG@BEGDKNeREFBNCFIDOPKD[@YRW@GFWDAFE@EHDDrLDTCPGF","@@KrJEH[\\B@FF@CHFBHUN‹AJKADGECBCMAG^E@EbI@BEGP"],encodeOffsets:[[119283,41084],[119377,41046]]}},{type:"Feature",id:"110117",properties:{name:"平谷区",cp:[117.1706,40.2052],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZJZRafFLjn€VGNJ@LLBdXX\\T^EDMJ@”nZKLBjPPJ@HbA\\H`DbERHLCFK^BZaFWXQLAGMHa\\OLO@SBIpBdCLƒVQfElO@GSAKEDQTC@GEBKG@ORIJBDAPDFA@CaOq@GGQAAEJK@KMUGAAGEAa@MGMBGCGSIIW@WSUCMDOJeWOM@IUF{WMWaDIMgIoRoCOKeEOEAG_I[cg@wLIFENQFDVTFJ@HNDJGHCFFFS|D\\EJHV@Xk^IhMFMNAXPX"],encodeOffsets:[[119748,41190]]}},{type:"Feature",id:"110112",properties:{name:"通州区",cp:[116.7297,39.8131],childNum:1},geometry:{type:"Polygon",coordinates:["@@FDAJTGDNDCTDDEDBBE@DT@@EHCDGJ@EIZ@@FDBR@ATFBBVFFE@@HNA\\VE@CLIFNJFNJBCP]A@LJFA@HJEDD\\C@DBCHLAEPF@@DH@APHAERDF\\GIxDTM@CFLBBFJ@CNUPMHECGDBF]BMFPDLRBHHBJMDCX@@DFIBFPBRKJF@CGANBHKbDDABDRDHNNCHDbCdBFMpGHiOYMefKJMC}HWAUNW\\NNBNA„kNU|]HMTMN@MZBLFFF@RIRUT‘BMFIEGaAGGAOIIUGTSFcYKS@MSLYPKRUBU]EWDOI]CKGASgW@MTWKIMCS@uMAKKADMECGAKVUTSDy@IjWLMNBF@hƒHEF@FAD]H@LIBG`ELAPYAUB@CEB@CMC@MIB@GkB@ECAIB@NwBMEUJHNSDFFNALLS@@HZBBFYBJP[BHTCND@JMZ@FDGJHDH@GHAABCKAIPPFONEJNHEHHDEFFDADBFMP@L"],encodeOffsets:[[119329,40782]]}},{type:"Feature",id:"110105",properties:{name:"朝阳区",cp:[116.4977,39.949],childNum:2},geometry:{type:"MultiPolygon",coordinates:[["@@bFGHBHFBFIVFHHG@@FFB@HDFF@@FRB@LXGt@DHCH@PBDLFBNF@BEXCHEX@ZQ\\@LCPOJCDEAMFEfQLMHCAFH@@KhUNE^AAEHCFDNGVODMI@AEKADEN@CSJw[HCEFQGBBOG@@CE@FOKBDGCAD@C[FCGIB@IE@K^BDOIAEMMIJEDKF@[UMB@GF@EEAUEABSQ@CA@EY@FJI@CHGD@FS@@CAFCACFSCCDCMSHBIECMB@D]@@MKCDCQEAHG@CCG@CGUEIJK@SPOCCNEDQBDNDB@DJCDLFCBBALJB@BVGPBKVO@KHCCCD@FE@BNA@FNCTDDJA@FGB@NBDW@CL@hT@@ZHHQDDDAFSAANBC@HG@EFS@@DE@@PCB@Ue@CADNJB@FCBWA@LI^ix@FIHrH"],["@@HUN‹AJKADGECBCMAG^E@EbI@BEGPKrJEH[\\B@FF@CHFB"]],encodeOffsets:[[[119169,40992]],[[119398,41063]]]}},{type:"Feature",id:"110108",properties:{name:"海淀区",cp:[116.2202,40.0239],childNum:1},geometry:{type:"Polygon",coordinates:["@@plDJVLŒGPBFHjDbHGL@X\\DBNHJREBLRBHaFGŽMGOBQAWPBLCBBAJBDFADOIEJGE@@EP@HCPWP@ZgfBRQJJ\\D@HLHLDVA@IVDFGSI@EGC@EBB@CN@@IZCAGHGaEqGJG@EjwJ]@K@GSA@e_I@NE@CA@Kg@KC@ENCFƒAKQAW@WIMK@V‹@I@@F@^EDFB@HcIaDYCBRRDCHD@EFLN@FE@CJUPEJOJMTBPEDIFCMIAKNOGMRFJNDVBFLSRMJSDGJsFcEiJGDGTIlOjYD"],encodeOffsets:[[118834,41050]]}},{type:"Feature",id:"110106",properties:{name:"丰台区",cp:[116.2683,39.8309],childNum:1},geometry:{type:"Polygon",coordinates:["@@hMN@NFTQCFRCBJFA@HJ@@HJ@HJ\\FTACDŒ@@UNLXJX@@MA@@IECAQlDFEHBDI~D@GXCFMVDFCH@@NF@ANJC@FnAB@AMF@@EDCDDLGP@LUOAUH@AIABKAAEDCKID@CCACMWA@EGDEILA@OK@AELEJBFEEGL@BSOA@EuAFmMACbG@@EM@ANS@ENFDAHSDCL[BEIUBAII@A[E@OaKD@FAACTGVIACDHDAFGAEDoGEFACM@i€g@@QFCMKMU@]SCoBGSMQ‰DEXXDWPO@MKYGM^AdJJA\\cNB\\G^„DNHFCBFABDBJ@PL^D@DF@T@FDAF^A"],encodeOffsets:[[118958,40846]]}},{type:"Feature",id:"110107",properties:{name:"石景山区",cp:[116.1887,39.9346],childNum:1},geometry:{type:"Polygon",coordinates:["@@NQPHLMJBDNJEFCAONSPIFIVODIF@@EKMFEC@DGQCAQZDbCdJ@GEAFC@]@EJ@DCSB[EGII@@GI@@GEBAIQDDESRMEM@gNYTIRKJAJEJ[DFJKLGBGNBJLDCDAHGBJJAFBLEXTLZFBAFDLD"],encodeOffsets:[[118940,40953]]}},{type:"Feature",id:"110102",properties:{name:"西城区",cp:[116.3631,39.9353],childNum:1},geometry:{type:"Polygon",coordinates:["@@XBDA@EIACM@IJAD]BC@SFABISAD]H@@OAEDQEW@BLE„MD@FLDh@@LDBF@@M`J@fTB@H"],encodeOffsets:[[119175,40932]]}},{type:"Feature",id:"110101",properties:{name:"东城区",cp:[116.418,39.9367],childNum:1},geometry:{type:"Polygon",coordinates:["@@DBf@@VDA@OF@@CT@FEH@@GADBMTBBECCRCGG@YS@@gDK@A‘C@PG@C^TBAJEB@TADC^IB@J"],encodeOffsets:[[119182,40921]]}},{type:"Feature",id:"110104",properties:{name:"宣武区",cp:[116.3603,39.8852],childNum:1},geometry:{type:"Polygon",coordinates:["@@RBX@RFFCŽBFU@aK@WA}CCJGAEFkCBRFD@JB@@N"],encodeOffsets:[[119118,40855]]}},{type:"Feature",id:"110103",properties:{name:"崇文区",cp:[116.4166,39.8811],childNum:1},geometry:{type:"Polygon",coordinates:["@@XBL@@bEV’D@BX@AC@MHA@EIBCCDSEMmB@EIDBME@@MG@EDUCENWD@H"],encodeOffsets:[[119175,40829]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/china_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"xin_jiang",properties:{name:"新疆",cp:[84.9023,41.748],childNum:18},geometry:{type:"Polygon",coordinates:["@@@›ρȁôƧƦóəʵסʵóƪԫʵѵͩƧͩړ›υࡓɛʵ@ȃ@óᇑѵƨɝɚôóНѺͩɜ̏ԭʵôƧɞñ@υƩ—݇ȂóƩƧ@ѵȂυœƥŌਗ—॥ɛóʵѵƧѹ˜݇̍ࢯ˜əɞυ˜ρͩ̏óਙƨƧŋôōóš̍ͩóʵן›óŋړͪƧѶ@ɜԭ—ԫƦɛȄ̍›ɝȄöςƩȂ̏œñȀ̏œƩóóŎə˜@Ő̎@ɞȀɝŎôƨóנѵȄƧ@óŏɝœóɜôŎ̍ͨςŎ@ƨóôƨɞ݈ʶóƨφó̎Ȁƨ̍ԮòѸԮמ@ѺȀ@ƪၬֆòȂñ̐òȂɜ˜óƨ̒Ŏ̑߼@φρȀ@Ő๐ς̎Ƨφ@ɝφڔ೦Ԯǿࢰ@ƦŏԮƨƨȄƧ۬ɜʶڔŐɚɚóŐôƨ߼˜ôƧƧó̐ƥóŏѺǿƦȁφƧς˜ƨƧ̒@ɜƥƦυ̐ɛƪͩƩəƪʷ̑ə@ȃƨʵנŋྸōਚԭԪ—@ɝƨŋ̒օςʵôƧ"],encodeOffsets:[[98730,43786]]}},{type:"Feature",id:"xi_zang",properties:{name:"西藏",cp:[88.7695,31.6846],childNum:7},geometry:{type:"Polygon",coordinates:["@@ôŌנœôʶ̎ͪô™óŎƨŌਚƧ̐ôςͪφ—ɚɝࢰ—݈̎Ѻ—Ѷƨôʶ०ɜਘ˜Ʀŋφ›Ѷȁ̍—ôŏɚŋ@̑ə—@ŏò̍ɜ›óƥôʷƧ̍φѹԪ̍ע@Ѹʷɜ@ôñנ@Ѷɛɞô̐ŏѶƨѸƧƥōƦœôŏô—@ƧôƩ̒ŋƨŌƦǿô̎ɜȁ̒—óʶѶôôО̒›ςƥɜНφσɛȁ̎υƨఱƧŏ@ʵƥœ@ŌóóóͩƨƧóŋ̑õóɞóɝԩͪɝρôƧ̍ƧѹͨڑŎ̑ōóƧࢭͩ̏ѵɝóఱóóԪυô@̒ƥŌ̏Ƨ̑Ȅ݇ŎƧ›ѵӏ@ɛõŏɛȄôӒƧŌѵǿɝ˜Ƨŋԫ@̏ʴƥ@óǿ̑Ȁóǿ̍ςóóυô@ʶɛñρƦƩŐó̎óœѵó̑ͪࢯОóɜן˜Ƨ̏ƥȄ߻̎̏̐ןŎɝɜöɞƩȀôöɛȀóͪ̐ƨƪ̍̎ȂƥԪυО@φɞ˜ôƪ"],encodeOffsets:[[80911,35146]]}},{type:"Feature",id:"nei_meng_gu",properties:{name:"内蒙古",cp:[117.5977,44.3408],childNum:12},geometry:{type:"Polygon",coordinates:["@@ኊȁ૊ö߼ƩɜɛנñԮɛѶóԮô@ȁѸóמ̎ගѺၬ@߼ʶԮӒ߼̎@ŐѹӒ̒Ԫƨöග̑ѶȄ̒ς।œѶɚöɞɜʴڔôôȂ̎—ѺȀς—ƨ˜ƪóԪ—ɜôɛОਕڔԭ˜ѵ̍ѹȂԫ›ɛƥ̍Ȃóɜ̎ô@ʶ݊ੲࢮʵږͪנƨôȂƧ˜̐ͪ@ŐƦƨφԬѶɜôƦ@ŐƧôôƦəŐ̏›@ŐڒѶԬô̐ʳԩНςōôŏɞ@ƨȂѶəóƧ̒ػ̎ó̐Őנóƨô̒@ƨɚɚ@עԫɛɛ@ȁυͩƥʳòևρ—̑ࡗƧͪ༃ॣԮփ̎Ʀ@ôô@ôō@š@ȁѵóƨ̍υȃóʵɛƨƥóυȂóəƪ›̐ρƧͩɜԭڔȄ̎عƧȁ̐ŏó̍ɛ›ƥƧ̑óρŐ@Ƨ̏˜ɝəɛ˜߻ͩ̍ͩɝО̍ƪƧóóӓƨóƧʳ݇@ɝςƪœ@ʴƩ—ƧƦôƨɛȄə›Ƨŋυ›óͩѵ@ɝǿóŌן̍ɛ˜óО̍œ̑̏ôȁ̍ŏòȁñóƦͩ@ǿə@ɛƧ̑˜ρȁυô̍օѹœóȃə™@ȂσʵѷƪòƩ̍—ôó߻ۯôʳƧ™óšõʵѵóѹɜ̍ȂѹôɛŌφֈƩͨρóυӑóޟఱ̑݇ͪóƪƨŌóȄڔԬƩςםñ̑ȃѵŐԭŏƨȁɛǿρôõɚɛóƧОə@ѹ̐ѵöԪͨôͪɛ̒ןŏƧƥóôƥƧɛŌôóɝó@̒݇Ӓ̒Ō@Ŏԭࢰ"],encodeOffsets:[[99540,43830]]}},{type:"Feature",id:"qing_hai",properties:{name:"青海",cp:[96.2402,35.4199],childNum:8},geometry:{type:"Polygon",coordinates:["@@ƨ@ôƪ݈ȁƪ˜@φɝòóƨԮʶɛ̐ѹͪôОəóƧɞᇒѶ@ôږô@ǿѶ›ƪȁςœɜͩφ˜ςŋɞôѶɛƨŌɞ—@ɚςŐñԪॢͩƨȂɞóƨŐ̎ŏעӏ̎óƧƦôœ̒ȁɜ›ςͩ̒œɚɛƨôƨɝφɛóȁƨŋóóɚͩƨóóƩ@ƧəŋƦƩ̍@ƧƧôǿυ̑@ȁɞǿõŏρƥסɚƧóτԫɞœôƧƦ@ñȃòñƥóυôôѹѵ—@ŏ̏Ȅɝó@ȂəŌóəѹƦ@Ő̍Ōυ݈ԩŐƧóôƧ̑›ôʵɞƧ̑ѵôƩɞƧ̑œóНѵóôʵ̑˜ɛȂó̍ƥȀƧŋ̑Ōóƪ@ƨó˜óŐƥ›ƦŎѷƨѵƧ̏Őɝóѵɜן@óòɛ@ѷʸס@ԩ̎υѺƨ̎óʸôƦɛœñ̎@Őɚ˜@̒əŌóŐ̎˜"],encodeOffsets:[[91890,36945]]}},{type:"Feature",id:"si_chuan",properties:{name:"四川",cp:[102.9199,30.1904],childNum:21},geometry:{type:"Polygon",coordinates:["@@ô˜ôŋó̑Ԯ̒ɛОמͪƨōöͫ߼ƥôȃƨóóñôƧóƧôōڔŏƨŐ@Ŏô˜òƥѺŎ@ōɜóנ˜ôǿô›ƦôԮ̍ɜôɚ›Ƨ—ñɛɚȁ̍Ƨɛևυ@óóôŋρԭɝ@Ƨʸ̍ŏυɜƧƧóƧƨȁρ̍ƨȃɚ—ôʵφóô̑̏Ȃ̑ʵɜʵɞ@ƨʳסƩóŎə—óɜƧôƩƧρ˜óôôô@ŎƧƨƨƪѹ˜ó̍̍Ʃ@̏ѹНôޟ̍Ʃóƪυɝɛ—əƨôŎɛȀ@Ȃ@ñɝʶ@Ōρנ̏—õóɛͨƨȂѵОɛʵ@̏ƩŐó߼Ƨల̍φɜȂυτɛОρƦɝƨóƪ̒Ѷɝƨóʶ̒œóƨƨôԪŏφ݇̎ŋ@ŏѺƥôɚɚŋ@ȁɞô̐ȃ@ŐѶ˜óѺφóƦôñòòȄ"],encodeOffsets:[[104220,34336]]}},{type:"Feature",id:"hei_long_jiang",properties:{name:"黑龙江",cp:[128.1445,48.5156],childNum:13},geometry:{type:"Polygon",coordinates:["@@ᇔȂਚНƨŐѶŏöƥςŏñƧƦóƨȁ@óƨ—óȁφӑóóƨ˜óǿ̎̑ôНɞ—ó̑ɜə߼›̎ǿ̒ôڒӑφ@Ƨȁ̎̏ƥƩ̎ρశ˜ôȂςƨφ@נɞ݈˜̑ƥƧɛƨʵƧȃƥ@Ƨƥ@ŏ̑ԩôɝρρóɛƧ›ƩͩƧó߻ʸ̍ʷѹƥɞڕõ̍öɝυ—̍ȂƧ̐̑ŏóƨñŋѹóóȁ̍›̏Ԭõʸ̏ŏ@ǿ̍@ƧОυ@ñƨòȀƥŎ̑ŐѵóɛŌóȂԫōƧŎѹñ̍ʶóОן@Ƨ̎Ѷô@Ȃ@™óŎó@@ó̍ƥԭք༄।ƨͩ̒ࡘς˜ñֈƦʴφͪ@ȂɜɜסԬə@Ƨə̑@Ƨóןô̏ŏ̍ô̑ؼôƨѵɚƧȁɝ@óŐρŎԪО̏ʴ"],encodeOffsets:[[124380,54630]]}},{type:"Feature",id:"gan_su",properties:{name:"甘肃",cp:[95.7129,40.166],childNum:14},geometry:{type:"Polygon",coordinates:["@@ڔôԮࢯ@ō̑ŋ݈ӑ@̑ɞôóôɜŋƦƨôóƨƦנŐɜ̑óͩԩͧѶõѺ̏ɚ@ƨНɜôöəςóɜȀƧȂԮŐѶŏ̒ȄמòƪρړԫôȃƧŋôƩ݈ͩɚ@@ǿɜ@φͩóŏɜӑƧōôǿ̎›ôƥƪóõ›ö@ô—ƨ˜ôƧƦôó̒ɜ@ɞŌõʶ̏Ő@ȀóôƨȂ@ʶע@@ƥ୾ӑó̑óŋôʵóɛړ@@ƩöóƩóρ—ɛƨ̑@óʷƥƥ̎ɛƧ›ôōƧǿôͩѵôɝȃɞȁõƧρóó—@ōƧŏړŐóŎôƨóƨôòƧôóȄ߻ƦõͬƧŎםͩɜНԭ̑ô̒óŌó—ƥ@óƨɝ›σԬƨôעəςƦöŐɝȀ@Ȃφ̒óȀƨƨ̎@ƥƪɚŌ@ƨôƪƧôəͪôôƧŌôȂυɜƧɞƧóəɜ̑›ρͪɛœ̑Ȃó›ƨƥ̍ôסӐ̍ŐƧŏɝôƧȁॡͪòԩρŏ@əɝ˜ƧŋѵɜɝóρŌυ—ɛͪρ›ƩȂѵœ@Ȁڕó@ȄɜʶφࡔڔœƨͪѶͪԬʶôƩעʶɚʶƥôóƨςȂ"],encodeOffsets:[[98730,43740]]}},{type:"Feature",id:"yun_nan",properties:{name:"云南",cp:[101.8652,25.1807],childNum:16},geometry:{type:"Polygon",coordinates:["@@ôɞôɝ̒öôŌƧƨôͪôô@ŋƦ›@ʶƨŐô߻ƪŏ@̐ɜʶѶНƧȁɜͧöô̐˜ςן@ŋɞʵ@ò@ȁɜǿóōɚƧɜ˜φɞôƩ̎ƪóޠѺО@̐̎ƪô̎Ѻ—ƧƩƨƧ@ōóóôóς—ƪƨƨóôɛó̑ԭ—ƥŌɛǿɝƨɛͩô›@ǿƨȁѺŌɚɛ̍ןѶНɛƧôóƥȁƦͩôŎɞ—ƨ̑ɜ—òôφ@ƨʵ@ɛѹōóȃəƨυǿóʵρƧƧŌƩɛ̏ȄñƧƧȀɝ̍ԩʶƧ̑υ—óŌƥʳɚӑóНƥô̑›óӒѵʵѹœƧӐןôƪφõŌƪ̒ԫŌƧؼƨƨס›ρȁƧœƨȂóʶó@@ʴƨôôφ̎Ŏ@Ȁƨ—ƪɚƨœóƨôôôςóޤƧŌƩŋƧԪ"],encodeOffsets:[[100530,28800]]}},{type:"Feature",id:"guang_xi",properties:{name:"广西",cp:[108.2813,23.6426],childNum:14},geometry:{type:"Polygon",coordinates:["@@ƦŋѺ̎ڔʵƨŐ@ƦמȄƪôóȂɜŌɚͩɜ@öóɜôôȂƦôɜȁ@ɞφ›óȄ̎›ƨʶɞŋƨʴɚǿ̐̎Ԭ@ôñ@̏ƨ›ρ۫ô›ɚƨƨНƪŐ̎›ƥóƦʵƥŋ@ȃóƥƧ@@ŏɝǿôυƧȁѵɛ@əóŏ̑@@ə̍›óƧó—@ȁƩ˜ρóòНƥô@Ӓ̑@óŎ̍ƥσŎυ@̍ƨ@Ō̑ôóͪƨ̒óŌړœ̏Ŏ@ŌôȄѺŎ@ɜƧʶυ@ñóɛ˜Ƨ̒ɝ˜óōƥͪ"],encodeOffsets:[[107011,25335]]}},{type:"Feature",id:"hu_nan",properties:{name:"湖南",cp:[111.5332,27.3779],childNum:14},geometry:{type:"Polygon",coordinates:["@@@քɜОƨ@öŐמóƪôƩɚ̒Ő߼ȁςͩɜòƪ—ɜȀò—ñɝò—Ѻͪ@ŏƨŋóɝôǿƨ™ɚȃóəƨȃѵͩó̍@ȃƨóóƥƨƧ@ʵƦ›óͩɜ—ɛóñԭɛōυȂ̍ƧƦō@ɛƥ—ɛȀ̑œóʷóō̍œƩŏƧОəƧóœς۬Ƨœ@̐óòԫ@̏̍əȀƧʳɝŌóɞƧ˜ƨɜóŐƨò@ȄƧŌρŋóôԪОóʶ@̎óȄ"],encodeOffsets:[[111870,29161]]}},{type:"Feature",id:"shan_xi_1",properties:{name:"陕西",cp:[109.5996,35.6396],childNum:10},geometry:{type:"Polygon",coordinates:["@@ςôöƨɝȂɞȄѶóóͪƨȀóŎƨœ̍ɜƦƦôʸ̒@ɜƧς˜ƪôõô@ƪڔ@ôɜóʶôŌô̒୽Ӓ@Ʀ@Ѻ̎ɜѺɛѶôöʶô™ƨšóʴ߼۰óô̎˜ñƪѸƩτʶ@ȁòŋəѹóǿ̑ʵ@ȁ̒ʷυփô݉ôН̏ط@ȁƨóô̏ƪõ@ʳ̐ʵ@ɝɛŋƩŌɛóןôƧŋ̒ó@ŏ̐ƥ@ŏυ@ƧƧôן̏@ƥȂѹɜəœɛóԭ̎ƥóóœóȀן—ɛô@ŎѹōñƦ"],encodeOffsets:[[108001,33705]]}},{type:"Feature",id:"guang_dong",properties:{name:"广东",cp:[113.4668,22.8076],childNum:21},geometry:{type:"Polygon",coordinates:["@@@Ȃô˜ôƨ̎œ@ɚ̒@ôŐ@ɚѶɜƨȂóφɞȀ@Őƨ@ôƦ@ȄƦŌƥʶƦôôŎôʸ̒›ɜǿƦ˜@ɜƥŎ̎ƨφȁɜŎòƥԮŎƨōóŏɛƧɝəɞƧ߼ɜςȃñȄƦŎ̒ōôòƨəƨ˜ɚН@əƨ̏ƪʵυŌəɛóəԭŏəœóŏѹœρʵɝƦ̏™ƥʳѶ›öō̑óóŋρȀυƧƥɛѹōƧôן—ɛŏѵ@óŋôʵɝ›ƪԩõ@Ƨō̍@Ƨ@@ƦɝԮƪО@@","@@X¯aWĀ„@l"],encodeOffsets:[[112411,21916],[116325,22697]]}},{type:"Feature",id:"ji_lin",properties:{name:"吉林",cp:[126.4746,43.5938],childNum:9},geometry:{type:"Polygon",coordinates:["@@נ@ôН̎ʵѺòƨōԬŎôȁɜŋѶô̒ŏƦōñǿòƧφ@ƨН̎@@Ȁ̐Őöʷ̐ԫ̎œôȂѺôòŌôƧ̒Őƨ̏̎ȁφ˜@ŋƩͩםȃƨ—@ȁ̑ʶ@Ōóôɛœƥѹ̑—συ݇@ɜρƧȃࢯƨôœəȂɛōƩɛ̏υρóõœƪʴυφ@ʶôŌóœρք@ɜƧ@ɝǿƧͪρȀƩó̏ŐƨȂ̍غړȃɛԮƨͪ̏ςƩœôɚφȁƦôɜƧôʶφȄ"],encodeOffsets:[[126181,47341]]}},{type:"Feature",id:"he_bei",properties:{name:"河北",cp:[115.4004,37.9688],childNum:11},geometry:{type:"MultiPolygon",coordinates:[["@@Ʃ̒̏ŌѺ̒Ʃ˜óȄƧŌƥͪòôñȂ̎ŐóȂ̒̐̎›ôНɜ—נ̎ôŋɞȀѶ@ôͪφœƨŌɚœɜȃóƧƨƥƪ˜@ʳƩ›ɞρ݈@υНφʵɜ˜ƦρƨƧ̍ɝóɛѹ̍ρŏ̑ôóƨ@œƧƦôƨɛ@ƥƨ@ȂƦ@@ôəŐƧʶƨŌυœ̍̎ɛŋôōɝ@óƧ̍›ƦʵѵʳôʵɜŏςôƪŋƨŌɚ@ôНƥƧ@ōѸɛ̐ô̎ʵѵНԭ@̍̍Ƨò@ȁɝ@əρυͩƪ̏ƩõƧŎƧōóšॡȄɛʶɜȀ@ɞςѶƧœƥςɛŐ@ɚɜɜ@Ŏôôςœƪς"],["@@õə@Ƨɛ˜@ŐóƦφô"]],encodeOffsets:[[[117271,40455]],[[120061,41040]]]}},{type:"Feature",id:"hu_bei",properties:{name:"湖北",cp:[112.2363,31.1572],childNum:17},geometry:{type:"Polygon",coordinates:["@@ñȄυƦöŐƩ˜óנƨƨφ@@Ő̏Ʀ@Ő̑ôƨŌנóɜôƪŋɜŌѶօڔə݈òɞōɜŎôӏƦóƨô̒óôȃƨó̎ŐôƧƪ@ƨȁςƧə̑̎Н@̍Ƨŏρôԭͩԫ—̍ʵƧšóȀôɞƧŌ@Őѹͩñ˜òɞñ˜ɛǿƩ˜ɛñρͪ߻Ȃ̑ŏƪəƩóםôõŏƧ@ɛНƥȄó›̑ѺƧ›ôφóƨƨƦƪóɜŐôóòôƨóφ̐ƨóƦ̎"],encodeOffsets:[[112860,31905]]}},{type:"Feature",id:"gui_zhou",properties:{name:"贵州",cp:[106.6113,26.9385],childNum:9},geometry:{type:"Polygon",coordinates:["@@ɜȀƦŋԮ˜ô̒ɚ˜ôōעƪƧʴɝ@ɛʶ̒ʶ̐ȁƦœóȂô@ôŏ@ōô—ƨʶѸô@ʶƨ˜ɞó@ōτöòυƨ@@əƨô@ɛ̒@Ʀɜôȃ@̍ôʵԩНôóςŌƨŋ@ȃƧñôŏƧɛƨ—ôɝƧʵ̍œôȃυœ@ɝɛȂƥóóȁɛóõôɛ@əͪɛŋôȁƩóםȃ@ƥƧŏړʶѹ̍ƥŌƦȂóôɜƨѵО̎נəɜѹŋƧȂ@ȀóœɜͪɞƧ"],encodeOffsets:[[106651,27901]]}},{type:"Feature",id:"shan_dong",properties:{name:"山东",cp:[118.7402,36.4307],childNum:17},geometry:{type:"Polygon",coordinates:["@@Ʃ̐φͪɚςɞ@@Ȃƨñ̎̎Ԯ@ѶОƨƧڔ@φН̑ŋ@Ʃ̒ǿ̎@ƨɜԬςôʶ̐ʶöԫƨƧנƥɜŎôō̎@ôŏóρƧŏԫôóƧԩó@ƥɜƧԭóƨʵɛƨ߻ӑɜНԩ˜óô̑óƧʳə™óɛƧ@õȀƧœ̍ȃɛŐóŏυО̍—óɝƩ—ԩ@ƧɚԫȄɚʶƨ˜ɞʶԪ̐ړɛƪ̒"],encodeOffsets:[[118261,37036]]}},{type:"Feature",id:"jiang_xi",properties:{name:"江西",cp:[116.0156,27.29],childNum:11},geometry:{type:"Polygon",coordinates:["@@ƧȄôɚəȄ̎ʶԬ˜ԮͪςóƨŐƪ›τɞƦōƥƧ@ŏςôóŐôô̒ʷѶ—ƪƩƩǿ@ō̒ɛôυ@—Ƨȁѹɛəƨѹ̑ƨ̏óƥѵʷô̍ɛȁôŏɝǿƧԫƧ›ôʳƥōòȃρȄ߻ɛɝƨɞɚɜƨôŐƧŎԭōñƦòԮɜôɛ˜ôͪƥœ@ʶƧƨôƦƧô@Ȅô̎Ѷͪ"],encodeOffsets:[[117e3,29025]]}},{type:"Feature",id:"he_nan",properties:{name:"河南",cp:[113.4668,33.8818],childNum:17},geometry:{type:"Polygon",coordinates:["@@φ˜̎ƪ̐˜ɞȄɚ@@Ȃעó̎ŌѺ̒ôֆॢȃô™ƨŎƨōƪöƩ̑ڔɜԩ̏ɝʵƧ—əʵԬȃƨəԪ@@Ƨ̒ŏô̍υȁƧɚ̍ôóŋ@ɝƧŋõ̑σ—@ŏɜŋôɝ̒ƧɚôôطρóóɛƩ@óƨ̍ŏƧôóȄ̑ôƧóƥôóӐɛōɝŎ݇ñړɚѵֆ@ɞ̏ʶ@ʴƩöó̐"],encodeOffsets:[[113040,35416]]}},{type:"Feature",id:"liao_ning",properties:{name:"辽宁",cp:[122.3438,41.0889],childNum:14},geometry:{type:"Polygon",coordinates:["@@ƨʴƧôôӔƨô̎ƩɞН̎ͪ߼ͪɜ—ɞɚ̐—@ƨςŏ̒ôƦƨɜœô̎ƪôςǿƨͩɞȀƨ@@ɛςփô›óŋ@ʵφυƩʳö›॥փρѹס@əɛ@ͩࢯ@ѹʵρ—ƩʶφȀƧ݈̒۬óʸɝŎѵ@ԭԫןɛƧƨƥςɛ—υʶφО"],encodeOffsets:[[122131,42301]]}},{type:"Feature",id:"shan_xi_2",properties:{name:"山西",cp:[112.4121,37.6611],childNum:11},geometry:{type:"Polygon",coordinates:["@@ɚѺñŌɚšôȄѺ›̎ֆφóςȂ̒—ɜƨɚ@@Ȁƨŋôȃƪ—ѹ̑̐ŋƪ̑Ʃρρ›óó@ōɛɛ@əɜŏƦρƨ›ρѵ@ɝɛǿɜʵóօѹ̑̍ŋסô@ȁə@ɝȃ̏—̍Ʃυ—Ƨô@Ȃ̐ظóОó݊φք̑ʸ@Ȃ̒ʶôȀ"],encodeOffsets:[[113581,39645]]}},{type:"Feature",id:"an_hui",properties:{name:"安徽",cp:[117.2461,32.0361],childNum:17},geometry:{type:"Polygon",coordinates:["@@ó̎̑Ő@ƨƪ˜Ѷǿɜ̑φ—Ʀʵ̐˜Ƨѵôóƪôôυς—ƨȂɞŏ@̍ԫôò̑ƥ—óȃѶͩƧƥôŏѺœôŏƦ—@›ƥͩƧ—ôȁυó@̑ƧɛѵʵƩƪѵ˜̑ʸóóôŏρó@ŐƦƨƥŎσɝƩœ@̎̍Оɚ̒ρƨƧȂôɜςôóظəó̑ƨóɞɛŌ@Őτ˜ö̒ƨŌ@ɞôŌ̎óƨəφȂ"],encodeOffsets:[[119431,34741]]}},{type:"Feature",id:"fu_jian",properties:{name:"福建",cp:[118.3008,25.9277],childNum:9},geometry:{type:"Polygon",coordinates:["@@̎›óȁƨӑ̒—̎ɚƨͩφŐƨɝ̎ŋóŏρ—@ōƨ›òʳəóƨō̏˜õɛƧ@ƨѵƧōəŏóŋƧô̑ɝɛʳƥ@@óɛõ@Ƨ̑ƧóȁəƧ̑—Ƨ̐@ɚəОƧ—Ƨɚóñ̑ŎóʴƨœƨԬɞȀóŐɜȂó̎ѶʸôƦƧ̐Ѻ̒ɚƧѺɜƨȂ"],encodeOffsets:[[121321,28981]]}},{type:"Feature",id:"zhe_jiang",properties:{name:"浙江",cp:[120.498,29.0918],childNum:11},geometry:{type:"Polygon",coordinates:["@@Ѷʶƨɜ@̒φôóȂƨ˜Ʀͪ@œ̐˜Ѹ̍τȂ̒̑נŐמôƪƧôӑ̑›@ƥρͩƨօ̏@@υɝó@ŋɛ@ôƩəóƧѵυó@ƩɜŋƧ@̍ŌƧɞυŏƧͪ̍ə̑˜ƧӒôȂ̍œ@˜óφ̑ɜ@ŎƪȀ"],encodeOffsets:[[121051,30105]]}},{type:"Feature",id:"jiang_su",properties:{name:"江苏",cp:[120.0586,32.915],childNum:13},geometry:{type:"Polygon",coordinates:["@@ôɞ̎˜φНôŐɜŏ̎Ȅƨ›öǿƨ@ôɜɚšƨʴ̒ôôó@Ƨ̎əԮȃԪૉöͩ̐ƧòʵφƧôʵ@óړɜóŏɜǿƧ›ɝρσȁѷ̎̏—ƥ˜óŐѹ›óŐƨƦѵͪôȄƦ˜ñ̒Ԭó@̎ɝŐƧȁρ˜óφƩóóôƨѶ̏—ƥʶυ˜ɛ̒ѵȀ"],encodeOffsets:[[119161,35460]]}},{type:"Feature",id:"chong_qing",properties:{name:"重庆",cp:[107.7539,30.1904],childNum:40},geometry:{type:"Polygon",coordinates:["@@əȂòɜƨ˜ѺɛƦȁ̐@ƪ—õŏφƥòȃƥ̍Ƨôυ̏ƧôñóóôɛŏƩôƧƥôƧóυƨœ̒ѹôœƦȃ@փƥɛ̑@@ɜƧó@ɚƧ@ñφσõ@ŎɝôƧ—@ʵѷóƧʵó˜@ŎóŐó@ôȁƥ›ó̒υôóʶə˜ƧȄς̎ƧȂôƨƨƨφɛ̎Őƨʷɞ@ςԮóŌôôφ@ɜֈ̎ƨ"],encodeOffsets:[[111150,32446]]}},{type:"Feature",id:"ning_xia",properties:{name:"宁夏",cp:[105.9961,37.3096],childNum:5},geometry:{type:"Polygon",coordinates:["@@ల̒ôޠφӒςôƪͧυևɜŋѺó̎ȁ̍ɛ@ѹס@@ʵƧȁôó@ǿ̐ŏöʵɝŋɛ@ô̑ƥóóƨƧ—ó˜ôœó@ƩôóƦ̍œóȀƨŎɛӒôŐυͪɛ@@Ȁə@"],encodeOffsets:[[106831,38340]]}},{type:"Feature",id:"hai_nan",properties:{name:"海南",cp:[109.9512,19.2041],childNum:18},geometry:{type:"Polygon",coordinates:["@@φɜƦʶ̐ôφô̎@ƨŎö@τʵƦ˜ԩ۫õН̏óƥȃƧ@Ʃəםƨ̑Ʀ@ޤ"],encodeOffsets:[[111240,19846]]}},{type:"Feature",id:"tai_wan",properties:{name:"台湾",cp:[121.0254,23.5986],childNum:1},geometry:{type:"Polygon",coordinates:["@@ô—ƩɝöƧɝѵəޣ̏ρƩԭóōóͪρɞƧОôԪ݈ଦѶɜ̒ɛ"],encodeOffsets:[[124831,25650]]}},{type:"Feature",id:"bei_jing",properties:{name:"北京",cp:[116.4551,40.2539],childNum:19},geometry:{type:"Polygon",coordinates:["@@óóó›υóôƥ@ŏóóə@ƧŋƩŌρóɛŐóʶѶʴƥʶ̎œôƨɞ@óŎɜŌ̎̍φ›Ƨŋƨʵ"],encodeOffsets:[[120241,41176]]}},{type:"Feature",id:"tian_jin",properties:{name:"天津",cp:[117.4219,39.4189],childNum:18},geometry:{type:"Polygon",coordinates:["@@ôôɜ—@ƨöɚôœôôɚŏ@óƥ@@ȁƦƧɜ@óƧƨƥ@›ƧóəН̏óѷɜ@ŎƦƨóО"],encodeOffsets:[[119610,40545]]}},{type:"Feature",id:"shang_hai",properties:{name:"上海",cp:[121.4648,31.2891],childNum:19},geometry:{type:"Polygon",coordinates:["@@ɞςƨœɛȀôŐڔɛóυô̍ןŏ̑̒"],encodeOffsets:[[123840,31771]]}},{type:"Feature",id:"xiang_gang",properties:{name:"香港",cp:[114.2578,22.3242],childNum:1},geometry:{type:"Polygon",coordinates:["@@óɛƩ@ρ@óœôȀɚŎƨ@ö@@ōƨ@"],encodeOffsets:[[117361,22950]]}},{type:"Feature",id:"ao_men",properties:{name:"澳门",cp:[113.5547,22.1484],childNum:1},geometry:{type:"Polygon",coordinates:["@@X¯aWĀ„@l"],encodeOffsets:[[116325,22697]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/chong_qing_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"500242",properties:{name:"酉阳土家族苗族自治县",cp:[108.8196,28.8666],childNum:1},geometry:{type:"Polygon",coordinates:["@@XJ°œlJX@lbl@XbV@VLnJlxnbšƒUU@IVK@lVIVwnJlU@n@J@L@Jn@l_nWVLVln@@blLšmV@@xœÔ‚`nœ™xV‚ÈLlx„LVxVVšƒV_U»VWn_m¥XwVmnX°ƒlmUUVwÞaVƒk@a@mmIUa@™mwk@™ƒm@@U¯a@UV@@K™@ykkmwkV@kU@ƒÑƒVkKWLÅamaUm@kyU@WkU@Ua™IUašVaUUmUUa@aVLXKWa¯UUbmJXnWnX`l@@xkzWÆ@V„LU¦‚x@b@JkIkJ@LmbUamJwm@óxƒnk@V„@x„ŽVnUVmVUVŽUbVlUbkXWŽ"],encodeOffsets:[[110914,29695]]}},{type:"Feature",id:"500236",properties:{name:"奉节县",cp:[109.3909,30.9265],childNum:1},geometry:{type:"Polygon",coordinates:["@@WVXb‚UnK@x@b‚²kxmKkl¯_ƒVV°™VU@bnKVVV@@nkŽ@n›bn‚@š°@VLČUš@°WV@V™nU@InKVl@nU„b˜KnX„WlknLlKUwnalLša„VlUXmWk@UU@UWWIUyķ¹XaWW@X™ƒKUIVm„U@W@UVU@KV@n»VkUkÇmUmVIUmULUbm@ƒwUaƒKkkm¯ÑUL@bWVnx@VmxUI@„klmkkK@aƒK@IlJ@I¯ƒk@mak@mnkJVL@bV@Ub„„W`UUUV™I@VƒU@VVbUJVLUVVbUX„VVxk¦VJUnVxnVVUšJV@Ubl@@bXV@L"],encodeOffsets:[[111781,31658]]}},{type:"Feature",id:"500238",properties:{name:"巫溪县",cp:[109.3359,31.4813],childNum:1},geometry:{type:"Polygon",coordinates:["@@nLWbX‚VLVU„V@KšIVl@b„@lbšU„VnU@JÆU@V@n°KĢUl@VbÞKšVš@„_„V‚KXU‚U@KXƒ@wlkkU@mWKUU@UôJ@XV@œaVmÞIVaVLƒƒ@»kmƒ@ƒUkL™U@aU@WWƒLUUU™™KkbƒwWa@KU@kaƒXmW—LƒamVk@UmL@JmVUšU@¯X™@ċVUK¯@ÅnWK™LkKULWK@UXK@wW@™LkV@bVLƒlXn›`¯xU„°LnŽlV@n°Lnl"],encodeOffsets:[[111488,32361]]}},{type:"Feature",id:"500234",properties:{name:"开县",cp:[108.4131,31.2561],childNum:1},geometry:{type:"Polygon",coordinates:["@@n@na‚I„wš@@VVK„LVbVxnVÆUnanKWXamKmk¯K@mkUm¯KVƒ°w@Wm@UIUUlKUU@a¯KWanwmUXamKkUWUnU@KƒkUwWKXaWLUWkImaUUUƒƒKka±k@lƒ¯w™wmbUƒ™ƒkXm@UJkIW‚XXƒbƒmƒ„UJ™XUV@°šKlšlVXV@xmbnV@blV@VšœU`UL@V™a@bULlb°VXbܚ@V@bƒL@J„xnLVb@lVb@V@@z˜bXWšX„KVLV‚š@@bUVVL@b„„lVna@ll@„zl@@J"],encodeOffsets:[[111150,32434]]}},{type:"Feature",id:"500243",properties:{name:"彭水苗族土家族自治县",cp:[108.2043,29.3994],childNum:1},geometry:{type:"Polygon",coordinates:["@@„Jlb@nVV@bXb@ÆlL„Ul`nVKU¼VxkbW„nlUxlXX‚@°°WnnJ@VUn@J„k°L@VlV@nUJ„x@bVVVz@VnLla„KnalVlIUŽ„¼@nV@@anKUwVal@UlJœƒlI@akU@UWXKVI‚¯Uak@@KmkXWÜkXWykIWwXw@laXamkVUUym_XmlkkmmakwmIUKU@Wak@kaW@kI¯›WIk¦VŽƒUUƒmaUV@XkVUV±aUb¯b¯¥m@@ImJ—@mƒmL@kUKUkkJƒbV¦"],encodeOffsets:[[110408,29729]]}},{type:"Feature",id:"500235",properties:{name:"云阳县",cp:[108.8306,31.0089],childNum:1},geometry:{type:"Polygon",coordinates:["@@lb„LV„VVnblJVXXKWbXLVx„l@LmVXVVl‚nLWbnVmxXb°L@bVVkLVVVJn@@X‚‚œ_Wm„kUK@alUšKX@@xWL@VXLVKlLšKXLÆm@™mœa@ml@mU@UUmL@aVšUU¯„U°`lknLlw±@a@wmLVWaXU@KWU@ak@VaU@™IUVmUUwVmUIl¥UwƒUVWUaVUUKVIUa@UUUUJƒUUm™kƒ„nl@„@VWV@L¯aUb™Ulxƒ@@b@VULUx@VUxVV™U@bU@mxU„U@mUVŽklkkƒ@WxknlxK@amLƒKU„K"],encodeOffsets:[[111016,31742]]}},{type:"Feature",id:"500101",properties:{name:"万州区",cp:[108.3911,30.6958],childNum:1},geometry:{type:"Polygon",coordinates:["@@ĸĊVI„ƒ„n„aWWXlJVIn@lWš„V„našx°xk„l@²Ž‚LVƒ„LnK@b‚LkwlmXw„@lllkUnVV@VƒnwV@@ašVUUVw@UVwVK@U@a„@kwšVVa°b@KXU@U@ƒmk„ƒÇсaml™kUVmn@VULU˜m@kUVkUaƒwUWm@Uw¯„mKUUmVUUULUKU„W@XbWVkaWwkUU™ƒ™k@maUbmbVlk¦ƒxUVUIWVU„kJVVkL@UmJ™UUVU@lLUVU„lx„@@VbƒJ™U™L¯¤@Vƒ„"],encodeOffsets:[[110464,31551]]}},{type:"Feature",id:"500229",properties:{name:"城口县",cp:[108.7756,31.9098],childNum:1},geometry:{type:"Polygon",coordinates:["@@VK@w¯L@m@UÅV@ImVƒU™Vkaƒ@@aUk™J@LƒUUVUKmLmbÅVmUUwUaƒKUL@U™@ƒxJmbm@nVJ@X@VkV‚n™lƒLXx™@ƒb@bUVƒLU`UnƒbU@@ŽmVVX@JX@VLVVšklV—„‚`@bUL@V„LVKn@‚U@„UJkn@lmLmK@X@Jn@mb„nÞWVXnJ‚k„KČÑÆ@VK@knaÜmXlUČW°kôÇÆ@a@yÞ_VmƒUnU@K"],encodeOffsets:[[111893,32513]]}},{type:"Feature",id:"500116",properties:{name:"江津区",cp:[106.2158,28.9874],childNum:1},geometry:{type:"Polygon",coordinates:["@@„InWUUlU@LVašlX@°²lÒXxlK@Ul@@Un@UaVJ@I@W@UƒUUVUwVIUKUa‚UUVwn@Üx@XUlnn‚bœJ@¥VklKUUlk@ynU@kVƒUUVWnI@¥V£VWVIUKU@UVƒa@n@Vm@@nlUaVkUwƒJ@blLkLW@XWmXkmmLn™@m@U@UVm@™„UVUUlakUVa„ƒVkV@@wnaWUk@VwkƒlmVIkUUxmJ@U„™@KƒIkx±V@IUm@K@IUKkbWKUbn„m„@bmVnbmb@xkxUJ@ULW`@bX@WVXL@Vƒš¯„mk¯@UJ@VmLUaWnX@WJ@nkKkxW@UIV@@KkImmkK@UW@XaWIU@U‚ƒIkbWb„xXŽlLVbnV@bWlX@VxVLnl@nÆÞVÜ"],encodeOffsets:[[108585,30032]]}},{type:"Feature",id:"500240",properties:{name:"石柱土家族自治县",cp:[108.2813,30.1025],childNum:1},geometry:{type:"Polygon",coordinates:["@@„š@kl@š¼UbmVXJ@bV@nxVIVJULVVk@@LWbnJVU@bVbUJ@blLXnWV—@mbnV‚@V„„bn@VJVLnaVanbl@„šVšlVXxlbXUWaX@VƒUUVwUUVm@I@WmI@a„mlLœ™lK@alwnUV@kóVaƒÝk@UlbVK@™VU»VUUVWUƒ@U`ULkwm@@KmU@knKƒ»VkJkUmbƒLkbmK@UUyUU@aƒwm@@XXJ@VVLVVUbVnUJVX@K„„k`WXXJWXUbmW@bkL™Um`Xnƒb@JVL@LU@™°VVXKVnUxVLUbmJ"],encodeOffsets:[[110588,30769]]}},{type:"Feature",id:"500237",properties:{name:"巫山县",cp:[109.8853,31.1188],childNum:1},geometry:{type:"Polygon",coordinates:["@@kVƒU™bkKmbVxkLmKkllbV@@LXb„xlašLVšVV„KXXV@@bšVlK„V„@ln@¼°KXa„U@Ulw°JXalIUa„ÝWXW@kVU@ƒVUVWUUUamUw@aVamwn@VUUƒlLXWm£@wÇĉkKklmLUÒ¯ƒWn™@ğ±kwmaWm¼U@@LUV@V@XƒVUnVJ„LWš@‚XXWbĸºVzXJVXV@@VXlWn"],encodeOffsets:[[112399,31917]]}},{type:"Feature",id:"500102",properties:{name:"涪陵区",cp:[107.3364,29.6796],childNum:1},geometry:{type:"Polygon",coordinates:["@@nèVblĖVVnLšŽ„@šx‚V„n@nšJ@L„UVVX@lbUJV@@nn@VVVK@z„˜V@nzVJVUlmX@@_VVVbnaVal@@knW@wnaƒVK@aVI„J@£kUVW@‚wXUVJ„amƒ@Ikƒƒƒƒ_X¥ƒ@WwkKkwmŽ™šƒkUxƒnÅmm¥™WV@Um@UlVL@JU@@Xƒ@UVkKVk™KVk™Kkb@bmJVXU„VVUbU@@`W_UV¯b"],encodeOffsets:[[109508,30207]]}},{type:"Feature",id:"500230",properties:{name:"丰都县",cp:[107.8418,29.9048],childNum:1},geometry:{type:"Polygon",coordinates:["@@Þè@XUK@LlV@blbUJ@„„V@bnV‚@VVVXU@ƒlbXal@VXnKV@maXUރ@amk@aVKXV‚anbš£°mnIVaUKVwUmWLUUš¯V@@KUK@I„aWmn_šVlK@anXVaXWWIXWl_ƒƒ@LUWVIUmVaUUUK@UWI@Wn@VI@mkU@U¯Kƒl@ImVÅLƒwU¤óbUU@wWXkmm@LU@@VUIWVUL@JUnƒaƒx@Jn„ƒbUIWVx@ŽUXlV@¤ƒIUJ@bUL„Žmb@xmX@lk@UbmbUaUU@`W@kn"],encodeOffsets:[[110048,30713]]}},{type:"Feature",id:"500232",properties:{name:"武隆县",cp:[107.655,29.35],childNum:1},geometry:{type:"Polygon",coordinates:["@@l„„w„bVm@IVKXUVJ@UV@@KnnWlX@xVVôaV£„xÆKnUVm@UmIXm¯¯@WkWVwmkXƒlaUwV»ULmk_ƒVkK@ÅWa@aUU@mkaƒIƒb@‚n¼ƒnm‚_@mmK@UƒLUVVmI@aUJ@XWJ@U`UIkm±kk@@lULmUmKUnVšnlUVmI@VkVlx™bkIƒVmLUxkKUŽ‚Xš‚n¦Æn„mVw„lš™nlxlLXx„@W¦„`„„"],encodeOffsets:[[110262,30291]]}},{type:"Feature",id:"500119",properties:{name:"南川区",cp:[107.1716,29.1302],childNum:1},geometry:{type:"Polygon",coordinates:["@@VšUbVJVUn@VLX@WVXVVI@VUVWxU@mš@ĊX@@¼V°aVUX`@_V@VaUUVƒUWnI@alašLUlšLUllLVU„@@WV@@IUKVkn@@VlLVwnK„UlJšakwlU@UnJVUmkU™VmXa@wVK@UUw™@VƒVI@akƒ@alInwlKXUmaUW@wWLk™™KVak_ÇaUƒƒV@šXbƒLVxUlWIk@UK@V™@ƒkU@VbUVUlVnƒLUV@lVXmxkV@L@V@Vk@WbUwmL@JUI@xVxkx"],encodeOffsets:[[109463,29830]]}},{type:"Feature",id:"500241",properties:{name:"秀山土家族苗族自治县",cp:[109.0173,28.5205],childNum:1},geometry:{type:"Polygon",coordinates:["@@XlV@lzn@VŽnbÆbXKlL„U„ÒV@@llUnxll@zšŽ@LU@@V°b@Vn@š„l@VÑUƒnK@UšU@aUaƒkVm@K¯wƒklmnn„Ul`nI@almkIUwmWVkUaƒkkJmUUa@K@aU@@_m@@wUyVUUa@Umƒ@awl@Wka±„UkUykIWV™b@bUVk@›aU@UXU‚UIWakUWmUxUV@nUVWbšŽ@XXVVŽmXXŽ@VƒbVLkVWx"],encodeOffsets:[[111330,29183]]}},{type:"Feature",id:"500114",properties:{name:"黔江区",cp:[108.7207,29.4708],childNum:1},geometry:{type:"Polygon",coordinates:["@@VX@V@LV@VJUL@lVnnxlb@VXV‚XV@@W„@UIVK@kUKna@£VWUaVUUalIVJVIUW„_lm@bXKV@mn@J„UUw@KnIVll@VanLVmUkVKXLVKUIVamw@UaU_lw„KlwUWV_Ua@aUa@KUšwm›_›Ó@wU@™nkK@am@UkUKmXk`m@@I@K@I@mkVmIUxUJ@kUL@JVV™„lnklWnn`VzUVnlWbkb@WxXxlJXzWŽÛlWXnl@Ll@Vb°UJWLX@VlV@bkJ"],encodeOffsets:[[111106,30420]]}},{type:"Feature",id:"500117",properties:{name:"合川区",cp:[106.3257,30.108],childNum:1},geometry:{type:"Polygon",coordinates:["@@XKVXlK„ƒVL@UnV@aValXXK„U@WVwUaVU@IV@@aVW„L@U@anVV@@bVK@UVL@bnJWL@VnUnb˜@@JnIlVl‚@@bXIWbn@UKVLVKXLlaV@VVnK@bVL„m„IVƒ@KmknUUWVI@aVJ@_„WU_VmUwƒU@K™ƒVak@am¯mJU_UJUkU@WkIV`UI@JV@LmmU@@mƒbUzś™@„VK@nUKƒ„ƒb™akb@UWK@bkVVbV„Û@@`ƒXk@WŽ@n@lXL@bmb@VVJUn@JnUlnUlmX@`XLlbkJW@kzlb@`@b@b"],encodeOffsets:[[108529,31101]]}},{type:"Feature",id:"500222",properties:{name:"綦江县",cp:[106.6553,28.8171],childNum:1},geometry:{type:"Polygon",coordinates:["@@@¦‚@X„lVX@@UVKl„VUX@lanVlUVbXWVXVƒ„VVUnKVUlwUwU@UJ@nmVkUV™lwXam@VaUUUw@W@kk»mV@UmKkwVKVUU@@LUKVI@mV@XVWxnXVKUUUK@wWU@UUWnUlLXa‚mUI„am@wI@K@amIm‚UUkI@m‚akUkKWUUanƒ@wƒamLVxk@UVmUUL@Vm@kV@I@ak@@bWVXJlLVbVL@š@bn@@`Un„@WbUKULWVXbƒ@UVmbX„WVƒb@bVmxUKUƒV@šUn@V@V@nmšnKlnnWWXX@lKkK@a„IVxUlVb‚k@mn@@U@m„bVUV@VLUJUXU¤"],encodeOffsets:[[109137,29779]]}},{type:"Feature",id:"500233",properties:{name:"忠县",cp:[107.8967,30.3223],childNum:1},geometry:{type:"Polygon",coordinates:["@@VLÞĊ„U@Wš@¼V‚„@lk@w²mlšVUœ„llšVnI@VlKUUlIVƒXUVJVU„wl¥UkUKUIm@ƒaUƒ@mUna˜@XUWmkK@aVIUa@aUVmIXa@Kl@UUVKUIUJmwU@@aWInUVa™»k@@lƒ™¯n™¤mabWUUL@bnl@b݄WVnbU@mLUWk@Wbka@„WVUU@UmUmVkUULV„lVUx„l@L@VƒbÈÒlb"],encodeOffsets:[[110239,31146]]}},{type:"Feature",id:"500228",properties:{name:"梁平县",cp:[107.7429,30.6519],childNum:1},geometry:{type:"Polygon",coordinates:["@@XLV@VV@b°°nšƒnkb@bƒšnJWVXblIUVšxWnUJnVVLVU„JlUnLVK@UnUVJš²nKVbVKla@aXlJ„k„Klb„ƒ@U°£šKšV„IUa@ƒ@kwVƒVUkKV@VUkk›ƒUVk™±n@xklƒ@U@»™‚@XƒVÝĉUJnxWb@UX›KkVUbUKWUkVmkkLU`›b"],encodeOffsets:[[109980,31247]]}},{type:"Feature",id:"500113",properties:{name:"巴南区",cp:[106.7322,29.4214],childNum:1},geometry:{type:"Polygon",coordinates:["@@nxnVlJlUXLƒ¦@x@Vl@nKVVX@V_V@@KlVXU„@lKlxXIl@ÈĊ@Vl@n_VJlŽnVlnb„²VVVJVVmUUkĕUamçU@»W@@ĉn™V@XwVU@UUJWUXUW@UKm@UVUIVaU™UVmLUVƒUU„UWWXUakVmUkbW@UVkƒUL@VW@kUWƒ@mJUXVVU„@lmV@zklVVkLUl@¦›I"],encodeOffsets:[[108990,30061]]}},{type:"Feature",id:"500223",properties:{name:"潼南县",cp:[105.7764,30.1135],childNum:1},geometry:{type:"Polygon",coordinates:["@@@a@a@_kalyX@lIkaWK@_nWVkkmmV@IVmUI@Una@aWK@k@mkbWaknmJUk@mk@@kUal@Uaš@Wa@aXLlwUKlkkƒ@KmI@VUJ@Lk@@VUUmL@amJU£kKUaWakLmU@bVVUbnbWV@xkL@bUb‚xUxVbXJVbUVWIUVU@kLWxkKWV@n¯VUbU@@VVX@VmaUL@VUK@VVbn@lVnI‚@@lnLULm@Ub@Žl@na„@lK@XVVkJ@b@zl@@VnV@bVb@J@bnXV`lXXmVI@W@InbV@@aVKUblKVLUanLlmnLlK"],encodeOffsets:[[108529,31101]]}},{type:"Feature",id:"500118",properties:{name:"永川区",cp:[105.8643,29.2566],childNum:1},geometry:{type:"Polygon",coordinates:["@@@b܄nWVLX„lxV„VxXxlVn@@bVblK@a@UnLVJV@@UnLVU@VXaVKVXš@n`WUÿ@IUKlaUUUkWyUÛÅÝ@mmkUKUwW@Xk@amUUakKWƒwXaƒK@VVLklƒXVlkxV„UL@bm@Vxn`ƒIVxUVkLVšUšl@@lkXmmƒVUn@VV@Xb"],encodeOffsets:[[108192,30038]]}},{type:"Feature",id:"500231",properties:{name:"垫江县",cp:[107.4573,30.2454],childNum:1},geometry:{type:"Polygon",coordinates:["@@šĊ°¤nҘ¼œaV_lKnllUXVVLValUœLVW‚@XamwVIUKkaÇфa@U@KƒkVwkUUƒVKlVnU@aƒU@ƒVIka@akU@KVL@WÝçUV@Vmbů@L™KƒnnJW„ƒVkxlL@VX@VxmnXVWxUb@bkn"],encodeOffsets:[[109812,30961]]}},{type:"Feature",id:"500112",properties:{name:"渝北区",cp:[106.7212,29.8499],childNum:1},geometry:{type:"Polygon",coordinates:["@@@bVVXL‚a@lnbWn@L„@XVlK@VVLUVlbkLUKVVVL@VšnX‚VL@VV@UbVb@x@¦UxVb@bUJƒL@L„VVxlK@™nk@U@W„UVLlKXV„@VblU@UUKVU@wn@VJVanLlkX@VaVK™¯@a@U@U@ƒVaUK„kUUƒ±maUkm@UUkbm@@Vk@@JƒwU@Ub@I@JmwUL@aƒ@@KkVÇLkƒWkƒ@kUU@@xUVmKUnllUb"],encodeOffsets:[[109013,30381]]}},{type:"Feature",id:"500115",properties:{name:"长寿区",cp:[107.1606,29.9762],childNum:1},geometry:{type:"Polygon",coordinates:["@@VVšU„bX‚lX„¥l@XnVmlxUx„@@blVnnôĀlm@aVaXwWUnmUwW@@UkKlw„UXƒmI„mšL@Kưna@UUImyU@ƒ—@yULUUm@@mU@VIkaW@UUƒV@K™I@mƒmU™wƒ@™mKUnU‚UIƒlVLUb@„@V@V@bš°ULUbW@klmKUbUIm@@xUVVL"],encodeOffsets:[[109429,30747]]}},{type:"Feature",id:"500225",properties:{name:"大足县",cp:[105.7544,29.6136],childNum:1},geometry:{type:"Polygon",coordinates:["@@XUmaVaUU@anVlKXbValU@aV@@IXKš@@bV@VxVK@UXLlUšJXa@_‚@@aVK—ÅWVkwWaƒƒwUa@am@kUWLU@kWmX@ykI@W@UV@na@LlLV@UƒkwWƒUKmXX`mIVl@bXLWVkbkkƒx@`VXm@@J@U@UUKUxk@WbUIVl@VXLW„ƒJUkUlUImxXlmb@X@VUJUnVbšW@UV@@VVX@bnW@LVxUnlJUV@n„@VxVIn@l`„UVVVL"],encodeOffsets:[[108270,30578]]}},{type:"Feature",id:"500224",properties:{name:"铜梁县",cp:[106.0291,29.8059],childNum:1},geometry:{type:"Polygon",coordinates:["@@VblLV¤nI@bnKVV@Ul@@KVI@UnJ@Ll„klVLkxWK@bXb™@Vbk@Vb@ll@@nVlnIlmXblaXl@„W@_Ü@UƒUalU@aXL@Vlašb„a„ƒVL@mUL@ƒUUƒƒÇXUW›X_WaƒƒUƒ»m_™@UWULWb@UUVmK@VU@UImK@V@bkL„x‚„XblxXU˜ÆUL@b@@`Wb™IkVWK@VULUwU@@a™@WL@JU@@bkVUb"],encodeOffsets:[[108316,30527]]}},{type:"Feature",id:"500226",properties:{name:"荣昌县",cp:[105.5127,29.4708],childNum:1},geometry:{type:"Polygon",coordinates:["@@VI@U@WnaWknwVJVkVl„IXƒWK@UUkVJXal@VwVL@V@V@In@UW@_„wlllaXUWK@aUknJW_ۃ@aWaU@@UVm„UUaUImJVnÅUmVUm`kUUVWLnVU@VVmXƒK@„nxmŽULkx™ImJ@nU`@X@Vkn@`@nlV@nVJVaX„VLnK@bVV@nV@lbXWš@"],encodeOffsets:[[108012,30392]]}},{type:"Feature",id:"500227",properties:{name:"璧山县",cp:[106.2048,29.5807],childNum:1},geometry:{type:"Polygon",coordinates:["@@XzVlVVkbVL@JVĀXŽ‚¼V„„„XbW`XœWVȎ„„VVšŽVkV@@UXa@alK@IƒƒU@UKWUyUI@wVUUWVak@VUkƒW¹@WXI@yVIUK@kWwkѯ±W@™kUb@KkVVVmXƒJ"],encodeOffsets:[[108585,30032]]}},{type:"Feature",id:"500109",properties:{name:"北碚区",cp:[106.5674,29.8883],childNum:1},geometry:{type:"Polygon",coordinates:["@@X‚VLV@„„@JkL@bWb@VU@UlƜVy„a@nV@nn@KU@IVJU_lJXV@VlVIV`nIn°@b‚lUbš„„KVI@aUaVw@¥@wUaVaU@@UUKW™m@UUKUUVLlKkaVUUK@UkLWUƒ@@KXmma@kbWKUU@aUamLnÞ@VWLk@@Wm@ULU@@U™KUVWI"],encodeOffsets:[[108855,30449]]}},{type:"Feature",id:"500110",properties:{name:"万盛区",cp:[106.908,28.9325],childNum:1},geometry:{type:"Polygon",coordinates:["@@VIV@@wVJ@InKVxXal@@U@U@KlUnwUW@kVU„KUmVkUa@I@KW@@bk@@mƒU@m@k@a@aƒIUxmJk@ƒwULƒwkKmVVX@VXV@xVLVVULmWXwWUU@@nUJVL@KV@UVULlxnL@VnUl¼@l@XVxVVUbn@WbkxUšlVnU@m"],encodeOffsets:[[109452,29779]]}},{type:"Feature",id:"500107",properties:{name:"九龙坡区",cp:[106.3586,29.4049],childNum:1},geometry:{type:"Polygon",coordinates:["@@XK‚L@Vš@XbV@lW@UV@@VXIV@U™VKlL@KnnJ@VV@VU@I„@@mVUVWUUmL@V¯LUK@UV@UU@a@U@yU@WLUK@X@KUVmL@ƒ@aXI@w@ammVk@WÛwm@UxVVVbVLUJVxVU„V@V@X@JUIVbm@@Vk@@VkL@lVLUJ@zWJ@X"],encodeOffsets:[[108799,30241]]}},{type:"Feature",id:"500106",properties:{name:"沙坪坝区",cp:[106.3696,29.6191],childNum:1},geometry:{type:"Polygon",coordinates:["@@Xºl„UVl@UbVXUV@xVJVzXJVUšL@VV@VKn@@Xl@XK@UmÝnKVbVakkVm@k„ƒUK@UmIm@LkKULVšU@WJ@UU@@VkXU@Wa™@@UKWL"],encodeOffsets:[[108799,30241]]}},{type:"Feature",id:"500108",properties:{name:"南岸区",cp:[106.6663,29.5367],childNum:1},geometry:{type:"Polygon",coordinates:["@@VV„JVL@bUVVnl`XIlwXJlw°nnl‚IXW@UÇĉk@WJkwkLƒ@WVkU@LU@U`W@UXUV@n"],encodeOffsets:[[109092,30241]]}},{type:"Feature",id:"500105",properties:{name:"江北区",cp:[106.8311,29.6191],childNum:1},geometry:{type:"Polygon",coordinates:["@@nLVU@wV@lV„@Xll„ÈKlU@L„@@bVKnx@I@JVaV@„x@Il@@Un@laVVn@mkUIm`k@WXJmk¯mkxWIkxWJk_UmVUUKƒ@UU™@ƒ„@l"],encodeOffsets:[[109013,30319]]}},{type:"Feature",id:"500104",properties:{name:"大渡口区",cp:[106.4905,29.4214],childNum:1},geometry:{type:"Polygon",coordinates:["@@k@@U@w„¥WKkVkImUmwa@b@xWJ@b@„nKVU@L@WVLXKV@@z@V@bVVU@@VVL°K@U"],encodeOffsets:[[109080,30190]]}},{type:"Feature",id:"500111",properties:{name:"双桥区",cp:[105.7874,29.4928],childNum:1},geometry:{type:"Polygon",coordinates:["@@WwUwU@kK@KmbU@@V@XlJ@znWlXV@XK"],encodeOffsets:[[108372,30235]]}},{type:"Feature",id:"500103",properties:{name:"渝中区",cp:[106.5344,29.5477],childNum:1},geometry:{type:"Polygon",coordinates:["@@VLš@VV„@VL@aUKƒIUUƒ@@JUVU@"],encodeOffsets:[[109036,30257]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/fu_jian_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3507",properties:{name:"南平市",cp:[118.136,27.2845],childNum:10},geometry:{type:"Polygon",coordinates:["@@@knyƒk@ƒKU¥šwV@nkƒWƒzUmk@@lKUa@aVI@UƒKUamKUUVaUI‚@Xƒ@UV@K±IUVVlUbUbUL@KWUXmWk@KkXmmkŃKUƒ™a@amUƒbkUkKWUnwUƒÇwV™UUƒÝUKV£U™@ƒnKWwXLVKm¥@wUXkmWk@ƒ@wX@lU„@šyVImaXwVƒƒ@kŽƒnU@mbk@mlUXƒmU@mV@n@bnW@bUIWJ—ImVUKWbUK@nkKƒaU@W_VUUmWmL@UU@™bUWUL@V@bmVUz@`mUUVVbXL@V™L@lmLUxmVamXkW@xWbU„VbUxkU±@ÅUmmkLUbW@@`kLknVlV@lbXxlVUXVV™ŽU„U@UbWŽkIWVUUUJkI@llbUxVL@V™VƒUU°ULUmWXUV@VULWb@™xm@UaVLVKUa@ƒw@V›bkmVambUUm@@VkK@„@b„xlxX@‚„n¤@Xƒ@@lkLWV@Žn„V„kb@bWJXLWx@nkxmm™bXn@VWVUn@VnJ@bVXl@„™VJXnWbX`lL„UlJVI@Žœ@VXV@Vl@bn@@Æmn@VšxXU@mVIlxšVššnI„l@nVJ‚aXI@mlU@aXkVm°klmnVV_naš°@V@xܦXK„V‚nnUlVXbVK‚LXKV@naV@@VVl@@lXblXšWnLlbVK²nš@@‚VLUnlV@lƒXxô°‚V@UnaUUlKXLVUVVUbVVlUnJVX„@VW@an@lb„@nl@VU@anƒšUVW@kƒaUm@InVVKVU@kUW@Uam@km@kVa@a@™nwšU@WlI@mVI@WXaW_nƒ@™nƒlkkW@U‚¥@kV@Uw@wUƒ@@IXK‚¥VIn@nU@`@Xl@VV„LnašW‚bVaUwnU„@VIšKlV"],encodeOffsets:[[122119,28086]]}},{type:"Feature",id:"3504",properties:{name:"三明市",cp:[117.5317,26.3013],childNum:11},geometry:{type:"Polygon",coordinates:["@@lL@Un@VVna‚bnUlœa@U‚x@„VbULUKVbn@šw‚@XaVK@UVUXWVnVKV¯„VšU@UUKVwka@klJVIVVXUlJXVaV@VƒšUUVWkUWwkaU@UklmlK@_X@ValKnnÆV²@lVVwUaVƒXa@wlXnW‚bnUVwnK@kšK@UWKUaVUnV@_VynU@a@UVKVXšaV@@VnKnXVV‚UX`V@„blL@mVLXaVLnU˜JXIVJ@amX@a@mnUV@„nVWnkl@naV@„ml„@@KmKUam@UU@ƒ@UlKU™Vk™U™K@aVaUwV™U¥UIkJ@wmI@‚mbkwkVW@UXƒKULU`™IVKUa@LƒkkVmUU@WlULUWÅU@I@ƒWW™nU@@w@a@ƒUam_XyVIVWkkƒ@mwVKXUV@nw˜VXkWƒÅ™U@ƒaƒU¯KUnƒK@ƒ¯šmUƒLXŽVLnWVbVbUVm@Ub¯¼W@amƒ`kb™amLUUUƒ™aUXV`@x@XmJ@n@L@xkJUU@kU@mWm@kUUwUUVWl@VUkIƒy@kkaVUUm™IWVXbWxU@k„mVkK@nWVX¦WxU@@bkx@VU@WŽk@™kUbmJUUmkUW@_kKWKƒ@knV¤kIUKWLUbV‚@Wbk@@VWL@VkI@lUXVxUVU@@mWIƒV@a¯nUaƒaUV@„ƒJ™b@bÞ°VbUš@X™aUVmL@‚VXblŽnV„°˜n@Vnx„@VUUUlK@InJVb@„Vlnn@V™L@VWJU„x@XlJUVVVl@LUUUJ@Lƒ„@lUL°¦k˜V„VnV@„xV„„l@blLnlšLVaXll@šnVUn@‚xn@nml°‚X@lb"], +encodeOffsets:[[119858,27754]]}},{type:"Feature",id:"3508",properties:{name:"龙岩市",cp:[116.8066,25.2026],childNum:7},geometry:{type:"Polygon",coordinates:["@@ša„I@ƒVU„bVb°m@b„UXJ@nV@VUUwVW@klJ@UXK@Ul@Xa‚@UVaXKVLlJU£lm„@XLlL@`VXnlVVnIVašll@XV@@Ulw@aV@XwW¥XU@mlLnUlƒV@XwWaXUšJVnUVlb@l„zlJUVk@UXVVVxlVn@nXV@@lVVlI@w@K@mnI@W@wU_VWšbV„VVnKšbla„_n‚bX@°»Van@VUUaUamXUKW„K@a@Ukƒ@wWkXƒWW@wUU™Kw@_lyƒwUkU@@Uƒ@kamVmƒXašUVUka@Wk@»UUUVƒKkbWU™VUbk@mkƒxkƒƒKnIVUmW@kUKmXUmVaU@kU@m@KUWVkIWJ@ŽU@UI@wUUUa@KW»nU@mVkUmm@XwWU@ƒUUmL@ƒw@mnƒVUU@aWak@@amxU@UxULWVXbVLU`mbUImVU„ƒbn‚V@@bVn@bnVWxLmyUbƒIUKƒ@aƒVm™akbV‚UXW„UlKWbkV@„WLUlk@@nšbƒb@lkKmU@ƒUIWJkw¯UUVVxm@@XkbWx—›XKƒlUzWJkUUL@bmKkVƒ@@VUIUlWV@X„K@VkbWx°xUb@LUbk@@VWb@LXJ@VWXU@@bUVV„VVn@VVlLn„@l„@‚xk¦Vx@bVJXbƒn@JlnXxV@@„nJ@X@V@lmx„bUn@xVL@VVKlL@l„„nLVaVL@xkl@LƒxVl°š„X„WVX„Vl„œJWnxlJ"],encodeOffsets:[[119194,26657]]}},{type:"Feature",id:"3509",properties:{name:"宁德市",cp:[119.6521,26.9824],childNum:9},geometry:{type:"Polygon",coordinates:["@@@LVKVaVaUkVU²J@LVU„@@W‚VJUbVVnLVb„L@VUJ@bVbkL@Žl@Vn„y„XmlU@™xV¦„L@Ž„lmz@lnL@bVVšbVb@l„nšKVk„Vl¤@zXV@šl@XJVLVKnXVK‚VnU@wUm@šKUƒ@UlVlw@U@U@ƒUaUKlU@kXKlmXIWKXaVIVUVK@KU@@k„JVUnLVJUL@V‚IVa@VnLšKUnl`Vb„V„V@š‚Vbn@Vzn@lKnVlI„VVKUalkXJl@XXVWVLVUUmVU@Unm„£lK@Uk@WUXK@U@WVwVkšƒĠkĢǰaUÅUwmaţƒɱUÇa™w„±V¹XalKôx„@„UVaÜʓͿVóbÅLƒJm„¯Vk¦ƒŽk@mamXkKUƒUL›akbk@mV@LkJWb@Vk„mXk@UVmaUV@amLUKUamI@KUaU@WbU@UUUƒUIWJUkm@šƒw™Kk„VJm@kxǁVƒUK@mUVUkmlkkVm@amwƒLVWU@UbVLkšUbƒ@VƒmK@XaVWU_VJnwV@@kUmWakxƒ@kwWakIWxnbUJ™zƒ@kVW@@x@„XllnVW@xn¦ULWKXxmL@„VšU¤VL„ÞVVUšÈxV„mxXVlLlV„anV@bšbV„„LlÆnnlW@LXlWnXV"],encodeOffsets:[[121816,27816]]}},{type:"Feature",id:"3501",properties:{name:"福州市",cp:[119.4543,25.9222],childNum:9},geometry:{type:"Polygon",coordinates:["@@lxna@nJ@xlIVJV¦UšVxUb@bšLšVUlVškL@V@„VVn@Vb‚Ln‚@LU„lJXblx„@lwXbVn@lU@mxUIV`UXWb@‚nLU„„@Val™UKVaV@UX„Knx‚bn@lUkllnUVnV‚@VLU„È‚lwn@UIlƒšL„x‚™n@VlXIVJV„VVV@XaV@Vb@LnJVbVLnK@bVUnbVUl@nWlƒ@UXalI@KnUl@laœbVKV„lLnWnbl@„l¥°Unƒ„IÆKôa΀U„a@UUwÇWǓIUWUÅVkƨm@ƒ@£@KmLU¤ULˣJ™kUƒVǟUUķ@ĉVƒKUk@Ѱwôǚç@īšé@Åţ¥mīÛkm¼Å@ƒVķVó°ō¦U°ƒn@bVJXVVL@bUŽƒakLmx@xmxXzW`XbWnXV@bWLÛ@™aƒ@ƒaXbWVkaÝwU@mlWKkLWWkLUKULW@kVmVUU݁UamV—¤›n@xUVUzkJV¦lJU„"],encodeOffsets:[[121253,26511]]}},{type:"Feature",id:"3506",properties:{name:"漳州市",cp:[117.5757,24.3732],childNum:10},geometry:{type:"Polygon",coordinates:["@@@bl@Xb@bVVUŽm„@n„x‚@nKVV@„XVWxn@VnUl@nmVX¼@LVbVV@xVJV@@XIlJXU‚V@Ln‚@lVV@UbVnnWVL@lnXUVmJ„Ll„„wnll@VašUXVla„LVUVV@¼Xl@lbUV™VWbn„nUlb„@@VV@„aVUšmlUašUny@kU@Wkk@WaUVk@@ammk@@U@UlU@aUa@wl@šmXLllnL‚U@anVnU@L@VVV@KlXnWVnVanUšw@w@wm›nÅ@wƒaUam@Uk„mUl@@a„a@U@¥škôK‚wȯ°w@ŻkwǕaK›ÑÛk@ĕōřċ£ĵƒUKW»kÅŻLU@Ulġw@¤Vz™VUbkKUbmLmlULU¼UxmbXl@bWVƒb@bUnV‚UšVbULU@@VkbVL@`U@WX@ŽXV@b°„@b¯š@¤@Xm@@b@`U„VVUL"],encodeOffsets:[[119712,24953]]}},{type:"Feature",id:"3505",properties:{name:"泉州市",cp:[118.3228,25.1147],childNum:9},geometry:{type:"Polygon",coordinates:["@@Vl„xkz@`‚xšLVV@xXXW„Xl@xl„@V@bnV°™@„„LVm°L„V„bV@ƚX„Wl—UmxU@WVULnx„@llUXUJWzn`Vb@„@b@xV@šmXX@„@JÆVVXVKXkV@nVlU„l@KVbULšJV_VK„LVWX@lUVƒkIU¥lIVyVU@wœm˜£nUVWU@aƒm@UmWw@UX@@am™VUn@@aUUlUVanaWUXWmUnkšK@VšUlVVUUwš@XLWWX™ma@knm‚bVb„VXbVL‚@XJlInlšL„w˜mXóšw@çV»ÇçŋaķƧóƅóKġ°nÅUķƑUÇW@—¯xǰöÆlV„n@llšaš@„Lšbƒ`™@™„VšXVƒVx@V@bULVJUk‚Ç@ƒ¼ƒXUKk@mmULkaWbk@ƒx@UkL@a@K@U@UmKmbU@kV@UmVUbUmmXkW@LUU@U@KmVmU@bVmKkkWK™nk@@xVb@bkV@V@Vl@nn@bl@VUXbl@XlV@@lmz™VVbkŽ™nUVƒb"],encodeOffsets:[[120398,25797]]}},{type:"Feature",id:"3503",properties:{name:"莆田市",cp:[119.0918,25.3455],childNum:2},geometry:{type:"Polygon",coordinates:["@@VbނVVnUlUX@VKVLlKXXlKXL‚‚nkV@ÞxlbXUWa„b„@šbÜ@XK@aWUXmWaX_Wynw@wnwlK„bV@aUKWUUI@a„mV¯Ŏ¥ô¯ĸU„UÆ@n»¯aƿé@ţ¯nĉĬÝK™óó@™ÑU¼@è™xWô—nƒx™KmkkJWI@UKWaƒUUaamn@lnbWšXXWK™@VxUVkU™V@U™LmlnVWXXVmbUbkVVV@bm@UVnš@bW@@VXx‚n@V„n@bV‚UX"],encodeOffsets:[[121388,26264]]}},{type:"Feature",id:"3502",properties:{name:"厦门市",cp:[118.1689,24.6478],childNum:1},geometry:{type:"Polygon",coordinates:["@@@VlUV@nanL@V@V@L@blK@V„wl@XalbVKnnl@VL„W„»È@lVUIVK@a@UUw„WUU™šƒš@„_™aƒK™@™bkkm@UƒkõŁxóL™l@¦@Vƒb@bk@VŽƒnVln@Vb„b@xmÆnœ@x@x™x"],encodeOffsets:[[120747,25465]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/gan_su_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6209",properties:{name:"酒泉市",cp:[96.2622,40.4517],childNum:8},geometry:{type:"Polygon",coordinates:["@@ÇnÅaĉ@ƒU¯¥›UŹ‚ƒ£™WUýUU±JkkUw‚yÞIČxĊĕĊ¯š¥ÆUkţ™UÅÓ±¼™IUx¯UƒÒƑ‚ݐŰƒKÝnğ°ÅU@Žƒ@Vn@þš¼¯šWnŎ°XLWlnVnbWnƒVXxmbƒa—bóUƒlǕUUa™IUmlU™ƒš¥™kƒ¥ĉwkkƒÝɛa@¯™™U¯°mVƒkVnKlƒōÑÇÑU@kl™UġŽkUŻnUW™@š¯ƒk»šmWV£UKnUƒmUw‚w@ƒUIVaX™šwm»Èmmwn¯ċ™¯LĉŽUƒJUalka±Va@U‚k@ƒÛф¯WmnUaɝ¤Ûmƒn¯m±x@wóxÛLġÒUx¯VƒÈ™JUbóz݃ÇKĉ¯ōlÝUŎWl¯nťbÝ@¯ǩLġmV@ƯĢkÆm™ĊkVťLɃmÝXó°@„ĢbVŽóVݦɱ@Ƨaġ„UV„ĠÇÈV¼UVţwmbJÇwˋa™XmǯKkkmŽƒbXšm¼V¼Ǭڲ¤ôŰÆƴô̐ŤǪnɆӨ¼ɆLÆłUĊšxŎƞȘǔˎǬǪnƨŮǬö°»šġ„„ÞÜÆĸÒĊ„ǀbƾèôÈ@¼¯þŤĸƧ°Vb@lÈĊ‚šʠń̐„ȘKǀŽֲॗţÿǕý@ʊǓƨóÆÑǖŃôw@΋ʈƆÅÈVVĊV„óĊÅ@ÞƒĬV@Þīš@°Ž„V@ĸ̃°XτƜĠ@ÈaÜ¥Őƅ‚™nğóĕVġUůƿŋ—ĕƒa±V—UťÇğÑ"],encodeOffsets:[[101892,40821]]}},{type:"Feature",id:"6207",properties:{name:"张掖市",cp:[99.7998,38.7433],childNum:9},geometry:{type:"Polygon",coordinates:["@@ÈÒŎÒk„mLUŽlŽU„¯nV°šš@°ɜb„ÞĠaÈ»ĸl‚š„LVUÈ@Ċ@ýUm„@@ÆVĠ¯Þm„LƯޏƒ„ѰVVwšJ²»ÆÔšVlŤÅV™¦ĉ°ĉĖċwÝJzVxll²IVVVþšX„¤źœV°¦„VĊ@ÆbÈmǔLĸĠ¯Ģaô¯ĸmÆÛUƒlÇĸk°XyĊUǔV„ǩnmV»ƒa@ýnK°n@l¥@»ż„Ċ¤m皃@£ČU@mƒmVkÞUƐ±²¹°‚ĠwÅƑŃU¯™›V¯aÈŁšƒÇ»™ġn_°xŎKlxœklx„@Þw‚„„@Æm²b‚DzLlkšWXať¯ĊaœÑšK±w@wƒUÅçV±Uk™@@„¯š¯xƒU™±±UU°ōxVxÅÔō°ó¯UÝ¦óbÝþƒ@ĉÈóUV‚Ux„„@VŽUVÝwÅÈǎóVkk¯JǐkmmL@„™KÇx@bkš™@U°ķ²ó`ƒš™šmn¯°ƒUwlÅkUƒ`™¦ɛô™Žķz@ŽÅnǰU¼¯KmVk²ƒJƒ¼ƏÞķôš¤ULƒ@mnğ`™šÇnUxÇ@Ûÿ™U@ƒƒkŻŽ@x@móJkŃ¥VŹĉóÒĉlċ°ķ„Uƽ܃@›x"],encodeOffsets:[[99720,40090]]}},{type:"Feature",id:"6230",properties:{name:"甘南藏族自治州",cp:[102.9199,34.6893],childNum:9},geometry:{type:"Polygon",coordinates:["@@ލš™nKlnšwX¥WÝXk˜xÞUnƒ°aĊVnUUKlÞĶWXnĠ¥ô»„™@nmVL@¤°™Vz„JšanU@aÆwna@k›ƒU¯šyX_›aĉb™ƒ„wƒéXkWwÅaš¯V¥mƒ¯UƒƒI@ƒš@„mšb°aÈçšUš¥@»‚knwɜƇ°I°ÑÈmVU™¯Xa@w‚W@wšV¯Č¥l¯Uwnm@k˜aUaóKkk@™Ça™b@ށÒWa¯IÇxÛam¼™VUƒxÒl‚@zÝÒ¯bÝaĉVĉwDށW›zJ™mJn²mܯUƒ¯ĉ@ġ¤Åb@²nšmlƒ@@Ž„„U„ƒLVxšV™„U¼Ålma™b@ƒ°™l@WIUƒ¯@mƒ™@™™ó„™„@U›zţyƒXÇU™ÇVUUVLkbWakVWmUbkkƒKUÆ»nƒ°Knk@aƒUVmšnk»l¯Ģ›lw@_kKVU@ƒnaƒ@lUk@¯¥mV@kmbW™b¯Åõa@mkU@kƒÇŽkU@›`@™óó—bl¼Uxƒn„¼šlVȄx@blVkVVnƒ`XÈġÈ@ǃK£ÝJmUUnUĖmlU„mKUn™VÅaUw›Uĉ`¯n¯wW¼nxVŽ™š@bĉnƒ‚kIċŘkXUŽ±Ò™xšÈ@ŽX°`l„œV˜IȯĊV„ƒšVVan@VašUVażVmšblkÈW„ƒWIXa„alL@wVb„„V„¦lL@lĠ™n҄U‚nk‚šL@ÆÞkšÞšK‚bñþW¦Û„ċVƒ„ULUºkÈlŎUxÆxÞUUxšÒ‚x„@XbšL@lÆ@„ÒlXVln@„bm¼ƒJ@„Ån„šƒx@bnšĠm„xVXmbÈè@ŽĊ£ČW˜w"],encodeOffsets:[[105210,36349]]}},{type:"Feature",id:"6206",properties:{name:"武威市",cp:[103.0188,38.1061],childNum:4},geometry:{type:"Polygon",coordinates:["@@±¯¥@klwU»ƒƒÞÝmwKm¯™™ç@™kVÇUL¯lVUKġ„ġm@a@U„@X£°l°LŎÇ@aōVÝw™ÔƒKUŽÅš„WJ¯lm@ÛVWa™@klĉUmaƒLUanaƒ™ƒk¯J„™™±KkXóÜÅxƒ²Ç‚@„„nUÒĊb°@™ÆkL™Ž™XÇÆ@xÝn—xWxţ„¯¤ƒI@Æn„ƒVV„VlU²Æè„V@x²x™L›ÒĉbŦ°Wb™Xklބš@l¤šXĊ`„wl@ĢÈŎm@bšnV‚Ubƒ„@șÆÛLƒèǚUÒŦlĸ™`°ĮʟÆǓbĉôϚĊƚĢnŤé΀ÑĸĀĊ¦„@@l°lœ¦Ȯ¦ɆÞĊKŤ™ĵĸů„»mفyġ™ķŭ@Çɱȭ¯mƧUĊķnŁŻ»UaU™˜ƛɞÝƨů"],encodeOffsets:[[106336,38543]]}},{type:"Feature",id:"6212",properties:{name:"陇南市",cp:[105.304,33.5632],childNum:9},geometry:{type:"Polygon",coordinates:["@@šÈÞ@l`UmVƒ¼œŽ‚@nnÆwVlnVVa„LVƒÈ_‚ÿރ@n„a„xÆ@„lš_š@VxnK@llLnxmÈŎJnbUxšI°Žl@n¦‚lÈIlmX¥„k°@šk‚J„k²é˜@klaUaVaU@@ÝnIWnmnx‚k„ºÞ„„aV™°„V@nw‚KšxôbÞ£šVšU„bšþšLn»mƒVw„IšJ°Ž@„nb@°°I„ġUkÇKVƒ™™@ů»lƒ„Lnmƒ£@anK@Ñ܍n@»mL@£™yk„UUmbUÞÝ@kyÇbó»™XUxƒWVzb±mÝbXaƒwUamL¯»@wUKVwm¯ĵJ°ÅUWVk„KVk°wÈVšVуlUšƒ¥škmVamknƒUw¯¯ƒbċ¥ÅKƒk™Kk„™VċVk£kKVw‚Ñ„a@kóyÛ¯ÇVk™ów›š—Xō¥Ç¼ów™Ž¯U±‚k„ƒ@x›IĉÒÅVmÈnšÜ@n°„bUbÝV‚ŽUnnJ¯Į@‚m¦nV܃@„„L°JXb‚Ñ@šaÈb@šllôLVb—b@lmnVxk°ċ¦U°™Ž@xX@xWbš°UVÇn¯Ò¯Jɛƈmxl@¼"],encodeOffsets:[[106527,34943]]}},{type:"Feature",id:"6210",properties:{name:"庆阳市",cp:[107.5342,36.2],childNum:8},geometry:{type:"Polygon",coordinates:["@@kw‚ĉ—»VamƒƒV¯wƒIóVkl¯™Km™Vō¯ÝWkL@bÝKō¦@Ž™„@š™Lx›@b@l™a@km@@l¯nm@UaÅ@ƒ„óWUXm¥™nƒw`@UUxķôǰğ¦@„VJš_n‚‚IVŽnalxkX„JWn¯šnVƒLšxl¤nnVbklVX@xnxmV@bUK@nm@@xƒV—°±aÅnƒŽkUWnUaƒx@m™n@ƒ¯LƒššmUĀlU@lV@blLUblxklkIÇx¯°‚UXbšaVŽUnšV@°‚LUlnbšX@`°nVmbnÆmV‚kLmK™¦UŽ@X„y@kl@U„°K@¼XbW„ƒš@b„WnLVa„VšƒVz@xlVČ¥lbUxލlV„U@nÆWôn²™VJlU„Ƨ„LnmÜLXa˜n@mœw@wlUlV²mšblwšVȃlLލ„±@lVnUlxnkma@mškšJ@kXV‚U@mn@š¼VXUƒVƒlLnmVbôaVnWV»ÈUl°È¯ÆIn›ÆU@kk»mKkÆġk¯@»mƒk—¯@óÇlÇ@—Vykkl™Uml¯Þ™@w"],encodeOffsets:[[111229,36383]]}},{type:"Feature",id:"6204",properties:{name:"白银市",cp:[104.8645,36.5076],childNum:6},geometry:{type:"Polygon",coordinates:["@@VKUȚl@šè°šnŽ‚LnxÝބ„V¼kx@l‚¦²°ĊóĠ„™Ċ»š@ÈxšaĊxlwÈVŤa@¯²aÇ£ƒJk£lƒnUÞ@°šô™@y„wl»lIX¥Ǫnw@ÑÞWla„ÅlL@ƒUwĉakƒl@ƒš¯mwna°J„V¯nUVÓÞÑm£²óWaUƒÇ@óÝUçV»ÈkkW@¯‚xV@XlK@wX@Vmm_@wÈݙKU¯ÇwVwÅK¯VƒkƒJ™™™XkWVaƒImޝUk„ÇlVšœĀV°mxóšk„@¼ó„WxĉÜU@Ub‚zÛJÇk@‚ÆnVlԙ@kŽ„x™ô@ĬWL¯ƒƒK@aÛImm™@ƒIUaƒ@™™UŽÇêU¤VÒÇx¯ÒV„šš™lk@Wbĉ¦UbkWV_‚y¯Lƒaó„kŽ@b@nmbkx„°"],encodeOffsets:[[106077,37885]]}},{type:"Feature",id:"6211",properties:{name:"定西市",cp:[104.5569,35.0848],childNum:7},geometry:{type:"Polygon",coordinates:["@@„a‚V²wVJV_@„LlanÅllŦçÜӚ_šlnƒWaôk„xUš„bmV@È°lèšnk°l¦„`@nnL‚@ÈlÜIyVaV@ĊÛXwôƒ@»lƒô™nwU¯›ÿU™Èklƒ°Vn„JUblXšWšš„I„l°U„ƒVƒš—@aVVVmnL@„lƒ„UUw‚mkƒš£„bV¥VUVwۂƒlaÇÝރmk£ƒLUy¯L@WlkKW_XaWƒ—mƒ„ġU@a™k™‚ƒakXkmVwmŹVƒU™b™WƒónmwnWW£„KÈnV¥ƒ¥„ƒÆ_k™lW„bU¯„V°aôbnaVwmaōInÇmwkK@kmLUw™@™`ƒkÅ@ƒwƒb@m݄ĀÇ`U„ƒKUbmUUkÅxmm@›„»nUVk_Ý@™Ç™¦™VÇè¯b™aƒn™@@„„JV„°Žn„U¦™°ÆbXxWl„êƒxš„ĊaœbW`™zV°œ„@lmbÅx@bmV™bƒI™`™¦@ÒUVUI@ƃL@bš¼@ššŽ@„šlmxnL„°ULƒŽƒÞğޛ°kLUŽƒL™°™xVŽ„n„KVƒl@šzX@"],encodeOffsets:[[106122,36794]]}},{type:"Feature",id:"6205",properties:{name:"天水市",cp:[105.6445,34.6289],childNum:6},geometry:{type:"Polygon",coordinates:["@@UyȍVƒVUnn@ƒVU„`UblzšJnk‚@Vb„KU„°l„wš„„W°„nkVŽ‚UÈlš£°V@n¥šV„kl™kU˜±U„ƒn™ƒlw¯UkwmKUlmkUmnkym@ō@U„mWÈU°l°anlJškUKlU„¯Èm@kmWV»kkÝLUWUx±b™@¯ma@ƒ¯™IƒJUxn„m¼™K™ýƒa™V™Uݤóa™wLmxU@¯ƒUšƒb݃ƒ¹lmwmnXŽmJ@ÞV@UbVbkblŽ—@±êƒlI™l¯@ƒlW¦knÇJkm¥k@¯™Jmbóa¯bƒUV°ƒakXlšÅ`ƒ„„¦U¦ÇmƒLX¤mXnxm‚„ôšXša„VźUnŽUxlnlW„bššl@bĢV„ƒ˜nX„WbX`lLXk@ްKVz„Kl¤„nÞ݂Èkb„‚܁"],encodeOffsets:[[108180,35984]]}},{type:"Feature",id:"6201",properties:{name:"兰州市",cp:[103.5901,36.3043],childNum:5},geometry:{type:"MultiPolygon",coordinates:[["@@lW²LššƒŽ°I„l„šmbVb„KnbĊVlkš@XbÜU@Žkn°‚XIƒÆ™V„LšÓÞxŎUlôƒ„b°KzU`lXVaĊ¥Xal@šk™™Uƒ°ÑÈwUтV£ÈéVšš„@Vb„Jš@nnÜJ@b„L°„XK@īšóƒwlš@kÓmUÅmK@mƒ_k¥l¯™mkçǯ@nUƒaV™ƒwólXbm„™k™`ÛÔťèkkmÆkbƒK@U`UI±xUƒbWlX„mbVbÅÒólkƒƒIWJkšƒ@ƒz—Kݼ™@™xUx󎃄¯LWb@ŽÅ҄„±¦U`nbťĀUšVb„LšŽ„U"],["@@ƒ¯lwna@mōȯK¯kW¤ƒ@@V@bĢñVLU‚°k"]],encodeOffsets:[[[105188,37649]],[[106077,37885]]]}},{type:"Feature",id:"6208",properties:{name:"平凉市",cp:[107.0728,35.321],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÆLUxÈxV°šLÇÞ@xn`Ü@X@nĊŽÆwnJmwUx‚aUkšw@V@w„aVmlLXÝl@X‚VĢmV°@nl@UUUWK@w„ÿVI²Òlmš@nÝĊýVV@nšJ°„„šUłm@kV¼nK›ĢȤôK„blnKllVk²aĠ¥È¯ĸóVw@V‚_„xšmn¦VWôX„ƒÆ@Vbn@°m@kn@@lšb@k‚aœ@‚wšK@™šƒ@UlKVaƒWX™W²¹lӄw@_°›n@@_lKōķW™@ŽmLUWƒn™»Û@›l_Ç`ƒÛmm°ÅbWb@š—VWbƒUUKDŽÅaġlmkUġlƒ»—Lƒl™Um¦@ޝU™¤ÇkVUml¯ƒƒX™ƒƒx¯kVƒƒLUa@ml™IkyVaƒ_UV@„mmUVU„ÇŽVzUxUVU¦ƒa™¤l„nVxƒVk„@ƒmKUnUU@b™˜U„ƒ„","@@@Žż@™mlkƒġk"],encodeOffsets:[[107877,36338],[108439,36265]]}},{type:"Feature",id:"6229",properties:{name:"临夏回族自治州",cp:[103.2715,35.5737],childNum:8},geometry:{type:"Polygon",coordinates:["@@š@ż»˜L„y„@l™XI„Jl„ôkÆÑUanaWƒXkW@™yk@U„ƒLƒmUšwš¯„KVlKœ¯Ġ݄݄VKƒ¯mKnw™k@ƒ™@™™»@a„K@ÅVJVU@њ¥š_Uy¯š@£UKmn@‚ƒšó¼ğ¦WmĵXݎkŽVLmVĉU¯bm„ÝV—wWlXÞW¦™xkmmL™šÝŽœ„±U@Vގ™š@„ÅÈW°X„ܼƨyUĮnŽWŽnXÝxUx°lVXJlôV"],encodeOffsets:[[105548,37075]]}},{type:"Feature",id:"6203",properties:{name:"金昌市",cp:[102.074,38.5126],childNum:2},geometry:{type:"Polygon",coordinates:["@@šĢȼ™„Çł°bœU°šV‚ƒń‚ÆǖŰnšÆ„ōĬǔaʠůĭš_kķÆ¥VÑș„çÜKšÅ@DŽƒVaU™m@aōnġÇk@ƒxĉ_™Wk£™@݃±KÈ±aÅnƒ@ƒÝxƒ@kw›lkwōL¯wm`"],encodeOffsets:[[103849,38970]]}},{type:"Feature",id:"6202",properties:{name:"嘉峪关市",cp:[98.1738,39.8035],childNum:1},geometry:{type:"Polygon",coordinates:["@@llĊx„¦šl™¦š„kVVnšJVbǖV„kôV˜a„bnaWw„UXmmamUXkWKō¯Xm°™™»ĉÇ@UVƒK™ķkǼğb"],encodeOffsets:[[100182,40664]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/guang_dong_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4418",properties:{name:"清远市",cp:[112.9175,24.3292],childNum:8},geometry:{type:"Polygon",coordinates:["@@lǯkÿƒaV¯™VaÈU„¥ÆÇ„Ilxšmnb‚Uœxl™„Uôl°kš„„Wl„š@ô™VwUanUl@„xVkšaX¥‚kU»„aš¯±@kka@ƒUwmUkwƒJk™˜„±k@ƒ™™L@ÝWUwV݃—xÇU¯ŽÇX@m™Åƒ@@yĉ£VmUwȗ»ÇšUn„lUnWU¯`Ukƒ@@„™x„Ž@bÇxX¼ƒVVš¯LšĀk‚ÝLƒ„¯@VŽƒĀ¯lnĊW¦kVÇôkUDŽUK@ţ™U@a™™ó܃UU»ƒ@™¦k@Vx„KVb„n‚š@„Æ™„l„@xšƒbWšnlU„lxÈlV„ȰƄ@¼™„@x„šWxœŎ‚V„šK°„š¥ššnƒÆkŎ@ÈÑm™„K@¥šk@™ô@„nôV"],encodeOffsets:[[115707,25527]]}},{type:"Feature",id:"4402",properties:{name:"韶关市",cp:[113.7964,24.7028],childNum:8},geometry:{type:"Polygon",coordinates:["@@W™Xk±Ñ@ƒUw™mUwĉwlmn@Æwn£mkIš¥ÇÅ@¥šaƒón£nWWwš£V`Þ@šnVml@xô¼„IV¥ƒkUmkamUkVWwÛ»móƒ£UVÅKmn@x™@kbmm¯a™Xka›VĉaUb݃ƒ²—‚lš„IlxnVVx@„lb@l²™°ƒbV¼lW¦™bUlƒwk@mVVbUxóš™@kƒƒX™ƒ¯lókƒVkš›wVma™nkwƒJÅȃ¦ÇVUbšŽU°„bl°ŽkÈ@x™¦ÆÜ™°@„°„¦óa™VUôlUlbXl@nÜV„„nKlŽnIVÞ°Wš„°U@bnm@¥šIVƒ²Ulƒ°VnalzXyl_Vyƒ¦lƒœLlxš„@ŽÞbšKm„knVWanwƒÑVwČº˜@n_ÞV„aVŽÜIœl@„˜KȚ„VJ@aš£È@˜™@km™„aV¯W@_ƒa¯KmbkÇkLmwƒ@Å¥"],encodeOffsets:[[117147,25549]]}},{type:"Feature",id:"4408",properties:{name:"湛江市",cp:[110.3577,20.9894],childNum:6},geometry:{type:"Polygon",coordinates:["@@@ƒkXƒ™@a„UUċlk„Jƒk„™@wVJXUWk°W@nKnwlUlš²ƒ„blU@‚lI„l@„XbW„šxnm@lW@w„wU‚JX¯VU°`ŎóˋkÝÝkÅ@ÇmğÈřmw™aĵV›xUہ»°™ĠǷnýmóX¥ɅĵҏÇ@°²ĊU˱ĮU¤Ç°™Ā¯ɐnżUĊĊĬV@脎@ԃÒU¼l¤nƒĠb„êVĠ°Èy„zVaV‚nUÆL„ašbVl„wÆ@"],encodeOffsets:[[113040,22416]]}},{type:"Feature",id:"4414",properties:{name:"梅州市",cp:[116.1255,24.1534],childNum:8},geometry:{type:"Polygon",coordinates:["@@„‚nԚlW¼x‚¦@lœVl™lLkè„a@zš¤ƒĖ„¼UxlnUKUbÝlU¼lb@„Vx„V„klJÈwV¯š@ĠlÛ˚nƒbkšÆźÞƒUÈôklmšL„¥‚LœW˜„„™nKUkVa°V„x@IVV@x°bUk„a™a@mV@„@y„w‚L„ÑUwVUšV„‚„U‚bÞVVann‚@XwÇÿš¯²aVamkXaÆ»@»nw@¥›UXaƒkbWa¯KUw@¥m@kwmLU»UU™J@kmU@UUWUƒ@ƒyƒanwmçÛl¯ƒŽ¯UƒmKUmƒwVkmÝXbW@XWÝbƒk¯@±‚w@»U@W¯Å@ƒÇ¥UƒU@ƒƒ™IU™ƒakJƒĀ„ꃰšþƒXkamŽ@Žƒ_J°m‚@X"],encodeOffsets:[[118125,24419]]}},{type:"Feature",id:"4416",properties:{name:"河源市",cp:[114.917,23.9722],childNum:6},geometry:{type:"Polygon",coordinates:["@@°VlmX¹laĢÒlm„@„„šV𣂂@¦Ģklynn¼lW°z„W„„°VbÈV@lÆbnn‚JškX„šVÆašÅ„W@™ƒUUw@ƒkaV»ÞkVaVLkmVwƒ»„ĕ™£@yƒblçkKkš›U@k¥‚wX»™kmӃ@Wn¯‚I„`@nlb„W™ý„¯ƒé„ÿlI@™XUmWUwƒ@@UJU„Ç„mKUV@x™„ţk¯¯LWƒƒnUxK@ű»Vwa¯š@¤WX@ŽÛ¦@¤ÇIȼWxXŽƒ@Wx—w›ŽUnVbÅèmVa±²UWl@Žk„lȄ¤nôܼXxlUnVlbVn„lU¦ƒJó»@wnkmU™‚Ý@U_™¤XxmXm¤„ô™b@¦Èƙ¦lJn"],encodeOffsets:[[117057,25167]]}},{type:"Feature",id:"4412",properties:{name:"肇庆市",cp:[112.1265,23.5822],childNum:7},geometry:{type:"Polygon",coordinates:["@@l@š¥„@V¼„Vôۚš@bšV@ŤVLȃlVÈólUX¥mĉ°k„ÿU°@„ƒÞKl™ÿ°KU™„UW»Èw@aƒšw@ƒ„@nm@w›£kÓVUVn„Kš™k¥™£Vamƒ@nkKkbÆǫma—kmLU¥™UmƒÛwmVU™mUƒJ—ÇaUxÇIn`mb@Þ¯b@„nJ@nl„U‚V„lVU„L›W¯—Û`Ç_¯`mš¯I™bĉWċzx±J™x𐝯Uƒƒ_k@™šƒJ@Umb„šXôlLš˜n¦@¼ĊxlUXŽ˜xUbL‚Ġ„UnVĊwlšUš„b@lW„X„‚m²˜@ÞWxXš‚Unb"],encodeOffsets:[[114627,24818]]}},{type:"Feature",id:"4413",properties:{name:"惠州市",cp:[114.6204,23.1647],childNum:4},geometry:{type:"Polygon",coordinates:["@@lbšW°bnnlaš@@wnmÆLVUkÇlƒ@Xk‚V²±‚bnUÆçUaVmœ˜xXw„@WXwÇ»ÈJ@£Ü¥@XW@£°™‚bUx²¼@ƂLVw„mX„°K°Ťlšƒ@wVUnLȃVƒVIky±wkƒKU¯ƒÅkƒ™XġÑۃlwUwlm@m„nKWašÅm›¯óÇmğb¯alĉUwķbmb@lÞÒVn—šmĀŹ@VŽƒbVŽUnmakLm`@xĉkklVÔVJVn—lV„UnmJmaLUbl‚™zmŽkL™a™‚ō@@zš‚V¦UŽV²kJ„nÜU@˜VXUށL@„lJƒL@bݤUnVŽ—b@xVnlK²„Vx°V„xlI„lkVl²k¤@n"],encodeOffsets:[[116776,24492]]}},{type:"Feature",id:"4409",properties:{name:"茂名市",cp:[111.0059,22.0221],childNum:5},geometry:{type:"Polygon",coordinates:["@@‚LnÇlk„KnkÆL„ƒUm™ÈxlUœJló°n@ššanŽš„„a@ƒ˜@X_@mÝóóU@a™aU¯mL¯ƒƒkV¯™ÇVwkw@V±Ŏ£@™™@šalw±Vk@m„Åm¯™ÿŃƧIÇ`ōô¯_UVW°IV‚ƒx@xkX@Žmn™wXƒWa@ƒƒkkJ@kVƒa±„k™kVmxmL@‚¯XXlWVUI@xƒš„lƒIklVȃV@b„šlW@„@nUxVblVxkôlx™n„‚y„šnIƻư„aXwlK„bVnƒŽXb‚L„¤„k‚L—èƒVV¼ƒŽ²IlĠVX„ynz°KVx°@VlœLlblKœš"],encodeOffsets:[[113761,23237]]}},{type:"Feature",id:"4407",properties:{name:"江门市",cp:[112.6318,22.1484],childNum:5},geometry:{type:"Polygon",coordinates:["@@lUXx°JWnnƚXVš„W„X@„šºVLV¯nU‚Vnb™ô„x‚aXmW™XIšŽUb°xlK„l¯œK˜xXÞ°ŽšXÈ¥Ü@„ĉޏU™‚çš»nóƒVma—x‚¯UÅU¥Ý¯@ƒƒç@ș@çĉÅUmU籃ĉKÝxÝ_ÅJƒk¯»ó¯nmèkǀšŽWxœ¼mnUÜġ°@¦@ƒxƒLkŽÇaVnUxV„™šVlnIlbnÆÆKX¦"],encodeOffsets:[[114852,22928]]}},{type:"Feature",id:"4417",properties:{name:"阳江市",cp:[111.8298,22.0715],childNum:4},geometry:{type:"Polygon",coordinates:["@@°„nKV°šb@bôVÞô@n„VlÒôÆUnlnn@lmkmVkƒaÈkÆÆ„™k¥‚ÅÞ»ÆKXkW¥ÅLmÅkamJUkš™UƒVwUmÈbl„K„w‚@@¥Ģ¯VÛnm›»Xw™lƿ™@kbW™—aʵ@óL›l¯ƽ@™ƒƒLn°ƒÆ@nUl‚²kx™b@‚š@šō¤U²@ŽlxUxšÈU°lŽ„"],encodeOffsets:[[114053,22782]]}},{type:"Feature",id:"4453",properties:{name:"云浮市",cp:[111.7859,22.8516],childNum:5},geometry:{type:"Polygon",coordinates:["@@@V„Iš™l@„`V„°Å™šw²I‚wČyĊXša°Jn™°_È`Ü_°˜œX‚KVƒkUUƒVkƒ@mmI@ƒ°a@Ýnam_ÈJVwlĉX@„šlUšómaUmVU°UK™¹@ƒƒWƒXU™™WmÅXm¯IWwkVWlÅLݼÆl¦ƒšÅÅÇl„bUllnknm@kmVmóÅkуUW`—@@„ƒb™ƒm™b@™¯mkô›IkVÇwnš„VƒÅKmlƒLklmȁKƒšVĊK°²„`n˜¤n„U„bWl„xVx™LUx@°nXm`VklVxmnnx"],encodeOffsets:[[114053,23873]]}},{type:"Feature",id:"4401",properties:{name:"广州市",cp:[113.5107,23.2196],childNum:13},geometry:{type:"Polygon",coordinates:["@@Ș¼VxUnĊ¤@z„@šÆ@nÈW°ÈV˜w„ŽUÞVxÞX@ŽšK„šl@ބVaĊbœU@ml£k±lUƒkkJƒw¯UUw±ƒkLUm@w˜aUVmÞ£@a„KkI@ƒ‚KVUW@—ÛVƒmlIU±VU¥™@yğzƧǃƒšƽĠřšÅnī±m@ƒ²¯lƒ°@nÝÆóUll@XnÝVU¦mVV°—„V¼™Jƒn„b@°mbn„ƒ‚@²¯‚¯wVwƒ@@nmxX¤¯L@ŽVLU„m@@l"],encodeOffsets:[[115673,24019]]}},{type:"Feature",id:"4415",properties:{name:"汕尾市",cp:[115.5762,23.0438],childNum:4},geometry:{type:"Polygon",coordinates:["@@@‚„@VxnXWV@š„bVššJ„„V@ÞÅU¥Ċxš£UWU‚wÅUU¥WVUkĊÇnkV`°LV™„wƒƒnU@™„ƒlbĊ¯„Vnalšš@@çkUÝ¥ġaó¯ÅaÅLŻÆUýmy¯ó@ĉÆó„ȯw™ÆXbmLƒ‚@nknVxkx܄ĢҚW„Æl„V°„Ll‚²xlz"],encodeOffsets:[[118193,23806]]}},{type:"Feature",id:"4452",properties:{name:"揭阳市",cp:[116.1255,23.313],childNum:5},geometry:{type:"Polygon",coordinates:["@@V„Ȧ„Æ@X°V@@¼‚x²°@„lÞaWXX@‚aÞWlnUŽ„xVnnL„‚°V„@k‚mĢl@„ak™@mlk°aXƒ±„nwm±™²¯JV²@ƒwW˜—_mƒa„V»ƒU@m¯ĉUф™šJl™„ašbVn„lĸLlƅÛDZwÝ@ĉxó@è™@k™mbƒUĉ°kaƒ„@šmV„„ƒxUš¯KU_mlĉÈVlXUV¦ÆVxVŽVX™¤ĉwV¦ÝÆ"],encodeOffsets:[[118384,24036]]}},{type:"Feature",id:"4404",properties:{name:"珠海市",cp:[113.7305,22.1155],childNum:1},geometry:{type:"Polygon",coordinates:["@@„è@„Þ°V¦VƁ°˜wnb„UÆ»nçÆ@nxܤ²llU°VnÈJސ°UôéšķUklƒô£VVˌKÞV°£n¥ƒ£ȗ™Ýy¯¯mÅkw¯bÇĔğ@Ýn¯ĊƒVğōŁŻƒķJ@Ț","@@X¯kmèVbnJ‚™"],encodeOffsets:[[115774,22602],[116325,22697]]}},{type:"Feature",id:"4406",properties:{name:"佛山市",cp:[112.8955,23.1097],childNum:1},geometry:{type:"Polygon",coordinates:["@@Èb˜Ž„InVVšnUÜxn„šVV¦nK˜lnbÅǬlalL@mn„Ubš¤l¦™šƒLUmUVlԜ¤@xmnVl°_XVVmƒkVmș@kn@VƒUK@°KW£nw@m„@Ux°x°@±„mƒna@¯ƒa„mšIU»˜ƒU¯nUV¥ÞUWmk@Vk¯™Ukn›ÑWݐƒĊÛ@Ǧ™W¯Wݗw›Lk°ƒkL¯wVa™WJXšWnbƒwkVƒ™W@kĊ"],encodeOffsets:[[115088,23316]]}},{type:"Feature",id:"4451",properties:{name:"潮州市",cp:[116.7847,23.8293],childNum:3},geometry:{type:"Polygon",coordinates:["@@°ŽÜknèmx„b„z„@V‚VX@VnV@lšIVVV¼nKlxn@@¦Vx°LXbla„ŽWbœV°£¯™W@nW@™‚aUñVœwWš»@¥ŤÅUÝǓÝóV@ńǎkUVmƒIUwÅVWÇX¹›—@W„¯bkl@nlšƒb@‚kġށn@l"],encodeOffsets:[[119161,24306]]}},{type:"Feature",id:"4405",properties:{name:"汕头市",cp:[117.1692,23.3405],childNum:2},geometry:{type:"Polygon",coordinates:["@@‚@U±°Iš±n²mx²ƒ˜@œWºXÈÆUVx„JUnlVȍ@ŃôUǔÞVçn»VyĢÛVm@»kaÝUǼóšÛÈķKċ¥X„¥Wwğk™ƒ¯@ƒwķKƒkUm™aƒbkš™IƒšVÒ°Ċ@n„VU¼ƒ‚„bn˜`X—„x"],encodeOffsets:[[119251,24059]]}},{type:"Feature",id:"4403",properties:{name:"深圳市",cp:[114.5435,22.5439],childNum:1},geometry:{type:"Polygon",coordinates:["@@ÞLš„@xšbV„šVšK°™X°Kô¥Vw@anU„胐š‚lkĊl@wn_lKnbVmU„aUź@nÿ˜™UmÝѯUƒbk„@ÆkxŻ@™aÇX—wƒJƒƒ¯LķÝUĕ™ó™ĸóêWº@b²nmĬ™Æ"],encodeOffsets:[[116404,23265]]}},{type:"Feature",id:"4419",properties:{name:"东莞市",cp:[113.8953,22.901],childNum:1},geometry:{type:"Polygon",coordinates:["@@Ŏ@ššblKnšykVa‚KnbnIVmUƒ˜kUmUIUә„ƒçmV@bUxó¦¯LW‚¯š™L™UUƒ™a@w™ƒÝKğŚ™ƾ„„ƨÈĠy"],encodeOffsets:[[116573,23670]]}},{type:"Feature",id:"4420",properties:{name:"中山市",cp:[113.4229,22.478],childNum:1},geometry:{type:"Polygon",coordinates:["@@‚XœÒlmšV°ôÞÅ@m„¯°k„±‚@@aX¹¯VݏÇIUmV¯kk‚±Û£mw@‚Őmèżmô™¼èVš"],encodeOffsets:[[115887,23209]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/guang_xi_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4510",properties:{name:"百色市",cp:[106.6003,23.9227],childNum:12},geometry:{type:"Polygon",coordinates:["@@lklWXL@VšI‚l@XnJn@VUUalk@mK@kny@UlU@a°™„ƒUU@VmaU@Ua@UWw@ƒn@KmLm@alkšmnI‚m@an@VIUamWÅImwU@@a@K„X@JVL„UVmUaVkUa@m„@@Ulmkk°ƒUaVUlKXbVwVIkaVmUk@KVk@a„aW¯m@w„¥laœX@KmaškVmnUl@nxVKšInU@yVaVIV@na°KlxX@@_lmXšUV`VIV™V@„n@lšbn@@WUkValK@²yl@„„VUV@@K°L@KU@@UVaXIVVV@naVkVa@K@UUK@UUa™LWa—w@m@K@UVVƒ@mVUUVKnL„mVL„K‚bVK@UUIk›mI@mUIVK@IUK@VkLƒ@WU@mU@WmUk@ƒI@VƒJk@WwX_@amK@UUWkIƒ„ƒK@LVb@mVmakL@J@bU@Ux@xƒbmI@`ƒIwm@UbmKUaUWa¯UkJWV@XƒJUU¯LUmV@ma@kkamKwƒLUUmWVkkm@aVUUkVKnVVUmXK@UW@km@Ukkm@@W@U™kUy@I@aUUmbƒ¤U@kUmL@bmJU@Ua@wkLWWkL@Uƒ@VaU@ƒLUakKWbkUWVkKkLVLUV@JVbƒz@Vƒ„@ƒVmUU@kVmK¯@VƒU_™VWakVmIUKUaU@@bml@XU@@V@LmKUV„mVUKƒƒKƒbkaUXƒKUL@x@V@l@„mxU¦„V@ŽlL@V@Ln@@VV@„nlKUaV@nLUbmJnL@VWLkbmV„@@L„W‚„XLlx„VVIVV@x@V²blUVm„LVUœK@kWWXUlV@Xl`„LX„l@@VšŽƒn@VnbVš@lVUVUÈVbš@@`UXU`l@@XUVm@kš@xmVknUJVXUbmKULmbx@VlJ@LVbkKUbVLÇUUVƒUVmU@VaUkUKƒVUwmLkUUVVlƒbka™XmwƒKUšVVU@@V±Uk@VWUUm»XamU™bƒKk™`ƒ„™U@UnWW_kKmbUVUVmnUV@„nJVUlšUbU@UV@n@JmI@VmbnVUXlx¯ŽkKmnVV@L@V™bkV™Umm™@Ub¯LmlUƒL@VWLkmkLmmn£WmnKU_mW™š™bnbmxƒ@U¦UJU„@Xmlk¦@‚mnUUm@@Jn@lV„ÔVJnIVW„I@a„ƒÆK@I@aVK„IlŽÞnnl@nl`nbÆX²l@xV„@llbVn²ŽVVl@nn„V@IlW@Un@@kVa°KšnÈmVaVXUlaVƒÈU„VlwôUlynIVašan@lVXb‚Iš@n¥la@Kš_n‚@bÆx@XnJV„nKVz@`VXVšU`@bƒ¦UV@VšIlx„UnV‚K„XÈbšVllšbVbnVn@"],encodeOffsets:[[109126,25684]]}},{type:"Feature",id:"4512",properties:{name:"河池市",cp:[107.8638,24.5819],childNum:11},geometry:{type:"Polygon",coordinates:["@@lLVl„bVV@nXVlI@JVX„mšn„W°b„IVV@‚ln„@nalVUb„nW‚@kVkÒlbVKn²°bUŽlV²@˜X@`nb„aUI@ƒ°wlU@aXJVI@aVK@wUamIXm‚@XUV@@bV@Vm„ImnUUwVaVKXU‚nVK@akƒVwV@nL@UV`n@@X‚lnIUJl@X¦˜V@aUIVm@anƒV@UwnL@VlbVL@KVVXUWƒ„wUUVUka@UVJnUlbnalbVVn@°„„LV`Þ@šXVxV@@bVlUVVbXnWlXnmlš@XXWVXJmbUI@V„llUVkn@@VWV@Vnb„@VXUJVnn`lLVk„a„»lVšLnw@WV@lInw@WnU@U@m‚knUVó„K‚wUmUXUƒU@@wVJVIl@XKVVVbVI„J@Un@lŽVLnm„b@U@Ul@nUš°VUVJnnVJV@„@mVU@ƒ@wkUVwkKWk™yUUkU@alkÈ@lJ@x„Ilƒ@UUWVkUw@Kn@@kmaƒVUl™UUL™ÇƒUUKl@UUmL@aXU@mlUUwmKkUUVKVUƒaƒKUnK@U@Vl@XUWU„KlwX@šb@K‚@XkV@UwWJka@aUwmV@U™@@U@wUm@»kLWVkIWŽXnmV@VkbmKƒLUbk™Va@aƒa@@aVU@aVak£@ƒ±UkVU¯V™UUƒJVƒUIƒ@kxmUmWUbL›w@K@aU@@aVU@Kma@aka@_VWkk@UWVUKULWKULUš@KUnƒwVaUKƒxU@UmaƒL—m@kVmVa@UkƒmI@ƒ@KmIkxU@@K™U@mmakI@VƒLkmWkkJ™_U‚@V@L@n˜xXbšKVb@VVL@V@LUbUlmbU@UUWJUb@VV@@L¯K@LU@UVƒƒk@±z@‚kLUbVl@Xm@™akm@ƒU@UšUJU_™VWŽkn@`W@kw¯LmbU@UJUb@zmV™JULmwk@mVUn™lnb@L›Wkbƒ¦@x°nXŽƒb@bUl@LVlUnlbUJUxWakLUVVb¯„llkn@Vƒ@@nVbUlVbUnƒVUK@IƒW@L@bV@nxÆJnXVbUJm@@bnmJ™nkl@b‚nnK@L„m‚@Xx@VVbV@nb@UVVƒ„¯š@bkV@Vmz@lnLl@kŽVbUVm@mI@Wk™J@UWKkXkl"],encodeOffsets:[[109126,25684]]}},{type:"Feature",id:"4503",properties:{name:"桂林市",cp:[110.5554,25.318],childNum:13},geometry:{type:"Polygon",coordinates:["@@nU@J‚X@`XLm¦Vb`lšVXXWš@VblČnVšŽlanLnmVLšK@_Vaƒ¥@kUa„@VmVb„aV@XVVzlVVK@knKVmX£VKšLlbnš@b@llL@xĊôXaV@°È@¤„bn„V@@Wl_„V„U@W„nVamw„wVbn@„K‚VšLX@VmVUxlV@šnVV_nK@m‚I@Wn@@IšUĊ@@wVWX@@I°VVm@wmU@m@IUƒV™kƒlkUmmkÅV@@aV@@Wn_UKla@kšaV„šlVanb@k„@@KlVn@@aV@nIWW™UUaVU@™kKmwU@UImKk@UU@w@W@‚™k@™UkWƒ@mk_W@Ua@a™ƒƒ@—¯ƒmV£@mƒUUam@—kWakƒVama@UUm@nw@alaUmnUlVlIœV‚™šLVyk£Vm@k@UUJkƒK@kmKUw™KkWK@UXImyVwnI@m‚ƒkUlkUKkUVmƒw@kkJWUÈm@_k@@aƒaW@U„UJUwU@@IWKkƒmUUV@nVl@bVb@bU‚UXƒakw@ƒWUkbkKƒbm@™xUlkLm@@wmKUX@‚™UaVW™XVmU@@UUUƒxkmWXkKkUWaUaUb™L@`UL@LV`UXmK@VmakLVbkL‚xUJUIVbUVVb¯KƒV@Xnl@lVXbmÒnV@L@VWKkVUIWJkIƒŽUamUUbm@U„kU@JUbW@X„WxUam@kbVVUnUJmUUV@bƒU@UUV™@ƒVk@ƒbƒmULV¦U@V„U`VLUL@xVbn@UJ@nWJXXVŽVV@bkxVbUx‚Lšš@x„¦@šU‚lXUVVlULV@@šnŽU„ƒb@xl„nJVnlVknUlVUbmŽU@ƒbVš„x"],encodeOffsets:[[112399,26500]]}},{type:"Feature",id:"4501",properties:{name:"南宁市",cp:[108.479,23.1152],childNum:7},geometry:{type:"Polygon",coordinates:["@@lKnbnU‚@Ua@K„L„ƒlJVX@VnL@bW`Xxl@„I@U„Jl@nV@X‚V@nXV„@lK@UVL@JULVJ@nnJlœVJ@VULaƒLUKƒnmKULVVUŽ@nU„š`lIXlln„K@UlJnb@nšV@LV@lwnJ@L@„nJl„@VUbUn@l˜n„KnbVŽV@„wVLUb„xVm@LV™VKXLVKVLXU@VllUX@`lb@bnb‚L@ŽUV@bV@@b@Lœx‚KVanXVƒUUmVUUUaVUky‚UUa„ImK@mUUVUkKU_@W@UVVVIUW„UVaVU@UUKnƒ@k@al@ll@bnL@b„VUV˜X@Vœ@@b‚Knblmn@V_@aUalL@a@akK@kVKUKlwUUnV¥VmU_VWVIVaX@Va„alńK@LVJnalL@LnK„wlVUw‚mX@VXšƒlLUVnblaUmVUVwXU@Wm¯Va@ÞKnw@w™mšk„»‚UVW²a@_mW@U@I„y„LVUUKW@@™„LX@VUV@@yVU@UV@nwUUmJka@IU@ƒmƒVkaW@UwUX@`ƒ@kLWUk@mƒkUUm@k‚UUWkUƒkWxk@@VƒK@nV@UVaƒUUJmIkVƒ@UamLUbkVmamLka™@ƒ‚kmL¯WI@wJmwƒx@akU@aUKmbkaW_nW@_U@Wm@a@wkwUKmƒk@ƒbkb›w@mKUkkU@J@bW@kVWz@bVUa›VUx@„ULkJWbXVVXƒ`@œmJUVU@@Lk@WbU@UJlnXlm„Vx@Ln@‚b@K„LX„WJUUW@kƒaUVUbmV@nnV@n@lVLƒVmLX‚mXkV±@kxÅL›šUbJWIÅJ@I‚mXalkUamKkškL±aVwKƒUU@mÞnbWJX„m„@lbmKULWUUVkaƒbnn@Vl@VVV@VƒbVbnLWLXJWxXLV@@VV"],encodeOffsets:[[109958,23806]]}},{type:"Feature",id:"4502",properties:{name:"柳州市",cp:[109.3799,24.9774],childNum:7},geometry:{type:"Polygon",coordinates:["@@ƒwU™„aV@nVaUVklmkUUmmIkƒ@w„aVƒm@™U@VKUkVUkWV@™ƒ¥@w™™KVwUalw@aUUUWWXI@mVIm@Ua@wVKUKV_UƒV@U¥VK„n„al@„Uš@VU@V„V@aVUnVVIVmUUlan@VbXwWƒX@Va@IlVVƒn@VanVVb„lJXIVJlUXL@U@KmUnÑWakU@mkƒJUI@mk™@wUmmUV@JXaWIXWmaUIƒJƒkk@W„nJ@„ƒaUak@›kkJ@kUKU_ƒ@myUóWUkm¥kUmL@KUKm@k_UmVa@ƒk@@UmU@mm_—JWIUVUŽWLUlbVUJÇVUIVwƒKUVk@mU@n@lUL@Km@@l@L™VƒzJmUU¤m@UbV²U`U@@¼Vn@x@Vš@@VnUVx@blbXIVxU@Wl@@L™aW@kxƒLXVWVk@@U@VmLVŽ„L„bUVULVV‚lnLVxkV@nWV@bnKVVk@VL„VšÈVKšVVk„Unb@lm@@LVxUlVX@Vk„ƒJ@wkIÇ@kl@blVVVšzXllLUxlV@x@„UV@nƒ‚U@UImmUIUV™¯mVk@@V@VƒamnUKkm@@VƒIUJUaUUWLk@UJUI@xV@V„VWVnxƒLUômVV„@VkVVVUnV@UVkL@VVV@bVxla@bkXVJVn„`nU@bƒb@bVL@VnJ@„l@šV„aU@@_lW@UUU@Unƒlll@XLl@@UX@°bVWVanLlknVV@VVX@VVƒnUŽVLmbXJ@nllXX@`VXƒlmaXVWk@Wkƒw—J@„VL@J‚bnU@bn@@bVKUnVJVIVVVL²a@bV@@Vl@nUVakalmš„UL@VUL@V‚a@mXl@nK@UlK„L@Vl@@nkllb@š„Vnn@‚šnV„™V°l„šVInwlKXxlU°Žn@@ƒ‚I@UnVlakUJWkUK@anUWK@_ÞJ@U"],encodeOffsets:[[112399,26500]]}},{type:"Feature",id:"4514",properties:{name:"崇左市",cp:[107.3364,22.4725],childNum:7},geometry:{type:"Polygon",coordinates:["@@@JVzšl@V@Xn@ll@VlnX@@VWLnŽUVmUULVlUV@blnUlnXVV„K‚xnLlb@lnbU@Vn°KVV„I@WXUlI°VXb‚VVbnLVan@‚x„J@_nJ„a@wVwV@@a@IU@UU@WKXwWIXKmKUa„a@U‚UUUk@@Umm„albVUXVVKnL‚a@knƒWƒXImanÝV@„V‚LUx²blKl™nLVbklWbn@JÆIXJ‚IVaœ™ÆKlw²@lUnWWnK„UUK@k@mmU@mnUVaVU„b@lVXVXIWƒƒK@Lam@@KUwnƒWkkmVIV@Xal@@KV@VUnI@›„_UWWUkam@kkm@ka@mƒk@wkJWIUU@WXkW™XkWWLUUƒ@UakLƒW™XV±VIVWUU@anUWaUK@IU@Vak@@UUKWaƒ@m@ak@@wUkla@mUaUklakwVƒ¯¯@WWUkLkKmaƒ™kLUnV`UxWX@Jkn@bmlƒakkk@ƒb@l¯bm„ƒbJ›b@VXn„bVV@„ƒbƒJUkkKWVU@mœÛVUUW@UVUJWXkVkKmUL@WW@U„Vl@XXKW„XJ@XVlmbUxnnm@UlVnV@XVm¦VJb@šmLkKÇbXblVkn@l@bWnX`V@@IVV@ŽV„V°n@@_naÆVVbUVVbUJnzlVUl‚XkV@Vlx@X„VnxƒbƒKUK@b¯VVUV™L"],encodeOffsets:[[109227,23440]]}},{type:"Feature",id:"4513",properties:{name:"来宾市",cp:[109.7095,23.8403],childNum:6},geometry:{type:"Polygon",coordinates:["@@nVlw„@VJU„„IVVUšV°lU²V@„l¤Ub@bUV@b‚@„b@bUblšVa„KnLla@UnUWmXlJXUlKV@V_U±Van@V£nV‚I„yšU@K@kn@@LVK@k@mnVl@VU„LUxVJÈUVIU‚aVkXKVVUXJ˜In`@nnV@Vl@@„UbVnl`n@VL@LnKlVn¦VlôXV‚nz„@V`VL@llIœll@Vb„b@ƒmIXƒl@„l„IVJnbWXXJWb@IU‚nVVn@xlš@nVJ„I@W„U°LUaVUUaVJVIwlKUalKnb@UnLVWU_@KVK@_šKVa„@VKU¯VLVKn@la„aUkU@maVU„J@k™@Um@XmbkyVaUIUU@KV@laVn@KXKWUkUk@ƒaW™UUVw@aXKmƒVaUUkšmIƒlUU@wUa™xUmmU™¯™U@WƒLUmVIUym@UVmUa@wmw@çm@aWLU„™JUIUamKmL@™aƒx¯¥ƒkU¥U@±„k„UVmKU_mJUbkKm„ƒLÅǙ_@WWUXUmaVUkK™„UWW@nVxkUƒxmL@KkKmbUI@KƒLkƃbUbW@UbUJUXV`UnU¦mŽVVkxVLUL@llL@b@bkKVb@bU`m@knmaL@a›@@U—WVUƒU@amK@akkk@@b@lm„VL@VUVUbƒVVXUJUU@V@XV`lLUVVV@nnLƒJVbVlzUVVbVVnUVVU„"],encodeOffsets:[[111083,24599]]}},{type:"Feature",id:"4509",properties:{name:"玉林市",cp:[110.2148,22.3792],childNum:6},geometry:{type:"Polygon",coordinates:["@@VJUXVVXlWX@V™xVnX@@`ššULWŽUXÅbWK@mULUUmJ@n¯b@l@VULVx„x‚XU`VXXJVI„V@nm`@nUŽVXn@lWVn@b@Jn@nU@Lm`@Xn@WJƒ¦U@@VnL„lV@@Xl`nIlJnkVL„w@KVK@UšaVL@bVKX™lUUKVK@I„VšL„a@U@WšLUlVL@bU@@blb@VlbUxVbXUVJ@xVL„U„lV@VU„bVLnKl„XJ@L‚b@an@VanL@`VLšKV_UWl@U_„a@WVInlVUUUVm@I@W@wVakIWm@U@ƒXwlaVbnI@ƒm»Va@aXaVLšU„»@aVa@k™KkL@KmU@WƒzUK@wU@VWUUVUUKUa@mKmbUK@_nWVaUkVaUaVUVLXKVƒVUVmVI@UkKkLm`UkW@UwWW_„UaU@WakXmK@xUXƒJkƒUUWUk@Wl—mJ@km@@aUKzmyVk„a@kkWVUU¯lmU@@w‚kkmV@Vk@mÅIƒ‚Ukƒaƒ@Ub@m@UUU`mUbWaWmb™X™XKWIXUWm@љ@y@UkIUJUUWLUWƒL@UkVUxW@kaWbKWnXxW¦n„m`XLVlUbVbUx™I@JmLUKUb@VW@@bkL@b@VlU@xkš@L@lƒxXxWXX°V@VVVbUVV@UVVbULVnVJUb²b‚aUb@VVVVInlV@VnXaVUšlI„VUb"],encodeOffsets:[[112478,22872]]}},{type:"Feature",id:"4504",properties:{name:"梧州市",cp:[110.9949,23.5052],childNum:6},geometry:{type:"Polygon",coordinates:["@@VbXblVlLXWln„wVV@VV@UnšWUXVbš‚@VWXa@kVK„UaVaVkšUlyX@Vaƒ—VmUwUaVU@UÈymI@aU°@š™nWV@VaVaw@IV@VmnLVK@kmmna@™„™VbVI@aV@XbW`U„„LUVVx„@VbUV@bl@VLXblJn¦lL„°°@n™@K@UlLnK„a°LWbnJ„¦UÒV„UllLlVnKnbWnn„V`„w‚@@Xa±™n™l@XKV_„WVkVa@kVyUa@wU£UW@UIVW‚@@a—wWaX_WKkVmUULmak@UJUI@±m»™—k@m»VyUIm™nmmwnkUmVaVIUn_mW@»Vk„@VwkmmUXa@IƒaVm—mƒ@Wm_U@mIUWóLmUk@laXmmkUK@UmKULUUmWULƒ@VakU™@Ub@bƒ¼™VUKWb@bUbn¼@„mJUakbWx@„@VXnlJUb@x@X@JUnVVUVmkUJ@XƒbV`k@VXU`™LUK@_mKUbm@@b@„U`@nlV@b„UnbVbn@@`VbUbVV¯bm@@mJXb@bVnUllVXUlbUl@LU¦VVmŽkLVb@b™l@V@XlK@V@nUJUz„°mށwmLmlXbWVU@UUUlƒIU@VVmV@@¦‚bXbWxX„WlXVWL@LUmkbU@@LVVVJUblzna@WVnš@@lƒIUVnbV@Vlƒbkbm@ULUKV°ULƒ@"],encodeOffsets:[[112973,24863]]}},{type:"Feature",id:"4511",properties:{name:"贺州市",cp:[111.3135,24.4006],childNum:4},geometry:{type:"Polygon",coordinates:["@@nL@xn@lKVkšwn@„alLlaXV@„lx„bVWV@aUa@aUk@mVUnVl„XL@JV@VxVIVƒX@„b@bl@@`ÇnXVlI@l„xUnlVVLkllV„@nmJUxnzWJ@VXLlŽšLVxnL@l„LlŽVI@V@lUnl¤Uz™Kš@„Vl@š„L‚l„Lnš‚b@VnVVU@k„a‚Knxn@VkVJ@ńUlakmWIUaVanm@_UK@UVWUa@klXam™U@Vmƒ™VIXW„@lUVknVlKVLXŽVXšW@b@VlšnnVL@KXL‚Kn@lb@UnW°@Va„X„WVb°aVa@I¯aUkUaVKVwƒaXk@a„a‚™@wkm@alanUVw@alK@Umkw@UƒaUmU@WXUaUK@UW@UaVWI@¥Xa@w@WWšVƒXwƒU@mKUXUWVU@a¯kl@akU@UULmK¯VUVW@U_m`U@@xVbUz@lUbUlƒXU`WLk@mš²šWb@ށ@ƒxU_mƒXmmamLkUkKVkUƒVу¥mIXa¯KƒbmLkK@V@Lmš¯@ƒ¯kKm¥kIWaUKk@@aVUUaƒ@UwVUƒKVƒX_WaU@@bUJUaƒš@šmbnn@lULmKUnU@@J‚xUbUbU@mX™š¯@VŽ@bnJÇz@VUVVbVxUn„˜UbW@kz™VUlUbVbƒŽUL@lWb"],encodeOffsets:[[113220,24947]]}},{type:"Feature",id:"4507",properties:{name:"钦州市",cp:[109.0283,22.0935],childNum:3},geometry:{type:"Polygon",coordinates:["@@@IlVVlnL‚@œxla„al@n„VLlx@x@bXnV@@`mXX`lbnaVL@blV@b„wnx‚I@xXJ°nK‚l„š@lbnKnblUVanKVb„@lUnJVI„VUb@V‚U@m„L@Ul@Xw„llVVXV@lVnlVn„l@XVlK„@@_VWVxX@lb„U„nV@@JlbnIlmnVV@UwVK@U@k°a@mnIVVVK@nXLÆaVWXVK™™@_W@Umšw@UXWWkUUVWUIVaƒUkJ™UVWbUmU@mkUJUU@UVab±aVaUIUmVKUaVUU@VUUaUUU@W¯XWWw„w@k@Kl™@wkV@U@alK@aX@@UmIUWUIƒ@mmkXU`U_WJUnUJmUk@@amLU@UVW@UkU@@VƒbUWVUk@@wmKkUWLUWX@JmIƒlUkkKWKkLWU@UKWa@bU@@a@_UKWƒUUUmJmw@nV_@ġğKóLmbU¼VÆ@xUXƒ@Um@wklVnUn›lkaUV@„lV²WVklWXXbWlkVkIm`UUƒLƒUU@UWƒx@XU@@lWLU@kbUbV`UXllUV@bmb@LnKVbULm‚šnVVIV`X@"],encodeOffsets:[[110881,22742]]}},{type:"Feature",id:"4508",properties:{name:"贵港市",cp:[109.9402,23.3459],childNum:3},geometry:{type:"Polygon",coordinates:["@@n@VzUJ‚nVŽ„K@XšVš°nVVnšwVb@xVV„knJl™VVUbn„WL@bUxVVXš„bl@lVXkWƒXwWaa@¥‚@nUUUV@„JVkVVV@XUWanknK‚xnƒ¯VyVI@m@UkL@W@Ušk@aUalKnUUV¥@KVkkaWVkUVkUm@aWanI@n@°aUUVaUa@_m@UamaƒV@akU@mV_@ƒa@KWIkƒmLUKƒaUVU@ƒkƒVUK@wUIWVUaVwka@Uka@aV@@aUKVk™K@X@Vƒb™KƒU@JULVLkVWšUL@aUK™b@VUL@LƒxUKmlkImJk_@WU@ƒkmK@UV@„¥XIm@@Wn_@KmVm@@I@aUmkXm@UWV@mn_@mƒUUJWIUWV_WƒwU@mUknVVmxU@@VUV@zU@UVW@ƒK@šX@VLUVƒKƒz@J@VnX@`±bUXVƒ¼™lšn@xmxÝL@‚Ubn°@XWVUxUVVnkbWVXV@Xš`ÆÈ„KnƒlLVanIV`nLVUlƒ²ƒV@V¦„l°¦„w‚b@šnKnLVbVJšIVƒXK@b‚n@ènx@xVbUnV‚"],encodeOffsets:[[112568,24255]]}},{type:"Feature",id:"4506",properties:{name:"防城港市",cp:[108.0505,21.9287],childNum:3},geometry:{type:"Polygon",coordinates:["@@XV@X°°U„lxkbVlVb@nkbVl@xl@@b@n„‚XbVL@Vl@UbV@@JVLXbmV@bVVUXUJU²šW„XlKVb„@VVXKlXšWlXXWV@VXJlI@x„l@nlbn@lln@lbXalIVK@ƒVwœUVb‚U@aXylUX@@aW@U_UJmU™nVKUamL@Kna@aVUkkVWU_ValaV@XK@kV@@W„wVXV@„V„KVVn_lJlUXkWaXWlkXU‚±kU@ƒVUlbœkVmUmlk™¯Ý™™W@mb@¦VxULm™kJUU@ma¯wƒmkX@VóJ±bUVUXÝWk™lWXXlƒxUaƒbƒIğ™Ç@U@mVUKkkm@UJm@XnWV@x"],encodeOffsets:[[110070,22174]]}},{type:"Feature",id:"4505",properties:{name:"北海市",cp:[109.314,21.6211],childNum:2},geometry:{type:"Polygon",coordinates:["@@VaVLnK@IšJVwUaVaUkWKn_mƒX¥WwXm‚LXalbU£UyV„Å@ݙwm@™°l›LÅUƒmk™mwÛaƑLÝUUm@ȣƃV_„Ó@£UƒƒUVƒ„™¼U°W̄™ÞVbXbôx@b@bmV@ǃ™UÝ@@ĢU`m@ŽnxnIVV‚VX„VL@`@bV@@aXbVL‚@XVlKXLlLVl„knJ@I‚WVXXKlVnL@xl@UVVX„a@UV@VlX@VUV@nK@bl@nVVIVmXIV`V_lWnn„@VJVXnJ"],encodeOffsets:[[112242,22444]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/gui_zhou_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5203",properties:{name:"遵义市",cp:[106.908,28.1744],childNum:14},geometry:{type:"MultiPolygon",coordinates:[["@@@UnUlJn„w‚JU°VL@bnVšU„wlJ@XƒŽXVlU@klVUJknl„UllL@bUJ@xULUlƒ„UblVkblbnw‚UXmla@„wV@VK@L@UXaVKVLXWƒUVa@U@Im@@W@£UKUakKWIXU@al@@llUnL@W@Un@@VlUV@VIUanKl@Xb@lmxVb@b°bb@nlJVVnnJ@b@L‚V@ln„@LmV@Vx@blnVK„nlJXIlw„J@҄b@nlK@Un@UL@VVVVUUUVK„l„@VUVL„J@UVUUw„@Wm@™„UV„ÈVlbUb@JšLlŽX@@x„„ƒLmŽk@@nlx@bUJUzVJ„@@LVxUV@bWxnLnVVK@_‚K²xVbV@n¥@aVI@b„@l@Va„Knb@n‚`n„mmý„W@ƒU_šwV@VlVV@Vn@n„˜@nI@Jn@°¦VaUU@™„mVVWVaUńU@aVKnƒVbVUmmU@a@kUw™m@aUUmUUJ¯lakU‚aXaWUUaVƒkk„amkmUnVlULƒVlJ@XU@UJWUUw„k@aU@WbkWƒL@U@WU@@XUKmV@aUVwUĕUJUamUUVUÑm™nIVJ@kl@XalJVn@KVLœ¥@UWIXWmU@mVUKnUWLUKUaWUUKVU@U@anUny@UlUkK@w@a@aVUƒ»UkVw@Wmk—JƒÅmUUVmwXalLXWWUnam@XkƒJ@UVU@U@W„@@U@I@Wl@Ènlw@KXLWb„lVUkalKUU„VVaV@@wnIlaUmkUƒKWU@KkUkLWaƒKUUWUn@VƒK@LnnWJUIƒVkUWVnV@V™@@XƒK@VUIUJ@IWJkX@VVJ™IƒVkK@I@UVaUWk@m„@wnUWKk@mxk@@„lV@b„xmb@x@VUmLkUƒJ@nVV@b@VkLVbU`¯I›l@™U_UW@UU@™™ƒK¯wm@™xƒL¯¥kIƒ™ƒ‚@bkbƒ@Ua@ƒm@kkW@XVbmV@ŽkV@bWbUbV@„¦ƒxXlmVk@ƒ¦™bkaWL@KUImK@wUK@VUI™b@bmK@LÅy@akXW@kbWlXblL@ŽULUbƒ`@U™kUymX¯@mšUJUUJƒL@Lm@@WX@lU„VlšXll„@l@Èk°V°Ž„X@VU@UVll@XUJVXUVm@@VXLWlnV@Xƒšk@mVULnxV@@bm‚kL@VWLUbU@UVm@ƒb@ķ¥UnmJ@UUVƒkkJUšlÔU`UIW@ƒ°kLUlUI@WVI™U@mWKkXk@ƒ‚WU@bXšW„@J@xX@l@LVl@xšLVxXX@x‚KnxVknb‚KVV@U„L„WlXU`@nUlšX@llVXšVU„KlkUKlI@anKVLXKVaUIVWV_VK@VnLlU„»VKVL„m"],["@@@KlKkUUVVX"]], +encodeOffsets:[[[108799,29239]],[[110532,27822]]]}},{type:"Feature",id:"5226",properties:{name:"黔东南苗族侗族自治州",cp:[108.4241,26.4166],childNum:17},geometry:{type:"MultiPolygon",coordinates:[["@@VV@XkV@bUbWJU¼Vb@Vnb@bš„@J@bƒL@LV@UVƒlUI@a™KULVb@bkJmx„šlLVxknVJk„‚xnKmnnL@bn`WIXlWLU@UxVbUVmKV„XI@JVIVJ@U„L@Wš@@UmUXUlV„UVJXImm@K„L@UVmVXV‚„LXblKlV@LXV„LlVVnkbmJ@xnXl@šbXa‚@Vana„ÒšL„m‚VnIl‚Þ¦°k@b„@@lV„nJlUnš‚VX_„@lVlK„šV„UUxVLVWVIXJšUlnnWlI@KUaUUVKn@VaVXV@na@ƒmw¯@mUkJUamI@lk@@am@@I„ƒUmVImUUw˜™@anUVaUU@LU@WaWUXWW„wV@VwnU@L@ynbl@@X@a„J@nW@@Vn@„lVLlxnI„lš@@UWKUƒnIlJXIVllIVVš¼XK@aVI„V‚@@bn@VKXLVKVVVInw„J@UWI@mX@WKnI@KmU„UVJUL@V„KW@@k„@aU@@W@InJWUXwWI@Wƒ@¯wkaVaUIl@nŽValIXWWI@UUm@anwWkXWWIUbk@UJmIUamKVUUUVVama¯VkIVVUlKnXVwX@@WVaUUVa@IlƒaVmƒkna›wk™UU@ƒU@mUVƒšUVwœl°LVbnJVU™¯la@mX@@UWKXU@aV_V@@JlkUƒ¯@V™nK@km¯k„U@ƒWUW@mmƒU@™kmlU@wkL@WƒUkL@VmLƒJ@b@V@bknUUVK@UVKUK@Uk@Wa@LUVVnUbmVk@@UU@@aƒV¯K@U@UU@WmUL@aU@WV—w@ƒ˜I„xXll@UX‚K@KXXVJna@wWaƒ£naUKV„m@UU@mUmalm@@XkVm@U@VƒLmWU@kkWxU@@bVV@VkXVlƒVƒ@UUk@@ƒmI@KUw„m@UmVƒUUwU@lwkV@IUa@mUaVIVKVa@w@U@™UJkb@n@bmJ@XmlVUxWXkJmUkUUVW™xUlU@ƒaULUšmbU@@‚WXkmƒL@xUV@nUxÇm@„XLWbnlƒnV‚nnUV˜U‚nVVz„@lbUVVlULVb@V@nUJkwm@Ux@bWbUK@UULka›JbƒU™U@U@lUK@XUJmn™J@bU@UwWa™x@zkJWnUJUUVšVV@bXn@xVb@J™L™m@X™w@`@bkb@VmXUV¯L@mW@@n@V@‚ƒL@K—IW@@aƒaUx¯@U„m@XbW@@L„V@bnVWVkKUzlV@bÆa@lnI@VV@@LnVVKUaV_VJVbnU@bn@‚‚nX@yVIVxXKVLlUVaXU°J","@@@KlKkUUVVX"],["@@UUVUkUmV@ln@VXVK@K"]],encodeOffsets:[[[110318,27214],[110532,27822]],[[112219,27394]]]}},{type:"Feature",id:"5224",properties:{name:"毕节地区",cp:[105.1611,27.0648],childNum:8},geometry:{type:"Polygon",coordinates:["@@UkVƒ@k‚W@Xn@@K„KVIVVIn™°@nWVzšl@V„_VaVK@kKWaXklaX@lW@bÆz@KnL@ašaVJ@UVL@xnLVJ@LXKlbša„¥l@nUWk„wƒ¥U@VaXa@amLkUƒKmƒ¯kƒmkIUaƒKUIWƒkKm@anw@mlwXIƒmƒUk¯@a@amUƒ`kkKWVkxmUUak_mJmw@w„mXUW¯X›_@WnI@aVwkWWýŃU@WLkU™aUbVV@lUVVnm@kUmV¯™kK™LƒwmVUUaWV™aaWw¯wƒÈ@VULUVUUƒK@nWJkI™l@Umxnbm@kbUJƒa¯bUbVxmLUV™aU@VUUWxkVVV@bUV@XWbnlUbƒbUJlbUV¯b@z„`WbXnmbƒaƒwUwVWUƒbUxmbU@Uam™@Vƒk™VaƒwVaUƒWI@mUKóz@lUlÅ@WIƒb@xXxml@XklULWKUmwUa¯KUXWJkaULmKkLWbkKUVƒImƒƒWa@kUaULƒW¯LƒK¯@kbƒL@b™x@J@bmnnlUšlzU`U@@Uƒb@„m‚n¦°bU„Vx@bkVm¼mx@mk™mVV@bkxVn„aVV@bU@mL@b²`lIVV@lXLlš„bVxn@@bl@XllIVšnbVšn°°wlbXw@mVa°lVnU@mš™VLVbn@@b„@@WVnUV@Xlxn`VznJVb@L@bV`V@šUnwšU„@WUXKV@UUlmUUlaXalLšm„bšIVbnJVIlVVaUUnWVXn‚VL‚k@ƒnWnblnlb²x„xVKVXlVXLVW„LlUVJna@wVL„¼@JVX@`@nnx@nWJU@Vx@XXKšŽUblxUš°„LVKVVlL@KnbVUnJ„IlUšƒnKl£VW„x„IlJ@nšVÞUVVnb‚VX@V_°lnK","@@@UmWUwkU@Um@@VkL@V@„„‚V„VkV@nbVa@ƒ"],encodeOffsets:[[108552,28412],[107213,27445]]}},{type:"Feature",id:"5227",properties:{name:"黔南布依族苗族自治州",cp:[107.2485,25.8398],childNum:12},geometry:{type:"Polygon",coordinates:["@@‚V@IöalK@UV@@KUaVIVVœLlaVbVWnX@‚@LnUlxl@naVLXVVaVU„J@lUUanWWI„@VlV@Xbƒb@V„n@VmVVbk@kU@V›V@X„J@zn`ULW@kK@_WVUK@LUb@Jlxn@nnWlU@@b„x@XVVU@UbVb‚@n`VI@VVLUlUIUV@KmL@VV@XIV@@lVLVmXV„@WLXLW@U`šnkb@Vl@UL@VVV„L„llX@`lIXb„J˜IXW„L‚aVL@ŽXXW‚Ģ™b@bmK@L@°@Vnxmxšn„K@xVn@VkL@V™Lƒakbl`VnnxVnUlššV@@VVXV`@šœk°JV_UalK@U@aUU@m„IlVnK‚V@U@wnaƒw@akU@ƒl@nwl@XLmV@xnƒl@VXUb@V@JlL„UšJUI@UlWUƒnLVUUaVwV@XKWkXJm_@amKnmmLwlƒUIlmUwkKƒ™nwlI@aUaVKšL@bVJ„kVUU@@K„K@a@I™ƒ@ama@UUaV»XIVa@alU@WUU¯IWVUbkVUKWLUwUJ@zmWm@@amVUaUIU`VbULmU@KU@@UmJ@kÅb@akUVylLXUmU@aƒU@KX@Wan@Vƒ°@Vw„b@bX@˜J@L„K@@U@mX@@n°KVUnW@Ula@a@_šx@WšnšK@IUa@wWm@aUUU™VVVIXmlI@yšwXbVxV@@ašInmVI@WVL@k@VšV„V‚aœIlbVK@VVLXa@aVwn@lxVI@m@UUaVKUkVUkaƒ@UymUV—VUmmU„mmkXaWK@ƒÈnVw@mVU@w„KlnXW@V@naV™VKUk@KVIUWƒ@mk@KXU@Um@@lVƒk@UVJna@UWaƒL@a@ƒXa@kmmVUUk@mkkƒamJ—ImJUUmIm±aUUkambkamVUU@VlbUbVVƒxX„WVUU@VUakU@UmUV‚U@mnUVVnUbVJ@b—UW¥kLVamVkUaWJU_UVWKk@@nl„UVVJUXm@Vm@UnVlmbnmJUbULU@@UUKWVIWxnJVb@xUL@bUJWIkxƒbkb@xVJƒbmU@kW±LkKUkVa@a¯am¥ULkalÑlKXUWƒXƒaVakImVƒ@ka@UUƒJ¯aƒX™mmb—KWU@wUUƒaUa™KmU@UXlWb—¼WLUKUb°„UlVbkbVL@VƒšƒJ@nVlUbUXmJ@VX@lbUbU@@bWb@VnLVJ@bVVUz„ŽVL@lnL@b™VVVULmKUk™Jkbm@ƒxVb@V—kƒKVnnV@b@ŽWXU‚„nV„l‚VVXVJUXlVXbWV@VU@Ubk@@KWbUUmL@JnXV°XJ@_‚`UbkXVVlÆkbƒ@VLXVV@‚V@k„KXX@`V@@n"],encodeOffsets:[[108912,26905]]}},{type:"Feature",id:"5222",properties:{name:"铜仁地区",cp:[108.6218,28.0096],childNum:10},geometry:{type:"Polygon",coordinates:["@@°a@aÈbVUlU@aVKnVV„VUlyX¹lWVa@U™VƒnUVU@m™@mUl@„mÞw„@‚xnIVbna@KVI‚J@kwV¥ƒUXÇVkVW@kkKWU@aXUWmnIVa°VXbmL@VVbnVVVUb™VbšJVbVKXkVKVanU@aWnWUWa@U™nk@mVIVK@wXxlLXbVJVlKœbl@VI@mšaXalVV„VbX@@ašalnkx@b@V‚b@Vnx@bVVUXn¤WXn@Vl@Vlzn@š`@I@KUU@ƒV£namVkXa@aVK‚nnU@anVlKƒa@UUU@amk@»kƒU¯@aš„VWnkWmkImU@akaVm@»VUV@UKnkW¯XWlkUKnIWaš@nmlIXmWUnwUwWm@wULmaUJkIUaƒaWa—klwkwmJmU@bkJ@XUJ¯W@XbWbUKUkWJUUVKnn@UmmXUWa@mU@@UI@WmXVykwm@kaULWwU@¯ƒlKUUVU@mU@UkmaUbmV@b—š‚xVnVUJVnƒ„@Jn@@bl@@knJVblInV°@nx@„mbU@UWUbm@ULVVVb@LkJmXkm™VWIUJUXUKVwƒV™UƒŽkLkUƒ@W`Um™kVmIUƒ@kƒ@@a¯lÝ¥kmJUƒn™KƒÑmbUb@Wb™ak@mWU@UbƒUVVkLlbUVƒkXaWK@LkxÇmk@@X@J@Vƒ@@X@VUV@V„IWln@mbXVWXkKWbnxVUnV„ƘInl@XUxVl„¼UV@b@b@xlLkV@VmzmV@b@VUVVLXVVbVLXKmVVLU‚@nnVWXXJ@V›¦UK@LUmkIWbk@@lUImJnšVÒVUnVVbVIVĖUxV‚@bnUVL@WV@@X@V„KlXXaV@@bƒlVxXVVIV@@WkI„UVKUkVmlnnŽƒbllU„VbXVWbblVkb°ŽVInVVV@bšnVx@l@bnVVnUŽUam„UL@bƒVVÆUbUXU‚ƒn@šVVUb"],encodeOffsets:[[110667,29785]]}},{type:"Feature",id:"5223",properties:{name:"黔西南布依族苗族自治州",cp:[105.5347,25.3949],childNum:8},geometry:{type:"Polygon",coordinates:["@@VL@Vl@@IXW@kVUVbnW@XlKVVnU„VlL@b„aVbƒb@xX‚°ÔUxV@kbm@VxkxWJœ„V¦ƒŽ@ÈnšVKšxWXJmV@n„Ò@xVbn@@blLk`VX@bššla²JVUlnn@U±lw@wnw@mlwVIX@@m@klKnk‚a„KnwmmXkƍVm„Uš¥l@nb°n@„aVwVmVIVnI@a„¯@mšU°ƒl@@VnI@JV@UV@b@IUbVJmXöºƒzllUbVa@aXUl@„U@llLnKVaUa@UmK@UšwV„bnKV@VwVK@UXƒV@Vbn@‚w@U„WnX‚@„a@m„I„™@UUKlaUaVk¯ƒVaVLXK˜»XaWk¯mƒkğwmW@mIƒVkwƒJUIšÇVwU™UkVKkƒm@UkmU@WÅwm£Vƒ„m¤¯IkJWa™_™lUbmJzÝJk„ƒUÇVU„ƒ‚@bU„Ýn™m¯LUb@`mL@VkL@VƒUmmk@UU±Umka@kUƒ@ķymUkk@mmkÝmUaUakImV@V@VÅLƒ¦ƒJUXmJXšWb@n°Æœx‚¼nV@LlbUŽUbmL¯@ÞbV¤nbVx@bUVlblIœ™@KVVUnVJUn@VlLUlmLUUUxmK@I@@VW@@bU@UJmUkLVVUl@b@V"],encodeOffsets:[[107157,25965]]}},{type:"Feature",id:"5202",properties:{name:"六盘水市",cp:[104.7546,26.0925],childNum:5},geometry:{type:"MultiPolygon",coordinates:[["@@ôyVL@nXJV„Ub„x‚bUŽlšU„@ŽšnŽVbV@naVw„a‚VUXVx„x„bnaWmXaƒ_@y°aVUkaVI„aVamkXa@WVU@aUUlUXwVV@UVšbVUnKUwVa°a„bVIlan@manw@VšklJXI@m„LVVVUVK@U„ǃk@KUa@UkaVU@UVWV_XWVXVWlLXKlLXaÆKšwVL@akKm@Uwƒ@@XUVk@VUI@wWK@aUV™I@UkK@ƒmL™Wƒ@kImJƒUÅVmkXUW@UJkx@nmx@xkxV²m@kmUV±Ikb™™@aUWl_kK@am@Ua@wƒÑ@mnUWIX™wULm™@DŽU¥›ƒXIlwUwn@laU@Vw¯ÓW@w„aUaƒb@akKƒUmVUUkL@WmXUaUV@lWX@Jk@@UUKULmLUJmzkKmVX°VšUnWKUL™ƒƒL@mU@UnVJ@b@„UV@Xƒ`m_@l@@bmbXJmnnš@°˜wnn@ŽVLX@V‚@nVl@nk@@b‚l@nn°WlXzW`XXVKnUlxVbUb@‚V„Xb@Ž‚VxÈbVlnbmn@ŽkVUL@„ƒŽmLUVVL"],["@@@ƒ@UmWUwkU@Um@@VkL@V@„„‚@„V@VkV@nbVa"]],encodeOffsets:[[[107089,27181]],[[107213,27479]]]}},{type:"Feature",id:"5204",properties:{name:"安顺市",cp:[105.9082,25.9882],childNum:6},geometry:{type:"Polygon",coordinates:["@@lL@bUK™xÅLWbkKWLkKUXUWWXU`UX@VUVlb@VVb@L„l°xXx‚bšbXUVb‚VnU„xšKlL°šnUlVn@UmVU@kUUVašblVXKV@ƄXþlXUxnU@mVK@_@ml@UU„@šblU@KnLVyUw„@@UmkšWVw@UVK@VXzVK@n„VVUUW@kVJnlaš@nKW™kaWL@U—™õb@JU@mU@@_WWƒL@lUU@WUUK„@lakÅUUlWVa_@`WIU¯mW@InKVVXa@Ll@VaV@@UXUWakUVWUIUW‚UkUƒƒmVXW@@amUUm„L˜l@UUa„wn@lašIVlnLVKUUšU@amK@kUKƒVyUU@aUImK@UXa@aV@VakaW@@UnIVWVaUkƒb@mWƒX@Vxm@UaU@W„@VULUxU@mLƒaUŽ™x@VnL@VVbUbmLkK@kƒVk@WV@bUbVakk„yõ¹nWUIVa@J@aVUU@@ImJ@Uk@¯„™V@nƒ°@bmJUUJUnUxƒbm@¯Žmak@™¦ƒVUnŎWlnnmxƒLbmlkL@l@nWVnlÆU„VnIlJ„@šXnK@„lL@VšJVU@bXL@xVJUl@VU@W„@Vxn@"],encodeOffsets:[[108237,26792]]}},{type:"Feature",id:"5201",properties:{name:"贵阳市",cp:[106.6992,26.7682],childNum:5},geometry:{type:"Polygon",coordinates:["@@nŽlLX„VJ„LVblJ„n°ln„„LlVnKlU@nUUa@WlX@l„n@‚Vb„@la@a„„šlJ°¦„Kšwn@°x„LVkUmmwUmk_la„bšK@UlK@UUm@wƒL™mnwmw@U@¯@KnL@aša‚ġXWW@UKbƒKWX—JƒIWakJ@_kWƒkƒKUU@UVKk@@Ula™mV_X@WKXKƒ@WUUnUK@kU@WJU@@UnK@LVUVJVkUK@UUJm_@UaVaV@UU@Wƒw@aV@Xkmmm@kw@IVa@KVLXU@`lLX@VKm_@yƒI@WœU@UlVl@UanU@Uƒm@U„aWaU@Ukƒ@XJmXVbkV@ŽƒIUVUbWUUKmbk@kwmV@K@mWUXUakb›KUUUJVb@LU@@VkL˜š@VXKlbXšmL™@kbm‚UI@lVXUVƒU@mULWy@UUL@VUx™Xnl@Vƒ@VxUzmK@LkV™aƒ@VVk@@n@`UL@nmV@bmJ@Xœ`WX°WVƒn@xnxnIl`VbnVlwXUlLl‚„_nV@b@bl°„V„nWJkx@nmx@b"],encodeOffsets:[[108945,27760]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hai_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"469003",properties:{name:"儋州市",cp:[109.3291,19.5653],childNum:1},geometry:{type:"Polygon",coordinates:["@@஼jpnr’``ŽpRVHʘ̤žZt^JÖA˜[†CâlTébQhRPOhMBcRSQiROE[FYdGNOEIH]MgEAMLLIAG_WMCSL@ED]PCLYC[ZIHgjSxJTMbHNEFCMEE_HSDFHSLECRNSFDRICHNADGPI\\RZGIJTIAHLDQOHG`GTNCOIC@eIGDWHIS[kiE[FMbECZS@KKS[FDWsCeRuU_DUQNOE[LKGUBM¨EDQP@HWHGDImXƒCog_~‹I_fGDG|QDUWKBC\\ore|}[KLsISBHVXHCN`lNdQLOnFJSXcUEJMCKSHOUMDIm_‹DI`kNDIGEYFM\\YPEEIPMSGLIKOVAU_EBGQ@CIk`WGGDUM_XcIOLCJphHT_NCISG_R@V]\\OjSGAQSAKF]@q^mGFKSW^cQUC[]T}SGD@^_ˆaRUTO@OHATŸ”"],encodeOffsets:[[111506,20018]]}},{type:"Feature",id:"469005",properties:{name:"文昌市",cp:[110.8905,19.7823],childNum:1},geometry:{type:"Polygon",coordinates:["@@€hIJ¤Ī¯LQDaFßL[VQìw€G‚F~Z^Ab[€¹ZYöpFº lN®D´INQQk]U‘[GSU©S_­c‹}aoSiA£cŁ¡©EiQeU­qWoESKSSOmwŸćõWkàmJMAAMMCWHGoM]gA[FGZLZCTURFNBncVOXCdGB@TSbk\\gDOKMNKWQHIvXDJ\\VDTXPERHJMFNj@OwX@LOTGzL^GHN^@RPHPE^KTDhhtBjZL[Pg@MNGLEdHV[HbRb@JHEV_NKLBRTPZhERHJcH^HDRlZJOPGdDJPOpXTETaV[GOZXTARQTRLBLWDa^QAF`ENUPBP…\\Eji`yºEvåà"],encodeOffsets:[[113115,20665]]}},{type:"Feature",id:"469033",properties:{name:"乐东黎族自治县",cp:[109.0283,18.6301],childNum:1},geometry:{type:"Polygon",coordinates:["@@ªVLP`@PEdNRAHOPEAKHEVL`GZBJfvdTAXNNTZJFPrHHNpKTD\\ILHbEVd^J‚OHLh@NNBnHP`\\xH@NBRLJTlŽNv_^CTLd@bNDVFbxdFV€UPBTKOGEOUO@OEBXQP[H_EI\\EbeYa@UO_J‹MEJ_IEDKJUGMDcNUd_FMTEJSGoZ]EIYGO[YW‘gEQ]a@WHEDQKUSDUGAbYBUpSCYNiWqOSQEoF[UcQISWWNMSDe_cLQ_UBiKQOOASQAWgS­ā]ZaŽSPÝZ]XMXSŒ[^oVËNgNKlE RôEø"],encodeOffsets:[[111263,19164]]}},{type:"Feature",id:"4602",properties:{name:"三亚市",cp:[109.3716,18.3698],childNum:1},geometry:{type:"Polygon",coordinates:["@@®ĂhTBXTRPBRPjLVAR`dKf`TC‚NXMTXRJVdE\\FpTRrPjXZMTDVoZABaVHTCLVCRGF@X^bFR’hZXP\\ZHHMA[^wBWXJlW¤EJ[bCTOF‹WWMm@ILMGWQ@DQ^QNWFSHEbF`OXNbO„VNKTEPDTLTCCVTREfvfEHNbRAENH^RJXCFHNFRpVGHWISDOTMVCZeGamaLoLÛD¹¹ėgsia{OųE—Tt‰lɂwr}jŸR±E{L}j]HąKÃT[P"],encodeOffsets:[[111547,18737]]}},{type:"Feature",id:"469036",properties:{name:"琼中黎族苗族自治县",cp:[109.8413,19.0736],childNum:1},geometry:{type:"Polygon",coordinates:["@@bRFnHNbHŒgN@NPEnbXP@bND`NT\\@\\QZb@`@J]V@XhžDpW„nCJGHGXO@CR§FANHVKLF\\MPVR`CvVfQtDPKpGHG@S`WJP~^dSTHWX\\RHTFACQTIAUPOU@MG__IaYSFQK‘NSbORHXCZeTFJg„B`YBMNMFi~IVDV[tGJWXGDQRGF]ˆJrALgESLSAYDGIaFeXQLS\\MKSLSQYJY}eKO[EHiGSaK[Yw[bmdURgEK^_kcSGEOHKIAS]aFSU@Y]IWFUTYlkP_CUOUEkmYbSQK@EMWUuAU\\M@EpK^_ZMDQ^OXwC_ZODBrERURGVVZ\\DTXcFWNIAWJWAYUUFYEWLQQaCIZeDM`cLKRGpanJZQd"],encodeOffsets:[[112153,19488]]}},{type:"Feature",id:"469007",properties:{name:"东方市",cp:[108.8498,19.0414],childNum:1},geometry:{type:"Polygon",coordinates:["@@ºŸx‹JYZQ”IŠYXLl@dR\\WZEn]bA\\S~F`KXaDeTiNO^EEKWEDQXITBXaWaDQMUJOIaTWf@NJV@dSxGZ‰Fu_@WMKAUˆ}AQ@MwG_[GOAmMMg@GKP]IUcaFKG[JSCoLGMqGEOYIMSWMSBucIeYA_HUKGFBLOFGPQBcMOF_@KO©UAtERadwZQ\\@ÊJÒgòUĪRlR°KĮVŽLJ"],encodeOffsets:[[111208,19833]]}},{type:"Feature",id:"4601",properties:{name:"海口市",cp:[110.3893,19.8516],childNum:1},geometry:{type:"Polygon",coordinates:["@@ńZƂt̬æßFuz¹j_Fi†[AOVOFME_RBb]XCAKQKRSBQWSPY\\HbUFSWSPoIOcCOHIPkYCQ]GdGGIFQYgSOAQLK`MFUIGa@aQ\\GGUFcHKNMh@\\OYKAigsCgLSF]GOQO]@GM]HyKSHKPW@Pxi@EMINYREXWRQ@MQcFGWIAwXGRH\\yDI`KJIdOCGRNPNtd\\UTMbQYi@]JeYOWaL[EcICMUJqWGDNZEXGJWFEXNbZRELFV]XQbAZFrYVUBCLNFCHmJaMIDDHXHEhQNXZ_TARFHVB@DTQIRR@YHAJVnAbKFUEMLd\\c^ÍÞ"],encodeOffsets:[[112711,20572]]}},{type:"Feature",id:"469006",properties:{name:"万宁市",cp:[110.3137,18.8388],childNum:1},geometry:{type:"Polygon",coordinates:["@@^J@ZTVbET^JBGLFPTHld]`FLQhcVanx\\\\ZbLHTGj\\FLP~fIZRZPVTQFSVAFJE^NDLEE[~LjsxVTG\\NZZNGlLRRGLJTV@hPZANN^@T\\NEPPbDZXO`d^HSvcJDIV\\XZAJUFCLNP@PQ¤@[ïKLÑIÏ]ÇE±I{uƒ­YśUćFcYUmsVeBSVgB[RO@aYYPO^]@UVaNeDShMLG\\EfFVE\\F`"],encodeOffsets:[[112657,19182]]}},{type:"Feature",id:"469027",properties:{name:"澄迈县",cp:[109.9937,19.7314],childNum:1},geometry:{type:"Polygon",coordinates:["@@T\\GJCXJH@fJDDPNCNJENN^NLHBNSx@DDYbBLLDRbjZTj@`XXTlG^Xr@PJLW\\WLTlWR@HDJTD@X_PO@STMDNTMVV@NLDM`M\\XM\\JNBH[PYZ‡úYzŸ`Ċ\\ÎÝd]c[NKVFLEBaUmBIZGQ@JQSR@CUAEGBQ`SWYRMFgWGCGJCbNnIDGMEDKVAZUEqBYRa^WEUFKYQMaFWXEHIFWMYHCrXVIIiaK@aMCUYNSIISTwXALKH@XWXIEIJQCG[IEQDE_XSBaa[AIPW@]RS[FWS[CD]PEBYNGFSaSyJG]@ugEUDQlGHiBKHUIoNSKqHFaPMICK]UUHIPDJMuCA[SCPIDIOILGAEmU[POPBVSJDREBGS[QXWSGcT}]IO_X@TGHoHOLCX\\ELT@LYTD‚aFENF\\lj"],encodeOffsets:[[112385,19987]]}},{type:"Feature",id:"469030",properties:{name:"白沙黎族自治县",cp:[109.3703,19.211],childNum:1},geometry:{type:"Polygon",coordinates:["@@D\\RV]dTXELnHr]^@LETBBRTHPi^[@U`QTHDJ`MGSogDIPKdJ`WVNHCXHl_DJR@AH`FBVPUJLHKNTJOFFZON[ZEHFCJlMJ_ŒCn`CJVNGPLTNDFIdVTWEIPmRKMc_kDMWGGUTAtJLK~\\f{pqD[LAVXRCH{HC`eŒJ`}@W^U@I@_Ya[R[@MSC_aMO@aWFmMOM@‹haGGMEmaQ[@MESHaIQJQ……MckBIw[AOSKKAMPSDSLOAV_@@`KJRbKRDfMdHZERgAWVsDMTUHqOUr@VQXTT@Tƒfg‚L^NH\\@heTCZaESNObHPƒHeZF\\X^ElM^F^"],encodeOffsets:[[111665,19890]]}},{type:"Feature",id:"469002",properties:{name:"琼海市",cp:[110.4208,19.224],childNum:1},geometry:{type:"Polygon",coordinates:["@@TP\\pATHTGlZDJGAQjE\\Rb@jVBDCN`JZ[NCNHNXbULPrP\\KNbMTLjJJRFP`“pNLZz^FLRHjVPZ@hxVKbHBHMNNJFRlLzGPnNHhIrHHADcPWdUAmEMVQDSKYHY\\EhBN^HpXGNDBNNBnIß‹Å_g{³So]ã@ORO@KMEDIVYB[WJUICudGTc]P_YWaCOOMFS[]@MMYBgOU@ISHKQQkKMHYY[MSHwUit}KF\\KFMCF]EIUBETSROUKTLT[NKTWREfJbCHBZKTFTKh"],encodeOffsets:[[112763,19595]]}},{type:"Feature",id:"469031",properties:{name:"昌江黎族自治县",cp:[109.0407,19.2137],childNum:1},geometry:{type:"Polygon",coordinates:["@@`ZĤd–`òüˆ˜ “BSPGP@VSbQ`‡@]HC~T^SE]N]FkW]E[fY„GGOPaTMbFDYfS@g[MGK]h„e@SSSRW@UVqrPVGNStCXUhBFQGYNcCeLQQaLI@_`@EUwcEaCUaMc@SK]Du`MSkKI‡~BVNL@X`‚EvYŠwHcTU@MIe@SXJbIPNVCRXbWbSAWJCRXFFL]FMPSjCfWb_L}E[TaBm^YF[XcQk@WK‰Z“JYRIZwŒ¹ "],encodeOffsets:[[111208,19833]]}},{type:"Feature",id:"469028",properties:{name:"临高县",cp:[109.6957,19.8063],childNum:1},geometry:{type:"Polygon",coordinates:["@@jD`hNd\\^dZädĒH´Op@ˆùZY\\OAGIMN[[W_NCNMKU@NUMSNCTSP@`O@WSCCI@GXQSkXKX[IK@OWqH]SkWW@_SiiYQaKCAKZaCCw@MTGAMKM]FMMIMDSM_HGHRPKCBGSJJIYH[QOJCHMBDGQJECMTDQKFGTCEGTF`NFEDMFaGSNwIiTGhYJD\\KZODC^@FTKND`XBHKJNKFBNhG^FJMPcHEZF\\QPRjQTAdgNOPgQaRSê"],encodeOffsets:[[112122,20431]]}},{type:"Feature",id:"469034",properties:{name:"陵水黎族自治县",cp:[109.9924,18.5415],childNum:1},geometry:{type:"Polygon",coordinates:["@@R]NC`YL]FoN@V[vBXVFNL@TRZalnVFVP`DlOZkVSXEE_F[EUFeH[NKTgfCbMVU^@P]ZObZP@\\QhATUfAtUasñiāEoI]eYǯ@aKmaeƒWuCºKÜKpnbHbYfUDSNCPJTRAHJTDJSfDNLHXC``VBNGTYCQDIXMDSP@xLNEFRNXBIpVNLXah@RgF@`qOML@LJNSPLbaHAh@Jdj"],encodeOffsets:[[112409,19261]]}},{type:"Feature",id:"469026",properties:{name:"屯昌县",cp:[110.0377,19.362],childNum:1},geometry:{type:"Polygon",coordinates:["@@\\OnVBFKHPJCJOJTDB\\vDINOCGJVVL^JDONEbrGTLpMVJLGjAHGRkVChF@vH^zIbTETMHAZOFC^\\DXT\\EffAP\\PdAV@UIYfS|S@YPICMeM@sC[_A]VQEwyHSMuNcAUlQJMVGMS@mVBZPFO\\CSFQK[LqDMACiUa@[QiFBRIHYCHkGSBS[oSOqB‡IE^QHCRWHIXsHU\\UC}JEjMNAN_ZƒAIhSEYfWDQGaPMTL’ERZTJb``NHV@"],encodeOffsets:[[112513,19852]]}},{type:"Feature",id:"469025",properties:{name:"定安县",cp:[110.3384,19.4698],childNum:1},geometry:{type:"Polygon",coordinates:["@@JjDNdJ\\FbKPXfZ^Ij@RZNaVSc[MsMOHQPDJcLIJ_zCG[HQxWJBHXdENRR@XQFWZQQGOFSWUCI[WCJuRGLXNMPLhCl[Ta@SqGgJMGOmyHkKEQMINMAGaGULgwY@UOGiKQ]EYyMK”oO_QEIIKiNSMa[LqOKOaVMWMGMDY\\_IKrL\\ERT[DEPYOUA@nNTUHINkRBVMdNvGTxzRF^U`BD\\@tfNDNOJ@Z{TeTJZ@VU€cB[OBOeeQT@^OXBJb\\AbWTF`RCJFH\\RDJIJFXW@WLGBKxWTSJJMTVZND@bbL"],encodeOffsets:[[112903,20139]]}},{type:"Feature",id:"469035",properties:{name:"保亭黎族苗族自治县",cp:[109.6284,18.6108],childNum:1},geometry:{type:"Polygon",coordinates:["@@FJp@fxpQ\\ApN\\GNPNBM`HLMrXLXj\\PEHnI@WUCEM\\GTc\\GZYHTPBHRCPTd€H\\K\\@HXi–BJILJJAVNTOZJNtFPC`YxDPWci@IBgbGKaTOIM@KNKrP@_hE@QbgKWUMJoWAQMFEKM@wTONCJWRCZDHSAM_UD_GWMKeCITSCGIQBGXUHQoMEEGWDQIG]FMQBMaFGueFeSQDUSDSKOCSFMLƒUaPWM_PaEGFETMX]RCRR@HXKN@JNnXXEŒSPaDI\\£FkXWIAX]xB\\GN"],encodeOffsets:[[112031,19071]]}},{type:"Feature",id:"469001",properties:{name:"五指山市",cp:[109.5282,18.8299],childNum:1},geometry:{type:"Polygon",coordinates:["@@TCNOLBTLBPx\\AJdl†NR†RIbJTGNF\\@RcIYbmHoLQdKN_fCJYbDRRXKZFVEZVXBXIJBXMdESW[CUYHUVQFQAqsEIMPYMSBUIIJKAIj•GW[@[LGScDOGQOAGSYZ[HSd[HFNVD@XmJFG[OWiWKNqGKN_MAMO[HoM[BoRewo@Y^HpITSFENc`MVCdHNIVCLJFI`NFIŒP`@VZbaf[FFJG`O\\WRFA@PVPFPPH"],encodeOffsets:[[111973,19401]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hei_long_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2311",properties:{name:"黑河市",cp:[127.1448,49.2957],childNum:6},geometry:{type:"Polygon",coordinates:["@@VÈÞ@Žkx˜nXްVÈa°V@kôw„b‚š„JVškXlVUx„„@ŽlL@xkVV°ƒ„VbxlVUnVxk@ƒ„ƒKkŽVb„Il„@°kVl„@„™lÆnkll@@V„VXƒŽš@V„²bUlƒVlV„U„VÇn@nkJšŽlkVbœ@›x²V@n°VUnlKU„n`@n°bWLnVUblVUVVbknV`°kkŽl@@V°@nz„J@XšxlWXb°n@bƒĠlbXb™bVbƒJ@Všb„a@„„@lbUbšVmnœ@lšVmnIW‚œ@WbÞ@„n@x°@š„ĢaƐéϚnœ„‚lȝĠŻÈwm@ôçU™mm£Xy°UV™›@wÈ£Ǫ¯kõÝçUњ™Uķ‚ƒĢkVфÆšÞU°nŎ¥ČUĊx°m°¦żVƐœx°ƒÇ£@y„UônރÆ@Èĉ°Kô¦šW„kWU—bÇ»@™ÈĕWÇÈ£ŤU@›n£ÆUUKVamanwŃmÝJ¯k@JƒIkaVaUUÇbkaÆÑkWmÝUۙ™Ý@™ƒwnU±ƒ@kkV¯KUkƒJƒ¼U¦ƒšÅ@ówķaķůV¥Uaó@Åwmƒƒ_kVƒwĉ‚ĉmmn_V»™a@U™ƒVwķóƒ‚U¦LǫéóXÇmōLǓÇķxÝkƒƒĉ™kmakbUͰ@W¼„@bƒšÈÆ@Ė™L„l@„°J¯„mkl¯L݃±L—amJ@¼ƒ„™VƧUó„™UX˜ċb¯ńVbkÆÝI@llx„k°V²šV@Uxގ˜L@b„@b™`ƒšÇzkókݤ@ğ¯Wƒ™LĉǙLmmnċVkbUaƒL@ޝ„‚bU°ğL݂Ý@"],encodeOffsets:[[127744,50102]]}},{type:"Feature",id:"2327",properties:{name:"大兴安岭地区",cp:[124.1016,52.2345],childNum:3},geometry:{type:"Polygon",coordinates:["@@k›ƒϙmƏêġb™ƒ¯@@wƒmÝ@XV@IlŽl@bUxl¯VlV™bV@ULVlUV™_kx™VVV™ÈÝJ@„¯šU„™lm¯x@xóÒĉ¼m„¯Wƒxţ@Uz¯ƒWwnUwťƒ@knƒWƒ£óVƒUUwğyó¦WI—Vmm™I@±kwÇ@@bƒ@ĉ¼ó@¯wó@¯aó¼›KՃaUwmWUwÅI@aƒKó@Ua™LƒaƒVÅwō¼UUÝl±I—¤VxÇx@zkJmnn‚mbnz™xlŽƒl¯ČkJl™°@„kb„Žmx@x™@kêmVnŽWxôXšxU°„bWLóJnÇWĵ„V¦™ŽƒUUb™b™ÆġK™šk¯™VU±aXmċÑUwĉKġ„k„™ŽVxk„ÇKkbƒIƒ‚ÛXWl¯bƒŽ™X¯K™bĊš„„ÞVƚnŽĸ²lxUްn°òÈb‚¦—xVbƒŽƒ@¯„Vx@¯VķÞČlĊ°KĸŽȘI°¤ČIôŽò»ƨnȰKǬ¦ôWŎÈƨwlƒnKVXmbX`lbšwkVW‚XXŽ„L°a„ƾaĊ£nƒ°@°¥ŎzÞ¥‚»œalwôkƒJ„a@ĶK„£„bU°ĊxźVÈUĠ¥ƨ™VI@XU°x°Ln¥šw°UmwXm݁V¥Ģް@nU@mÆ£š¯lKœšÜw@aÅU‚¥UaÝIkmV²‚nn@Ķ»@Uk¥VKÞ@ÞÛ@ƒkVmĢa@_ƒJómƒǖ¯Æw—óÇa@alƒUwšwĢřšk@wÆWXUWXƒWa™m@_ƒ»ÇéXaĸwVa@ÝKkUWkX‚kšKXxƒn@lĊV@¯m¯nřÆwš¥"],encodeOffsets:[[130084,52206]]}},{type:"Feature",id:"2301",properties:{name:"哈尔滨市",cp:[127.9688,45.368],childNum:11},geometry:{type:"Polygon",coordinates:["@@°`„_šJlUšŽ@„„@V¦°JUšŽnLôlnŤ@@šÈaUÒVbkbl¤ƒzk°ÇVÛô°IlVUVôU„xÆU„Ž@bźĀ„º@¦šb@l²‚UVlœ@°ÒĠxšnXxÆVô¼Þ@Üx²KލlƒVѰUȰôlwô@²ƒĸ°„lanV@„šVŎUll@bÈnÜm„wĢ@la@ÝÞb°UXb˜lŎ²ÆškšV‚I@ŽnJnĠްknƒÜbĢwna@a˜kÞKƒĀ„a‚™œ‚‚IVbU¥wĠwkô˜xnLƒċVçkaUƒ±IUmnġW„°WôĉšalƒÞÅĵ¯@W¹XÝaƒb¯a±X¯ºLƒaVƒmkLóƒƒbkaƒVUKVkkKV_@aÝykk±L@ƒÅU@yV_™aU¥ówÇx™@UkVƒn@lƒkÅlwšWVwUkĉmkklW@šašbVwnWWƒ—wWL™™@Ušƒ™UƒÇLšÇmƒ„@wƒJĉƒL¥@ƒÝ_@a¯y„UWw¯ƒ¯Uġx¯aÝXVmaU£ó±›¯nwƒa¯óÅVƒXman™„Uƒ›lUXkWa@mkI„›ğaƒm™IklÇU™„kĊƒƒzkKƒš„lU„ōĬlš™„@ŽnX°@llUxʲmKĉVWwk@UbUK@bmVmI—ƒVmwaWxXlWȁšmºšÞÆbUxV@ĵńWÆĉLkWUbƒaWzkbĉ`U„±LklōwUVÝ£™UW`Uwk@mk¯VkaõVX@WbL™K@XƧºWzxƒK@lmX@bkVVÆk¼Vbk@Vn"],encodeOffsets:[[128712,46604]]}},{type:"Feature",id:"2302",properties:{name:"齐齐哈尔市",cp:[124.541,47.5818],childNum:11},geometry:{type:"Polygon",coordinates:["@@Þ@ށĠKV¯a°ƒ@„KVblaČU‚mnnšKĊȚKX„°ŽĠ@Þ£ôllÈy„™š_@a‚ƒ@a—KݍVwU@±™¯Uƒlkw@kÞJlÅUa°ŃČaW—šVôƒƨVšU„ƒ@»nI˜b²Kބ°Klkn°ƒ¯I@ƒƒkšK@ĕÇń™@aƒX»¯@VĵlaÿVamI@aÅÝउýƒĊȗJƒôȁÅkmƑۃ@kxġ@@l™aVk¯»ƒīŹaƒkƒ¥Å¯™JUaWU@@w™aƒ»„KUkÆkUm„UmwÛ±±UUbUŽUXƒwWwÆÝk™lkUanaWwnKl™kal¯ka™ƽa›kÅx™a¯@™amb¯V™lÇwÛĀ™V@x™šmêVƜVV‚aôV„wÈx@šˌx„¦VÞ¯VšlmX@‚ƒL@¯Ua¯LmV@„„°X„ċK™V™ƒ@UƒÈ@‚¥@w—ƒġIU™km¥Źwƒ¦¯lmn@°kxVV@¦óam„n¦l@nx™lĉVóšmx™n™ÒĉĀĊ¼„þ„šǔêÞ°ˌĠÞÒ°ĀɲĀƨźˤȤƨĊ°w@£nymwnkUUV¥ôÑVmkÆmUUVa™mVIkmô„lxkXÞþƒbl„ƒl@kV„ƆƒV„xV@š¼VÒ@šŽUŽšnnނJ"],encodeOffsets:[[127744,50102]]}},{type:"Feature",id:"2310",properties:{name:"牡丹江市",cp:[129.7815,44.7089],childNum:7},geometry:{type:"Polygon",coordinates:["@@U`lLUlVL„Ulb„aô„lKnŽU„„b‚K°¹²W°b„aÞb˜knyUlUkamř²L@m°@lšmš²n`ôÅlK„x„ÜKnxV@„l@œƒ›ÅXyW_k@™wm™ŹĕmƒX™»‚ƒÛ™l°ƒôšÈ„»š—ô˜ô_WW@Uœal»šwU@@wšUVƒš@VƒXI@w‚Ģ͑ÞȻ›aU_@mUkly@¯óV»XmWUXUWmnm¥nUUaWLk»Æ²IÇa™wÅaݰ¯nUa±a™ƒ™@¦õÆğ„@„™@Åb›xU܁nÇłlb¯¦„ôó»mƒ—@±ƒUk@Wwƒa¯xU„V°ƒxXbǎŁUV™™ƒK@¹ƒKUaȯ@ōݙXƒal™ƒlÛkalÇUǫÇńÇakbÝƆ¯nlš¯Ž@¼™VUx@x¯W¼™Æ¯šmĖ„Ĭ¯ČƒVk‚ķÅmxœ°ô²V¤‚bUnÞW°bĢw°V°„XxƒV°z@bÞ`@„‚¦„KĊŽ„I@xƒŽn„™ÈÈK‚„šV™„@VššXK˜xX„mXUx™a™b@‚kXllĊnVlUx™XkxlÆk„m@U„Vlš@ÈwôxV¦šbU`@zÆV@„²KllÞz@b"],encodeOffsets:[[132672,46936]]}},{type:"Feature",id:"2312",properties:{name:"绥化市",cp:[126.7163,46.8018],childNum:10},geometry:{type:"Polygon",coordinates:["@@ऊþÆÞ@bnJUb‚ĀnblŽĊš„„ÞlĸwǔÈŎKÈnôWǬê‚KV¥„ĸôUxš„@VšbU¼m`nnĊŽĊ„xlUšmkaVÿšLšwš@°»UmbKmݙUšwUmVknKUUl¯ƒKU™ƒUȃ‚™nK@ĠkX±lX„°„L@¯¥@wV_m›ĵ¯Ww™L¯ƒUkōƒÇVU™l›w—V󁱃¯aƒVka°wVk°mÞ¯Ŧřƙl™²™Ŏk™U@ƒmUkb¯ƒķޱ„ó@kxȯó¯VUÒk„ÝŽ±LÛwÝ@ó»ÅUWw™mğw¯Ñ›@UkV±@k™a@¥ƒ¹Źÿ@aƒÅVƒwóVVUkU¯JÜóÈUl¯„yk£laUaVÑÇb@™ţ@kmómK™V¯IU¥ƒ@@ƒ™kV™Iƒ`@ô™¼„blU„lƒ™bÈb@xÇKkĢɳaÅɆō@ƒŽVƒK@z™@@¥ÆKnÜ@@aۏUw›wnU‚ķ@ƒ_ƒV°Ž@„klVššnULVVÞbVl@°™@nx™n°LŚÆlV„ȃmU²@VmĠLƒx„n¯xkWƒzšJ‚wnLmbXbW°šÆ‚™²™@™Žšx@JVx„L‚Ā²Æ°I¯º‚È@ÒnÈ"],encodeOffsets:[[128352,48421]]}},{type:"Feature",id:"2307",properties:{name:"伊春市",cp:[129.1992,47.9608],childNum:3},geometry:{type:"Polygon",coordinates:["@@ƒKƒ¯kWW²ğl@ŽmLšÇ„„VVš„Lk°VVmLUlVn™xšVnނLnaVޝ¼™@™x™KUĀlb™n„`n„Æxô@VbU¦ĸŰĸbôxÆ@„™V¥„»„IVl°LUŽll@²„mV„x@ššÞܚÞVnŽlXÅÒlbÈaVVUblb„J@I°lÞIn‚Æ„mxnbUbVLÅVm¤@œţVǤXÈÇĖ@šÈ¼˜aXVÜaXbWŽnzŎašř„KôbšUlw@¯naÆKnUU¯Üa@mkkVUĊm„™żÝ‚ǖŽ‚K„™°L²lÆI@ƒ¯¥ĉƛVaÞk@ÝVaĠlnUVwƒœómaƒ@™wĉ@™a™VƒxamX@aƒ@UaÅLƒaVWƒ_nWm£nWm_ÅV¯ƒm@m„󤁚ݦƒ¯ÅalmX£ƒ™VWUŚw™mÇ@@IV™„WUw@ašI@„k@wŎ»Wƒ„ƒ™ÅVaœK›Ika@¥lUkUlwÅwVyÈwWU@a¯U°m—Ç@UçƒaVa¯mV»ÅwÝUlƒUk™V@k„mUk‚X£šw°@@ǃaÝIƒƒam™Ûam„¯lğmmI@J™U™l±ÅōŽ—kWa¯VÝa@Þkbġ@ƒxÛnÇm@akkōVōl±škšÅšťŚÝ°¯nUl¯xlb„U°b²„ô‚˜Uœxšk‚VÈUŎ„Vl°„šKXxͰnœU`@x°¦@"],encodeOffsets:[[131637,48556]]}},{type:"Feature",id:"2308",properties:{name:"佳木斯市",cp:[133.0005,47.5763],childNum:7},geometry:{type:"Polygon",coordinates:["@@nš„b‚„ÞJ„b@ȯ@™xW¤Vlƒn@lšUVlk„ÞVÆxU¼°nUb„bVèÈ@˜ŽnIn‚@šĢmlUw°™żƒ‚VUn@lnL@VôbšwĊ‚lœ„JķĸĢl„wôwƨxVVUƒŦšxšLź™Èš°`nnĠwŎJސĶwôJ„@¤Xn܄ĸlšn°¼È°lŽ„„Uš‚b„xš@„l@ÞÞÈm°„lôwšL°¼ĸ‚°Þ²nĠ@ôwÞ`ŤI„V„ÒĠU„„@„VJĸbƄ²@°ŽĊKšœ„JĶa̐Ȱ@ô¥°nš¤‚bČUš@Vx„mUw@a݁ţƒÇ™ķƒ@ĕķīU¯²@ÆmVÑô¯X¥ċç@™ĉ»U¥ÝţKWVÅkUVÝŎUmǍÝx¯aķxÛUóL¯a±óōb¯™ƒÑŃVÿƒ_Åķ„a@UƒK@wm@Van@UmmLVa—@VImmXUWƒÝUřƒKUwÝUUƒkVƒk@l¯X›‚Å_ƒJ¯k™Jm„ÅLƒa@¥U@¯Vƒz¯@ƒ`@¼šmxƥšŏKÛk@±laÛ@@Xm@™ƒ@xƽ@WŎnšˣĕÅ@@aÅ@@nÝbǏ¯@ƒ_U›kUWƒkb™wÝU@ç„Wlw@anIƒ¯lyœX°m°VšašÛšm@„mVwÞK°ƒšXlaXmm_ƒ@UƒkwÝK@ƒVI™ƒXmV»ƒI@aƒ¯ğW™bġaU_¯JU¯ġŽƒ„ĉ„k„ō`±nÝÆk„™bóĊ¯Xƒ‚ĢX‚mVn²JV„lbUè„ČmK—wlóğx‚xV¦UaJ›šƒbƑÿÝL—l@bmbġx"],encodeOffsets:[[132615,47740]]}},{type:"Feature",id:"2303",properties:{name:"鸡西市",cp:[132.7917,45.7361],childNum:4},geometry:{type:"Polygon",coordinates:["@@‚LšKVVnkšbVšÈb‚²U°VnklVlaÈL@anU°ÜmXV`œnôLƒèšxlŽšLX„˜L²ašVVmÈX@ķ˜lnU„Èl`ȹš@ŤŽ°U@x„KnnV„mlnnUl‚lVnnaŎwlVÞ҄@n¦šLVްlšwVk„Lšaގl„n҄š@xmLÞ¤Wnœ¼‚WÈLVVUxlÈô„„WVaU_VKšKXUÆbn™‚nôK„bÞw°bÆWXamVwœK˜™Uw¯WUk„UlJUwVUa™@@kmyzm›ĉw@kVwškƒW¯ÅKU_Vmƒƒ™xU@aW@@kK@w„a@Kƒ@@kVUƒaky°_Vm™kna¯K@™ƒL™wġk@@IÇóX™ƒwVakmV@mwXUWanƒlĉ@ǙUw™KƒƒóšܛNJۄm°@›w—Å@ƒ±b¯Wƒ¹„WVwŹĕ¯kVmōb¯w@aƒwmV™UUb™V™IkaVwķ™xk¼›b@VXXó`󗙘ƒ¼Çó™¯„kŽÜš„š¼WŽn„źĖnššxl@X`WzœÆ"],encodeOffsets:[[133921,46716]]}},{type:"Feature",id:"2305",properties:{name:"双鸭山市",cp:[133.5938,46.7523],childNum:5},geometry:{type:"Polygon",coordinates:["@@™UƒƒUwó™mÑÞÑUÝÝUkmmŃyV¯ī„¥ƒUÿĉ¯mÇkaWbÅX¯aÝxƒaóLmmšÅaWV™LULV`UbƒXóƒkÇVwUUÇKX›»XmÝ£nK@wƒ™mÑkƒÝ™bƒKUl™x¯kU™Km¥ƒ@ÝÑkUōxmbUmkVkmmnkUƒmmƒL@w¯Vţ™@Ǻk_ƒÇmV—k@ĸVx‚VȰlLkllšUbōwƒnVW¼nlUx¯XmWUnÝ@™xÝUó¼¯J@LVbkJWnkb™W¯„ÝLUxƒn@‚™n™Ü™b¯U¯n›Wkz„°mJ@bkxƒX@èÞVšxlaX„lVVœ„`°@ȐÞa@mÆ@@bÆ@ˤĖm™Xōƾ@@wš„n@@WÜ@kb@²ÜlŐLƦ™nw™@»„_°@„y°UV@@¦„bÆKnƒšI°l„IÆ`œ°W@k„llUV„ÞVVx„LƚÞVX„WVnnUJ˜@UbnKVnm@Ubn@@x„L@VƒbÆĸ„`UĀÆ„„Ò°šŎa²ô°bôKÜVĸw°bÞwȎVnÞōVUÆlXU"],encodeOffsets:[[137577,48578]]}},{type:"Feature",id:"2306",properties:{name:"大庆市",cp:[124.7717,46.4282],childNum:5},geometry:{type:"Polygon",coordinates:["@@mÇ@сǰ¹¯J±ÅÿƒKUw‚I@™wšš@š±Å‚™X¯WanamKx™I„ylX°wƒm„wğKUn±@nVDŽUƒÅkƙ¯Kšmmwš@@¯UkÝaUUVK™mU™lk@ƒ¯„U„`ĸ@V‚mœxVxܐ@bÛ@m‚ÅL@¦š@@y„L‚U„Ŏ@ÆɅɴblġÈL@wÇaša„ƒkkVƒaš»@ó¯_ÝJ™wÇaÅXny›U¯¥Å„@w™bÝa™Lmm@@ƒVUŽlbğVmš™¯Xƒm_ƒ`¯_Ux™m™L™a¯b@mƒaó¦Çk™¤V„@bóJknVx™VXx±aƒLUbVxkLVlLWlƒ@nX@VÅbWlÈnƒx„bWšÅbmŽ@xœbml°b™„XbW„XVmnn`ƒLmšnbmb@šk@mwU@@š¯Jlbk°lbkšmLXxmbVbkllšÅނxX„xVWVVa²VܲnxƒVVnÅlVlƒL„¼šb@xV@XŽVbšIư„¦„lźb„Ĭ°¼Ulšb@kĢ@lw„@ƒÜlnȂƄóȘI„ĉ"],encodeOffsets:[[128352,48421]]}},{type:"Feature",id:"2304",properties:{name:"鹤岗市",cp:[130.4407,47.7081],childNum:3},geometry:{type:"Polygon",coordinates:["@@Þ¥‚™ô£nƒn@°„ÆUn`mXn¤mX„`UX„bÆKVb„@@bnW‚b„wšUšbĊ@šx„@nbšWVmƒ_mm@ó»Um„ŘWXkĠ»²¯‚¯nķšwŎ@ĊšŎK°bĸUnјKȦĠÈbÆknJššÆUĢV°IšŽšVƾƒwaV™ƒƒkÇ¯¯»™mķkۃWm@£ƒóIĵxݏōIğxmm¯_Ç™Źš™K™wťŽ„UVUŽƧwóxƒxġkĸķƒIk›ĉ™xóa@UmK@kVmUŻ„¯šVxkŽġn™‚@mmJ¯n°V@bXVÇxUzÆxkxlVkV@¦lbœJ›LUbšÆƒ„X„ō¼@xƒl@™J@bVxƒXUš@JÈ@šn™xVÆUXš‚„W¤knÆb„°"],encodeOffsets:[[132998,49478]]}},{type:"Feature",id:"2309",properties:{name:"七台河市",cp:[131.2756,45.9558],childNum:2},geometry:{type:"Polygon",coordinates:["@@²mŎ_lƒĊƒ„ƒĢV°°IV`ĢbšaĠX„°@b„JU¼Wnš„UJ@„ÞLlxV„„@n`lIUa@K°Iô»ÞVšwÞ@VmnX°WVwmkX»‚U„mŎxVak™lkkKǯUUwÇWUn™U±b—KWƒ™Kk™w„çóK›mU_nW¯ÛmV@bÇKkbkUml¯U±VÇaU™™amlUU™LK›„k@ƒU@mwÛLƒŽƒwkLóÆm_™±™nkޝ@@n±KnŚlbkVV‚mz—lWXº@Ķ°"],encodeOffsets:[[133369,47228]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/he_bei_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1308",properties:{name:"承德市",cp:[117.5757,41.4075],childNum:11},geometry:{type:"Polygon",coordinates:["@@lLnlmxn„„IVVlUnb@VVxXJWL@LގVnnV„J˜_@wkmšK„b‚x„wXk˜WXXšKlb²K@nVVVb„L@WlU²„lKVnUJVz@VVb@lżmVUVnbôaVX@°Ub@lWbXš@b@bVb°x„@VxÈLVlšaÆ@Þb²k°@lVUŽ@Xn@VW‚LXb@¤VXšKVVVLnm°_ƨ¤@aUIVa„alkX›°k„™V@„alwUVy„U@k󙰃na°UVUUmUÆw@mkLVUƒWVI„WšLnn@xlVnK„myU@ƒU°UXaV@U¥ƒU@Uƙ@aVUkWU¯ƒaU@WLUV@bkbmKULmKkUVUkmVIUwlWV²™Uml°U@W„LUwVm@UUK@_ƒKUUÜaXw@ƒVKUU@mVIUUlmnIVVVbÈVlKnbVKš@nI˜@nVnwVLVK„K„„˜Vnb@aUIVW@In™°@lVnIš@lWĢ@°UVL@b„@VyUUƒa@w@WUnU@Wǯ™K@UkkJWaÛbmk@mVaÞU@amkWƒ@mXUKkÿƒ£@a„kl@Um°UXwla„al@nmlXnW°znW@aƒwV™@ƒakbĉ¥VmU@ƒIƒVƒUƒJkUmWU™KbmkUaƒKkUVU@KV@@klw—™WaU@kmƒXVènbmlUUƒKƒX¯JkbƒI@JmIUWU@ƒLml@XkJ@U™kƒK@aVKwWa—IWwƒmUƒ@mU@J@UaċU™aUUƒVkI±ƒk@UUƒ@UbVVm@UVKƒLƒlkIWaULUWƒXUJU„ƒ@WbUb@lkXUxm@@JVn@J@b„nƒb@Vkx@bšLU‚Æn„JšaVXnKVVmzX‚°V@_lJXxWXƒK¯bÅamUƒ@lUI›bñJ@LÇKkIÇ`kxWL@„ƒ@@bUVUb¯xWKk„Å„VlULW@ƒŽn¦Ul@I™lmUUUVm@kWƒnkKma¯XUKWmnwVwÝL„mŽ™VUbUVWb@Lnxm„xVŽmbXx›¦@„nb@`™„ƒVƒ@kbƒLU„mVUlkbVXkºmnm@@xk¦šbĢÜlš"],encodeOffsets:[[118868,42784]]}},{type:"Feature",id:"1307",properties:{name:"张家口市",cp:[115.1477,40.8527],childNum:15},geometry:{type:"Polygon",coordinates:["@@k™ġۙal¥@wn@nml¹UWlaVknUVƒ„Kla„@„Ušƒ@_ma@ƒœ¥WwnaU‚wnƒmw@KXaVUVašUnmWUk°™lƒnUVUXWVw™IWVóKUI@WXƒxUU@mma@kUKWLkw@yk@ƒaVkUUċaUU@Wk@Unm@UVmLm±IUƒkJ™kWƒ@a„I@m@U„ƒVƒ„Ula„@VXVƒXmVwnkWKƒKU_k@m¥ƒmX_™JmnU@km@U@KmU™VƒU@U™@Umk@@LƒmW@Û£Wƒka@wk™@aƒI@mmk@mUa@UmUƒIƒwW@aWUƒbU@kbÇ@kwƒ@makVUk™U@aƒm@aU@mxkUƒbƒKUXUƒ±KXVWLUK@wkU@V™@WXUa@WbUxƒJIƒŽ@¦VèVVX@±ê¯KUIƒ`¯UULVx@Vƒ@UKƒIƒVkLmVkKmš@nUJÝbkIUJVXšVVxVbU„VJ„Un™°bV„mlU°„XnK@Ul@lVÈVUXšx@W„@VXšV‚KÞb„n@VnbV„m`ƒUx™kW@UVkL™Km¼@lUnUJVnV„XV@Vm@@LV„klƒIkl@VƒWlŽULWKUL@mJ„@blbUVUlmzUJUxm@UUbċÜk@Ub@VšLVV„¦ôbVŽmšUKUkU@m„„@VlVn¼WbUJ¯@@„°šnIllÈl˜@nXšWlLœk‚J@bkxlxkxlXUlklJƒšXL@bW„n`@nƎXxlL@xl@Xb‚LœKlVlIXblVUbUJW@lX@VL@VVŽšXšJšw„n@WnL°K„bVbl@VI@K„@U@nmVmV@XUWI@aXm@™VUUkWmn@lmUUk@mUmK@UnwVĉ@ƒƒmU_V@XJôVVUšLVUn@šllUnJl_n@šml@XŽlLlw²LVJUL@VmbVblVXmVnlš@Ť¦„nn@܎@bšl„@@XV`„Unb@VlLVb²J‚Xn¥ÆÑ@¥Þ@"],encodeOffsets:[[118868,42784]]}},{type:"Feature",id:"1306",properties:{name:"保定市",cp:[115.0488,39.0948],childNum:23},geometry:{type:"Polygon",coordinates:["@@VbXWš@@UlV@xVLXKWU²LV„VW„L„alVnwV@@b„n@bšVVllUnb„@lxÈ@laV@„aXV@b‚X„x„J‚nV@VVb@nnl@n„J@blšl@„ašƒU_VWUwVUškUm™Ukb±mVwœU@VIUW@UWk„@VU@ynL„m@IV@‚bnK„LVaVmnIlaXwV@@WVL°@@xnX„@V`V@VbUVVLVKnwnL@ll@@_V@VVnaÆ@œKVXÆ@nƒ@wƒKmU—™Wm@km@kÜKXU@ÑW±nIUwVƒ„Kla@I°wU±kškmm¯mƒ_ƒJnƒaƒwW@IVaUama@wƒUƒmU@mVw@aXk@mWa@£km@aƒ_kVmUnWW@¯bƒkUmk@ƒVÇm@@kUU™KUU™@UVUamVUaWIkb@xU@@amUkKƒVkam@@kVUkUWmKmUkLUb@xmJƒ™U@UImVÛVmnUwƒJƒU@VƒX@UWm@Ub°¦UšmxklmX@`ULU@@UW@@xkn¯@makV™UmxUb™°ƒlUšƒbUbƒnUJƒUUVƒa™LkbUU›JUU@mUUUƒJkaƒ@™xUIWJƒUnƒJ@V™zƒ@kb@`@bln@l™bƒŽ@X@š@š„@Xl‚bnbVb„@„„VJlInlšbVw@U„K„l@lbnan@Vb‚JôLn‚UzlV@lÈLVbVK@LVx—VWXX`WxXz‚bV`UXV¤nx@„bVlVnVlUL"],encodeOffsets:[[117304,40512]]}},{type:"Feature",id:"1302",properties:{name:"唐山市",cp:[118.4766,39.6826],childNum:11},geometry:{type:"Polygon",coordinates:["@@„@VVl@²„lJ„UVVšbČVVb‚@@InV„@‚V„nXx˜JXb‚xUL@b„Lšl@VlI@Wnk„KV@VXnJ@I„Jla°I„W„LVVnkmaUç„WVkôaܯ„@nV°wnJlaV@VUnUUaW¯wXWWwna@£UaWKU¯ƒ¯@aVUkKUamUUƒn»‚an™„IVwUWlkš@„LlWVakU@K„_lƒšbÞU°@šy°n„@„KÈkWW™ţ¥ĉōƒkġWUw¯£¯ƒÇwţwƒ@kK@kƒ¥ÝwÅbǤېťV™lW°@ĸ™x@VVVULVLkl@V@Xƒ`Ub@Xm@UWbƒk@ÆVbnLWV@lnXUbl‚@X¯lmU™VkKWLkK@_UK@U@UmmUxmVXLWVULkU@`W@ULUK@XlJXzV@@xml@VU@UX@Kk@WbUK@Xn`ƒXmJnšmškxUVbUVlVVxUbV@nKlL„kVKÞbVKXI°KVšmVUIUKULVxVJVLkV@Vƒ@UbU@WUU@UbUK@b@nƒV@VkLmb@b"],encodeOffsets:[[120398,41159]]}},{type:"Feature",id:"1309",properties:{name:"沧州市",cp:[116.8286,38.2104],childNum:15},geometry:{type:"Polygon",coordinates:["@@@ln@UȄŽl@Vn„l°aX@mXnVlU„`@bln@¤Xb@nWl@bUx@nnV‚„„V@xnbVbUb@J‚X„x„b‚mXa@k„UVwlW„k„KôVm@w™kkK@kl»Èƒm™VKXkla°@XVV@VI@ml@@Vn@VX@V@J„@VxUzVVšš²blVk¦@šĠ@@»š@VK@VÈLlK@XnJ@alIUl„a„VVbš@„n@a„U@WUIV@mUn@mKXml@lL@LnWšb@XV@@a„VVb„V„@VV„IVWÈb˜IÈ»ƒǟlWšaVUÅUƒƒ™Um@kVU™WVkaUwmaóUƒJUU¯ÑU¥mk™¯UaƒKÅnÇyóXmWÛX¯aċbÛa›J—W™ÝU¯»ƒaóóUm@IƒšVVl@bƒLUJWLX@@xšXUxl¤V@V„nVUV„XVbVš@Ž„@@VVn„°VŽ@ţU¯VƒUmƒUWV@mUXƒaƒbUKUwUaÇKn„ƒVk¦Wb@VnLmV@bkV@n„xW`Å_UVƒV@bƒUklVX@VmlUƒx@VVL@x—VWVL@VW@UUm@"],encodeOffsets:[[118485,39280]]}},{type:"Feature",id:"1301",properties:{name:"石家庄市",cp:[114.4995,38.1006],childNum:19},geometry:{type:"Polygon",coordinates:["@@la„@šy@U„I‚m„VXIVJšw„@lb„IVVnV‚@VVœIVVlašK„bVU„VVI„mVa„aV™„kš¯VanwšVlUnb°@lm@wX@@VV@VK@_nWlknwV™¯¥Van@VX‚@„W@U„V„IVxnmÜUnUVJV@„šnI@wValKnV@k‚mU£na@mVk°K„LVa@UU@UƒmknWWkXU@aWW@@km@UaU@@klK@UkaWaUnamm@U„a¯wWU@UkƒL@ŽUn@x™V™lUXVJUb™LmU@aUWUkmKkLUUm@mW—XƒaƒmmkkWUm@@U¯JUUm™kU¯@mKĉxÝwÝ¥LƒUóŽmwkUUUWVkKm™kKmLX„lxVLVxXJ@nVJnz@VWL@`nX@šƒxƒ@kVUUmJmIXx„JV„ƒnUVƒ@UVV„@LUšƒ`UXVVƒ„ƒlXL@l@b@VmX@b™xn°™UƒbkKWLXlW@@bƒK„mKULmakLUlmb@šXb@xmXU`V„b@`lLx@nWVXL@‚°WlXnlb„KVK„XVb@˜X@l_lJ@V@XnŽ„I"],encodeOffsets:[[116562,39691]]}},{type:"Feature",id:"1305",properties:{name:"邢台市",cp:[114.8071,37.2821],childNum:18},geometry:{type:"Polygon",coordinates:["@@nKlLnšlLXUVVlVnxô„V‚KÞ¦ÞxĊwnL°@lVnšVV°I@Vn@V‚lXnl„n„b˜WnXn@VVlKnLVlVX@bnVšKVaUIVWškšU@wVm@¯@U¥VmU_°lšK„k‚w@LX‚Va„U@wšUƒUUKlUóW@UVUœUlƒ°K„wlKU_na„KVnlKkkšWWa@IœJVa@IlJnU@„KVUUmVlaXUl@lm@kXWÝÑnkƒ™±™k@wğ›@@U@mKĉLmVJ@zmlnŽWLUÝJU_ƒ@@šmJkXUVlbklÝ@Ýa™b¯@¯±JÅwġaUU@ƒkU™@mVI±bUKƒL™WUXƒJkaƒLóKULWbUVkKmnk@@bmLUŽƒl@b@mnmJkUULƒaƒbnŽmn@lVV@¦n@„l@b‚znx@`Vz@b„xnV@xl„lbnKVx"],encodeOffsets:[[116764,38346]]}},{type:"Feature",id:"1304",properties:{name:"邯郸市",cp:[114.4775,36.535],childNum:18},geometry:{type:"Polygon",coordinates:["@@„bVKlVnInm‚@@a„kVnK@al@nmlLVUXaVKôL„Klb„IVWšX„KVL²a‚JnUš@lV@„VVĢbÆx²I°Ž°@šaÞbÞ@lkkaVUlWnI@™„@V`ÞI‚VXKmnk@y‚InUĊKƒÇkUUamUUkƒƒ@aU@U™ƒk@WUwVkVJVkkw°a@„mK@UX@VV„LVW@wšwVa@¯Xm@@lUIWaU@UWkXWmU@UwmUkKmn@lkVƒ²™VƒaULUVmJUUUwƒLma@™UmkIUm›L—mVšmx@b™LUamKÅL@VmbkU¯KÝamzkJUb±Vkb™L@lU@WIkJƒzkKmKƒnUalWkkKW@@nkbk@WW¯XUVUJ@XlJ@Xƒ@XlWLkUƒ`VUnaWa„UV@UVIƒaUxUUmVƒK@I@W@DŽU@@U@bƒ‚@nmKXmx™@UxkVWUX„@`VLlL@`™zX‚Ýb@b‚„@VUVkIUJVz°KVlnLlKnL„xlLVVUVlXUJ@nn‚„I@mVUlbn@@Žm„@bV„nV"],encodeOffsets:[[116528,37885]]}},{type:"Feature",id:"1303",properties:{name:"秦皇岛市",cp:[119.2126,40.0232],childNum:5},geometry:{type:"Polygon",coordinates:["@@lnV@Xb˜škx@lU@@LUVlV„LVbnl‚ašLXVVn‚l„I„V„U„JV@UnĊ¦la„bš@nJ°UmƒV@„wn@VU„JVI°bnWlXnWVLVK²b‚akk„lI@aUaVƒUwVUUalaVwnUVak¥šX@W‚kœLVÓm„mUK@_lWš@n_UK@alÅ@ğÅƑŃݍmƒ@їţÇlƒLƒ@¯m™z¯@ÝV™ak„ƒ`@LlVUbkXƒK™@klVXUxƒJmšbm¼V„nVVblLUV@b„°V°XLVb@¤mbXxWX°xXŽVbmVUVU@kbmI¯xmUƒ@Û°óbUl"],encodeOffsets:[[121411,41254]]}},{type:"Feature",id:"1311",properties:{name:"衡水市",cp:[115.8838,37.7161],childNum:11},geometry:{type:"Polygon",coordinates:["@@„KVlV@X°xƒb@VnnmbVŽXblb@VkL@lV@Vbn@@l‚@XX@bWVXlmXnlV„V@@VUbƒK¯LUl@nmbV¤n@l‚LXnlVUV@ln@lb„UlLnV@bV@@wlaXJVbnUVbVUš@VVšLVVn@VVX@@U‚KXU˜U@wUK@U„wVnk@UUWlk„V@a„UVUÆ`X_ƒw@mlU@anUmK@UXal¥„UmƒÈLVbVxVL„a„bVW@nXU‚Vn„„V°UŤV@Uƒ¯Um@Uƒ@@U™UaƒWVUmUUƒU@k£Vw™W@wW@XKƒIUa@wU@@al@UK@_mKXKƒbUU@aVKmš@Xmƒƒ±@kbÇakLğVaUw@a@ƒmkUJƒk@ykw@£ƒWX@lknk@WVkbUŽVnUVƒL@‚mVkI@JUb›I@JXb™XllkLUmƒLmbV`kLƒx¯Lk„›VUV@VôXkVVL„V™V@xƒVUbW@Kxƒl™L¯kV`UnV¦°@"],encodeOffsets:[[118024,38549]]}},{type:"Feature",id:"1310",properties:{name:"廊坊市",cp:[116.521,39.0509],childNum:9},geometry:{type:"MultiPolygon",coordinates:[["@@la„Ušš@šUnL@VWbklWxnIVV„V@X„JlbUlšXVbn@@K„mV@@X°WVInJmn²@lmVbnL@amKV_kwlmX@@LVamaXaƒaVU@UnJVanLlUkaW@UaVakK@IlKUU@an@ln@alKUƒkIVa@a@klaUKUV@UkUV¯šKVƒV@kUmƒU@@a¯ImJUU@VV@UL@Uƒ@@WXUWa@Ukwm™@ƒX@@w@al@@aVIUmVUUUVWUknK@I@™l¥kU±a™™UUVyUwƒ@@I@UUWm@@Uk@@nUJU@WU¯@kbWlULnšÇ„k¼@llLšl@xUnóŽƒLƒlkXUxƒV@lWb„I„`°nnn™llŽV²¯x@JkbƒLU„VxmJX²@ÒWVÛL@lln@‚Xn˜šnV„L"],["@@@kX@Valaa@KWI@UXW@WanaUIW@UaUKķŽk_W@UVUKUš@bƒ@UamxVXnJUbWVXLVbn@W°kb@U@Wó¼mIU¼k`V„@bVbl@„lX@lUôVlUœIV`lX„Vn@lUlVn@„l@UVaƒIUWl£Um™VWU@@UUKlUUUnƒVL@KšUnLVWUa›@™U"]],encodeOffsets:[[[119037,40467]],[[119970,40776]]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/he_nan_geo",[],function(){ +return{type:"FeatureCollection",features:[{type:"Feature",id:"4113",properties:{name:"南阳市",cp:[112.4011,33.0359],childNum:12},geometry:{type:"Polygon",coordinates:["@@lKl@nVV@„bn„@VVnm‚nL‚LXx@š„‚VLlKVU„IXWÜ@șlbl@XUĊUlwnW„LÞw‚m@ÞUVmnVl@nX‚JXLm@VnnJla„I@VkxVb„@VŽln„J@knKVn„@°aVanal@XK°b„‚@š¯VJXIš„VK@al@nV„k‚@nK„a‚b„@XL@blVVKVLXK„@VaVI°mVaX@V_@a@yUkVw„VšIVašJ°™@anIlaV@nKnXÆm@wUUV±UUWUKnaWwXUWmٝVƒam@kakImƒUKƒ»lan@VXXa˜W@@UlUUa@a@UlwUƒV@Xal@@anIVaUK@V™XmwVmUmV„LXl‚@nalLnal@„šnKlkV@@UnJ‚UXnl@nVl¦V@@VnJ@nUVVVVIn@Va„JƗn@@K@m„kƒa@kmWVaUI@a@™k@@aUL@mmaVIUKUVƒ@@IU@mƒUmmL@K@UUUU@mW@@nU@ğ»mVmbk@klW@UXnV@LƒJm„™lUnUJ™UUUWƒƒ@UnkKƒxmLa@ƒ@@lUU™bmUVWk@@nkUmam@UakJU_ƒVm@ÅlÇLUVmVUwULƒKU@ƒk@UƒVUlU@@Uƒ@UaUUWaŎƒzJƒaWLkl™b@bmL@„kKƒabWŽUVƒ_@mV@b¯JmXUbUK™¤ÇLUU@b@JkLWmkUWIkJ@VmX@JUbVXU`¯VV¯blK@LXKl„UV@Um@@Uk@kxWŽkbƒL@KkbmL@‚UXmaU@@l@x@blX@xUJ@bULUlULÇ@@VšnU`W@@nÛ¼U@@VmKUkm@VVX@@xǚ@bUbVb@VX@@x‚LUb@lƒ¼XLlbUlVVU„Ub@n"],encodeOffsets:[[113671,34364]]}},{type:"Feature",id:"4115",properties:{name:"信阳市",cp:[114.8291,32.0197],childNum:9},geometry:{type:"Polygon",coordinates:["@@VllInJlknJVkVU@mXlUÞ`VnV™VU@U@y„@nXlKV„nJVkXKWaXI‚b@yVk„VUkVwn@‚K@nW@k„KlUXVVUlbnUV`n@V_V@llX@@V„b@bV@@nlVUb¯‚WLnbmb@ŽnLnK˜b„U„bVWnLlaX@VVUX@Vln@`kL@ll@VXVJÈIVl@XÞJ°Una„LlylU@UXKlnn@lanLWWnbVI@KXKVL@LVWVL@UVKUIVWX@@XÆJ@In`@lJVI@a„WšÛnK@UlK@UU@VK„nlm„nXal„UllLUbVVšknJ@nV@Vm@a„l@@xnV„„lJVUU@™w@aƒk„@XW@_mWnUlŁUmVKV@VXwW»XƒWaUwnkWUkVUƒU@@@WlaUkkaƒIWVkm¯xmIUmƒLUVƒaUIó»m@mmwXk@a›mk¯¯l™@wƒmkLmmU@UbkUWJ@XUbƒJ@b@l@znÆmK@Xk@Ub@lm@ƒI@akmVKUUVUkU@U±JUbkƒ@IWmkxƒa@UUV™UWVkIUaW@UlLWn@VkJƒI@VkK@L@bmKƒkJmUUaUKWXk¼VxnJ@„V@@VULV¼ƒ@@UkaUlWL@U@W@IkKmL@KULUWULWKUXUJmIƒb—KƒŽƒ²UW™nWKUUkLUƒmUUam@UU™@ƒmUL@xkV@„VV@bmV@Vk@mwkUƒVUx@mbX‚ÇnVb„‚UL¯šWŽnUVLVb@xnlWnU@UVUVVUbVVlVkn@llVUXUWUXVbUJ@bmLUJnb@nVK@bl@@š@bVJUbnX@l„b"],encodeOffsets:[[116551,33385]]}},{type:"Feature",id:"4103",properties:{name:"洛阳市",cp:[112.0605,34.3158],childNum:11},geometry:{type:"Polygon",coordinates:["@@VVUllLXl@LWn@J„@bƒKUVmnL@`VblLnbV@„b@JmL@LnV@VV@¯„VJVnXL˜@nm@aÞ@‚a„k@m„IšmVbXL‚ynLšk°@°aVJnUV@UVVXk@WJ@VXLlUnJVnnƒ°U@»°U„wl@šb„WmUXƒÆ@VLXU@m@U„a@I›mkb™a@naWW@_@WXUV@@U‚ƒ²@„K@I±U@¥kKWLóLlƒa@£Um@kWKXU@mlLXUVKUU±J¯_@`UL¯Wmk@Wa„kkƒlUnƒVUVaU@KUU@mmK@_ƒa@KX@VaUIm±™k„aVKVUkw™@kaƒƒW@kbkL±UUaƒK@UUKVak£ƒ@UmmL@lƒIkmUƒ@Ualw@UƒJkbmIUmn@WKImWk@mUUnÝV@ށnÝxƒKmXkxĉVWVk@kaċšÛ@WXƒJUV@zŽm„VWnbUbVbšLlUnŽ‚lUÒnWV—VWnk@@Vm@kxm@Un™l@Ll@@V@šXnƒškJV„šV@nlVXx˜U@l„n@aš@VLnWĊ¦nxš@lbVKXLl@ރVLƒ„XJl@XXl`lIXVl@Xl‚XUVšK„wV@lanx„zUbVJ@VVX@b"],encodeOffsets:[[114683,35551]]}},{type:"Feature",id:"4117",properties:{name:"驻马店市",cp:[114.1589,32.9041],childNum:10},geometry:{type:"Polygon",coordinates:["@@n@„b°UƂXnVlnLÜ@VLœm@n˜@na@J„„m@k„@lVšVxXX@„V`lLV„XVV@VVÞLVV°„²@lašbnxV@@b„Lšmlm„_VWnIWUna@lšLšbnV°ƒVL@KšV„LVUVaVLXK@mÆXna@wVm„a‚@Xw@KlL@a„@Va@wUkaWnIVƒla@Kn@Vn@VUl@nKVn„J@LnK@aVkVUUWƒ@VakUVanI‚²X‚W@UUU°KnUVLl@XaVK@ašU@KUI@W@_lm@KkLUKV_Uƒ@»@UVJ@XV@@mVL@K@U@Kk@VwUUm@kmWL@VkVkzƒKmb¯VÝI@WUkÇJUIUWk@@klK@_km@UVWUUW@kbmKUXƒaƒV—amLmK@namaXK°VakU@mU@@aƒa@UW@kkU@U`m@U_mVkaUVWUkVƒL@lmX@ށLm@UxVlƒUUl@zaWJXbWLUlmIUƒkLmWƒ@@z@VUVUšUmÝ_kVWŽ@nUVUlmIklmIkJUkƒl@n@Lm@؃IUbm@UJUUVU@mmI@UU@k¥mUk@WmVmI@VU@klmLƒ™k@mbkKmb@WkƒKUŽVnUnnxšW@UVLUbmJ@bk@WbU@V„kx@V@bVbkV@V‚@‚—XWbUWm@kb„¼VLn„lJlb"],encodeOffsets:[[115920,33863]]}},{type:"Feature",id:"4116",properties:{name:"周口市",cp:[114.873,33.6951],childNum:10},geometry:{type:"Polygon",coordinates:["@@lšnb@xlJ@UnLlKXUlJl_„KnV@xVL@bkbVVUè@šWb@„Ubmš„ŽkšVšmbX„VJnUl@„a°@@b„LVbƒlXx˜InmnLVw‚anJÆw²IlmnXVl°VVbÈaVb„@lkn@VWnLlUVmÞUUklƒkƒVkUaVaVaUw™K@kkaVWmw„_„‚l@nU„VVb@b„aV@VV@zXJl@@kl@šlœk°WVnÆbnbUšVJ„Iš@VKVm@k™K@_kK@a@aU@@wW@@k@aUW@IUWVUnLlUlVXKVwmk@W@—VWa„¥@k@lnƒUIÇKUaU@ƒUUVmIUV™Uk¥ƒVma@¯k@Wanwmƒ„@@n@@m@UIVƒkUVamUXWƒaV™U_™@ƒmUVUImW@aUIĉK@VmI™b@lU@@n™JƒkU™@KƒIUmmLk@UVm@UŽm@@LkbU„mJXlbV‚@xUbƒ@@bkK@LWx@ƒbUn@xmbÅW@nWLUKUbUVƒK™U@LUK¯„mU@šVV@xULUŽVL@bU`WšUz¯aUamKUaƒ@@xkX@x"],encodeOffsets:[[116832,34527]]}},{type:"Feature",id:"4114",properties:{name:"商丘市",cp:[115.741,34.2828],childNum:8},geometry:{type:"Polygon",coordinates:["@@XVl@lLȃ„@VkV@V»UanƒWX@VaÆÇô@ÈaVX@xVJXUÞU‚aVLĸbXKl„V@šm°Vn_ny˜XX»mUk¥lK@a„_@yšInaVKVa°_@WXI@ƒ@K‚VnIlbnaV@„l„@‚a@_w@ƒlwUKm™Xa@UV@š»Vƒšw@kUKVUUm@w±VUXUKUwmJUUƒ@km@@±mXkmUI™@mm™KUwkbWakLWaUIkJmŽƒX@l@@VUX@JWbX@VbULWbƒlUVULknlV@bVJk„mb¯KknWmk@@nmVkx™@ƒVmU¯KUnUL™@ƒJUIV™maÅaUm¯X›l™kk@@lk@WI@yUUU@ƒb@aUaƒUmVk@ƒƒ`nxUXlb@lšLVxUbUbVbUll„k„VlÝVUnkVmKUXm@klƒ@ƒnUx@xnxƒn@`VX@V²x@V@b@„Wl@zU`VUVVb„L@Vƒb™W@bkXllkLWV@V„@VVÈwlVœ@@X˜K²Llb„WnnÆL@VnJWn"],encodeOffsets:[[118024,35680]]}},{type:"Feature",id:"4112",properties:{name:"三门峡市",cp:[110.8301,34.3158],childNum:6},geometry:{type:"Polygon",coordinates:["@@WKUmUI°ƒU@@UmU@KnK@IƒaU@makKUa@_‚KnmVU„L@a‚ƒ@IXm@KWkkKVkUU@aUW@UUIVaƒymwkbU@ƒx™LVUWWkk@WUkJk_WWk@WI„ƒUK݄k@WKULka™@mwĉ¥mXUK™@@bƒm@k—VWwkU@m™UUƒlI„™Wm@™@Uk@@KškVmn@lwn@@Ul@Xm˜UXUmVсkmkV™KUaVamaUXnƒ‚@ykLUKƒ@™WwKmKnUm@UmƒƒaU@mUk@kL@lƒxċxUnkVmnXxWb@`kzWJ@V—LmVUn™lmUL@lW@Ub@VšXUbš`VLUbUJ@nmnUlUUm@@bUJlnU„š‚U@lxkbƒ@@XƒJUnƒ@kb¯VVVmlXXlJlzn@VlkVW@bkK™bmškŽUbVb„lƒXVxšKÈnšwÞlĊKlšVnKlwX@lL@xlUnVn„@šl@lmX@ƄÈb°¼ÈwVJlx„_°xšašlšUÈxlUnbVxnL@lllšbm„n@nb‚@@V„L@V„@@„VLšJnIVVlKnV„_"],encodeOffsets:[[114661,35911]]}},{type:"Feature",id:"4107",properties:{name:"新乡市",cp:[114.2029,35.3595],childNum:9},geometry:{type:"Polygon",coordinates:["@@XVlL„K°bUblbUbšl@nX@W„XVVKVkš@@Žmb@„Ubn„W`kL„LƒV@VVLnKlVXIlVš@@a„@l£nWlƒkVa„@°bnUlLVlna‚bnUVUXKlU@ƒ@lk@a„I°y„@ôkUU@wšmôšnkWakml™UkVmkUlmUUm@nkUKWanamU„LXW@U‚VnUln„`l„œblL°KXV@ĠJ@L°„šJšUVw„anK@UUImmƒkK@¯±Um@IVmUmmÅnWaUK¯aUk„w@W±kVƒx™U™VƒwƒnÅJUIWaÝJóI—bm`ÝbÅImJUI¯¥¯@mU¯UƒJmnUVóUkl±V@zXl„bWVXL@bm„mº@@XmJUXU°llk„@nWJk@U„@¦U`m¯ŽWx"],encodeOffsets:[[116100,36349]]}},{type:"Feature",id:"4104",properties:{name:"平顶山市",cp:[112.9724,33.739],childNum:8},geometry:{type:"Polygon",coordinates:["@@l¤UbVL@V„LVb²VlKlaX@„„lbš@lxUVULƒbšln²VJUbW@@L„b@`nL@nVV@LVŽUbUVm„kVl„ƒlXbl@Xn°ŽVK@_°`²IVVV@VUVJnInaWK@Uš@„K„LÆ@nmlXXWVUUw@klKVa@knyVkVanI‚JXUl@XbVUl@@aša@mXk‚bnK@UlK@UUUVaXaWmkUm¥n—WmXaWaœkl@VmÞb„KVL@aVI@mUwVm„@KōméUL™KVaUk@kUK@U˜WXI@VlKXU‚@VVnInVV@VLlK@UUƒkKU_@ƒWWUwU™@klƒn@ƒƒ@Imb—@@m›nUKÛ@mKUkWVXxmbVLXŽVVU²VV@xÅnmWmLU@kbmJ@b¯š™IUb™JƒUUxVl@z@bU`W@Ub¯nUJUbƒ@WLUKULkU@aWKƒ@aƒbmL@ƒlmUk@@bUL™ƒWJUI™°@ƒŽ¯aWLk@mbUb¯b"],encodeOffsets:[[114942,34527]]}},{type:"Feature",id:"4101",properties:{name:"郑州市",cp:[113.4668,34.6234],childNum:8},geometry:{type:"Polygon",coordinates:["@@@nWVUKÅ@W„nVnI‚ŽV@œkƂšwV@šnn@lxÞlnôJ˜zXJl@nalUČVlƒl@²UlkôVVUnm„I°VnV°@°¦VJnIÆJÞan_VmU@ama™@kU˜¥kaUklw@UIV¥kVUI@ƒmmUÅmUlƒwVU@amU—JWbUakVƒ—Vé¯Im`ƒk—@ƒwVWmLkU¯ŽƒXkWmLmx@UUƒbm@@x™J@LbW@UUVWUkVKƒ@ka™IUamKUkkmmLƒUkJUVWXkWmnÅ@ƒKƒL™@@VXLmbmJUIUVU@ULWVkK@nWVXL@lVn@¤„b‚kôKXKlL@¦²V@JƒL±@„@VU@WV@X@`XXmb@Žšblaœn@Jƒb@V"],encodeOffsets:[[115617,35584]]}},{type:"Feature",id:"4105",properties:{name:"安阳市",cp:[114.5325,36.0022],childNum:6},geometry:{type:"Polygon",coordinates:["@@°kVaV¥kVmUkWkWVkVKUwkkmKUU@a„wWWXWakKWkXmlašIVmX¥ƒU@a„@WnK@kƒƒ™V™I¯ƒ@KğI@WU¯LkK›akƒƒ_kmmVU@VWXƒKnVmbXbVLmln@VVknlVUnVlkšlnXbmlmlXblnÈlWbn@@nšK@V„L„bVV°VVzšlnš@V™xƒI™b™ŽU@WLUa¯V™UkWõ@¯kkmxk¼l‚„XUlVbVLnlULmU@lƒLkVUlƒX@xW@¯mUƒ@UmIUW™L@aXa˜kU™¯anƒWk°@k™kKmmUIWaambUkkKmV¯aƒ@UblŽk„mXk¤ƒ@@b™@UbULWVnb@lUVVnmšnVVU„J@bWXX@WJkL@blVU°UV@XlWnXUbW@UVkVšVWbnLUJWLUK@Lnn@blVU‚„nUblxVUVJXU„a˜@Ub„LnUVV@mVIVVn@UbV@‚XbmbUV„_lVXUWanJVI@WkI@WVIVU°WXXl@la@mX@lLXl‚kVbœm‚X„ylIXJV@@kšKla²UVa„IVyÞb°LlVna@UÆKnLVbšK@anwU™"],encodeOffsets:[[117676,36917]]}},{type:"Feature",id:"4102",properties:{name:"开封市",cp:[114.5764,34.6124],childNum:6},geometry:{type:"Polygon",coordinates:["@@lUVbXa˜InV@bUV„x‚knVVÆnn@„VJlUU¦VJ@kxVllb—¦lVš@nb@bVŽUn˜aôJÞIXbVJÆI„m„xšUšV„w‚U²l@XƒxVl°bVLXb‚`XklUnmVblLœ@lmšx°LVK@UXIVašWlL@Ukƒ°KkVaVUXmmI@UÅKmmƒXka±K—L@W›@kUÇxUUƒ@@UXUlKkklW@ašX„a@UƒKUaVUUV_@yXk@ƒ@a@U±w@UUW@_„mmw@wVw„mUaÇbUa¯UUkmWkn±JÅxmIbUxmKmn—JWw„kUaƒK@a¯@ƒbk@mVUIWƒ—Lmwm@Ua@WJUb@LUl™@UUmLUbWJ@VL@VmXWWzUJUꄘ"],encodeOffsets:[[116641,35280]]}},{type:"Feature",id:"4108",properties:{name:"焦作市",cp:[112.8406,35.1508],childNum:8},geometry:{type:"Polygon",coordinates:["@@V@VL@x@bXŽWV@XkššlUŽWX@J„@nI@KlL„KšUVaV@œJlL@KUk@KÞL‚l²_‚@nWlL„UVVš@nLWVUJVn@anV@a„wÞUVLVx„b„@lW„@lbXn‚Vn@@¼šL°mšKVn@bnl@nVK@blb„L„W„U@VWLXV@nlKn@lVVbXw°nV_@¥Vƒl@XI@mlƒkkV¯VWnI@W‚@n¹nƒ@aWKXUƒaWk@yk@k„ċUkVmbk@WI—yóImÝkkwm@™mU@™xŁ›lU@mJƒX™ak@ƒx¯V@¼¯Vm„UmmIkVWK@UXIl@UWVUU@mVUI¯b¯@™lmKzWKUa™nƒJ@nƒlbÝ@@b"],encodeOffsets:[[114728,35888]]}},{type:"Feature",id:"4110",properties:{name:"许昌市",cp:[113.6975,34.0466],childNum:6},geometry:{type:"Polygon",coordinates:["@@lI„VnKlnVlnLVbšJlb„@ULVlUXVVX@‚a@KšI@wn@„aVV‚@nwnKlX„W°lVnKUX„x˜@„ln_°JVIXy‚XnW@U‚K@UXIVanKVVš@Vk@KVaXI‚@Vbn@nx˜KnaU™l™ƒn™Va@ƒXa@™VçUUla@aUK@wmUƒLk`kIWVkLmK@V@XUlƒn@JXV@nm„™bU‚óIƒmUa±@@ÑóVUUk@UlKVU@akWVUUlUUaUK@UUKWbUkÅJ@XWaƒ@XbmJ@nUJ@bUKƒLÝaUnk@›lXbWbXnm˜n¦lVXnWbUbVV@VkL@VmLaWl@n™b@bk@UVWak@WVImJUbUlmz@lUbkL@lVx"],encodeOffsets:[[115797,35089]]}},{type:"Feature",id:"4109",properties:{name:"濮阳市",cp:[115.1917,35.799],childNum:6},geometry:{type:"Polygon",coordinates:["@@lLXbW‚XXƒx@bVVnLllVxULUl‚XXlVlUnlŽU¦Ub¯l˜nœK@V‚bVb@šXbVL„KVxVVnIlašb„a„¥lU@wnalLnVVlVLXnlWVXn@@lVI@WnU@mƒÅW¥—aW_k@WwXy@kmƒ@wU„mš„š¦šlUxVLV@UwšJ°xš@VX„@Vb„@š`VX@VX@llšIVbnJlI„bšV„l„˜J@ƒmѯLóa@ƒƒKUa„k™ƒ™Xƒ@UK@wU@ƒlWUUݯImW¯aƒLUKU@ƒkƒ»k@mƒwƒa@UnKWI@ƒUU@akVWK—k@a±ƒbóUWKXUmk™KUmLƒbUx„„@lmLXŽƒ@@b„VW¦Un™JkbWnXl"],encodeOffsets:[[117642,36501]]}},{type:"Feature",id:"4111",properties:{name:"漯河市",cp:[113.8733,33.6951],childNum:3},geometry:{type:"Polygon",coordinates:["@@@Lƒ‚UnVxnIWa„@Xb@WÆIVlXaVL@VVLVbkVVŽUVlX@bUVkLV‚l@VVôU@Ò²@Vb„nôJVšanƒ@mWU@I„mVk@WkI@wmak™@wlW@w„@VbnLVb°bVyX™V_@aUKVVK@wUU@™™a™K@kmbXVmJUXƒ`kn™nƒK@aU@mw™akb±@¯ƒUUÝKUUU@WU@VkLUKU@mUmJUU@WVkL@UWJ—X@VVL@lVlUbšLVKnêÆŽ"],encodeOffsets:[[116348,34431]]}},{type:"Feature",id:"4106",properties:{name:"鹤壁市",cp:[114.3787,35.744],childNum:3},geometry:{type:"Polygon",coordinates:["@@ó™™n@xVVólƒ@¯zƒJ@bkl@@„kVWLUVmVXbVJnnlLlš¯@Xlm„°bVš—lWb@bšKVXnJ@VV„°nX@@w„WVklU„K@knVVKmkUKUaVkƒWkl»nwlްlö@lXšV°UVbXKV@šša„Jšw@Um™™kUy¯UUUƒaƒK@U™L@mm@XaÇkkmWank"],encodeOffsets:[[117158,36338]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hu_bei_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4228",properties:{name:"恩施土家族苗族自治州",cp:[109.5007,30.2563],childNum:8},geometry:{type:"Polygon",coordinates:["@@VK‚bX@lbUVnL°„@VlVnUl@VUX@„aVƒmaXƒlašUUU@wmaVUn@Vƒnmmk@m™U@kna™aU¥Vam™X_@WƒU™mW@_kƒVaVKnL‚lœ@VVal@k¥@kUW@kUKVUlUVсW@kÇaU»ValmkUVUVak™@aƒV¯_@W‚UkmVUlU@aœƒƒalI@akkVWUaWXUWwœWVbÆ@„„l„alIVK@U™m@UU„W@al²a‚¯UağÇm@ƒbkk@wƒ@@W™aULmxƒIU‚™ƒb¯@U`UX™JmL¯aƒKX›WUL@aknmK™@aWUXaWm@I@UÅmVU@™™aUV@b™VƒI@WkU›bXkm@VakwUKULWKXmJ@XUK@ƒmL@KUwVaUI@KU@mmn™mXka@»V@@UUaƒw¯yVk@ƒUUVmmkÛÈU@mWUnmx„šmlUbV¦UlbWVUL@UUƒ™IUmÇKV„VbUVVxkn™LUxV`VX@š„„kJVVUXWaUVVlUnmKUbkI@WULmK@L@LVlƒLnmUIWV@aknƒ`VXUJIVlUVVbUX@¤mbnLm‚m@UXk@mm@Ukaƒ¥@kV@@KkU@aUKWbkLWVkIVŽk@UbVlmX@bU@@mmL@bn`@Ln@llVLVk„@XVVU@`VXUš‚¼k`VULka@VllVIn¤VU@@bl܃bkx@bkL›škKƒn@bn@@b@JUnV`UnVbVKlVXUlbn@°ƒVx„@@b„nVbUllVn@V—VK@UnW@UVUšlnk‚VÈޚxVb„VVI„xVaÆ@@aka@UVaU@@a„k@Wl@nbVIƎ@Jk@„L@VlXnlla@VJnw@UmwXU@aVK°ÒnllnLlb„xnKVaV@l¦²nVl@llL„x@XVVœ‚͐š@našx@U@al™XUVa‚LÈþV°XxWXkK@šmLnlUb@b‚xnLVlVVkb@UJ@xWXXš"],encodeOffsets:[[112816,32052]]}},{type:"Feature",id:"4203",properties:{name:"十堰市",cp:[110.5115,32.3877],childNum:9},geometry:{type:"MultiPolygon",coordinates:[["@@@a@w@kV@nbVK@ƒnUla„@la„Ål@nlVakwWX@WkLšaVmšwV@anK@UlIXmWkk@@mmLkWlwk@U_mKXwWK@U¯K@UU@ƒVUa™kmƒkI™yUUVUmanU@mlwkƒ@_mWXaƒUWU@ǃ@U@aUaVwUKUIƒVkK@UWIXƒmaV@k@Vm@UnwlƒUamk@V@„ULUamxUJkU@Iƒ`WkkK¯XWak@@W@IUV™LWJkXkaÇVUKƒ@kUmbmUUƒUKƒbkKWUkI@ƒkKÝ@@aƒUm»nI@mƒU@UnWV_@aUmWbkLUl¯b@a›kkk@WkkJm_k@UV±@J@b›nU@@WÝIUJVbXL@nlJkx@„Wn@VkJmb—LmUƒ`VbUL@xVn„@XVƒŽ@„mVVnnJVbU„ƒx@„V„nVUbVVƒx@šn„™bUK@bƒ„@bƒJ„šm²„VU‚lbXzVJV„„JVbn@@Xmb@V@bVJÈ@‚Vnkn@°aVVV@šX„KnalLVmšUnnVKVlnLWlXX„Klk°š™šXŽWškLUVVV@nU@ml¯nmbk@W`Å@mb—LWm¯UƒxnêVèk@mbƒVƒnUK™@kKmXk@@JUI›lÛLllnbVnlJ@LULnlÆaVLnŽV@nkVJ„@lkô@²bÆm°w„L„WV@VXšKšVXI@W°ÆVšK„b°U„JVIVV„¦XKVL@l‚InaVÝnUl@@bX@‚™nmVL@lVL„lVLVUnbVW@xXn˜bœU°¤V@š™„a@kWKUUn@VlnL@UV@Ü»@mX@V_ƒakaÞ@VK‚¯@kkW"],["@@mUkUUm@nllVKXXVK"]],encodeOffsets:[[[113918,33739]],[[113817,32811]]]}},{type:"Feature",id:"4205",properties:{name:"宜昌市",cp:[111.1707,30.7617],childNum:9},geometry:{type:"Polygon",coordinates:["@@°`„U@blšUbUVlVkn‚ŽUbV¼Èb@l‚XUÒkVUVVL@lVX@ll¦k@UbU‚›@kmKULUbl„@`nXšŽ„V@XW`nšUbV¦šbmb@lšV@nnlmnU„m@UVnb@xVV™VkbW„nb‚VnVa@an@UaVU‚JXnWlXX@l„¦@ŽlKÆX„bX‚V@VV„@°¯°xXx‚XV@nV°UVWU_VWXkmaVnWVkn@lln@lb@UVLXWlnX@˜aXUmaVK@UXU„U@WVI‚W„XXV‚U@¥VKœ@‚Uގ„„‚a²LlV@kV@UanKma@UVUnK@UVLXyVL‚knJ@UV@@UXKWUXaV@Vb@mVLnKW„m@aUUm@@UkK@Ula„LXKWaXI@alKlmUk@wVKXL@m@WWn@UVa@K@wna@aW_XWWkXbVW@k@U¯WWwka@UUaVIVƒkU@m±@U@@wVKkaš_@VV@XUVwU¥‚šyUkm@V±ÈUKk»ÇL„m˜mLk@ó£kmWwƒm@U„IkWKXwWU@ƒkLƒwkbmaƒbkK@VƒLkmWIUKkUUƒÇIǫJ™XÅJULVŽÇLUVƒ@UK™@kI@WVI@UaƒWmXVVUL`±kÅLmKkƒƒkƒÅ@Ua›XXxWVXŽVbUXll@bkJ„b›„@bkVUVlnV@X"],encodeOffsets:[[112906,30961]]}},{type:"Feature",id:"4206",properties:{name:"襄樊市",cp:[111.9397,31.9263],childNum:7},geometry:{type:"Polygon",coordinates:["@@@Xl@Xb°WlLXl„_@JlVVInwVbVK@ƒ@UnlVbk„mx@VUnl@U@nbW„XJ@VlL„UVJVLUxVb@b@VȄ‚@XV„VWbnX@`l„kx@nmVnbUVVVšzlJn„šlVb„UV@@V°L@VXLWxnLV`l@kxlXnK@nl@XlWn„`Xnl@@UVa@VÈKš£VLVanW°U@UVU„@„`VIn‚mV@„nV@Xa@aVW@UšalkXKšblI„yƍXnlJXbl@@VV@nklU@`„nVK„LVKVb@V„U@UÈK„UVKšIlUX@V`lIVbn@nblVVmV@@XXJšUVV@knKVn@`@X‚VnK„wlLVmUUU@ƒU@aXL@WlU@UUW@UmU@KkLWaXkWmXUWm@U@ƒnk@UmK@U@UaUVUUKV_@al@namWUI@KUƒK@aV@WUIƒbƒ¥ULUJkIm™ƒK@U@K™V@U@a@UkU@K@wVaUwlU@mUƒULmKUkV@@anIWmUK@I¯„mKkl@LUb±lUakLmk@WwUKÝVUIm`¯n@Uk@makJU_@ƒƒJma¯ImwUVkKƒb™aUÅ@wWaU@VU@mXIVmmUkJkwm@mIlUKWzUK@VmLUV@VnbmLVbU@@lkU±KbƒƒÝV›@UL@¦VWUƒWXUJ@XƒVWV@VULnbWV—bW@kmWXUK@Vkam@kkm@UlmXUŽnbWlUXV`UX¯VmUU@Ul@Lll@nnJ@LƒnWmbmš@b™`ƒš","@@kUUm@nllVKXXVKmU"],encodeOffsets:[[113423,32597],[113794,32800]]}},{type:"Feature",id:"4211",properties:{name:"黄冈市",cp:[115.2686,30.6628],childNum:10},geometry:{type:"Polygon",coordinates:["@@VVUnWVXnVJ@„‚U@V@VXŽV@@IVJUnŽ@V@L@KlIVlVanLVbnVlI„ƒn@@a@Kl@@I„JlI@aXU@KlK„kVblJXU„VlU@V„bVkVKXn@VlxVa²I@VlVUxln@bšJXklaVWnLmÅ@y@k@ašI@W@aXIlVVaV@nnlKnLVW@IUa@a@K„UVVlI@wXKVV@IUƒla„@lUXwWƒnƒnalLlxXLll°@XwVKVaXIl™nb˜@nln@Va@U@k°ƒUmÆUVaXI„JV¯ÇUmmkU@WaKmakVm@U@aVKkkmKkVmIkǰ£@aUUVaVVnKlkX‚mkƒ@ƒlUVaX@@Um@‚™UmlUXV„UVU@w‚K²¥Ua@I@UV™l@U™V±UIUǰ»VkUmVI@a@U™m™ĉ™¯V±bŹĖğaÇL¯lmŽkX@‚óĀ@ŽmšÝêb±WkLƒn@xXx@Ž@b@V@LW@UbƒlţXƒ`kxWnXô¯¦ÆV@L@JVLƒxkK@V@bkz°l‚lXz@J„UlVla@XUV„bVKXnW`XXV@laVV@V„X@V¯xƒx@xULVbUJ@n@LU@VmmakbUK@b™IWWUUVkUmkLm@VJkb@nUJƒ@`V@kX™aUaVmmLkUmJ@Uk@U„±lkzmJUb@b„VUxVXU¤ƒL@JƒX@VlL@JkLUVU@mnUl„¦@V"],encodeOffsets:[[117181,32063]]}},{type:"Feature",id:"4210",properties:{name:"荆州市",cp:[113.291,30.0092],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÈJV„lVVLXJln„K@UlL„anbla„xlK@„XVWxXLlƒJ@V„nXxlnô¤l@nKn—‚ƒÈKl¼VL²Ç‚Un@Vl™zŽV¦UxWVU@@U™`lbUL@xV@²@@nlVU„UJVb@VlbXx°XVWX_VKUwVKVa@UVKUUVk@KnblaUU@wnWl@UX@lÆ@@a„IVmUk„™šxVJ„U„bܙ@Uk@WWnk@Vƒ„™Vm@I@m@Un@m™XUlVlUnJ@knJVU°@@aÆLX@ƒllL@¦nJV@XblLVa²U@UlWš@VX@`@LV@@bXJlIXml_lJœU°b„KÆLnVVl‚@ö—Vƒ‚mXaVIĢllUlVnLVlX@@b‚ašnnxšV„L‚bn@°ÆXmmkĉƒ¯w±™™™Uċ@KÝÅƧŃÝ癙Uw¯ƒm™¯k@W‚kV@¯UIUJW¼kb™Uƒwk@W`@¦Uônb@VƚlÈ@VU@ƒƒ£UWWnUÆUnmJkUÇ£VWUI@aUU@WkI@Uƒa@JW@k£kaWVUKmnkKƒb™kkVWb—VmUUmwU@kk›@UakUUa@V@nlx@lUb±lUbnnWLUyk@UamœUK™@mlk@Wb@VXL@x@xWI@a¯Ž¯V@bVn@LkKmL@`XmKmVU@@bkL@V±bk@Uaƒa™L™KUVƒIƒ„™W™XamVVbUK@b@Lm@UWkxULWVUnm@UlUX"],encodeOffsets:[[113918,30764]]}},{type:"Feature",id:"4208",properties:{name:"荆门市",cp:[112.6758,30.9979],childNum:4},geometry:{type:"Polygon",coordinates:["@@n@lxlInVUnWJ@nUVV@Xb@xVƚb„alLVUnx°Jnb„I@„V`lInbl@@V°mn_VJÞUVLXx‚@nllKVb²kVa@KlknL°ƒ@JVLXnmJ@bU@VlnLVKV„@nX@lUšKVaXal@VKn@¥°L@Unw˜bnašV@KV@VUX@lVXI@KW@@IXWV@laVL„„KlaXUVVnkVWV@lwXblIXWVkVmšaU£VaUmVIkU@y@WakKUamU@UUK@kmK@w@@mK@LƒV¯™U@WwkmULƒamVVUU@ƒƒIƒbUKUa™kmƒm@UakLmxU@UÒWlULţÿmwkIUm@a‚kÈblW@UVƒUUk@JW@XkWWUkUKUIlw@aUWknWUUmnIWƒ™aUwVaۚƒaƒVUI™wƒšVlUnƒJ@bÅ@@kVWk@mX@xVVkbma@LUlVVUL@VUbULVxULW`UX@V@lUXWaXlWXX`@bmb@x@LUb@VmŽXX@‚@nWKUL@xVlknkL@bWJXbWLƒKkb@VlL@Vn@VV@bƒnX‚mLUK@nUaU@WbXVWL@VU@@V"],encodeOffsets:[[114548,31984]]}},{type:"Feature",id:"4212",properties:{name:"咸宁市",cp:[114.2578,29.6631],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÞÆ‚LČ@šV‚š²š°xĊ„nlWnŎ¯m@aƒK@„„°‚n„Jšwn™VIUaÆJšÅ@wšwV™XW@aV_l@²V°lĊwlaXLšwlUkalVVaX@lVXI@a˜UXJ@U°UU¥VIVKVklanLVa@VÈIVV@nk@aVa@mV_@a„K@klKUa@UnKWk@@lU@@UW@@nUWUwmaVIXƒ„lV@mLXblJ@kV@kk@KU@WƒkUWVÅwkLmW@UmL@lUL™KULƒak@maUUÝwUJƒIb›KUUƒ@š™aWK@kUWVkUwVw@™mÝ@™I@wkW@a›ww@LU¥™kƒJ@nVJƒIkVVnkV›UkyUIUl@xWUkaW@@°kz„ŽWxkLUWmzk@@bVVVš„b@‚@XlVœ@Vl@bVbUn™`Wn—@Wb„VVI@`„LVbXLV`mnU@@lƒL@LUŽƒak@ƒLk@WbUJn¦@lVb@xVb@n"],encodeOffsets:[[116303,30567]]}},{type:"Feature",id:"4213",properties:{name:"随州市",cp:[113.4338,31.8768],childNum:2},geometry:{type:"Polygon",coordinates:["@@„@nš`lw„k„ƒ„UmUVWX@lk„@VanUĠ¼V@@mX@@nVV‚VXLmJVLnK@b„V@@J„@VUn@VaVUUUVWVLV@@Kk_@almaVkUU@WVƒVUVLXmmk@wUaUKUV@°™@kmaUaÈmW„mUƒVklaX@lVnxl@@UnaUk@ƒVUVwVK„nš@VVn@VbVJUknUmmVmk_Vw„KUUm™Vak¥@UVKVIkW@UmIVWkIVƒkmmLkwmVUƒ@LƒUU@VVXL@JmLUbmK@UUKmkKUUmVUaUnÇlk¯™mJUnmLUaUJUaWL@UkJ™ƒUƒ@ƒaklkU@¯@KWLUmUUWVkbƒLƒŽUKkbU@WX@JX@@LWJkUW@UVU@@L™Umb—amx@V¯K@¦mŽULk@WbUb™LkVW@kVVxUb@x@LlV@V@b@VšU@L@V„LnšlJVIVK„¦„aVJ@XUŽ@b„LV‚@LVJnXmbk@@bU`VLUVV‚b@V@VnL@Vml@„@VXnWVXnWlXblK@LnV@VVX@VkV@XWK@b„VV@VV"],encodeOffsets:[[115830,33154]]}},{type:"Feature",id:"4209",properties:{name:"孝感市",cp:[113.9502,31.1188],childNum:7},geometry:{type:"Polygon",coordinates:["@@VnXK@L@°lVlk„b„@„VšlI@VXKVbVIVbnKVmnI°šlŽÈkVmVbnUVVlLnVL@VnLVanK@IWKUUV@„V@KV„nUlxnKlnU„lJUXnJ@VlXUJUL@Vl¦UbnšVVƒLUxl`UnnnmVVlnVK„bšmVX@a°Ý°LšaXJV@VUnKVXVK@LnKlLUbVVX@VwVJVn„@@UU¥V@@UUK@ƒmaUVUkkJ@L@K@UmVUI@JU@W@U@UV@ƒUIWmXUVmUUÇ@UVmIlmnmakK@akaW@UwVUkKVnUlKVwk™ƒVU_WKUkVW@UXaWkUa@w@VU@XaW±@IkbƒKƒb¯L@WƒXkWƒ@UakL@UV@UmVUmL@UXWVL@ašUƒVUUUVU@yUUƒIUa@wUKWVU@kƒ™™Wk¯UkwVKƒLUx™K@nVxUlUUWVUmw@wƒUUyXWlX¦WbUV@„U‚@blbUVVbXXƒl@lVL@bk@lxkVVnVx™¦ƒ`UnkL@V@L@Ž‚@@xnL@lVL@VnVVblLXb@‚@zlVUJVnUbV¤™bUnUlWXkJWakxU@UXml"],encodeOffsets:[[116033,32091]]}},{type:"Feature",id:"4201",properties:{name:"武汉市",cp:[114.3896,30.6628],childNum:1},geometry:{type:"Polygon",coordinates:["@@nbnm‚knJVUÈ@@Uƒ¥VknmV@VUlK@IkK@U„W@I„KV£UWVwƒU@aVanIly²kVƒl@@VnIlVnKUnVbšblWU@@_„‚VI@mlaUIn@lKVnUlVVXXšJ@aVLlanbUnV@@K@mVIUaVK@w„w°w@UƒW@UUUkbU@WWX_WmULƒaVU@WkbkUƒV@IWyk¯kly@a@UlL„wUK@I@KÅUW@ѱUm@wl¥kaƒ@@_Vw@ķƒa@akw@ƒkKW£XVUVwVwUaU@VUU™™xWKkbĉx¯k±Uk@U`@bWXUš™x@x™ÆÅIVbUJmš™xƒImƒ¯@ƒ™Umx™nUVVbnJV„@Lƒ@@ŽkV@bVnƒ@UVULlx°VXlššl„V@XUVL@xVb„JVV@zUVVVUV„™V@bUKWX@VnKUVVnU@@VlKVb„@lX„W@X°K„a„Lla@JX²Wb@ŽUV@@xVbXlWb@VUXVlXLV`Uš„lŽUxkLmVUŽlLUVVxX@lb@blL"],encodeOffsets:[[117e3,32097]]}},{type:"Feature",id:"4202",properties:{name:"黄石市",cp:[115.0159,29.9213],childNum:3},geometry:{type:"Polygon",coordinates:["@@VšUVV@VbUx„aWUœblUVmnKlX@bXJVIlVUxVVVIU‚zlx¯š@‚VbnL@x‚x@UVaXK„b˜@Xk‚WU_Vm²klW„XVK„Žl@nXV@@w„mlK²X‚aÞén™@ôÿ@lWn°kUKmmUљUmm@ƒwkImWU@UakL@bVLUVċ@™bUK@alIXKWK@™nXnKmkUVwƒ@¯b@L„lUL±W™n@KULUaW@kL@lƒL@bU`@nUb@bmlU@UÇJ@UUbmKkblŽUULUJV¦¯V@VWI—V@bWJkUW@UbkUlbkV"],encodeOffsets:[[117282,30685]]}},{type:"Feature",id:"429021",properties:{name:"神农架林区",cp:[110.4565,31.5802],childNum:1},geometry:{type:"Polygon",coordinates:["@@n`lIXll@lœl@b°aVklKXaVn@bU`mX@V„V@nmJn¼„V@bÞ@lL@„lJXVlL„aVLV„nVnalV„@VLÈUlblWXIšKVU@J„™š_‚@an™na‚X„m@KmI@mkk@KVkWWw¯w¯°ƒ@UUU@WƒaÅWkL@ƒ¥@kWWXkWmIUVVbm@@bUbmUU„ƒbW@UVk@mVkU@U¯ƒmKVUkaW@aULƒÆVbƒb@VÅ@Un@VƒLWl¯Lš„"],encodeOffsets:[[112624,32266]]}},{type:"Feature",id:"429006",properties:{name:"天门市",cp:[113.0273,30.6409],childNum:1},geometry:{type:"Polygon",coordinates:["@@@K@UlKVm„_š¥UwUmlUkwl@@aUK@k„kWWUaVUka@aV@ƒVUXaW¥Xk@WWIklm@ÅxmI™VÝUkxkaƒ„@bWJaUL@„W@™l¯UULU‚ƒbƒkV™Ua¯bm¤UnÇUkmUšUx˜b@VkXÇal@bVnlJnxŤĀVKXkVÑV@nwlKVbn@n„šlVbVL„a„J@„VV‚UnU„bVKlnXxV@°š„U@KnL"],encodeOffsets:[[116056,31636]]}},{type:"Feature",id:"429004",properties:{name:"仙桃市",cp:[113.3789,30.3003],childNum:1},geometry:{type:"Polygon",coordinates:["@@VK°VškX@@ƒVK‚bXI@a„ƒlblwÞVšUnJÆwn@lkXJ@X‚WVz„V@xnx‚VXUVVVkUw@mšLVw„KVU„@Um@alU@„@@KUƒmIUaVUšmnwmw™mb@aW@UkmKkUkVġkUJWbnU„õ˜@UkmUÅKƒL¯a›VkIk`WnkJƒ@xVLUVVbUbk@WlXbm„VxnxUblbUV™@@VUV@nVL"],encodeOffsets:[[115662,31259]]}},{type:"Feature",id:"429005",properties:{name:"潜江市",cp:[112.7637,30.3607],childNum:1},geometry:{type:"Polygon",coordinates:["@@UbVxšbX„mJVnXVlmVX@bkxVJVLVlXXWlX@@IVl„V‚U—aVwV™lnÈVVmn£°aVbUš„l„aVUK@mVU@Uš@VUkaVamwUwnƒWaXkl@VaUaVUUK@w„WI@aU@@K@_UW™@kX@V±VUbkKWaU@mI@¥kK„kW@ÅK@b¯@UVmI@lmIkVkUWVnšm@@V@n@JUnƒšU„@ŽmlXXl@@V"],encodeOffsets:[[115234,31118]]}},{type:"Feature",id:"4207",properties:{name:"鄂州市",cp:[114.7302,30.4102],childNum:1},geometry:{type:"Polygon",coordinates:["@@°¥WóXmlw„_ŤW„kVaX@@K@U@a@WwU@mWk@ƒULƒWkX±lUnV`XWl—@ƒaWLUb@Vw@wmKUa@°™kw‚yVUJUUVwkUUJWI@akWmLUnkV›aXVƒbUxUVWX¤lL@„lx@b„b@ĸUx@`„@lbk¦@x‚n²VƄX@"],encodeOffsets:[[117541,31349]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/hu_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4312",properties:{name:"怀化市",cp:[109.9512,27.4438],childNum:12},geometry:{type:"Polygon",coordinates:["@@@n„‚@b@XnJ@k°x@aVUnl‚UXnV@@VnJWUJV„nIVV°ŽUbVVVL@޲LUVa°V@aV@nm‚UXblLXWVXVmVLVK@an_„`@X@l°„VlXXW`nX@Jmn@b„@nV@Lm`„bUb‚n@VUVl@nIVbUlƒV@LkJUnVV@xVblVUbU@ƒzUKU@mx@xUnn@@WV@lbUb@šnVWXX‚V@VIV@VUnJ@VUz@JWbXllI@VXVVL@ŽVn@„„Wlb@„Žl„XVlL„aV@VJ@XX`„kVwVl@bk„‚bUŽlVXIlƒnLVa„mVwV@@nV@XaVJVbX@lwV@n„@nV@VWnIVVUŽÆ@Xx‚a@I„UUKmk@mVƒ„IXmWUš™VJnUVU@anaVwk™›U@UXa@W™@m_@a¯@@K@UVƒ„bnK@blIlbXa@WW_n@VƒU@¯bmyƒUkUJÇÅ@WU@kWKÅwƒnm°KVkmankVWnXVWV@UƒƒwXkV@mƒ„UlLnaƒVaX@VUn@VnVK@xlnXWšU@a™@@klak™Vw™mUaV@™wmIÛ`m—@mVUXmlIXƒV‚I@K@aU@UaV_UK@wkUmmUKWXŽmVkUƒL@mƒƒU_nK‚™@aVU@Ukak»@U™™@ymUƒ„¯™ƒUUƒVKkam@™nka@ƒmwkLWb¯mkaƒ_VaVKUƒ™IUw@kKmU@WK@UnƒmaULkU@wUalWV¹U@@WUI@WU@‚_@W@U@mƒU@WbbUK@Um@@UmbUwWWkk@WU„a@anUUwlWUwUU@wlJVUnnV@@mnI@m‚K@U@w„a@wUm@_mƒVUUaVUkƒƒƒ_kċUk™VWLƒ@mlU@kn¥W@UwUWV@VÝU@lXLWVUbVLXlVIl‚knmU@VUJk@@„ƒ@™kVmwmVkxU@@XmVUb@xnKVLl@VxUxkIU`@bWVXX@JWL@bkb„¤@bmUUU¯Kƒkmb@V™VU„VVn@@„Vb@`lnœxmb„lUn‚bk„@xU„mV@bmWbUV@VJ„Il@nVUb‚K@nn@VbnJVIlJVkXJ@X@lmx@bnnWVXJWXU@UlU@mk@@llb°x„IUbnJ@VWbXVmI@JVX@bk‚@bWL@JUXUK@U@Uƒ`n@@Xm@XVW@@nX@@`ƒImxU@@JUI@KƒLmK@UÅUUV@VW@™¯kUU@UamVUUmJ@n„xmLKƒkmJkwkKm_mKXU@aƒU@b@Wk@ma@zUJVUmbUlU@™xnXlWlXXblK„¤V@@nUVVLkVš„l@Xb@VVK‚nXKVx@znW@X‚@@lVK@X@JXbWbnn@JUamLVVXIVxnK@aWUX@˜x@VnI@WlI@anV„IVxk‚l@lbXXšxVVVJVInbV@@ln¦ml@XXVWbkJWb","@@XLVKVXVKUa@UUUmV@l"],encodeOffsets:[[112050,28384],[112174,27394]]}},{type:"Feature",id:"4311",properties:{name:"永州市",cp:[111.709,25.752],childNum:10},geometry:{type:"Polygon",coordinates:["@@lxUXV‚lXUVnlVĢ„JVbUXVJV@XUW¯„VIUK@klW@Un@„nl@V`XUVL@l@šVx@„XXW`UnUbšxUlVnUšV„lb@VnJšUVVVInJlUšVnwVklKnw„LVJVšV@nIV@nbVa@KVVVUUa„KV_nVVJ@_VW„nV@n¥lI@anƒl¥X_VKlwVlULUVVVš@šU@VXL˜ƒ@IUmn@VU@wmKXUWU@m²šl@VIXWWkWUkWlkIVamUXamUnmWUU@@Un™lK@XJl@kVUk@mWKXkl@@aVU@UVWUUVa„In`VUVLnw@U@K@Uƒƒ@w@UVmUUƒ™°K@UnV@bV@Xk@KVm@amk„aU£VWUUmUUwm`UbULka›KXU@kVmU™@aV_UWVIn@˜y„XXK@klmV„V_kWVUn@WUU@UƒmaU@™wnwWanUmmXkƒam@UakLmK@b™xUUUU@Km¥Vaƒ¯@ƒkUaVUlm„UU@mUUÇmUk™Uyƒb™bUa™XUWWbÅLmL@V™aL@WWXUKmmk@a@UUK™XW¥kU@VƒUkxmVkUWbUJnVJ@nVJXzWxkŽ@lVbUX@VVL@`mbUnšŽUn™VV¼k@Ulm@mwLƒb@lmLUK@UamƒWkƒK@£Ua@ƒ›UkJkUmbVlkX@bWbUŽVŽnnUVl„@bšbVK@VX@lb„V@nU¤šx‚²„Knblb@x„V„ô@šlŽ@b@l@XWxnVl@„VV@XLVl‚LUŽUXV`šbXXmJU@@bm@UUkLW@UlUKWUUb™wUm™L@nklVVmVXXm@@bUKlÆn„‚XkllVUVVL@nUbV‚@V@nnV@xUn¯U@JW@UX@xĉ@™`m@@LV@b"],encodeOffsets:[[113671,26989]]}},{type:"Feature",id:"4305",properties:{name:"邵阳市",cp:[110.9619,26.8121],childNum:10},geometry:{type:"Polygon",coordinates:["@@XIlJšI„VVK@n@VVVKnLVwVmnLVK@U„@šw„J@wVIƚ°X@ÜȄUÈxll@kn@VwVaXJWXn@@WVL@UUKVKV_U@@aVK„x@U„aV@lk„@XylbUaV_šVnal@W„U@a„I@aV@@aVUl@Xm‚UXWaXml@@kk@ma@V_UnUV™UUWJUa@kkaWLUmk@@LUVWUkJWkK@¼UnWJƒIkV@b@JUIm@Ul™V™m@Uw@a@kWƒXWKUknW@ƒWUU@k™mx™UkVmIUJUU™VmI@UkaUƒV™UmVk™wVaVmX_WW@ƒUw@™@kUKWVU_k@ƒmm@@VkX@lVLUJƒX°WVU@UIVWUaƒIUġmkVUkWUVWkwWXk`mI@¥kUVƒUƒUn±@m›XkWknV„UVmmU@@XƒVƒUk`@Xƒƒƒk@¥¯»mbĉó@mkU@kU™ƒƒ™KmX@˜UnmL@lULkKUƒWUU@ƒbUaUnƒ@Vb@l„¦Ub@l™@UKmnƒKUnl„UVVbUVn„@`Vn@xƒb@x@VL@nmJ@nU@mmUVkI@xVVVxkXVxmV@bƒbXVl@Xl‚XVxna@Vn@@VVL‚aXaV@n„‚@@V@X`V@@XVJ@XV@UºkXVb@xlVVKnbm„@VXLV@n‚lL@VxšJV„ULUb„`lb°nXalKnx@„lbšmn@lbULV„„V°š„ƒnV@zšš@Vl¼lb@VUV@bšmLV`„„@n„KlVnU‚XWVLnnlV@xVLU`VbV@"],encodeOffsets:[[113535,28322]]}},{type:"Feature",id:"4310",properties:{name:"郴州市",cp:[113.2361,25.8673],childNum:10},geometry:{type:"Polygon",coordinates:["@@²zVaVlnVl@nšVk„Jl_XJlIVmnL@mV@VXn@lV@‚XzV@lyV¯²U@UlJ@XVKnVVIXl@UVLV`@n@J„I@mlI„KVLnUlVUVVLXašKVLl@nb@ŽW„XV°KUnVV„L@xVJ„L@b@LUVVVU„˜VXbmbVbn@@lUbm@x@XVVVŽ@@˜@bkImx@Vm@Xbƒb@l°XU¤„a‚L„mnL@bl@@™VUX@VxnV˜anLnƒWƒ¥XKVwnUWXmVIUWÆLVx„L„w@wVmlU@¥XƒWUkwlÇn_Uw„WV@VU°wnU—ƒy@aVškVlnL@lVn„w@VlJ@b„X„x@bVKnb@U@WVUl@@Vnbl@XLlK@aVLVKnxÞn@a„LlmUaVU™ƒm@ÅknUmaUKmVk@m™kk@UlWUkVm@w@kUU@W™U¯™¥@w„Ç@aVIlUV@kUWU@UUm»@k@mKVkUKUwƒaUaUa›@k„kUWJkImaU@UK™@maUzk`@zƒy@XmJkL@UUJmUkV@z›@kŽkVmK@¦UbWL@a@UbmKmwUK™Xk›VUUkmVkw@UUKmL@WUIWa—JW_k@@WmI@mk@WkWULUUVKUUVm@šU„bš@‚nUǃ@U@w„™V@Ua@aƒL@ak„›l@k™UƒJƒwó@@L@V@„™`@œƒJ@xnn™šmV@bkJmUó@ƒn—JW„UUmƒU@UV@Lk„WlnnmVXbmxšxV@nbV„V@XVm@UVlXU`ƒUŽkn@lWLƒW—zm@UJVXU`@bVšUn@lWVœLlbVKVan_VxnVVVUXV¤ƒbnl@bUn@LWlU@@amU@V¯L„šVVUn@V@x„„@V@L@VmxUKUVm_ƒJUbVV"],encodeOffsets:[[114930,26747]]}},{type:"Feature",id:"4307",properties:{name:"常德市",cp:[111.4014,29.2676],childNum:8},geometry:{type:"Polygon",coordinates:["@@l™U™mkUwUyV™@VW@¯Va—VmUU@KVUVUVLnaWƒnkUÓV_@mVU@݄w@ƒka@kVmƒUmK@IkaUamKkXWaUW@WUk„™@@KVU@aU@™L@J@XÇVUKVak_mWkLWakVUbmLUUmlUVKUU@kUWW@UImJ@xkLkKm@@Xƒ@ó݃@UUk@UKƒV™ƒULƒKƒXkWWbkaƒIUƒWU@mUk@WLaUJġ™ƒ@@XÈÆVIl‚„Vnz°aV@U„m@X`@XWbkakJ@amLƒaU„@V@L°@@bn`š@@XWb@VœVlšUxmb@bUVmVUI™šXVWnƒJU„@nnlVLƒV@JbWzk`m@UVK²V‚x„k„LVl„@Vn@V„„°xVKVkœVVlUblx@bU„‚Æœ@@nVnUll„kx@VW@@VkLWxUL@bÝ@kKkVõV@bkXVVUVƒ@ƒVkUkV›LkV™a™@@™ƒ¯xUxmX@JVb°WXkK@Vm@k„Vb™bn¤‚xUXkJƒblxnXÆK²l‚_@Wnašn@ŽUL@b‚JnIlV„@lUœ@@¯ô@lWȂIVKVm„U@aXaV@lwVXn@@K@UVKUUnU‚bn@lWšX„ƒlJnUšLšKV@„„l@²a@UlK@aV@naVX„WV_nKlL@KUm@a°U°@VXL@a@wWmXal@„k„@VLn›V@@bl@VnX@mwVa²aVU@mk@"],encodeOffsets:[[114976,30201]]}},{type:"Feature",id:"4331",properties:{name:"湘西土家族苗族自治州",cp:[109.7864,28.6743],childNum:8},geometry:{type:"Polygon",coordinates:["@@@KšL@wnK±nƒnm‚—@WUk„ƒÜÈn@n»@mVamk„mšU„„l@V™nmmU@wUan¯VKšLn„VWlInyWUœI@WWk@KXU˜n@mnUmU@WœƒmkV@ƒkXašaVaUm‚Ikƒƒ@kaƒX@ƒUm@UKWU@UkJWkXa@IVy@UmIUVU@UJU@WXWmU@™VakaU@@Xm@Vm@wnwV@VL„yV@VakUUa@wUUVmlI@K„UVkUamJk@VU@UmVaƒan_@KmUƒ@@anm@ImWX_WWUk¯ƒ@k@Wƒ_m`@bULUKUnUWWXkKWaVmnU@@b¯UUbVޱK@UKUUVa¯UUmJUƒVIXmI@UU@WmVmkUV@b¯w@lmI@W@aƒ@m¯LXbmJVLklWL@V@XXŽmbVVU@@VU²Ul@VlX@bš`Xx›zUmkUVÒlŽ@bXLWxXVlš@V„bkLma@nmVmULVbmVUb@lnzmbUÒVl@°nLV„lJkn@bmJk_ƒVmmkblxÈx@LUb„xVb@V™n@JmLVŽUš@„nV@¦VbnJ@lVVbkx™bm@UxVLV@n`UnVVV„kl°z„xVb@VU@@ÆlXnWm¦nbVK@XVVUVVl@X„KUV@nVL@WnIWŽXLVKVLlxUbVKXVWbn@@UnKVLVb„JšU@aVU°b"],encodeOffsets:[[112354,30325]]}},{type:"Feature",id:"4304",properties:{name:"衡阳市",cp:[112.4121,26.7902],childNum:9},geometry:{type:"Polygon",coordinates:["@@lšV@XV@„mXVlXL„W‚X@l@bVxn@šŽšUVkn@VJ@I@alU„JXIVm@»‚LXllIXVVU@Kl@VnXKlb@lVbXIVVUšmVVU`@nbl@@lXLVVVKVbnXWJ@VXbWxXb„Ul™VK„¦nLVVUVVbšb„K@U˜LnK@Un@VxlUV`UnnL@VVL@JV@VUnxnKVbV@@VšIVUnJUVUl@nW„XllIUa„KVbÞLV¼²`V@VIUwlaVmXa@IWanK@U@m„kVƒVUVaX@lšnaVLÈ@‚¥@kkJUWJUaƒXkaUm‚wVXJ@_lWUU@¥n_‚KkamUK„™@amKƒnKƒbV£¯W@k„aWan@@UnwlJ@a@—@UUU@W‚wn@Va@km@UanaWa—UVƒUUVU@K@aƒKUI@wƒKUUVm¯LWUXƒ@mak@UK™LWbUKVUkUmVUKƒLkJ@nƒJ@I@mU_UK@VWkUJmUUL@WkI@V±VU°kzU@Wy@kUm@UWU@@nmKUnkJWIk`ƒIUlm™k@mUUkUb±yUX@VUV@bk@WlXL@nVlUl‚k@WI@ŽkLmš@VV@XVmnnVWbnVUblJXkVl‚XXlWXUJk@±™@nXVWVnL@xUVm@Vn@J—„WK@U™V™@UUVUVKUkkxULW`k¦m„@bkJm¦U@ƒmUX@`UImUU`ƒLVbUVUU@LUbmaU@mJU@U™UIƒKmxkLUl"],encodeOffsets:[[114222,27484]]}},{type:"Feature",id:"4306",properties:{name:"岳阳市",cp:[113.2361,29.1357],childNum:7},geometry:{type:"Polygon",coordinates:["@@@wUklmUUmU@@UVm@wUaV_mmUKmwkIkJmUUnm@™™@UUƒbUKUƒmÛamm¯xVLkbÇÆƒUƒVUzkVUlƒUUKWLX¦W@ƒVUUUaƒKUbmLKm„@akU@aƒmVaUUVIVWkk@wkƒƒ@@xmLlmÅwmbVlXlÝIWVkK@kkVƒL@VWKU@Ublnaƒƒm@b@bšnW`@XUJk@UUWKƒk@UKƒnn‚@xmLUVm@kbVbV„nV@V„b‚@KnV„LWšXŽÆV̦VblŽš„n„UJWz@ƙVóUVbkV™aÅx@¦lVUbVVknWKƒ„k@ƒwƒK™VU„Å„ƒl@zkb@`m_mJ@xX„mbVbœ@llV@n„@llbXL˜UXalUšl„alVnwnLVKlšVbX@@I„V@blJ@bVL@VVVUXȤ‚VnkVÑXmlbnš‚„VKkÑř@UmaVç@±XUlI„xlV„@VaX¯lUVVUšVJn—V@°°nް„Vxĸł°¦šb²¦lJ@U@aUK@kUm@_m±VIXal@„Kl@„bV@K„K@k„m@UmUUaƒK@_UJƒaXU˜@Xmš_VmUk@WUk›@kU@a@m@UƒaUUU@al@ny‚XXWWwkly@¯n@@bnV@k@mVI‚„œVlUUmlU„JUw„I‚bXƒVaUal@K„b@ƒVKVkXVl@VkUU@ylUœVVaVL"],encodeOffsets:[[116888,29526]]}},{type:"Feature",id:"4309",properties:{name:"益阳市",cp:[111.731,28.3832],childNum:5},geometry:{type:"Polygon",coordinates:["@@„ŽÆxXL@l‚V„@̚VI‚bXKl@nVV@„XVŽ„JlbXalX„W„LVKš„„UVLl@VV„@ôބ@@Wn@lLlK@wnIVJX@VX@lVVUL‚VnkVVnKValUXblKnXl`UbVLÈU@W@IšKV@@bUV@Lš@lƒXV‚@VXXblWnLVblb@JnL„VUn@llb@„ƒx@ÞUV@nU`VÔmlX„mbUKUVUV@LVVUn˜ŽUb@°UXš@U‚VzVxnlVškšVnlVnaWƒ@wnIn`@_la@y„kƃVƒšU„L„xl@„ƒXLlmUUVakU@¥ÆwšblUUaôVšU@ÅXyVImƒ™ƒkUaġ¥ÅUWX™ƒKmU@Lƒa@UmUUƒUalan@VUnK@wm„m‚L@V„lXLVVl@VI@WX_™m@a™¯mKUkwW¥UK@_UWWLUVkUWL@WUIkVƒU@JƒwkLUUmJVI@WkXm@VmkKUIU@mmm_@VUV™@™„kJċwUU@KUWkkW@IWW@km@klwkWVkkU™V¯m@kWLU`mIkmkXm@@`@L@xUKWkU@VL@JUU@mbUKVa¯WVnL@`lXUVkU@xW@UbUWVU@UJ@„lnU@m‚nÈmVƒa@bUL™wUb™@@VkxmUUƒ™UV›K@IƒUƒmk@akm@wmIƒŽkK@b™VWXkm@wULUmm@UVW@Ub„mbkKƒVn„U@Wl„xV„U@UXmWUXmlnbUl¯Lmn"],encodeOffsets:[[113378,28981]]}},{type:"Feature",id:"4301",properties:{name:"长沙市",cp:[113.0823,28.2568],childNum:5},geometry:{type:"Polygon",coordinates:["@@lVUllXkx@lln@‚XX@JlXXl‚V@LVVČxlIšƒš@VU@Un`nnV@VJlLUnn@lW@XUJnIVVlK„x@I„VlUVJ@XXKlVVUXKVX@`VLX¦lxVŽnLš°‚an@„„‚bkmVaV@XL@U„KlU@llLXUÞJWkUknaÆxnŽ‚knK@w„@l„@xllUXUJVVUb„n@blV@bnƒ‚LnKVa„LVbVV„UX@W¥XKVL„VVklUVy„U„VÈÅlaUK°wnnÜbn‚V„VL„aVVš@šn@VmnVlIlJna„@Valkn@na@amwm@„UXw˜K@aUUVUUaVa—wWK@kU@UaW@kKUUƒƒ@k™W¯XWan@k„™mmÅ@@I@U@KmLkaVUƒKkLWVUƒk@UVmU@am@kkk¥ƒUƒVUK™„maUb@ŽUb™I@aƒKkkWm@W¯K¯b@VmaULVxUXlVk@UxVJVbUb@xULƒ@ULWW—LƒĕmxVVL@šVb™KUwƒaŲWwX@@WƒUWLU@VbkV@aU@@VUnmJ@VUn@VƒLUK@U‚mUIk@UÇmU@@UW@J@LƒbUmVI@aUmW@@bkXUx@lmLUbm@UbkJ@V@XmlUbkKm@ma@kUaVU@aUK@mImJUIkVƒUƒVUakbWwka@UWKkLUamKUXm`Å_U˜ƒULmaU@@lUV@X"],encodeOffsets:[[114582,28694]]}},{type:"Feature",id:"4302",properties:{name:"株洲市",cp:[113.5327,27.0319],childNum:6},geometry:{type:"Polygon",coordinates:["@@X‚‚Unw„Ė˜KXXVK„@VK@wVaUaUIVwl@kUVWUwVKnb@U°a°LXŽ‚@Xnll„L@bšJVa@VanbšƒVL„U„V@al@@UV¯ÅÇ@Ummk™w@¯ƒyVwnUVVVUkmWV—nKVUƒa@WXkVKn@lUVU„VVVXIlV°VnI@VlKnV@mwVm@LXKWkU¥wWwƒƒ@k@m„X@KX¯V@VUVa@VnKWkœƒV@VUkm@aWa@wkUWwkmV£VÿXUVL@mVIXaò@nW@ašUš@@am™@aUU„UmXmWUk@ƒƒnUW@_maVm™wUkamaUL@aƒwƒW@akI@UƒxUm@kmKUk™lUŽ@b„zV˜m¯xUVU@ƒXVxm`kÈlxXVW„@¦kVUn@xƒxƒKUwÅKVXUJWnXŽmVUxWL„¦XŽm„mK—bmUUwW@UV@šk@ƒšVLnŽlbLm`@¦VVkX@`WIUށxVnlb„WVbXIV‚lI@l¦Ç@UKmbk™W@UbUVU„ƒl@n@VmLXb@JWbUnkbVxUJUxWXXlWL@V@V@XXJWx„zUVVVVKnXW`@bkIUl‚„nLVJUbUIWVXlWV@XklVbnn@xlš"],encodeOffsets:[[115774,28587]]}},{type:"Feature",id:"4308",properties:{name:"张家界市",cp:[110.5115,29.328],childNum:3},geometry:{type:"Polygon",coordinates:["@@@InWVw°wš„@š@šblUœKlUlV„U„@VUUUlW@aöUlUlLÞ@@aVKXwlK@UX@@UlwkƒVkUm@m›@ÅVƒ@akwVaUk›UUlUL¯wƒƒ@UUmƒ@UkƒKƒlw±UULVn@l_XyWwÅ@VUUmJUXU@@mmƒU@kxW@UaUIWbU@@mU@UxƒnUbmKk„WJkUValƒ@aUkUxƒlW_@WUIU@ƒbkKWUJVnUb™bWb„lU@nl›„@XnVmV@n—mWV@LXl@X›JXVmzkJUXmƒ™KULm°Vb@xnVmnUšk@ƒƒ™VƒnnlUb@nm¼m@Ûǃ„Vl@X˜mnm„²ŽmL@x™K@LUl@nULÆx@V@VXVWbXX˜l„@nLlm@bVKœX‚W„L°bnUš@VaVUš@šmšVw„JnwVK°zn@V‚Vb„a„@Ċ¼"],encodeOffsets:[[113288,30471]]}},{type:"Feature",id:"4313",properties:{name:"娄底市",cp:[111.6431,27.7185],childNum:5},geometry:{type:"Polygon",coordinates:["@@lL„nJ@xln@bnlV„‚„@JœLVUšŽV„nVlw@Uš@VašxVK@a„bnUmÇnV@km@ƒ‚I@VUVVXVaX@@wlVVUkW@_mKXU°‚UbVLnaV@‚V@IUKV@XlVL@w@K@_n@lWlnnJV_XK@l°nšU@WVU@kV@nbVK„V—lƒ@nLlƒ„LXU@ƒlmkw@nW@UKVa¯IVn@@aVUUKl@nXVKVn²a˜ŽXblKnLlmVI@KUU@akLUaVa‚UXm@aƒ@wVUVKnLnWlXl‚n@@U@anUVm@U‚Inm@IUK@UmKVmU_kVUwm@@VmL—K@VƒL™aUaVUUUmKƒ¥ULkšƒVWaXwWa@UXImWUaULUUWKk@WnXbWށVWnk@UV@bU@@bƒJ@bƒV@XkŽmb™UU`VbkaWzƒ@klU@ƒb@VƒwUL@bV@U`ULVL@VUK@Xm@XWWIUbUxm@@lkkÇwƒVÛÇW@¯Å™UJ@xƒI™xƒ@@VULmKUnUxmKULUUm@@‚ULƒU™JkIWJ@b@LJUW„kJWnUV@nn˜Ü_nJšxU@VbšnUxlškb@lš@"],encodeOffsets:[[113682,28699]]}},{type:"Feature",id:"4303",properties:{name:"湘潭市",cp:[112.5439,27.7075],childNum:4},geometry:{type:"Polygon",coordinates:["@@Æ`n_VWnLVblKXL@VlbXxlaVb„U„VlUVJnInJ‚@VL@bUVVb@lnbn@lLVank@W@UlIVan@VanK@kVwlW@aX@Vn@bUJVn„a@K‚IX@@VV@nŽVÈl@VJn@VVL„K@UVm@UnIVm@UV@@blUUaV@XK„V@XW@XxƱ„bVxšLUa@™UKWk™@wmmUalk@WXUWkXUVJVaUImKƒVklJ@aX_mWULUUVUƒyXwWI@W@U@UXKWkXWVwU@±_U»ÝKUaƒLVbkJkƒWmXk@UVVŽmIUV™J@UU@UamLmwUVU@mnJ@VUnmV@b@Vm@kkWmXmKULUV@x„Ž@bWnVUbVblK@bVV@LUJknmKkLWa—±bUmULmWk@VLUV@bm@U°JUbVLX@@mlxkn@„WVƒKk„mK@k„"],encodeOffsets:[[114683,28576]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/jiang_su_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3209",properties:{name:"盐城市",cp:[120.2234,33.5577],childNum:8},geometry:{type:"Polygon",coordinates:["@@„n@‚°ĀÞ°@¦ULWKkx@bkLWb@lUlVXXJVbƒnUKmxXV@bm@@Xš‚„LޚܦXlVnš‚mzVJ@n@‚²ÞôkƃÞaȰĉ‚wnljÜó„éVÛnĊīČlj‚ĉ@ō@KÞUlU@ƒkklÇÈњÑlġXɛ@UġƒƒaU@U_ƒW@n™@kaUL@VW@kKmkUV@bkbWW@bkzma@ƒJWI@KUKULƒ@U¦™`@XUJ™U@KmXƒw¯KXkmy@aUIWJXXmV@K¯UU@@bVL@¤VLXbV@@JVXVK@„„JVn@bkKmakVVXUVVVlI@`U@nzVVƒb@¤n@@UlKXLVVšI@V@nV@V‚@ÈUx@šóVōšƒkÅWó@mU@bk@Ýwk@WbXxm@@J@zV@kVƒbV‚nLWVUX™WUXUŽWLUށ@Wl°z@VkxU@UVWIxWJkbƒĬ„nW@@bUl"], +encodeOffsets:[[122344,34504]]}},{type:"Feature",id:"3203",properties:{name:"徐州市",cp:[117.5208,34.3268],childNum:7},geometry:{type:"Polygon",coordinates:["@@XKVX@WnIVx@K°Lnll@@I°K„nVašU°x²mlxš@VanU@aƒk@akmV@@w™@Ua@aUwVwUw@w›@UK@£kaĉlóIÇVkޱ@@kUKmVkIkxW@Ua¯UUm@UVI@WVI„JV@ƒ@Um@Uana„U@m‚I@J@XV@XaVlkXƒVaUUWLUyVIXmWak@ƒXkJókƒJUL@KWkk@ULU@Wa™lUIkJmI™mk„VbVš@lV°kXUKWKULU„mb@VUlVnƒb@VV@IVKUUmU@ak@@bmV@xklƒUƒU@UKmV@nƒJVbkXƒKUamLUJ¯UUVmI™bVV—Ll`@LƒLU`m@kXUVU@V„lxUK@xkIWbUKƒx@V‚kVVn™b¯@@U™@ƒxk‚mbkLÇK™b™@@XnJ@LmVklƒ@@XƒlUƒVkxƒakVVb@bVnUbU@@x˜VUšVb@š„ŽnIĊ`šXVVôJš_„K@xlU²Klk„U„@VaVVÈm@kVUVmnamUUaVƒXIVJ„@‚ç@¥nkVLn›„@@XVK@VUX@JVUV@UnVJVLUJVLUVlšnI„b‚KnU@m°™VanI@anV‚KVL„an„lK„blš„KÞk@¦@¤@„VKnLVK„L„KVzlWšLX@VmV@VbnU°@Ualk™˜WXLVU„KWkUUWšƒ@£Wa"],encodeOffsets:[[121005,35213]]}},{type:"Feature",id:"3206",properties:{name:"南通市",cp:[121.1023,32.1625],childNum:7},geometry:{type:"Polygon",coordinates:["@@VJ@bnzWl°L„xnW@LšVVI@Wš_V¥„@VKVL@LXJ„I‚@nbly@aXXla@aVUnllLX@@UVKlbš@@m„XV`V@„bĢ„lkČÇÆƒȘ¯šwnĕVĉVÿšUƒUĠƒŦğlXÑVǵ@±ōLʵ˝lÇbÝÞ¯xk@Çkķé™n¯@ğŽġƴǫ@kVVlUbƒL@xULǂóLUl¤@nkVV°VLkxVb@l™aUXUKWĖklVX@¤UšƒUkb"],encodeOffsets:[[123087,33385]]}},{type:"Feature",id:"3208",properties:{name:"淮安市",cp:[118.927,33.4039],childNum:5},geometry:{type:"Polygon",coordinates:["@@šnźUôÒɴ胚l¦nĖV‚kbmš„X@xVlVL@xUb@bUJVnUx‚šœ„lKVLÈx‚m„zXV@lW@XV‚b@bȚVxnb‚ƒVIXa°L„aÆVVaXUlK@aXIƄVlXKVUlIXalK@alwXLVK@¥Ý¯¯ÿ@ƒmVk@aX@ƒm„īlaXI‚wXJVUV@lw@U¯yb›UaƒUġUÅaUKVknaġm@kUm@wÆIV±nLÆw„ÇnUUkƒ@ƅÝU¯JÝI¯¦Ul@bƒ@@VVL@l@LƒLÅmƒL@b™@UaVaUWmLUKV¹KƒLWKX¥WI@mXk@UmaUVUU@VmL@W™bkIUWƒUmVóIkbmm™@UbVLUxmJkU@bkJWbnXU`Wz™KUÞÈlVb™Lmx@„kè@Æ"],encodeOffsets:[[121062,33975]]}},{type:"Feature",id:"3205",properties:{name:"苏州市",cp:[120.6519,31.3989],childNum:6},geometry:{type:"Polygon",coordinates:["@@ôèĊVnX°¤²„lxƒÈÜ@²x@J@b@X‚`nIUƙUUV@bl@VVnL@L@xƒJ@X@blJXnW@@`XbW„kVƒ@UbVxƒXUxkV@LóxVbUVWš²šVJĸklUǬ@ĢƳĠ°@šmƒī°»ÈÇ¥ULUU±a@bU@¯ƒU@KnImUVWUk™mXUVU@lIVaUUVWKUbUkWKU¥n£WakJUkUL›K¯L™KkƒVIn@VaUƒVUUƒ›UkVk@ƒU@amUkJƒ@UUlwX¥W@@UkVmk@JUakL›@kk¯ÝmJUn@nmVXlmbVVkn@„UJ@±WUxV¯a¯KōbżÇxUxƒšUUlWL"],encodeOffsets:[[122794,31917]]}},{type:"Feature",id:"3213",properties:{name:"宿迁市",cp:[118.5535,33.7775],childNum:4},geometry:{type:"Polygon",coordinates:["@@XbWnUJVzXKVVUbW„klUWbU@@W@IJ@nƒVmbVbn@@V@„UŽƒIUJ@XUJ@VVn°VVbX@lwlJnUVL@l²@lÈUôJĊklb@¤VLœ@@xVxUxVx@bVbš@@xU@ln„mnX˜mXLVmV@X@lxVnVJôL„LXa‚x@b„@@KVL@bn@@m@™@alLUUVaU¥nIV±‚I@mXI@aWWXU@LlUXWW_XWmaUwǙ@aaWUX@@kWUƒynÇwUKkL›ƒ™VwUmVI@aVa@wUKUk@wƒWn™laUmĕk¥„™ɳçóÑŹV™mmzkVmm@a@Ióƒk@@LWU@`—„WbXLWlkImJVn@`nXVbXŽmL@Vn@‚l@nUVl°Xx°U@LVĠ@z°˜@¦UV@Xn@VJmV"],encodeOffsets:[[121005,34560]]}},{type:"Feature",id:"3207",properties:{name:"连云港市",cp:[119.1248,34.552],childNum:5},geometry:{type:"Polygon",coordinates:["@@@‚lzXxmÆV„„@@¦„@l`XnlKšXXm‚KnLla„b„@„xmbm@kL@V@Vl@@VUXšJX„mbš@@„°Æ@èÈzlW°XĢJlÈ`lInbšWV_@mš™@UUķnƒôw°ÆmnaVƒVÛVmĸ»Ģw±Ý@@mUIny™UmWkۥݙƒK™@Wn@@aWUnwVL„mUaWIUWVk@kkJUVWLUkŃWJ@bkLWVUbÅUƒb¯KWbUJ„WXX`WXkV@KWVXX@bWJ@nJU²mJV¦UbVVkK@b@š@nm@@aUK@Lƒ@@awWbƒKóKUIUmkwW@U@UnWK—nmWƒn@b„l@bmVUb™@kw±n¯w™VUb"],encodeOffsets:[[121253,35264]]}},{type:"Feature",id:"3210",properties:{name:"扬州市",cp:[119.4653,32.8162],childNum:5},geometry:{type:"Polygon",coordinates:["@@VUXblVVV„b@xV@kz„V@l‚wVLUbVV@VU@VbUbl‚b@nkͰIÞV@Ɔ„VlmVƒÈÅxmKU²ÅJ@xVn@lĢnmbUlVLÆbĢV„V‚bœV‚aXk‚@VXKVVWšXVWXUmKU„aWaU@™¥@£XW‚UUV@@ynam_VWkUVUna@ÆV@mnkWmXkWU„W@k„@@akklƒlWUI@UnKl¥™I@VVma@a@I@U@a@anK@UmK@ÅVUnJl™kI@aVwka@mVIUW@UWL@WÅbmIƒƒULka™UWƒUxkLUKWlXL@VƒImƒÅVƒU™mĉL™Uól¯I±l@ÒUbVbUVVXUJUnVV@lnbl@"],encodeOffsets:[[121928,33244]]}},{type:"Feature",id:"3201",properties:{name:"南京市",cp:[118.8062,31.9208],childNum:3},geometry:{type:"Polygon",coordinates:["@@k@ma@kUUVmVIUWVUUaVa@Ѳk°Jôk@Wmk¯KmX¯aUakKƒƒWU„@XU‚LXaV@@mUaVUUl@VmkaUXm@ƒWUUna°IlmV™m™IUW‚@Uk@@aV@VVX@„V‚I°»nm„U@VKVan@m»UaU@U_@WlIUa™aVaUala@¯n@‚ƒkaUkUUWKU@mwkUUmmL@K@ƒLmUUVƒKƒVÅImU—JƒƒVkVVLšèVLVU@W„L„V„š@nVÜULVŽUL@bW@XbWbkJƒUUVUxVXmVk@WUUkVmIƒV@„nbnVWbƒJU„kUULƒa@Jma@XkK@VVL@L@JƒLUVU@V¼ƒnXlƒbm@kbUKmn@lVb@VXXV‚UV@b@LVbÆxXbl@@lV@U„VV@XVK²VlIš`„UbVbUlVVn@WXn@@VUV@„@KmbVLXқLkKƒV@nX@VVUV@b™nVllbšmnb„IWVXU@`lLlknVnmlLlbUmVInK°nUƒU@l@VU@Vn@„ƒ@alI„`VIXaVaVa"],encodeOffsets:[[121928,33244]]}},{type:"Feature",id:"3212",properties:{name:"泰州市",cp:[120.0586,32.5525],childNum:5},geometry:{type:"Polygon",coordinates:["@@lUU@@y@In@WwXal@Þxl@@anVô@ÆX„lŎ™ôU@™Vw@ÇUU@@m@U™JUUWKkL@Vm@@£„aUUmyV@@_kJUUVUUWlUnblL@aUmƒI@ƒULUW@IU@WaUK@£UK@aV@°V@LnUWWXIla„VV™@£UWlkXĕVLVWšb@kUalwUKU¯lU@mk£VôKȁVK@w„KVaUkķlUI±™ğ¥ÝUʚ™Ž¯ôm¦ƒĸ™‚@XXK@VVXUJ@nlbUx@blJkšmIUV@ÆnL@VmL@b@b@V@J@bnb‚U@UšJk¦mL@VVJkXk„ll@bƒ@@lƒXXVWlXnml@nÅU@ŽmbUVlVUXn`mb@zU@V‚VWX@¤š¦V@Xb"],encodeOffsets:[[122592,34015]]}},{type:"Feature",id:"3202",properties:{name:"无锡市",cp:[120.3442,31.5527],childNum:3},geometry:{type:"Polygon",coordinates:["@@nLƒÒlxUVkL™am@™ƒkVWUULUxVVVbUV@bVLU‚nnź™ÞVĠ¦X™VUUaôw@KlUVw„WUwVa„@lUXƒWa@_X@WmkI@a@W„I@w@KmKUUk@@aVUšVVÅmJ_@W@a@I±wÛ@ƑÇkw±ƒ¯£mWĉUóçƒK¯VkUWK@XkV¯UWabƒmUa™UUb™lln@b@xƒbXŽWX`@„VxUblL@bn@Vb@`m@XbWnn@l¤„n@xnVlU„™VLÆWœkV@VbÞJ‚_nƒl@nKVU@aU™U@mVk°WVLUV¯bVXŽ˜bXlVn@VmL@x—V@bl„š‚@œnW@X@VVJ@²VJVU"],encodeOffsets:[[123064,32513]]}},{type:"Feature",id:"3204",properties:{name:"常州市",cp:[119.4543,31.5582],childNum:3},geometry:{type:"Polygon",coordinates:["@@„L˜ŽnxUbVVƒL@xnnW‚nn@VVXn@‚yœImx„„°ƒšL„a‚¥n@VkšKVw„W@nX„VJ@b‚@UVn„ƒ@UnUV@L‚b@`VLklVÞn„Æ@VaXLl™ÈJšmmVUK@aVUUaUUVwVKXVlUš„n@šblKVUkw„ÑmKUVUI@±UI@U@WmX@›™kƒ@a˜U@wnK@UUmWk—aWU°aVUUK¯XUl@nVŽVš@bUVmLk@m„`ÝIUaU@›lÅXUKƒškVmU@wƒmk£m@XmWan@@_Uam@@akKVaUw@ƒW_XW„a@w@akmm@mL@UJmnUKƒ@@XnJWLkKUb@„Vxk„WƒL—aWVUImVULUK@L@lkLVVVllb„m@@°kbVbUbšbVbkJ@XV`V@Vbn¼"],encodeOffsets:[[122097,32389]]}},{type:"Feature",id:"3211",properties:{name:"镇江市",cp:[119.4763,31.9702],childNum:4},geometry:{type:"Polygon",coordinates:["@@šVĊKšn„VÆUn„„J@UWKXkVLlKVwX„šVlbVK„„nJÆaš„ķn¥°óÇIkšWKUbÅ@mƒUÝlkUK@_a@KVUVm„@mƒVU@@aUIWƒ@mƒXUx™LUlm@¦ƒb™K¯„ƒƒnw›Jzm@UW@UmmXmm@w„KUUVamw—ƒKm@UbUL@ŽƒVmn¯¼JƒUW@UUU@@bl@@VŽVXšJšnnU‚‚k¯JmbVV„Xn@VWlbUnk@VVUŽVb@nU@WbKWVƒ@XV„„lLVb°bnW°Lnl@X"],encodeOffsets:[[122097,32997]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/jiang_xi_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3607",properties:{name:"赣州市",cp:[115.2795,25.8124],childNum:18},geometry:{type:"Polygon",coordinates:["@@„`l@Èbln„@„KVLl@„V@bȎlnšKXkVlVL@„lJnb„¦VKVVnX„W@w°@VU„mln„UV`šU„bVUV@„xnKVI°KXKVkVL@al@Xa„LVlULWV™VVL@b„x@VXVmb@x@V™VV@nn¤„šlb°b°KXXWbX`lbXx‚z@x„`VIVUnK„L‚x„WXLVKVbVLVU@wnW°b„@nalX„‚mXVJn@U²mKkVl„U@@xlnœaVmlKnœ@JVLlŽnVššl@XXÆèVlUX@xVLXVšb°W@wnUWmXk@K‚LVwUmUkUKUw@wVaVK@kƒ@WnkUKWkwlmXL@KVUlLVKXmWU„L@ašL@malaVk@aa‚ašƒnXš@VVUblb„Jn˜ƒXa„V‚wn£„K@UWmUk@ƒUaWIV@b™JW@KmmU@aUUUkmKkVKlUU™nKVU„lVaV£Å¥WUUK@UkUUw@m@mIkƒƒUUWƒLƒK¯Uw°¯@wUKUbƒKmƒ@kkKUL@UUKV¥U@manw@k@U@Wm@@U@Wwkm„wWaUU@UUmV¯kwƒ@@kmƒkKkUW@UK@ÅV@XWWkXa@Ul@Va@KVaUUU@ƒaXwla@UkVWaXk@K@lmkUmV@Vmbk@ƒ»XIƒ¥VUkƒVUVU@anKVUƒKUalU@wX@˜™@a@K—@ÝwƒL@ŽUnÇlUIkJmn@ŽƒbVVb@VmnkLƒV¯U@ƒ±l—IWmƒ@kaUI@aÇU@K@KUIkbWbƒJUIUyƒX¯ƒUbU@méUUmUk„WK—xWIkJm@V¥U_UJUwmVkšƒUU@ƒƒƒ@knƒwm@UmkWJkL@n@VW@@‚U@knm@kUml@xÅxƒ@@XUJlb„@VX„JVxn@lbV„@lULnV@VlnV@bWV@bXL@lVLVb„V@blLn@Vl„K@xln@bX@lašLVbnKUVVb„KlXVVkxƒV@nnVUb‚lV@@z—°WWkbƒIk‚WL@LUJ@bUI@b™`@UmI@mkK¯XW™™mUV¯@UUVUUam@@VULWUJƒIm`IUJ›KUkW@Uxn‚WbnnmlXbmIUVmV@Vnb@V™LUKWLnÒVVV@V„UL@„kJUV@bƒÈ@ŽšV°šŽ@XVV@l@xUz"],encodeOffsets:[[116753,26596]]}},{type:"Feature",id:"3608",properties:{name:"吉安市",cp:[114.884,26.9659],childNum:12},geometry:{type:"Polygon",coordinates:["@@lxnb@V@bV@ln@‚n„‚lInš@blVXK‚nk¼@VUKWL@b™L@`UXU`ƒ@V¦XLĠ@lJ„¦@„nV@l°nn@‚mVXnaš@nb‚K„n@l„IVƒš@VanJ@_lKVVnš„L@L‚K@Vn@VbšUVanKlLnbnJVbšnWVnVVanI@‚Vb@L„bVKVanXVbVJVU@aXLll„bôlƼXxVLVK@Xn@ƒxnVVVmb@LnVVKVXV@@mnaVXUVnV˜K@_UaUmšwnKV_‚anKVLš»„K@¯ÝU@›™U@kWlUn™lknK‚VnaUkma@ƒUIUwl»Åw@ƒVwV@n™‚n@ÈXlKVmna@kVw@anm‚@n_WWk@™™mUkUK@Im›kLUn›bkm@wV@kƒlUnLV±m@UInWƒkWmbƒ@¯amX@xUVUKUaULWKƒXwƒKmLUVUJƒ_@wyWwkaW_XaWW¯L¯akaƒ™m£@mUUš@U@wnaWU@Uƒw@aUKšUXUVKUkƒKWbk@@bUKUlWL¯LUJmLƒwU@UVƒa™VU_ƒVkmƒnUV¯@@xƒXmWUUULƒ¥makI@ƒUKUkWl™LkmǍ@aƒUk@UKƒLƒ@kmÇak@ƒ_VlkL@`lbnšlLVanLnbmVÆln@škJlbknmKUbÝmmwULUK@bkLWKULUUma@Kk@UV@L@llbVzšxUxnl@bVLmŽšŽ@IVJXœVlƒLV`@bn²@J™@™V@Xmbñ@WbUJ@bm@@LUĬU‚„¦lV@xXb@blnUV"],encodeOffsets:[[116652,27608]]}},{type:"Feature",id:"3611",properties:{name:"上饶市",cp:[117.8613,28.7292],childNum:12},geometry:{type:"Polygon",coordinates:["@@„„@„V‚š„„I°`nm¤²@bVJUVVXUl@Vmb@xV@XbmVVœ@lkLmbn`VbnU‚@Va„UnbVllUXV„a@w°VW@_VWšLššnVlbšLVbnl„KšnVK@IUW@_@am@™‚ÑUólK@U@WU@VwU@UI@aUU‚aXƒƒ@kwmJV@yX@k‚anƒƒ@mkwVmmI@aUU@aUUW@kVkV@@anKš»„XVWnIVUl`@_„W@wlUœV@UWKnU‚bnްInJl„UV@VnI‚b„Wn@VklL@l@Vn²m@U`kI@bWJƒnV@°VXnJm„XVmx@VVL@bkLmWULUmU@ƒbWXb@llnX@‚xkxVV„nVV@¤nL‚nVxnJVXX@˜ššbn`VI„b„@„blmlLnaV@„blWXnlUnbl@„ƒšKVanUVmm_XK@kWWnašU@UnaWUXa›ƒXamUkKmXUWƒLX¯WakKm™nUWwXa@KW_„aXWW_@WnIVl@XU‚LnWVknK@ImyUUÆbXK„Û@W@IÆUnƒVÝlkVK@mUIVwkUVaUm@aVIVyXIƒaÈwmmk@UnanVUmÅaó»lwšW@kkUVmUK@WKLƒUmWULkamK™Lk@Wa@wk@UU@U@mbUIWVKUXWmkUmVm›U@LkakKƒw@w@U™¯ƒ‚ƒUUn¯l@bmn@xkJWxkL@VkI@mƒkmJUI@V@b@VVxnbWlkÈkVƒLƒbkKmVƒL@V@²nxW‚kLUL@xlKVx„bXmVnšWJ@ޙ°@n™xUKUw±`UImVmnU@kalm@akwƒU@UUJmxU@@Uƒ@kU@Um@@Kn™ƒVm@k™KmkU@@WUnkLWxkVUwmKmLkU™bmKUbVŽ@xUnkJ@n±ŽšUxVXUšWJ@LUb™lUnm@ƒW@nknUJUVm@kXllknVbÆK„VVbš¼V„@šUl"],encodeOffsets:[[119194,29751]]}},{type:"Feature",id:"3604",properties:{name:"九江市",cp:[115.4224,29.3774],childNum:12},geometry:{type:"Polygon",coordinates:["@@WUkVUkmaƒVUb@mVUam_nalK@kU›nUWaU@@wna@UVkUWVUUI@a‚±n£m¯_ƒJ™ƒU@ƒƒƒĉ¦Ul@UV™Km™mLlm@ğ¹m`Uk¯@@UVK¯™@UUK@amkmKkVVUa@UkUƒKƒŽUa™L@VVXUJ™@ƒnƒ@™š™WUbƒnVb¯V@LÅlÝIƒJÅkݙm@Ua™WUU@UmUXmmwVUUKWUX±mUam@kWƒzUaVmÇw@aÅLmKXƒ‚UWKkL@W¯IƒwVw™lkUƒJ@Um@ÛÈWށKUxWkƒaUU@KkLVl@„UKUX±KUb@nVVUbUVmaUlUL@„ƒaUL@‚@nUlWzX`@„V@lx²„@Vlb@bšVÞ@°nl@UxVL@lUbVV@n²xVUVmnUÞb‚a„J@IšV°xnbl@nbÆ@VwnK@VnXlK°xnUlVX„V@Vl@L@lk@W_XK@KƒkWxUL@J„nVx@aX@VVUa˜IXlmL@bVVX@VbnK‚a²XVWƒk°a„@UnV¤nbmLmW@XbmJUbVL„aÞK„L@K@U@aVKlbV@nXlJœxV@VnšŽVȚ„ÞKôbźĕČmV@ĊšŽ²xÆIšV@Þ¦ĸ¼ÞVlŽVÞnxln°Jœk‚LXWVUVUVwnJVI@yn@lXlaXmWI@w—»ma@UmK@akKkXmW@_kaWakKWk@@K@IšWƒkUa„ƒ"],encodeOffsets:[[119487,30319]]}},{type:"Feature",id:"3610",properties:{name:"抚州市",cp:[116.4441,27.4933],childNum:11},geometry:{type:"Polygon",coordinates:["@@°V°UnÜ@n@lnLlV@bšV°L„lnLllVzVVXlV„V@@L@xX@WlX„m@UVƒL@V@n„°škVmVUnKlaXxVbšnlU@lVVnaVI@aX@V„šJš@V„@b„b@šVbš‚@X@lUL@Ž@VlIVm@wUVanLšalVnKnLVxlUXwlKVm@k@Una@mWIXKWUÛVƒk@a@UVWn@@kl@@W„XlW@_Um@UVK@a„LnalInWV@@xnI@¥‚K„—šm@kKmƒnk@mlI„¤laXbVblknV@U‚KXVlUXa‚@@Unw@±mU@ak_±a@ƒUJUIƒVKW_Xa@aWU™šK@mmUVa@IXa@UWmšannlmX¯WKXwVUVwƒ@XUlK@klJXa@kƒkmm@Uwƒw@¯ƒW¯kw@WmbULƒaUUU@mVUU™WmkUb™KmkkK@aƒkUƒ¯¥Uƒl—ƒm@akU@mš@KVIVV@KUkUVUkaƒUWb—„mƒIkaVaUU™@mW™„b‚b@bUlkb‚b@n™K@bƒKXVWnULkKUV@LWKknlxXŽVLml@X„Ž@lULUb@xVxVLVlVnUxK@LWlXnmV@x¯X™aWUUK@wVWUkÅçm`@mn@bUx@lmbUnkLÇWm@mšU@Ux@„Æxk¼VxVJ@„nbVlmbUmLklmškVlX@‚VœšV@°Þ"],encodeOffsets:[[118508,28396]]}},{type:"Feature",id:"3609",properties:{name:"宜春市",cp:[115.0159,28.3228],childNum:10},geometry:{type:"Polygon",coordinates:["@@@VlbnK@b@JšLlUnx±ĀXxÆW„X@lš@V„@@blJ@nX@˜xUbVVUbVV@b—VmnmJœ„@bmbm@klUbƒLmbœš@lVb@xUX@bVVVbV¤@LVV„bXlVw‚LXÜÇn@@V„IlVškUx„x°J@XlKXLV„‚WnLÆK@bÈxUnVb„ylXn@Vbn‚W²XV‚LVVUŽnxWnnV@VVVšXVbn@ޚÆl„IÞJÆk@K°UUa„mVa@UUUš»@wV@VƒkkUKUVW£U@UmW@@aXkVUnVlKVV„UUkVmU™@kWaUanU„VVamIX¥W@@aUaUVW@_mW@UnIVVn@VbVm@bVL@anKVUkƒWK„UXV‚Ikx‚@na„bVK„b@nVJ„_V›@Vw„‚VUVVXUlUUaV@X@VblašbnKlkVaXaƒ¯@m@U„KVUn@WƒXkW@@w@KU@UƒWkUUUykkmKƒk¯K™U@akUmK@k@mmÛ¯V¯U@‚ƒL™¼UKmLbU`mL™xVnVb@`—LmUVUUWmb@nU@UWULmU@KnaUUmU„wmJ¯IUJWIkVkaWVUIUlWaUIUVkKmbUIƒÒlVUnnŽ@VlLUJ@bUX¯@ƒaWVUKUXƒKUbm@UwKWa@a@VkUWn™@Uak@mbX„WJXbm@mL—aWVk@™wƒL@WmanU@knwWmkaWL—KWUXaƒU@¥l„UVVVbnwƒ¥nKV™»@aUk@a@UƒJ@kƒmLma™@mbUWnm@ULǺ@LXnmxUŽm@UbkbW@@akLmWk@UXmJmUkV@VUXVlULmKUxkL@lmXnJ@X‚l°Vnb@bU@WbKUX@VmKUX"],encodeOffsets:[[116652,28666]]}},{type:"Feature",id:"3601",properties:{name:"南昌市",cp:[116.0046,28.6633],childNum:6},geometry:{type:"Polygon",coordinates:["@@šXš™„@„mš@VIUW@UšKVb„„LlV@VVbUŽlUnLnl@bVL@V°šUL@V°@Vln_Ġºn@‚knKnššLVU@VkĊ¥Vk@™Uƒ™»UaƒUÅLUalmkklWn@VUVIlm@m„Xn@VmškVa@KXIV™UWVw‚™²@m@U@VK@k@W™Ua@™ƒa@aUƒ™@™IUƒW@@bUJmbUU@kkV™mUaWwkbmLUVUn™lWbUbklmL™akbUaW@U@VbkVWVUUUVƒUx@‚Uœƒ`UI@mƒaULƒamb@lwJWUƒVXLl„UVmL@bUK@aUnUam@UUmJ@VnX@`UXVŽVb@bX@W¦nJUbƒUmVVbXb@lVšUnVlƒVUUkLmUUVWl@bX@VnV@X¤VUVLllU„U@@x™¼VV@V"],encodeOffsets:[[118249,29700]]}},{type:"Feature",id:"3602",properties:{name:"景德镇市",cp:[117.334,29.3225],childNum:3},geometry:{type:"Polygon",coordinates:["@@VVX@Vbmz„xUlU@mbmL@V²xVbUVVblbX@šVškVykValKVI@bn@n`lVWnX@l„L@™WKnƒVIVa@¯nK@alIXJVIVWUw‚ƒn@nU˜„nK@alI@a@anKm_™a—™W@UWmIUwmmK@£UUƒmUUlwwW@km@kWaX„aV@VnVKnXlK@aUK@UnwWUnƒmIUW@¯mU„XI@alJV_n@m±@U@kkKUlm@ƒXamJ@UVUkƒmI¯JmamVXL@V›UkV@xƒX@`k_UVmJUXƒW™¼mL@bU@UllX@VV@bVV@bnJUnlx@n„Žm„b@lWŽ@zU‚nIlx„@W„bVV@bVJV@UxV@@X@VkLVôÒ‚šn@@b@`VX@J"],encodeOffsets:[[119903,30409]]}},{type:"Feature",id:"3603",properties:{name:"萍乡市",cp:[113.9282,27.4823],childNum:4},geometry:{type:"Polygon",coordinates:["@@VWnL@UVW‚LXaV@@ama¯Uk@WmInW@klKVwnLVKUkVW@UlUnVnIVWl@nXlK@bX@laVan@VnwWm@KȹVK¯m@kmU@ƒƒ¥kIğ@WKU¥„@V_VW@_šK@aXKVL@Ul»mWLkU@am™kJƒm@kmU@@a@UmakwU@›„Xlƒ@VXk`UIW¼kWWX@‚œ@l‚xV¦XlW@Ubn„@ŽmUkL@UmJ¯UkUWVUaƒUlm@UXWl„nUJ@LmLU˜nXll@bUVUUmVUn„Ž@¦šxlŽnn@VÆÈU°kbV„VxllnL@VnVVUl@V„„anL"],encodeOffsets:[[116652,28666]]}},{type:"Feature",id:"3606",properties:{name:"鹰潭市",cp:[117.0813,28.2349],childNum:3},geometry:{type:"Polygon",coordinates:["@@@XV@nlšL@lUnš„mŽ@Ln@@VlV„@@VV@nwVI@V„Vlx@bknlbV@nmnUVJ‚_²‚VxVLšw@mš¯@ÝXIm™nUWƒaUwkL@wVKlKXmw@±@U„KnUlL„a„KlUlÇXkmaUw@U@a@Uƒ™UkwUJ@zWJ™w@WbkVWUL@VmUklUaWakbƒ£kJ@nmln„lL@Ž™nƒ˜L@¦mJ@wU@mXkJmbƒK@bUL@VVn@`kXƒW@Xk@@lm@UX@V@b„lÜUXVWLXJ@nmb@V@l"],encodeOffsets:[[119599,29025]]}},{type:"Feature",id:"3605",properties:{name:"新余市",cp:[114.95,27.8174],childNum:2},geometry:{type:"Polygon",coordinates:["@@m@@WULUKWwÅ»ókƒakkWK@bUVUIUamWUbULƒa@KUa@mJUbmUXU™mUamImakKmLUb™VUam@@UL@KƒKm™UUkL@`mIUb™@U„@V@bVl@bš¼UŽmL„¦mxUaUUƒVkŽ@¦„VWbXV˜LXKlbXnmx@lmVnb@X„Kšxl@XU˜bnKn@WaXIWƒnal@Vbš@XmlV@U@bXb‚LVxn@Va„LVWVLXU„b°@VW@aVIkK@UmVmkU„ÑVJnalLVUVJXbVkVJXUlblUXJVI°JnI"],encodeOffsets:[[118182,28542]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ji_lin_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2224",properties:{name:"延边朝鲜族自治州",cp:[129.397,43.2587],childNum:8},geometry:{type:"Polygon",coordinates:["@@Wxĵ„mš@„ó¤VX@@xܼƨš²xWxƒV„V@„XVƒ„„„ƒbWšXllaÞU°Ċ„@ô¼„LôÝWanV¥ƒÑnĉ°¥šÅX¥°¯@w°w@»°k£°mÈŹ‚mÈbƃŎ¦„K°z@Žkxl¦UbU¤šššklV„KŤÞȰ@@bšV@nVVUlÞ¦lUllœVlU°ÑU¯Vƒ°w„bXxl@V޲„˜@n„ô¼ƒó°™kmVk²ĕ‚w@wV™ÞÞ@@Ġƒö»˜¯œ@‚„šbnb°mÞ¯°V°„ÈJmX¥mam™UřƒUƒlaU¯™ƒ@w™Kk—l±n@@wƒkÝVUUl±¯I¯b™a™lƒ@™kLmakbƒ@ġƒŹé°™Þb°šékƒƒLm™„wX™‚aÅb@bVlƒbVb—ÒVbUb›UUanwƒakbVŽUV›ak„¯„UŽƒLmxV°UxnôŻX@J„Xkl‚bkbĉaƒbƒWU„ƒ@ƒk„WUU¯@@klmƒ@@™Å@aƒwWXlKkI@WbUaVIUanUƒƒ@ĕƒ¯K™„mUnWUwm@£ċèkUmbUmm@@nkJUalwk@@nmWUan_óaWmnw±KœIƒwl@UmƒI@an@@mlUÅmV_™KUkƒ@U`@_ƒKUmU™@U¯™mmb¯@kb™ImV¯ƒƒLkbƒKƒƒÛ@ÇnɱJóaÝĢkb@„›x—ÒÇllœ@‚޲V‚„ÆUVV„UÇ°X„óxlV¯„lV@bƒV@n—x›@—¤@„șŎnxV¼knšJ‚nšKX°˜¦UlnVbUbÆVnÞWVX¦llšb@l°œVJôÒnLVbšbXŽ"],encodeOffsets:[[131086,44798]]}},{type:"Feature",id:"2202",properties:{name:"吉林市",cp:[126.8372,43.6047],childNum:6},geometry:{type:"Polygon",coordinates:["@@ôl‚zšaÈV°„šK@„mŽ—LWl™nšVxUV‚È@ŽÝĬUÈn‚ôLša‚„²VmĀkV@„ĠĊnU@b„V@b˜@nl°UVnÞaôJ@bš™V„¦mlkššbmVXx¯@Vxm„nbƒ„šbÈK‚V@bÈL„wĠyônšmnbÜ@nn„V˜x@n²K‚„„J@k„al@nxÞU„Lź±Vwkw¯LWWUš™kŎīVwƒw„°y„Vĕ°wÈVlkÛ»@wW@Uô£@ƒn™ĶƒXwW™aUamKóÑUI¯›@k™akkW¥XUmÝÅUVaUa‚mVk—¥W¯™Lm™IlmU»mwȚō@ƒ˜£kJUÇk@am¯y¯UVwƒa@wġx¦ƒKƒƒ¯X°Ċ¯¦U°ċWULÅa±b¯@UkÅWmVƒ™ƒkIUlóŽċ¹™`óIƒlX„WŽXxmbUƒLݏƒbƧ@ƒx¯bƒÈ—l@xƒš¯zƒaݤ@nšm„VWb²bmn¯J¯Ò@n„š"],encodeOffsets:[[128701,44303]]}},{type:"Feature",id:"2208",properties:{name:"白城市",cp:[123.0029,45.2637],childNum:5},geometry:{type:"Polygon",coordinates:["@@ó™ǩŁ@WlwUaƑwÛÅÇéĉamKƒōÇ@Iƒ™ôġVƒȁÑŹçƒ™ÝUƧċĉwóóÝ@Ƒ»ğL¯ll²@ƆÅV@¦m‚Åb@nmlU²VxšlUn™@VbnW„bÇbk҃š„n@èlnlšU҄ްLšx@¼ĉb@҄šUŽċxՃènLVxƒÒƒbÅJ±a@_ÅJÅnƒŽVb„Kl„nUÜĊ@„Uš™xXVÆn„mšVššJÞ¯V™ĠwšƒXw°xWL„x„KV¦ôU„wVÝǬóÞޙ¼‚‚„ÞkŽVôȘxބU„lVn¦ÞšĊa°w„b°@šbÆw„lŤL²`„z°@V@@™nJVnl@@¥nUmmn„@mwnmmUnk@mlwUaƒLnƒ›wn¯°anƒWakI„ƒÇmXwÆamUXUlJXa‚UUklKUknmÞV@‚K@VWÞ@VkUwVƒ"],encodeOffsets:[[127350,46553]]}},{type:"Feature",id:"2207",properties:{name:"松原市",cp:[124.0906,44.7198],childNum:5},geometry:{type:"Polygon",coordinates:["@@„šźèȂÒU„óĢ„š@JŎȄ‚‚LnŽĊbÈêÜÆƒxVbkx@XǪłôš„kÞ`„šW„b@n°ašbšKšnVw°`š_X`W„š¦„ĊIkmVšakw‚K„x°UÞb„U@lšƒl@°¦œVW„šaÞbšxÞI@mVI@ƒVkŚUWK„¥nL‚a@ƒ„@ȍ„@°ƒÆ@nU@KÞalkUwVékUWw„™kU›VkkƒJk¯@»ókƒV¯ÆÇI@bĉô¯@™ķw¯nmmÅL¯wƒVƒUÞy@UówÇLkmm@@UóxkkĉmL¯wVwkWWX™mLõm@kűV_ƒƒô»ÛƒÆ¯@™Va™VšaĠVlmğwķUóÝƽ£ÇJkbǫaƽLW@nxݤkzƒy¯XɅm@VšôÇX¯Ė¯ºÝnUŽnLVlUÔmV"],encodeOffsets:[[126068,45580]]}},{type:"Feature",id:"2201",properties:{name:"长春市",cp:[125.8154,44.2584],childNum:5},geometry:{type:"Polygon",coordinates:["@@„U°xÆKnn°mĸxš°@Ċó@aÈJ°Å„Uôl@¼l°„IllœUlVƒšXxlVUêVxkllnÈUVll@Vx²IÞ¤VUlVnIôlރlwô_„›„bVaĶLXÅÞÇ@K˜¯@wÛaƒçn¥š¯WXyW¯XwƒUmmÛ@ma™nómğzƒxÇK@aUÇL™a„ƒmanƒUw°@WwnU™al™nkƒ¥šU™@aóIÝbUm¯Vmk—@@aƒU@amVğĉ@ƒlUnÿ±Uƒ™bóKmVÇÞī@ÇVUUw‚™šmXk˜Kn@ƒ™L¯ƒÇU™byókōè@b‚n@lÝX@x¯ô@ƙUV_maXm@aóƒJWxnX@ŽVVnĖVnUJ@nōÆÇ¼V¼kxƒLklÝw@xƒx@zV`ÅbmxU±xU„nnm‚kn‚ŽğU™bUŽ‚šUb@šÅ°Ü„󼄄U`Ʋ@lön‚KšnXWlXUx°xnKĊllôw@Vn@lnÈKôx@VÝz„V"],encodeOffsets:[[128262,45940]]}},{type:"Feature",id:"2206",properties:{name:"白山市",cp:[127.2217,42.0941],childNum:5},geometry:{type:"Polygon",coordinates:["@@Ušl¦kÒÆ°„IlÒU¤ôz„¼lJš„U„n‚ÆXVl°@²aÆbVKČXV¯°¥¯ĉ°W„„„L‚¥Ģw@x„bUx°V°zn‚‚b@ÈlVŽlIœ@˜w@m„U@akU°ƒkUôwWƒÈ¯VUƒVUƒÅ±U›@kÈk˜Ñœw@ƒlaÞġƒUÞ£@ƅ‚KnÑ̝@W‚aUaVUVkkw@a¯@¯™Ý™ƒVXnW@@WkXmK@xkKUb@bW@Uw¯„mmb@WKUbmUbUaWbƒJĉIVW@I—l±LkšmU™bUm™@ƒnkKWa¯n™@„`Ubma™„ĉL@bƚ—@W`ƒL@n¯‚Xb‚@kb@x™Lƒ„™@V‚kL±™™mlUIU¥mL@lÅx@_laƒƒ@U—aƒV@kmmƒK„£ƒƒLƒƒmKUnÅKVbmXVlèĉUUbml„ĢŤƒIlޝbǦœl‚@ô¼Ģ„@x°„l¤„n„a„l@x™b"],encodeOffsets:[[129567,43262]]}},{type:"Feature",id:"2205",properties:{name:"通化市",cp:[125.9583,41.8579],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÆlXnĠx̰lȰš„K„°kXm‚@¦Vbk„ŤJšnݤk„VÞVVkȄb°y„™@w˜k„ǰa„wƨ@„aސ„K‚VnaWwXWƒ„kôJš_ČºôVkƒ»óyV£kуJůlÑk¥V™ša@wƒkƒbƒmk£¯ƒ@wġƒó»@›kÈ¥°ak„JÆ£ƒġnkVaĊVkçWUnUaÆLVmnL„„‚KU™±@—„m@a¯U„bmV¯m@_ƒK™™U™ƒaƒÅ™Wó¹ƒ@UanmWak@@wmI@y™@mk„JVa™@UaƒIkJ@n™@Um±kkxƒm™Ik„ƒbÇm@ްbXn„V@ްÈmlÞ¼¯XVº¯Lm„kWWXLmVVlknƒ@@lnWƙ„Vxbmšnšm„¯lÝaVȁè@¼V„„b™„ÆŽ°ÞUVšJ„„kx›I—xƒƒƒIV¤™ÒXxmn"],encodeOffsets:[[128273,43330]]}},{type:"Feature",id:"2203",properties:{name:"四平市",cp:[124.541,43.4894],childNum:5},geometry:{type:"Polygon",coordinates:["@@Ɇn°W„zlyÞ£mwX@ƾKǬblaÈIƾ¤ôÞĸVĠxnmmVƒ²w‚VnwÆaU_@y„w@wÞxlk„KlwU»È»ŎÅ@mVIUmmĕUU@mWXw„Iô‚@bWnnbU`‚šV@Űó@wÞW@km@aŎ烙@m°Ñ°Inm±aXaƒU™n@mƑšU¦@šÇޝaU£šaU™ġ¦ÅҙJōUŻókUÇ@™¥¯ak¯mUVak@@aċçÅaUƒm¦Ý`XbƄ@n`ƒI™xĊÞōÞml@šUb@Wl™_¯JkšÇUÝÆÅb@n™„llUb¯„±a@ƒ—ƒWĉJġ™Unóšm¤œxôaVnƒxôI@x„V@bmƙ„@lnLmޯޙxVb¯þ"],encodeOffsets:[[126293,45124]]}},{type:"Feature",id:"2204",properties:{name:"辽源市",cp:[125.343,42.7643],childNum:3},geometry:{type:"Polygon",coordinates:["@@żôŎVšIÆÑĢ¥Vš™bV¤°bȍ@™V¥ƒ™Þ£lÇUUUÝlƒÞ£™mţIlƒUa@¥nlWƒ¯ƒL¯™kÇġ¯ğwWmÅk¯UƒVU„„bWlXlmnƒbUx¯xVVknlŽUbV„ÇKUb@„™VnbmlnzUº±bmJUbWÈnèm҄š@X`WL"],encodeOffsets:[[127879,44168]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/liao_ning_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2102",properties:{name:"大连市",cp:[122.2229,39.4409],childNum:5},geometry:{type:"Polygon",coordinates:["@@‚IÞmVk@wXWÜbnwlLnU„@‚nLlbXW@a‚wnbl@XL‚aš@Ċ¥@LULnJ@xVnmV@VXXV@VJkn@VÜKXXôJlb„xl@„IVbnJVLUbn‚lnVw„JVU@ƒXU‚aUUlwn@°ƒn„VKnV°_VJšwl@nwlV„IXWlIVVnK@IWmkIVaVU@WÈUlmU@U„WUalkXġŻ@kIƒ»mm™akUm›ĉUŁV»²ġVĕ@aUU؍IɃ`ȃ@kƒw@ƒUƒmwĉ™@ƒWķсIĉÇbÝLkymbIƒwÇmÛbmbU„¯ÜõÈkÆVbŎxnXVÆnšǪ¦„bš¤Uš™xÝnĉÒmĊVȄ¤Èš„bƼ„Ā„„ÆÆÞ„źb„VVbX„‚°²¤"],encodeOffsets:[[124786,41102]]}},{type:"Feature",id:"2113",properties:{name:"朝阳市",cp:[120.0696,41.4899],childNum:6},geometry:{type:"Polygon",coordinates:["@@na@UVI@m„ÑW™kaV¥UI@wl@„aÈbšm@wVašk„@@K@kƒ™@a@UUmƒUUalmU@KÇUű¯@±kUKVkUaƒaU@¥m@@¯k@WLUmkn@mmIkm@amU@wVmkU@Klk@U—m˜aXIWWUL™aULVbƒmk@UUmUk±™_Uym@mbkImaX¯WW™xWKzU@WƒkJWwkV™@Um@UbVVVVXb@VWX—@WŽ@Vkb@V™nUK±aUUlwX™ÇWKknU@mmUkƒLUVƒVUUVƒUaƒw™bkKmwnIƒ™kJ@nmbƒ`kmVkLWwUm@UUU™K@UmaUa@UUaWK@mUƒ¯Wkk¯VmUUŽ„xVXUVmL¯ymXkWUbmXUKƒVknWx¯JVnkLƒl@VVxnxlĀVL²WlX„l@bÝVUn@bnlÜaXblIVl@šš@Ȧ@VmbXV‚@@x„VVnUn@`°@VnXU@K@„VV@VmbnVn@ln@b„xƒ°Ub@bšLV`Ånƒ„W@@lUšnnWVU@Vbkl@Xl`XxV„UblŽkX@ް¦V„UVVbUlkV›@UbVbkLUxmJkXšš@b‚bœxVKÆlXX˜bnŽnala@ƒUk@U„VVklKVUXKVU°KVan@VUnLšKVL„WVaU_@mmUXa@m˜wXwVkVWXk‚k@›„k@klm@wXKl@U@KVUUUVaUƒV@„alL„xUx@b°°VnnVšxlIXJmx„LUVlV@bnX@Všb„aVx‚@XJ@b‚n@VŽVXȄl@llX@lU„Vô°°@ބVbn@‚V„k„@VW"],encodeOffsets:[[123919,43262]]}},{type:"Feature",id:"2106",properties:{name:"丹东市",cp:[124.541,40.4242],childNum:4},geometry:{type:"Polygon",coordinates:["@@lzXJ‚U@š²x‚@@Vš„@bUVmKUn„°n@lnVK„„nV@n@VlV„°WbXn@‚VzƒJ@¦@bkb‚bUl@bkbƒJ¯zƒWULWbklV„nb™¦VJ@„„K°U„kl@@W„bVn°@„Všm²U˜nX`„UÜLXmVXlKVbUVVnUbn˜ƒX@VUL@lUbWxš@²kl`n@Vlb„@nUVWVLVU@aV@²bl@ÈmšxWX„VÈU„JV„l@„„la„WnX‚KÈkÈ@Va°bÆm„@XV°IVV°UnalƒVUn@UwVU„@@VVJ„I@bl@XK@wWmXU‚UVbkJVXnJVI@mƒknwlKXL@`l@VI@UUaVKÞn„aVm@aÇ£XW„U@aÇUU@mbkKm£™@WW™ƒL@@Kk@kl›U—bWKUkUU¯UõÛƒmUUaVU„U@WU_W@kVkJƒ_WKkV@bUL™¯¯ƒ±mk¯ġƒğÑ@UmwƒKUakƒ™ƒa@a„m¥ÝƒIUWmk@w™mţ—L›KʝbȗKWĢklVbƒX@VV‚knÇV@XUVUblJXn@J"],encodeOffsets:[[126372,40967]]}},{type:"Feature",id:"2112",properties:{name:"铁岭市",cp:[124.2773,42.7423],childNum:7},geometry:{type:"Polygon",coordinates:["@@XJm@¯šmXUlnVbUJƒU@bV@UJWL@VXLmJVbkXlJXxVL@b@V@n@b@`Vbk@lxknV@VV™V@bUL@bV@@bVK@VXLWLXJ@LV@nbWJ@IUV„x@LVJUXVxVx@VV@@LXJWL@VU@@L@VnL@bVVmVX@@VVInJmbnLWVnVULVVU@VVmX@@JVz‚l@„nVVKVXރ@mk_lm„UUWV_nJlUÞÑÞVVUVƒVL„UVJ@I„Vna‚@@KV@XwWknwnKlalU„w„aĉݚwšJl_@aUaƒKUUU@WU@WXUÆ@@UVK@n@UnVVšblK@bœllb@b„bW@Xbl@UlnLl°°bš¦nKlVnI„V@UWU@WXkƒw@am@nm@aVw@I@KUaVIm±XÑlknJVnVJšaX_VaUaVKmwnkmmn@lU@U@mnašXlKUmUIVmklaUK@UlUVUW@U™kVm™a@UUU@JmUU@@bmb—KWV¯XUKm@ka@UVKVk@aUKmLkKUUÝUmbXbÇJ@k@WU_@m™™@klm@UXKVaUI@KWUXaƒÇWk™aWUkWUL±U@lUU@ƒUJƒI@V¯JmIm@@aU@Uwƒa™@UV@VkI›V¯aUkƒWkb@bVL„@@VVVUXW@Uaƒ@@b—‚ÝbUV݄@ŽƒLmUkVUbVllLUV@LššXŽWbUXm@U`@„kxlnnJlbnIllšLX„lVlUXmVK„n‚V@L"],encodeOffsets:[[126720,43572]]}},{type:"Feature",id:"2101",properties:{name:"沈阳市",cp:[123.1238,42.1216],childNum:5},geometry:{type:"Polygon",coordinates:["@@ȚĊܰ„b„L‚lÞxUbUn±‚@ÈnVÆL@xnLšlUVƒbƒxkImJkn@V±LUxkV@bšbšKVKnzVl@L°@Va„xÞUlbôxVVœ@@V±bnŽ@llXL˜ŽöXĶŽnal@nkVJVI@aU@@aVK@ašUUUU@lmkwl@Ua@_@a@m@U@aUKWwkIlWUanIWK@UXKVIU@@a„VVIUa‚mVknW°™n@WI@KUƒmULWnkVkUWƒ™KkkmJkamIkmlw@ƒV_n@VWXaW™™@KVUkKUkValUnV„K@ÞƒVUÞa˜@a„@VbX@VWUU@Uƒ@UK@ala@IkKmUUa@U@ƒVƒkk™WVwU_@KÜUXbl@V¥XUVmƒƒƒXa‚kŃlUUkIm`UIUJW@UIKmkm@UUJƒImmU@ƒVUXU`mIUbUK@LƒJUU™l@Xƒ@UbƒJ™kU@ƒŽn„m@Uam@@ƒ™aUmLKƒwƒ™mWXUK@kUaÇa@JUIUa@aƒKVUƒUXmƒUy™_@lmbkLUKWLX`‚n@bVL@JXL„‚WX@Vnb@Vm@UbnVmL@V@x@LUbVV@V@LƒUVl@mb¯U@xU@UVVV@X@VVblJ@bn„VKUn„x@llnL±¤™b@k`VXÆK@„kV@¼kl@bWIUl@VmLnbm@@JXXmb"],encodeOffsets:[[125359,43139]]}},{type:"Feature",id:"2104",properties:{name:"抚顺市",cp:[124.585,41.8579],childNum:4},geometry:{type:"Polygon",coordinates:["@@„XVl°bœUlJ@UVUš@„bVxV@@bn@nJ°I@U„J‚I„VV@V@k²VVKlXXVšb‚lÈX„ŽWbXV@LVJUbWL@Vkn@lšš@nV`@X@lÈIWanaÞVVVlLnKVL@bUlUL@Vlbn@VL°WXU˜Lna@aV@nV@IVV@VšbUnšl@V‚XnKVa@U„UnyWkXaƒaVk@ašašbnm@_WKXmWanU@alaU—l@XJVLVxX@˜wnKnVlwƒƒ™@V_@a¯¥@UkKWUaUU‚anK@IƒaU@WUaVw@klUVyUUVUUÇ@Iôbša@mnUma@kXa@UWak@Wa—l@a›@WUƒLmU@U`mIUU™`mUk@@UUK±nkJƒbUam@kwm@@a@UU@Ua@@K@ƒVK@kmKU_UKƒUUaĉWmkkL@`™LƒnmlkLkbmK@k™@Ulmb@b™„@Ž„xUVƒIUlmVXXƒxm@™JUUk@WUk@ƒakx±@¯x¯Umb™KUUVmUU¯UmVVn™WkÆ„lWb„„„ŽUnWVU¦k@WaÛV@LV`UxšXllU„@„@VVbnVlL@J"],encodeOffsets:[[126754,42992]]}},{type:"Feature",id:"2114",properties:{name:"葫芦岛市",cp:[120.1575,40.578],childNum:4},geometry:{type:"Polygon",coordinates:["@@ll°X„ŽnV‚@XLVb@VVbnb@VšLVV@VVnXxlKnU‚l„_na@mlI„šmJnxlLša„xVbU„VV„UVU„KVlnnV@lmXLšÈWŽkxVV²bVLšm@Ula@UX˜@XW@UWaUUUUVan@V‚š@lUXxlIX„V@‚yXLšw‚ŽXXW°nblJnan@Vzš`l²nVVVl@„nUaVKšbVKnXVaUaVUšyšnXK@kVK‚@X@m@m‚LXa„LWƒU¯„w@™ƒa@UVw„¥°™ó¯¯y¯ƒUǯ»›w¯Iƒm—¯Ç™UUl™¯»ţKċÑţķm¯w@mU_ómk¼VnU`±IkbVlƒnnŽU¼±Lk`@X™Wl¦UbmVUxkXVlkbllU„Vb@bkVmx@XVV@Jb±aULkKWXkWmX¯aUJmIkVm@ƒxU@n„"],encodeOffsets:[[122097,41575]]}},{type:"Feature",id:"2109",properties:{name:"阜新市",cp:[122.0032,42.2699],childNum:4},geometry:{type:"Polygon",coordinates:["@@šXnb°lš„VlnXVJ„LlVnl@zÆxnK@b„blKVLn@@V„aVLVK@L@Vl@XVVInVVKVwlUXwlKšL„ššVVb@aV@X„lUXbVW@n„lWnXKV@@V@XUVVLUVV@@bVVV@@ln@VbVUXV‚I„xVanJ@UšIVWšL@UV@@¤V@nInw˜W„k„lnIVx‚lnzUVÇJ¦VVÜLĸUnW@aV_šWĊXXa‚Knkl@nm™L™a@alUVw²K@UlmnIlJ„w„aVU™kmK@wÅKmU@DzVmVaÝwkƒKƒaÛ¯șĉķ¥ğ¥ƒ@kUWkƏī݃ƒ@@akU„K@KWIUm¯nƒU¯JmwUVmIkJÇLm@™UImJUU@aW@U@@nUb™JƒaƒbXVWn@UVmX@V@b„š@l@Lƒ@™lUb@x™nÇaƒbk@@xVJU¦lbXšƒÒ@nUJ@Vmb"],encodeOffsets:[[123919,43262]]}},{type:"Feature",id:"2107",properties:{name:"锦州市",cp:[121.6626,41.4294],childNum:5},geometry:{type:"Polygon",coordinates:["@@nJ@nlmVnXKl@@°n@@¦‚V„bVbUlVL²l°@ƲÈV@LV‚knVb„VVnnWVU‚@XmWU„a„bšIVa@mV@X@@bVVnIVJ@š‚nÈKlInJVUnx°I„V°mVnXJ@LƒLlV@b„@ބƐĬXllV„@Ġ¦ĸ¦naWW@In@manK@UVkXJ@alk@»lU@ƒÅLUWl_@ša²£‚Kkm@kƒwVmULmƒ@akIUa@U@WUUVU™aÝ@ğ›wkƒƒmĉ£UWƒ@@bÇL@m—a@_mKƒlƒXUwKƒLţÓ@UWw@K@U„I@m™U@UV¥„@°UnJ°@@_™KUwƒW@UnaWUmmI@m™ķwUaÇLóVĵwݙUUW™¯šƒ¦Ux@V„b@šƒxV°X„ƒKWbK@n@nW‚@UL@lWL™m™zUVVbUbmWXXWJ—b˜n@Vkl@LlVUn@xnV@bln"],encodeOffsets:[[123694,42391]]}},{type:"Feature",id:"2103",properties:{name:"鞍山市",cp:[123.0798,40.6055],childNum:4},geometry:{type:"Polygon",coordinates:["@@l„œxĠŽÞ@šbV@@w°Vna‚@Uk„V@K@UUUVa@K@w@UnKmUVan@@Uma@UXWƒWK@IUK@amW_XKVLlKna@kmKVak@VU„@VmšU@anIÆan@‚a„šUVnb@blLV`ÞLlU„bna‚Kn@naVU@¥°IVK@anUUKVaƒUVak™@mJƒkXƒ™UVwkƒVUUa°U@Wƒ@WlkXWlIXUlJlaœx‚IVVXLšll@nLV@lLXl„KĊzš¥maUƒlkXaVK„X°y„Ila@aVkala@a@¥„IUy@WmXaƒ¯kU@U@mmUƒƒULkmm@ƒ¯VmnLVU@a™ƒ@U@±w@™VWIkymLUUkJWXƒJkUmxk@™xUI¯`mUULmƒ¯„m@kxVVbWV@„UVƒIUx@bkšVšVVšxUbVV@V@zšJVXU‚lnk@@lkLƒlƒLUU±Jkšm@UIUVƒLUVU@™K@UƒnnV@l@Ll„ƒaUJ@zn`@nWlƒIUVUUUV±Ln‚@nmL@VUVkLVlUxVLVlÅXma™@@akLmWUX@JUnVJVkXJ@X@`WX„VUVUIlb„W@bVUVL@`Un@¦U`@bUV@z@Jm@@XV`„LUL¯J@IVKmKÅI@J™nWVnLnšVxV¤™z@bmV@VUV@bUL"],encodeOffsets:[[125123,42447]]}},{type:"Feature",id:"2105",properties:{name:"本溪市",cp:[124.1455,41.1987],childNum:3},geometry:{type:"Polygon",coordinates:["@@lb@Vn„lnVVUb@šVJ@nnJ@bmXUx@xVbkbkŽWLUxnl@Ul@„xWx@nUV@¼Ull„knkK@bmbnl‚LVJX@VIVJn_lJVVšXUmnU°VVVUnVVšLna°V°w²@lw„bl@XVl@VVšIn@„wWWnUVk„JVUƒw@šƒ@anaVkš@@lnLlalKnk„mšK@_lKnlĊXVb„VVLV`nL@lUL@„@L@‚VbV@@V@bn@lxn@Vb„alI²mVL@Vl@nVš_VVnJV_‚@nV„K‚V@Xœ‚@b˜kXbl@XblylUUkš™@Xa@UVIlK@UUWVU„Llm@UUUnKWU@K@UXm„XVa@U°KVUUWUk@ašUVKkaWkƒKUknaWa@U—@m@mk@ƒaUJk@@_WKkLmx„l@nUJmIUWlIUaVWVXn@xWLk@@aƒJUI@Uƒ@UVVxm@UVk„mb¯VUU¯JWUƒ@Ån¯aUbÇ@ÇlLmWƒXkbƒƒk@UƒƒIÇVƒUXW™wÇnk@±aU@@bUVUKUXmVƒ@kaUm@k_±l™@XwVa@kVK@U„Wm—VaUmVUUakLUWWnÛKƒVW_—m±V™nƒU¯@Umƒa@Xk@ƒl¯V"],encodeOffsets:[[126552,41839]]}},{type:"Feature",id:"2108",properties:{name:"营口市",cp:[122.4316,40.4297],childNum:4},geometry:{type:"Polygon",coordinates:["@@ĊĖÆn¤„„°Ċ¯ŎWšô„@xXb‚wnKl@nX@VUVƒKmL@VU@Ux݄@Vlb„x„U@VUb@b‚kœ`‚IUlVUn„V@@UV@@JnXlK@bš@nbÆWUkUKVwUklKVU@UnK@mm²KVUVVVU„JXk@mm_@yVI„bkƒ@K@kmU„m@VšLV@VU„KVUVJn@l™²IVV„K„klK@kl@kmVUW™I@y@UUUVa™wUUU™l™@akmmVaUKmIUaƒJk@ƒwkaóIWWÛL@UlmUIU@WW@UnUUm@wmIVK@Kĉ¦™@bWKk@max@bWXkamKƒ@mVkKmxÛaWX@xUlÝnJ"],encodeOffsets:[[124786,41102]]}},{type:"Feature",id:"2110",properties:{name:"辽阳市",cp:[123.4094,41.1383],childNum:5},geometry:{type:"Polygon",coordinates:["@@š`Vz„‚Wn„VUV„L@bVbVJ@IÈbVb@lVLXW‚n„š„x‚LnKVŽšb@„n@Vbn@mƒ„V@šl„IVa„@@WškVV„I@KVLVanJV_VW„UV@nn„JVI‚Vn@na@alLlmkƒVk@»VU@mXwƒwk@@VmkVwXKllaUa@wVwnW@amI@mUI@™VaUUkmmƒ@UkaƒL@ƒUIĉyƒLWkkKU@mKk@™kWKUUJ›wkbkIWVkJWXkl@X„‚@X¯VVbUVl„UxšVW„„lnIš@l‚Ub„VUbVLmV@bUL¯J@¦UVmbm@LmbƒakVÝKU_kK@amaVUƒ™bm@ÅbmJ@b™VUnƒ@UVl@UbnL"],encodeOffsets:[[125562,42194]]}},{type:"Feature",id:"2111",properties:{name:"盘锦市",cp:[121.9482,41.0449],childNum:3},geometry:{type:"Polygon",coordinates:["@@Vbĸx‚š@nnJVnXŽmb@V„XVxšL@`¯@mI¯Vƒ@U¦@VšV@nƒJ@V@LXx@VŤÔ„K‚LVx„W„knL@`˜b@nÈK@a„@VXĊ¤„nVK@aVU@UnU@ašyU£Uwm™mKXUšm@IÆJnLUL@J°IVKƒKU_@Wn@@I@yVU@aV_@¥Vm@_UKUV@aƒXkaVJVUƒUXW@_@WWIUlUIVm@IVW@IU@@VU@mƒUVVkJ›_l@aVa@UƒVƒwka@UރVwV@@UnK„LVU@UmWk@mLxWa@wóƒUVUIÇÆĉ¦¯¦¯xʟJ"],encodeOffsets:[[124392,41822]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/nei_meng_gu_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1507",properties:{name:"呼伦贝尔市",cp:[120.8057,50.2185],childNum:13},geometry:{type:"Polygon",coordinates:["@@„m@Łkƒ™Žƒklƒôƒ@£kJ°ý™ɅķÑó¤ğLĉÅlÇğŁW¯¯›™ƥóÿlwkţÈéÝƛó™°ÞÅxV¤ĉĖWƒ¯lȭţυ̃ɱÿķƅˋğɱřÝţϙȍƧĊţ@¯kWKUKm¹Å@ķJU@ƧÑƧ„ō¥˹Ɔ@L@„Þ‚VLnš@VōČWJX¦@JŻbU@ţÞmVU@ȁýóbkWWLƒƒÅ™¯UWġkmóƒ±UŹôV¼ƽ¼ƒł̥ĖƽǬʉxĉŽŻȗKΕ̛ʵƨʟÞ˹»Ƨţ»Ǖō˷Ȍ±ȚʊĠUɾɜɨmÜ֞߼˸ƅȂ¯ǖKˢğÈÒǔnƾŎՂ@šĊbôô̐¼ƒ@ĊôĊŽÞĀ™xšĖƧL±ŽœŽ‚Uš°U„°ĬƒČ°ÜƒêɴȂVł°@ƒ„nxŎèƒbȄÞȌ΀Ǹl޲IlxĊl²ÒmšôĖ™Èl„ĵºm„ÈêVþ„xɛČʉÇĵVmš„ÒƒÈɆôƐŰǀĊ°ÆǬĮƾb„yĊ@ĠšƒXǀċm»ôw°Ûk¥Çm¯ç™kkÇǫţǕéX_ĶWǖīŎaÆĵĸĊ@ȚȘ‚™ĊLĢĉ„VÆĉʊÇĕóaU¥šĉ°mkŰġUĠřk°mƒÑČÿ˜ÛƒWĸ£ʠšÆxÈÞŎÞ»ʈ²ĊÇČalÒ°Ť±ĸz„ŽĊKȲm¤Ŏ@Ò°¼nyȂUźīǖƳÈē°@šÝ̓@ƒÈkl¥Ççkxk™›JXÇƒUÅ@˜£k»„óƿīÛ@lÅJl¥óý@¯ƽġƍÅan™ċ™°é¯¹"],encodeOffsets:[[128194,51014]]}},{type:"Feature",id:"1529",properties:{name:"阿拉善盟",cp:[102.019,40.1001],childNum:3},geometry:{type:"Polygon",coordinates:["@@™ƏnǟƨʫšŹɆÿ°¯ÆV²ˢ™żÿ@ÝÆŁȰ¯ȀƳĉó™™@ğkyš¹@īš›ƒwl£Źƒƒ¯Ŧé@™ÇÇxŋĉƩUUŃōL™Ç™ĵóÝnƒóç@™™ó@ġƒƱ„¥ƒç™WUçÆōƒ@é—çťK™çȭVһƽ̻aW¥ȁ£ʵNJǓƲɳޗǔlżÞmĠóĬȂɲȮ@ÈĢŮźÔnĶŻǠšŎȭœгŃċóȭţΗÆƑÞƧÅΫóȘǫɱȁġlÛkǰȁÈnšõl¯ô„ÞɛÝkĢóWĊ„zÇɼʝ@ÇÈķlUČÅÜķnέƒǓKȮŎŎb°ĢǀŌ@ȼôĬmĠğŰōĖƧbЇƧōx@ķó£Ål±ĀƧīXÝġƃêĉK°Ýʇƅ@ΌʉżÅÒϱʈ@˺ƾ֛।࡬ţશóЈèʞUš¤Ґ_޸Ƒʠɽ̦ÝɜL׈ɛϜóȂJϚÈ@ǟͪaÞ»Ȯź"],encodeOffsets:[[107764,42750]]}},{type:"Feature",id:"1525",properties:{name:"锡林郭勒盟",cp:[115.6421,44.176],childNum:12},geometry:{type:"Polygon",coordinates:["@@ʶĬĊIȘƨƨŽ@ĬÛĢșŤĉĬƒĀóšU‚ÈŚÜènŦƐȤȄłϰUƨťƾÑ܆ğɲƜǔÈèʈƲĊƞƒšɆ¯̼V˺Ò˺ȂŤVĢêU܃x„Āˌ˘ƨ„ưѢmÞżU¼ÆlŎ@ĊçŎnÈÒͪŎźƒĸU°lżwUb°°°Vš£ÞlĠĉĊLޏɆnźÞ„n¦ĊaȂīġѝIĉůl»kƒ„™Çý„¥Ŏ¯ƒén£ġљÝȭxƒÇ™@Åçķ»óƱŎ¥™çWÿmlóa£Çb™yVÅČÇV»ÝU¯™KĉýǕċţnġ¯»ÇōUm»ğƒÑ™wƏbċÇŎċwˋÈÛÿʉѰŁkw@óÇ»ĉw™¥VÑŹU™mW»ğğljVÿŤÅźī@ř¯ğnõƐ@ÞÅnŁVljóJƒwĊÑkĕÝw¯nk¥ŏaó¦ĉƒV¦Å`ğуÑÝ@mwn¯m±@óƒÛKˍƏǓ±UšÝ™a¯lƒōšșk„èƒĬގn@ŤġŰk°ċx@œĉ`Ƨĕ°@ţÒĉwmĉ@ƒƒnƒƒa„™¥ķnƒÞĉVóÆókĉŽķ@ÝkƧƧÛaƒ°Ç@ÝÈU˜óbݼ@„ÛÒV°™@V¼ˋL™ÞɅŤŹǠVÞȗŤÇĖŚōbȁƜ"],encodeOffsets:[[113817,44421]]}},{type:"Feature",id:"1506",properties:{name:"鄂尔多斯市",cp:[108.9734,39.2487],childNum:8},geometry:{type:"Polygon",coordinates:["@@ĶL²ĬVłƑkkl@Ȏ™ŘWńÈĬȗ¯™ºlz@ĠššĊôŦô„ÒĠ°kÞܚ™n@¤„UĸèĸbŌÈXŽĸLlÒĢxɲÆ¤ÈÛƾJÈݰUšÅĶ»²VW¯ĸJôšbk‚V@ôlbnĊyÈzVôašb@ĸ‚ÞUl°yǬ²Ǭm°ššk„±lbn°@È»˜JX„VŎÑÆJ@k„LšƒÆl²™Ġ²ʊůĊġ‚řóƛÞÅ@m„ƒmLUÿóĉƧ@™»L@„›`ČĸmšȗÑţů±ĉğl¯Ā™wǎƒçƧŤÛI@±ÜĉǓçō°Uwô™ǫůķƳř±bÅ£™ÓÇwnÑó@ȁƽ@™ƒÇƧĢón»ŏĕóĊ¯b„Å™™VȯÅImƒōKU„™LǓ±Ýxċ—ŋ˜V±Āȗ°™„Źl±šÛ@WÒȁŚŹНŚÅèŌô„¼°ȰɞȂVĊ"],encodeOffsets:[[109542,39983]]}},{type:"Feature",id:"1504",properties:{name:"赤峰市",cp:[118.6743,43.2642],childNum:10},geometry:{type:"Polygon",coordinates:["@@ɲŁĢljĊwƾōÞĭ°_ŎŃźȹƒUČÿl»¯ôķVÿǬƽ™ɅġÅÑǫ»̐ʟȣU™¯wVWݍÈġW»Þ¹m݃ɛŎÿŎōͩůV¹›ō™éċ™óŹÅVVĢǩʈ@Ėċ@ķšÛšV°¯xÇÅţ¥™»°Ûô™ĉʟ„¥WýČ¥™w‚灻±mnÅķ¥ˋVƒbUÒġ»ÅxğLƧ™ƒbWĖÅxš¦U°ÝVóŰlô²@š¥ÜÞÛô„V@²±`𦙄™¯Ý@„ŽÅ„VÒō¼ôš™¤V²ŹĬÇĊƑƒţxƒç¯Lk»ʟlƽýmłÝÆƏ@mö°Ġ@ŚŹĬţÆUĀĠNJĠŽX¼šnźVUҚ¦Ċxȼ@ôlx¯łʊÒÜĀˌÇČxƍČÈƐašx„ÒĠŽn¼ŎVȐ‚¼Ģ°ŤmǖČĊþšLV°ÞŽU¼ċÈUƚzÈa‚¤ôbkŽ‚nXšè"],encodeOffsets:[[122232,46328]]}},{type:"Feature",id:"1508",properties:{name:"巴彦淖尔市",cp:[107.5562,41.3196],childNum:7},geometry:{type:"Polygon",coordinates:["@@²@Ζǀݴʶհĸ„˜ƒ¦Ķ™̒Uˌ¼ӾÇƾ¼̨UÞĉ˜Ƨ—éÝ»ƒĕĉ—ƐȍœōǪakó‚ó¯a@™ôţ™aV¯Þ¯°@²él¥ĵğťwōxó¯k±š—Vó@™aóbUÇyĉzmŽkaóŽU@l™aó‚ķIX°±Uĵ¼™Æ¯VÇÞƽIÇÜÅ£ɱŽġwkÑķKWŋÇķaķçƒV@£šmۙlÝğ¯ƒÑťóǿƴȯ°Åł@ÞŻĀˡš±ŽÅU¯°ɅĀ™źƧʬmǠšƐ"],encodeOffsets:[[107764,42750]]}},{type:"Feature",id:"1505",properties:{name:"通辽市",cp:[121.4758,43.9673],childNum:8},geometry:{type:"Polygon",coordinates:["@@ôƲĸ¼Æèš@„ÈȮwƾ»ʠĢ¥VÆ@²¥@»Ŏњ¯ĊJŤ£k»ÆÇX¯̼ōšī°aX£ôƒƾȁꥄƒ™aôŤ™ĢL°ƒĸ@Ȯ¼ÈÒʈŚôVXůÆaĠƛÈKƒķšĉôÿ@ğÈĉ™»ÇVn™ĉV›wXĠݰšČÿĸwVƒ™¯¯ǵ±™ĉ‚ǫ™ÅÅm»²Ż±ƽIm¥ţÈķ@¯šƧJV»ÞUÝç¯UġºU£ţŽóaÅÅlƒƒ™Ƨī¯K¯Þ݃ğL̑ȍƽ@ōŎōĀƑɜnÞݺX¼ÇĢގUX°xVšʠȤ̏Ǭ¼ÆÒɆ̚ŽǫƾUĀóĸ°‚k¼ċĀƑVŹȺōń¯`ÝĮƽŎĉxġNJɱłō¦"],encodeOffsets:[[122097,46379]]}},{type:"Feature",id:"1509",properties:{name:"乌兰察布市",cp:[112.5769,41.77],childNum:11},geometry:{type:"Polygon",coordinates:["@@ʠǠÞĸɲȺƒÒȂƛŎaƙÈĕȘţUÝźǟɆţšÝˌKU»š@U¯ÜÑ@ƒÞ»ôaV—ÞÇÈ@„¯ÜbƨƨÞlĸ@ĊôlôÅĊU„Ýĸmš¦ƒŽ„bm„„„Ċ@n‚ĊxŤÑ@¯‚ƨĖĊ_@›Čwl¯™ƒȭL›Ý„»ƽ¯ķů„Ǔ@ÇǓbċ™ÅÅÆwÿĠÇU£óaƒ¥¯aŎğĠţkw°»¯ůlÝĵkǻݰɱƧǫaóôɱ»Çk¯ŃóƒʇŐŻ›ĉNJŻĢ„ޝÒÈUl°ƒx°n„Ò™Ĭón™Ċğ°ÇŚĉ¦ʵVƒ°°ĬÛżÇJȁńʇʹó˂ƽŎ›Æţ¦"],encodeOffsets:[[112984,43763]]}},{type:"Feature",id:"1522",properties:{name:"兴安盟",cp:[121.3879,46.1426],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÆXnlŎ°@LVLĠþœxĊUȮĊnU„ĠV@żaW¯XIŎġƒ¥Ý@K@w@K@I˺ŻŎ¦ƨƒƨÒŎIÆ@X@VºnX°lŎ@ƾĉˤƒȘǷȘÑÝݚÞbVţĸÿŤxÈĖƐށêÇKnĸ¥ô@›ķÞUnÒl@UŚaƒīˋƒ¯ÑƧx@±kXřƐƏÛéV™ˋ»lō¯ĉ„ÅÇÓǫޗĖġV@ğ»›°ĵ„ÇÞǓ¼¯m˜ÛÅŃĉĠÇƾb²çƒ™šéż¯VƒƒğÞml»ōÑV痻V¯™¯šĕÆU¯y°k¯¯V»ôDŽѰa@Źk™ġKţšóŽšbƒ„ʦƽȂó„W¤¯b™Ĭ̻ŎW°ÅÈl¼ţ¤ĉI™°ōÒ@¼±¦Å@UŽġ¦ʟŽƽ¼šÞĢÒm¤„êō°ƒ¦Èþƒšl„k¼Ċ۰JĢńȁĬ„°ƒżn‚ÇbV„ݼ@¼óĸţ¤@°Ånšl"],encodeOffsets:[[122412,48482]]}},{type:"Feature",id:"1502",properties:{name:"包头市",cp:[110.3467,41.4899],childNum:5},geometry:{type:"Polygon",coordinates:["@@źxżĀǔÆǬVȘĀŤ¥œÅƾōôˁʈͳȂŃÈIÜŻ¯ī„¯ōm™¯ɱ˝ƒķÒÝIÝ»ÅV™ƒlÅôфġ™ğVmÞnnƒWçkW܁XƝÆwU»Șĕš£ĉÑ𱱚Åk™„ƒK@lÅIō҃UW‚—IǼ¯@m‚kaƒ²™l¯™ǫnǫ±¯zkŽÝVķUô™˜l²ô°ŎwŦxĶĠk¦±ê¯@ݰU°šbóŤ@š°bôlôǩb›ŎƏȎĊ˜„ĖÞ¼˜ê—ƨÝĊ"],encodeOffsets:[[112017,43465]]}},{type:"Feature",id:"1501", +properties:{name:"呼和浩特市",cp:[111.4124,40.4901],childNum:6},geometry:{type:"Polygon",coordinates:["@@ʶUĊ¥ÈřĠ¯šĉômšīƒÑ¯m„wk¯ÇV°ÑƒżġĊljǓɱţǓ›ƝóX¯ƒɛÒóa@nÝÆôƜŚĉĢʉŰĊҙ¤ȗĖV¼ÅxWƞۂlXXèm„ÝmUnšĠƒĢóÒkƚ„ÆUÞ¼ÞJĸѰ„ɲĕš°Ŏn"],encodeOffsets:[[114098,42312]]}},{type:"Feature",id:"1503",properties:{name:"乌海市",cp:[106.886,39.4739],childNum:1},geometry:{type:"Polygon",coordinates:["@@Ș°ÇīXњŗ@ȍlkƒlUٱīĵKō¼VŽÇôXĸ¯Ž@šťê„°ź„k¤„x™œ@Ĭ"],encodeOffsets:[[109317,40799]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/ning_xia_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6403",properties:{name:"吴忠市",cp:[106.853,37.3755],childNum:4},geometry:{type:"Polygon",coordinates:["@@nLV‚@šVLšaÞbn@@l˜š@bUVlUV„zVx™¤kÞVèšXnš‚@nm°a@UƒÑ„@VŽXnV@Va„UšŽVKUUU@@U‚@@KVa@U²@‚wXkWnk„±lLnU@UmmVKnIVWnI@UK›@UK@@UVKXkmWLWUXmlkVwUyVa@w„w@aVI„K@aVÈw„KlLVV@LnV„VVnU‚ܲ°WÈIUÆ@nÞ¼‚‚@¦™@UÞUVW@UxUxVn„b„K‚b¯ÞU`VbǬ™V@XXÆVVl°InmnUôƒ°¯‚anam£œWVX‚KXmškôaVU@ƒVak@@wmaƒn@K@UÛUWKXUƒÇƒ@UI™b@alW@akLUKV@@Ukw±Iš›nL@kmwkWmk@JUIƒůVmnnU@m@UƒK„VKlkUwkƒƒnVUKmbkI±š—KƒkmVkKƒb@U@aƒVkUmn™`kIlaUK@UUKmbUIݚUa@mUa@aƒ„m@UUULUK@bmKkbWI@WXwlkXƒWa@k@kKƒLVkkK@L@JUVmzUKlwUUnW˜£XVlKUwVU@aXI@aWaUw@W@_nam@¯‚UkWVkUWaU@nwmJkUVkWVUmUkJ@ImbUaƒ@@WÅ_mJknmak@@mƒXƒaUV@„ƒxUšƒ„@‚ƒ„@VUnkVƒ@Vn@`ULUbWLXVW@kbUJ@XW`@ƒnÅĖWJƒ@—m°@xƒxšbnUa‚w²lƒÞ°xŤIVVULۂWbšbkVVXÆ`UbVL„@kx°LlV@Vœ„WbƒJn@bl¤ULV„°@lmL@ƒƒ£U@@aUwmKULVxUVVx@„™@kU™@mK¯LÇa¯@"],encodeOffsets:[[108124,38605]]}},{type:"Feature",id:"6405",properties:{name:"中卫市",cp:[105.4028,36.9525],childNum:3},geometry:{type:"Polygon",coordinates:["@@°@Èb°KnLš@lVš@@ƒUwVUUwVKnLVx@bV@„¤@„nK@k‚¯UƒVKk£@a‚m„IXa›ƒ@UkU¯Klwƒ@UKVaÅ_UWlU™aXa܁VKUUţJ¯w„ݱkxVbmŽ™a„w@wn¯˜„@XIÆĕ„m‚@X_@WVIlaX@WUXKVaVK@_Um„@lUVm@U„ƒ@„ƒV™„w@ƒVUÛwm@@W@ImKUkU@Ua‚aXƒ@wWaUKkw@UVaUamLU™nk@»±`¯@k—W@Ua™ykbƒI„„@VWJkLWUkJƒwU@ƒn¤mL¯wm@Umƒ²XVWbnV@bmxƒVkxUblLUV@kVWKU¼ƒŽkUƒ@mn@JnV@bUnmJUn@„k‚@XlxšLVVnKlLVV@š@LkKULVbk`WL@lkXW@kVƒ@UÞUlÇX™lkaUbmV¯@@L@šƒV@bkb@xƒlW„—bƒbW@—±@UJ@IU@mVk„VxV@@l„Illœn@Vm@ƒVUbl„@JLmKÛXmVkU›KULU`@LĉwƒKUX„lVUl@Vb„JX¦̼bÞxŎxɜĖĠ„Ŏaô@"],encodeOffsets:[[108124,38605]]}},{type:"Feature",id:"6404",properties:{name:"固原市",cp:[106.1389,35.9363],childNum:6},geometry:{type:"MultiPolygon",coordinates:[["@@Vnn@°xnK‚£„mV@„xlIXVlKXI@Uƒƒ„JlašzVbX@l˜°@²_@¼mlVšnKVbUb@VlxVLXb@xW„bVbV@VlnL@J@Xn@Üx„b„W@nl@nblmnIÆ`@X„@Vbna@aVUUWVkƒ@kbWakbU@VwšW@_l@nmn@@alVlk@UkmVak@@a‚UXaƒL@¯@KVa@axWI@KnkVaVJn_lJ@„X@‚m@nVanUVb@mXLlJ„VWnLla„VVaVX@KXVVkVKlknKVa@aVU@KXb@klJUknUmƒ@K@_UW@alIUamaU¯kJma@IUK@U„@@UW@@aXLVƒVJVaXIƒKlaUkUV@ambUUJkIWJ@wUI™V@JU@UwV@@Um@™nU`@UkUmVUxWUUV@aÅb@aWXkKUUƒUUaWK@wnm@IVU@aXwm@UmVaUalk@anKUwlƒUwlkK@wmaƒUkmmIk@VmkUUbW@UVUnW@kV@xkVmbVnU‚™@UbUV@a›k@kkW@„kLW¤@„nV@VU@W_UV™UU`VLUV@IUVõVULU@UUUJ@wmkUJ@šWI@l@bkKkbVVƒbVbUL@UUJ@Vm@@L@xbVVVLVlVwX@Vb@bmUkbk@@JWIUVÅw@Km@UkWKXxWLÅ@UVUnWK@xkVW„@KULwWVXVWzXVVKVXkV›V@VUbV@U„VV@š@LXxVL@V„b‚Ž„LnKVLVxXVmb@l"],["@@@J@aƒU@LWK¯UUxVVn@Ġ„„LUW@UbUUUa@KUX"]],encodeOffsets:[[[108023,37052]],[[108541,36299]]]}},{type:"Feature",id:"6401",properties:{name:"银川市",cp:[106.3586,38.1775],childNum:4},geometry:{type:"Polygon",coordinates:["@@šUšwVK@UVWÞUšbšw„V@knV˜@@KU_VK@K„ƒn@W_XWlL@Vn@Ċw@Ulaœ@Wanamī@aƒ»ŋó@aÆÅɲÿUaV_°ÝaƒLƒaUmVwVwX@VUVݚ@@¥Ý»@mVÅÇJ¯XÛ±VUmƒUmU@KUUkKƒLÇxUŽ@bƒLUJ@bƒx@xUbVzUxklWnXV‚KnXWlUL@V@ŽVLœ@VL@ŽmJUXmJULnn@VmVkKƒ²mlXWlx±@@VUb@L@@VV@VVUL™ƒVUbU@WmUƒ@„Ò@V¯bmn@VŽƒ„@lVnUšnVWŽXVl@¦VVUn@x‚š@‚XL@¦‚lXxš„Vb"],encodeOffsets:[[108563,39803]]}},{type:"Feature",id:"6402",properties:{name:"石嘴山市",cp:[106.4795,39.0015],childNum:2},geometry:{type:"Polygon",coordinates:["@@U¯ķó±ÇÛ¯™ķmbXb›@kb@Vĉxm@@UkKWXX`m@ƒ„@LULV`@L—@mU@lƒU™x™aÝVUX@VUL™x™VkLWVšš@J„nVLXVlŽUV@zl‚VL@V@b„„n@lU²WVLlLVbUŽVxUx@xǀL˜xôҜk‚K²ŽVa‚U@wXa@W™ÈĉUa@‚bÈk„m@¯"],encodeOffsets:[[109542,39938]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/qing_hai_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6328",properties:{name:"海西蒙古族藏族自治州",cp:[94.9768,37.1118],childNum:7},geometry:{type:"MultiPolygon",coordinates:[["@@„V£°š@laœXô±źwš™ô@„Ulƒża܍n™Kƒw@U„aƒ™ša²L‚mÈLƚÈxlaUa„wÞmÜbÞUšnJ°a„kôƒ‚ÑkwÝVğwÇ@ÝkkV¯¥@ò„»„nŤ¥XImw@mVwša@Åw™mLkaW—wƒ¥l»kçƒó„»@ƒWÑĉŽğ@ĉ„™‚Ń„UwóřVómĵ»™™Ý@VǕ¯kšÝĊÅk™°ÓUklkU±šI„ÇÞkƒ±@šƽJƒ™@UġIk@W¦™VÑșÓÅnťKULnޝX›ƒ@¯mUÛ@WřmóKknōbƒxÝ@ƒŽU@kw@ÿÇLţšÝUkšmwƒŽk™lċVŚU¦™ŽƒLkUWlÅÑ@aƒ@ÅѱUóġʼƒÈĉmŻ@@wkw™Kl¯U™ġ@—„lÇU™Ó¯_ƒ‚Waĉ²Åló¼VbknƒKǎÅ@ƧĢō°Ý@ğ„W™ÅxUUm@™‚ÝXۂW„ULUè¯@mbUaƒLƒbUWġxIUJWz™a¯b™y™@ōÈóLU`ÇXUl™UĉV¯n›mÛbǕLklƒUĉVƒšóaġ„ƏbġKţnkbÝmmnÝWȭȃŽÝXţWókUÇl¯U¯‚ġUɅĀ@°¯„„š¯„VÆnmJ@ĊķnóJUbÝXUlVškL@lVxnnmb@¤Vzš`ÞÞŤ@„VnÆJV„°b„UôJkzlŽkl@²óš@ÆÇ°k˃šÇbÛU@lmb™XV˜kzƒV™ŽɅĀXˢlń„ĬŹ@›éÅ@ĉńưğbUšlŽɜ_°‚@xŦ˜škbVbƒKĢ„ŤVŎް@żÈźlĊ„ôKôb@nôxŦ„Æ@ôŽŎL@þÆb@šnnšWˌbÈx‚InaŎxlU@Ѳ±ƒğVŨƨbɲ@Þ¥ôUUķWVô¯ĊWʶnôaŤˁ@£nmnIôŽǪK°xUXô@Ŧa°m‚kXÆÞVŎkĊ°ÞLȄôyVašIlwX°UVwĢÑÜKôw@nV@œm°nmŽn„Ü‚ɞ£VbmŽXnƒ°ÜÒ@xx@V‚b²UlbkxVnšJUnVVĊ°KȚm°nxÇnn¤±¦@ŽUXVV@„lV„„bmVVȁŽVxšÒ™°šIšbźaȃšbVwš@šƒVL„™ƾÑ@ƒŦô¯ĊkôÑ"],["@@„@šƒ„@n„òVœa‚w²bVxšxÜaČVô_ĊJšIVmšL„a°@Ŏ¥XlK@ƒšk„l„KVbUb˜@nUĢn‚aÈ@lmǬ»Ġ¯œn‚mnƒƨVy™Ñǖ™Ġ»ɲInŽ‚@@ÅĢƳ@¯°™ôV„KÈbVIÇ¥¯@Ýó„™@ÑnīWKšƒk™‚k@¥š™¯™Åa™Xƒ±VÅw@±Ġ¯@»™š™n™Wmw@ƒ™@¯ƒVƒUUWçƒKĉ„a±VkkƒV¯w™x@šUJ‚x@bknÇb™mÅ@Uw±U¯¦UŽ™Kmš¯I¯Žť¼ğĊ™@ǃŹÈ¯@Ý»ÇnˡJƒbÛèÇnƒ„ÅK¯„ġĠʐW¼Ålm„@¤n²ƒŽÝb@b„š¯lƒ¯@ƒšÅ¤W„™¼nV@x„„°@Vx„@lbUblbX¼W‚œšÇ²lšUŽ@¼ŽV¦@bÇlVxUbVxÞbVšœbm¦ƒVV„"]],encodeOffsets:[[[100452,39719]],[[91980,35742]]]}},{type:"Feature",id:"6327",properties:{name:"玉树藏族自治州",cp:[93.5925,33.9368],childNum:6},geometry:{type:"Polygon",coordinates:["@@ɆÿĢV°°VÈklVôŤXÞW„ȮÇÞXnmÞnlaŤmĢLƐãôb„™ĊU„VlkǖKÜaœn°mĊUšVVkÈWV_ôKŎǚ@šz°ašbXyVI‚JĢwVX„a„KVbna°@VçVKXƒÜÞWšn@VVÆwXšĠƒÞ@Ŏ¯ƨġÆ@ȍ„LlmUaô»ÆkĊ±Xb„°`šÔV‚kȘƒĢ@Všk°šLlx@xż@Ċn„Çź»ô̲VÆÒ„@@bÆÒXklV„KšV¥Æ™ČUšk‚l„nxl™çƒ¥ċç@±m¥ƒwÅJƒ@™™™Vƒ„mÈIléÈa°U¥™™@kÞV‚K²ÑWƒ°w²Ñ‚K²ñšyƐ„ÝšVmw„»kkWĉ—JWUƒVÅwƒL™mÅ@@ƒmw„kn¥Vу»°™°@@»„¯„Lla„JônV‚UůƒU@W¯Umѯ¯k@WykU@¯„wV¥ƒkVwţƒk»šwWǜĉĶçšK„ƒÞ™ÇaĉbƒI™lUƒ@kwƒWƒXUƒ°w™±@UšKn£Wĉ—KWxƒkĕVƒšamwXw™@™„Wmnk@aƒVkƒ™bĉLƒl™Imm„wUÇ‚Wx™nÝJn@¥Æ™kwƒaXƒÜĉ™¯ÅV¯¤mkƒx¯kķܙ²VWôŹVUƒƒ@V£™¥@ƒ°wn@™m@¯@UbUôķŽmn@ÆÛ@ÇýVaUÇĊVƒ@Çlğ—¯xÝŤ™lVÈÈVƒx„ƒ¤Vx™„kK@™@ƒx@„kVƒĖġ¥kIWbXŽŎx@nƒxÅUW`ƒ_—@±ŽUa™LUxƒK¯„WbkVlb—bmŽƒLÛÆWIUwƒWkwÝV@kI›ŽéUb›UUk™V¯Km¯k@Umݐ¯m¯›m—L›Þĉ‚ÛUm™ġ£UxkKm°™Lw›šk@kšƒVm„ƒKVUk›@¯a¯Ģ™móKUU™x™ImlÅn™™ÇbXèVVU„°„@ŽšŽ@„‚xXnmš™ššŽ@¼ğ°@²ÆxU‚„²šWÆb°š™š@¦llš™„XLmĬ@҃šÞô°@ȦUJÇaƒLóU¯š@°ġƴ@Ɓ@mɱJğ¼ǕššÒUzƧ‚m„n›mğ°ǫ¼knÇ@bġmmV—@VaUaƒLƒk™l@„kLW‚ō¦¯@ƒb™KUn™JĉIó`ċUÛb™wUw±ax›bñUmƒƒ@™„ƒ@—bƒaƒbǏÅXm˜„ƒÝ„ÅôVbގ™bl„UšÞVޚ„U‚°„VUxƒ@U„V„@l`™¼nL@Ċ„LW„„¤kXķWġXUVVVķ„UbVb@°kVVxÈa‚@ȦĊbšaźJ„U@Ț„„˜Vœƒlš@XkôaWƒĢ™Þ@laĸUÆb²mÞLĠ™ÞÑôbšÒĊa„JVbm¦"],encodeOffsets:[[93285,37030]]}},{type:"Feature",id:"6326",properties:{name:"果洛藏族自治州",cp:[99.3823,34.0466],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÞVŤ™ÈK@ĀlxV@„Þ@„wŎalmôLšnXÆÜ@nV‚°@œ„°WmVKŦLÆmȚԂҚUX¥l@ĢJVš@„ŽƾI@w™W°™™Ån¥›kÅÝVwôƒÈç„@lÑĊĕša„JnaÆLVw°kny°UnkÆVȍĊll¦„Vƾ@@™nUźƒÈǂIn°X„wÞKô¦VWV£„@£°ókċ±I™™am¯Va™»ČĉV¥°™@m„k„¥l@„Ċm@ašU™mwXƒ@wÆxšmĢ_„`VnÆbšKVw„@@ƒnUVğVmVVöIlŽl@@çÛmƒ£UDŽw°@VUƒ¯»m¯ƒJōĖÅLƒa@»ĉ̱`U_k`ÇçšóƒkX™lK@ƒakÝރš£WċkÝ™kxƒJݯÅw™xķxmIÅx„@k±J@ýŋš›¤UœkŽmV™°ÅÝxkwmġƒnÝVU„š¦ƒŤlmšóXk¤™UKƒç™@mVkK@klīƒ£mš¯VUbƒW¯¼ċb¯ĵam¼mVX„m@k¤ÇX‚ÇbƒUƒ„¯J¯„¯È@˜™bVXVҙ¤V¼kxݚV„@l‚V—„WxÛ¦Wš¯šmKnlŽkŽ‚šU‚@nƑUĉ„Ý@ǺۄċUĉ¥™UƒÞŏ™z±òL±Ò¯xX„±ÒLÝU@lššV¦¯‚ÇbkêÇJƒnU„šš@š„‚ÆI„xn¦‚‚@²Č脦‚è"],encodeOffsets:[[99709,36130]]}},{type:"Feature",id:"6325",properties:{name:"海南藏族自治州",cp:[100.3711,35.9418],childNum:5},geometry:{type:"Polygon",coordinates:["@@VxƒŽńƒš@ĊĠŽĊXÒ°UƾĕÞm°£nb@‚@LUUW„Ûº@nlÆǬšĠ£ÞV°UXb‚VȂǵ„éƒ@kWanm°@™x„z„K°¯ĠVšƒVƒkw™Lnm°kÞxÆa„¥@‚wnĉƏ@™œ_l›š_VwšmĸèŤÅČU@™˜Wn@ÑmKU™nğƒK@ƒ°¯UÿV£nmšLl™„UƒUÛé±óókkmƒnƒakV@ǰóÝXƒWəÞťIţxmm™VÛUVȂÓnWyȁĉkƒVš°WnkĊa„¥‚_œK°ÿWna@ƒmU¯wƒlÝIU¤UXó¥ÝLƒx¯WmJÇÈŹ„mV@šƽ@ƒUk¥ĉkċŽÅUml¯Vmz¯lUxÅKmbƒI™bĉĖk҃@Çèó„UxÆÞœlm¦šÆ¯ššX@x™Ž@Ž„²ÝlƒÈ™JV²klVl¯ÔlšĉƙްlUǖÞ@ššĶ¼nŽUôôŚ"],encodeOffsets:[[101712,37632]]}},{type:"Feature",id:"6322",properties:{name:"海北藏族自治州",cp:[100.3711,37.9138],childNum:4},geometry:{type:"Polygon",coordinates:["@@ōmġxƽUm±Lǿþġԙ@kxmWƒb¯I¯‚mIUx@bƒbŹVǎƒkĵbƒlĉI¯¥ƒUšm@ƒÆ¯È@šašóšUlƒČ»@w›œ»›wXaƒƒó°ţç݄kUƒaV¥ÅbÝw¯lmnšKlxU„™„ğU¯°ƒLƒyšw¯@mnXb‚l„@ƒêȁǶUWa¯VÝUğ¤ǫ™kÅ@mܹXƒVV@K@ma¯¤Ýnƽ˝V@„ƒ¼„ôlèk¼„¦˜xXŽlbnKšÆx@Ž™bUx@nnxWJţ¦ƒmƒ¼ñ@ް¦lUÞlÈ@ĠxÞUlxÒó„ƒl¯bmI™ŽÝVÛaÝnƒxVbkbÇwřÇKn±K™b„šƒb@V„xšLmŽÛŽŻbk„ƒVó@™šŹxó²›Wkb™@¯U¤ƒźĊ@lUX„°lÆôU„ƒlLX‚aœV°wšxUb°xÜôÈKVkÈmlwškÈKšwšK™™VUŤĉŎ»„»„Il¥na°LV»²¯Üy@w̃°ĸwlwĢw°±„_lVkš@°ƒbƒÆ¯zƒ‚„š„@l_„@̱lŚVlUaރ„LVƒnKlnȏ°IllČa˜wÞѰx„UU™@wƒVkmĠLô»„KÞýôaÞ¥ôĀÞmƁ„™‚mUƒŎV¥Èl°²°a²¥V„@@w„amm@Ñn@Æ£żƒVƒĠ£@W„¯Þƒšl@š»@Uk@"],encodeOffsets:[[105087,37992]]}},{type:"Feature",id:"6323",properties:{name:"黄南藏族自治州",cp:[101.5686,35.1178],childNum:4},geometry:{type:"Polygon",coordinates:["@@ôl²ôÜê„VƒVkš™KmnU¤V°@„„LmĠVšnLÈL@alb@al@n°Vš_XmWUÈamaVIn@n‚aV£œóVWƒ™U£°ašxÈ¥@™‚aĊwȹ@óša™ƒğbm@k„w@mƒaÆw@ƒ„In¯mmƒ@UkkWƒÑÅ@@kċÅçVkÝJÅkVykŹl¥@¯š™ĢU܃X¥òý—mmX™ÝÅlmU@£™Wly™XW»Åbƒl@aI›»k@klm@UxUUƒVƒ¼¯Xƒl™aUnķ‚ƒI@x™@¯„ƒK™„ĉUU`óšlȝô@¤ƒÞJ„k°xVŽ„n@ŽmbXޝ›L`ƒ¦ĉbml¯X™ŽUŽl„ȂĊXzm‚ȁÔU‚ÜVšUnnŤwŦJɚ݄XÞW¯ô@ÈlU„b„mln"],encodeOffsets:[[103984,36344]]}},{type:"Feature",id:"6321",properties:{name:"海东地区",cp:[102.3706,36.2988],childNum:6},geometry:{type:"Polygon",coordinates:["@@@҄bš¤ÆI°ôU¼š°UŽnnWx™š@b¯L@lUUWbXxWl„ƨnxVUllš„XVŽUŽnL@lȀý²KVnƾ‚ĢwV»ƒ@mÞ£nÆƒÞÑmL™ƒKUaVżĕƒWVk²ƒƒÆÝ@ƒXw°@„ô™@a°wóUUmIk™™aVmÞwmknyƒ¹VÿƧnŏm£X»˜™naV±„Ýw@ašb@aƒm¯„ĉVó¦kÝWKUU@WanU™b@ôǺĉxb@šÇ¦™w¯bV¤„šUX›ôU¤bmm@UJnbÇbXVWn™`¯Umk@@bka@bÇK"],encodeOffsets:[[104108,37030]]}},{type:"Feature",id:"6301",properties:{name:"西宁市",cp:[101.4038,36.8207],childNum:4},geometry:{type:"Polygon",coordinates:["@@@kmKVUƒWk™VkUmwƒƧXkWwXaVV@k°K@aš™XwmmV™¯V»¯óÅJ™£ƒamŽ—X@šċVţÆķç™nUx™`kœ›`@šÅmĊx@Žƒ¦U¦„blVރŤèô¯„„Wbœx›¼œŽ@xċ¼k„™V™ô™bÇ@Ű@„™n„V°¦ĊJ„kĶa„lȍźU„a@aVwnJ°°J„anXlwš@ĢÓ"],encodeOffsets:[[104356,38042]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shang_hai_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"310230",properties:{name:"崇明县",cp:[121.5637,31.5383],childNum:1},geometry:{type:"Polygon",coordinates:["@@uŏu»GPIV±ÐɃŜ{\\qJmC[W\\t„¾ÕjÕp‡nα|ěÔe`²„ †nZzZ~V|B^IpUbU†{bs\\a\\OvQ’Kªs†Mň£RAhQĤ‹lA`GĂA@ĥWĝO“"],encodeOffsets:[[124908,32105]]}},{type:"Feature",id:"310119",properties:{name:"南汇区",cp:[121.8755,30.954],childNum:1},geometry:{type:"Polygon",coordinates:["@@`y”ĉNǕDwǏ»ƒÖLxCdJ`HB@LBTD@CPFXANC@@PGBKNECCBB@EBFHEDDDSNKAUNBDMNqf[HcDCCcF…@EFGLEBa@ACoCCDDD@LGHD@DJFBBJED@BGAEGGFKIGDBDLBAD@FHBEF@RFDMLE@SGANFFJBANPH@@E@FJjRIACDMDOEKLFD@DbDAJI@AP@BGHFBCBGDCC@DCA@CECGH@FKCEHFJGBFDIHACEDNJDCVFBDCRKRLDLITB@CjNJI^DBCfNVDHDFKHAFGDIICDWBIF@@CFAjFJNJBBHD@CJ@AEFJ@@DH@BFBCPDBMFEQGDIFCNDHIP@HDABFACBJFHEBSZC@DP@@JDBƤ~"],encodeOffsets:[[124854,31907]]}},{type:"Feature",id:"310120",properties:{name:"奉贤区",cp:[121.5747,30.8475],childNum:1},geometry:{type:"Polygon",coordinates:["@@~T~JjZdDbLXDLCB_J@@FHFZJJIAGH@HGR@BENBLID@@LFCDF\\FpDBDb@FAHKFE†@dEDDdC\\GreNMACVMLBTMCCFCEGFAA@DAFDLMHA@OD@BMEWDOC@AS@KGAI_DcKw„ÕísƝ‘åĆctKbMBQ@EGEBEJ@@MBKL@BJB@FIBGKE@ABG@@FMFCPL@AjCD@ZOFCJIDICIlKJHNGJALH@@FPDCTJDGDBNCn"],encodeOffsets:[[124274,31722]]}},{type:"Feature",id:"310115",properties:{name:"浦东新区",cp:[121.6928,31.2561],childNum:1},geometry:{type:"Polygon",coordinates:["@@EN@JJLNHjLJNR^GRYVBNZJRBV@PDvbLNDN@LGNER@nCNQNuT_TIVFV\\Z\\XnDrI|[Ʉś²ÏJUHOƣ}CA@IO@@CYDATGFIEDAEBBAGCO@GJMCEDCJRHEFANOCADAEG@@CI@FE@BDIC@AGIAIMiEEB@DE@AJCXJDCJEHGBELGCUCeMAD]CIJiM@DSAKJKCLQDQACUECDMIFCBDJGECHAEIWCK@GLMCCGEACNKCEJG@MMBMC@@CIJUINT@JAJSTEPZZCP"],encodeOffsets:[[124383,31915]]}},{type:"Feature",id:"310116",properties:{name:"金山区",cp:[121.2657,30.8112],childNum:1},geometry:{type:"Polygon",coordinates:["@@L@BIHFN@@EE@@EFBDGDAADVDD@@EF@CA@IIsRE@GDAF@BF@CV@|FBCHBLCNHAFCADBMDCFZXHILBVEEQA@MWFARJJ@DCX@@TEFBLHAAERE@AJABRPBNK\\BrJ\\VHGND@CNADKDADQjGAGNC@GJ@FCFFHC@JF@@dLBDSFADHVG\\DTEPDDHJALIJkJDJCDIPE@YDCBiK@DONE@EH@BAF@HLJA@EIA@ALKNA@@FIFAFHR@NALadsæąyQY@ƒA±DʼnXUVI^BF@FFF@HBJEDFFGFEBSRkVEXGHFBMFIVW@GAEEFOIAIPKABGWEKFSCQLQBSEIBC\\FdBLRR@JGACFDDEF@AWB@LJJYNABBA@CUEGPaO_AIE@MYMFIGAEFECHSAAKAO\\[JEDB@E@MMA@@AGBKMGDFFCDDFEDFJF@NPBAFLHFH@EDDHBADDC@DDCDHHCDDFDABDAD@FEFOBCJ[D@HEDDNJBDDHABJIBBvGLBJAH"],encodeOffsets:[[123901,31695]]}},{type:"Feature",id:"310118",properties:{name:"青浦区",cp:[121.1751,31.1909],childNum:1},geometry:{type:"Polygon",coordinates:["@@RUNKdOFDJCbRFMLAHPLDN@JGL@@APBWYCKN@TU@SHGCEJIDIJKVIZVNM`iNY@CIE@CA@KBOEGEUFCCSADEIEFCDDDIDDHC@CKIeDCG@IG@DHWFEEGCH@@GO@@O]CNpeEQDBFME[JC]DGF@CKOA@QSB@GB@@GW@@ED@AQIJIAAFE@@DO@CFI@KNG@CDACAFEGKGBEGBDCCAIFCCLIECFI@MBCLDHGNAHSF@DMB@EEKBA@@C]DEICFG@ADBHGFKCDAKKHKD@@FHGAANGEEFCHKCECBCKG@ADKCNE\\[A[I@@mGBDQQEO@BCE@AI[AML@JGACLOAFKEMM@EQKC@CUCBCCBCHEA@FF@@FM@GEAJK@GNF@EXPH@FD@M^@HIADJCFDBER@DK@@DE@CAKFOCCBDHIBCNSB@GFC@GQEEOWFICGDUAEJIDBTAHJHEB@DIF@NE@H|HBDBEH@DKBAHEF@HEEUB@FGFGCCCE@AHOB@NH@PRLVNNFBX@RC€PbAvMtBfH@DJF@ELBFA@EH@HNED@FFB@HLC@CJ@@DJ@PIRf@HE@CFF@GPHD@DKE@FFBEFFD@DEFCA@DD@IjCRFBAHFDKD@HF@@PM@H@BlbDJDBFEF@DLXB@HCD@@IFCBIFEJD@FDC@FBALLF@PAACJERACAJCBD@EL@JD"],encodeOffsets:[[124061,32028]]}},{type:"Feature",id:"310117",properties:{name:"松江区",cp:[121.1984,31.0268],childNum:1},geometry:{type:"Polygon",coordinates:["@@@DLDFRN@FNELPBDKHB@INK\\BBJF@ADP@RFCRHA@nJ@B\\[\\MFLDBCH@DLDADFGLEDFFMHBBGH@EC@GLLLCBLDHEAGBCH@DEFJ^C@DB@LAFFA@CNE@GTMBGHKCAD@NEJFDKJDDJEDBCDHAAFLHFHBEBDDCH@LMJ@DEP@@CF@BEJBJIBRC@@FX@@HA@@HTA@RPBDLE@CHD^\\INFAERCfFMo^D@PP@@HG@HDFFXECGH@@JDHfCLJ@DGDCCCJCCEDJFCFTBDDVEHFPFLAB@NBFCFKFC@CHIACNOHWHCAAFIDD@CDAGEI@ACFMF@R@R_@GQED@EGFEQEDE_IAHKAEXCQUOQCUDEN@ZI\\DDmAMHCICDSOC@EG@BKHIGMIBCGOCSF[CUHCGEBCTKA@cE@@IGDEEEDI@@HMDBHiHCRCBCLMB@DMCGH[UqI[AMLOAAQIB@BQFBFGBAKFE@SW@CDI@QIEBNXB@FRUFKAGJYWDENCCADBBEMGKDGAAD{EU@@DAEE@CB@HQFJt@JDBE@@FC@"],encodeOffsets:[[123933,31687]]}},{type:"Feature",id:"310114",properties:{name:"嘉定区",cp:[121.2437,31.3625],childNum:1},geometry:{type:"Polygon",coordinates:["@@F@LI@IDKJADKIEJICADGACFECCJ@HKCAFOHAJI@aCBEE@ICAEB[GFGCKL@FGEIFADMLCAEJM@ELQECEIG@BE^QKKLQCA@EHBIGQ[GEHOMGGDHKH@JOECFCjCBEFDNCACMBCILGTABDLEEOEIG@GFIMM@CGKFBFCDE@@GEAGEEACIcGaHMFITIHDN[AKF@FS@OA@BK@IHM@KCGOKBENaQIDECcPMLQVFHFB@BFBKLGD@FAJOVGIACQ@A`LPCB@JEF@RU@ANS@@RCL\\HIFpRBFRBBDKLLDADJDGBFDABHBEDNF@DGBBBADKDAHC@\\JJFBDEH[DEFDH\\LX@XLBLbT@DNJLDCEL@VJABJNDHB@HBHYFBAA@GNFB@@AFB@AFABFLFBHFCL@HJBAFBLC@DN@HN"],encodeOffsets:[[124213,32254]]}},{type:"Feature",id:"310113",properties:{name:"宝山区",cp:[121.4346,31.4051],childNum:1},geometry:{type:"Polygon",coordinates:["@@ˆmÖoÖiƒ½[s[YEUJU`SCIEBCCWJY_LIICDWU@@FaBCJIB[ICH[@@CDKEE@MK@@IMCAEBCH@AMFI@SMGEFGB@FK@BHCAIFJNQD@FEBDFMBKGACG@ECWH@@CDDTOEEBGEK@GC@EE@GPHFR\\JHGA@FDBKRLL]RAFH@FJFDKR@FINBFKDCNEBFJEHK@DLEH\\HFADB@JFFDA@bIJGBEPDBGLI@DDEFBDCHDBIJJFCLIBCL@JKJE@ADHDBHJ@HIBBDFHBBAEIJ@BJFAVL¢ˆ"],encodeOffsets:[[124300,32302]]}},{type:"Feature",id:"310112",properties:{name:"闵行区",cp:[121.4992,31.0838],childNum:1},geometry:{type:"Polygon",coordinates:["@@T@@ELE\\BCMJGJSNEbGdHDJFBJAFIEIFCEWG@@gMENSFCVJFAxR~B@IH@AIiI@GE@FGEAFQPDRiV[\\DFSGMHAXHDOMCJCDETBBNVJJI@DD@ANNNH@FILDDMFBDHNDHKL@XDFGLD@EHGFD@DDB@CDDHCDAEAHG@ABOJ@BIaC@CECLKPFNCDCJBiQEIF@@@OGBMIAEEBMTHF@NKEC@QFEGA@EBCKAACHCLJHEFHHB@AFCAIEACIC@HG@KCCDC[ECEED@KC@KJMAAFQ@GHG@BHIJYIGE@EI@A`KDWCaKcCiY}I}S[CYJM@CFDVPRRVWDFžLBBG`JCFRFEFFHC@RF@HQ`Q@E@ENBDJ@HFCB@DCCEJBBGDGXMPBDGJ@DEDELEDMA@DJF@DMZ_jMNYUUJILCJIJDFGH@TSVM@DLXZ"],encodeOffsets:[[124165,32010]]}},{type:"Feature",id:"310110",properties:{name:"杨浦区",cp:[121.528,31.2966],childNum:1},geometry:{type:"Polygon",coordinates:["@@V@CXJDKJZ`XIDDFADJvSRMDM@mFQHM@KCMKMuaOCU@BDAJSX@HKJGD@PNJCJWAGT@R"],encodeOffsets:[[124402,32064]]}},{type:"Feature",id:"310107",properties:{name:"普陀区",cp:[121.3879,31.2602],childNum:1},geometry:{type:"Polygon",coordinates:["@@F@@FHDL@HFFAPFCSDC@@XGFDH@BDLHNACEFA@ERCIMJEDBAGL@@EHAFENHHJ\\ONQBQCIBC[MKACKI@GGGH@I_G@CW@[DMHCDIBMTDHN@JNHEH@FJFPKFACSBKHDJNABDMDECAFiDEDFDIPG@GLHCNH"],encodeOffsets:[[124248,32045]]}},{type:"Feature",id:"310104",properties:{name:"徐汇区",cp:[121.4333,31.1607],childNum:1},geometry:{type:"Polygon",coordinates:["@@RADL\\NCPHFfLJaJ@FWLGMGIK@IFMDOYYFOTSBI@IMSAMSACFIDNDCPWGGBHNET[CU\\QjOCERFBEHF@@HjJBJG@@J"],encodeOffsets:[[124327,31941]]}},{type:"Feature",id:"310105",properties:{name:"长宁区",cp:[121.3852,31.2115],childNum:1},geometry:{type:"Polygon",coordinates:["@@HFFB@HF@DCAELENSJADCNG\\CX@@D`H@JHGHHJ@BINBFUGEDO[MCKQB}AwQEBUIEDMTNF@hH@FXEDFJEJIB"],encodeOffsets:[[124250,31987]]}},{type:"Feature",id:"310108",properties:{name:"闸北区",cp:[121.4511,31.2794],childNum:1},geometry:{type:"Polygon",coordinates:["@@CSG@BQGODUPWTOBQAAFMECKBGEMFKEOHADDJARMR[PGI@TEJBNG@ADBFND@JL@@NFFCL@D\\@DG\\JJADI"],encodeOffsets:[[124385,32068]]}},{type:"Feature",id:"310109",properties:{name:"虹口区",cp:[121.4882,31.2788],childNum:1},geometry:{type:"Polygon",coordinates:["@@bA@E@QHSXBDIMI@OHCLI@GTWBIACQAYIOFGCENBBARSPOXCVHPARH@DT"],encodeOffsets:[[124385,32068]]}},{type:"Feature",id:"310101",properties:{name:"黄浦区",cp:[121.4868,31.219],childNum:1},geometry:{type:"Polygon",coordinates:["@@NEHFLAFDHDPEAMZUHQQ]IMKJG@EPERABHBGRUCCNGV"],encodeOffsets:[[124379,31992]]}},{type:"Feature",id:"310103",properties:{name:"卢湾区",cp:[121.4758,31.2074],childNum:1},geometry:{type:"Polygon",coordinates:["@@VDHQGABAFQFOH@LIiKKHEXI@IbAFZB"],encodeOffsets:[[124385,31974]]}},{type:"Feature",id:"310106",properties:{name:"静安区",cp:[121.4484,31.2286],childNum:1},geometry:{type:"Polygon",coordinates:["@@DLLB\\NPGLFHUDMYABEeKEVMAAJ"],encodeOffsets:[[124343,31979]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_dong_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3706",properties:{name:"烟台市",cp:[120.7397,37.5128],childNum:9},geometry:{type:"Polygon",coordinates:["@@ŤLšLllVń²è°xżĢĠÆl҄šŤbœ„V¤ĊXnŽlĢVĊ„Òš„ȰĊŰÞè˜L„±@џn»VUźċ²»ÆkôVɆkĊѲkŤVVwUUVmUaƒ@KkU@ƒmUmmk@UwUkmW@UVIXa@ƒmw@a™KULƒaƒx@Uk@UbWU@yULmK¯@kXƒVUwm@@JUUknWKUVƒLUbU@™wWykIƒa@w@mUI@ašUVynIWa„k„@@W„bl@@knmƒK@wnIl™°Kna@V¥ğ@ġUķ»™¥@UōJƒX¯¤k@™wmI¯‚k@mwƒak@@šlX@bUJ@VƒbknWxkLkxlŽšLVlkLmŽšb@bU@ƒbU@VbU`Vb@n„L@Žmb—U@˜VnUVmnU@mm™@kIUWVIUK›VkkUJUnmL@VmLUaVWaXamU@™™U@KUUmVƒU—JƒU™VÇwğn™mƒ@mXĉV@l¯xnô"],encodeOffsets:[[122446,38042]]}},{type:"Feature",id:"3713",properties:{name:"临沂市",cp:[118.3118,35.2936],childNum:10},geometry:{type:"Polygon",coordinates:["@@˜bXlƒl@zlV@lXXmŽkbVVlš„U@Vn@@Vmb@XšKšVX„WJ@XXl@„‚ŽÈbVLšUl`„@XXV@VVUxVbUxVbš¦„@‚WnXVJ@bnVUzl@„°Æx„U„KlU@mUUnUlUVWVUnVV@XX°V@Všll@Vk„aXVl@Ux@bmbXLlKlb@b@bUJn@@„„b@n°x°K@an@@UlLVKVbXb@bVVnK°LVa@UVa@™Xw‚KVxnLšU°@naV@UWUkWƒULmV—wÝKUUla@aó_@mƒK@aUU@ƒWUkwVm@aVI°W„@@IUw@a±¯@¥kUVUm@a‚wkw™@ƒK@kVKk@maXalI@alL„WXblaVLVU„V@LnKš@„l@w˜aXašLlnUl„LšmV@n°J@_VmnIVym£UKmI@WnIVm@anUVmÇ_kġIÅWUXÇm@U@ݯÅ@ƒ™@naWƒ™IVW@IkK@klKn@naWIƒmk@ƒaƒbkKkLWn™WkLWmk_ƒ@UaVƒUKmLUw@mn£WwUmU™ƒaóV@UkUm@UKULUwmJUX@WW@XҙzVblJXŽWXk@UVWK—X‚¤UL@xU@ƒ@ƒVUaU@@XmVkLmWkXUyÝLmKXnVŽ@n@l™x@bWLnVVn™`knULmxUl„„WLXŽVb@VƒK@z¯x¯¼Wx™KUn@bk@ƒlƒVVVz"],encodeOffsets:[[120241,36119]]}},{type:"Feature",id:"3707",properties:{name:"潍坊市",cp:[119.0918,36.524],childNum:9},geometry:{type:"Polygon",coordinates:["@@l@@UšK@Ž@L@bX@@VlL@JƒLUVnX@`ÜXn`V²mJ@bU@@n„b@l°xnnĸVƚ°@„ƒĊ£Þ@lWnÑnkʶJmó°w@kk»V@»ƒ¥k@V@kw@wVm„a˜Å„mšaô£ŎƒXI@mln„Kla@mV_UKƒ@kUkw@alW™IU»™mƒ—@WUIl±UUÅU›bkJƒ@a@wUKUaVIÆmXIWaka@m@Ul£XKVw@ƒUIƒJUkmJ™ƒVkU@a„ƒWK—ImVƒ@UxmL@bX`WXU@U`ÇkUak@@°UblXk‚mLUKmL@VULóƒƒVk@@Vlbn@Ub@ċaUJUbƒIUlVLUVVbVKX„VlVXU@mb¯@™VmKUwLWx@šUb@VUb¯KmLUU@aWaUaULkK@Vm@@b¯L¯w@mƒa@ƒm@UUU@U¦lJUXƒVƒmkb@nm„XVWŽkb™IVxUV@VUbWLXVƒLW`Ux@nk@Vn@x@VkJ@œV`mXkŽ@V„xV@lVššI@VULš˜VU„IV`°bVXXx„V@VWVnL@xV„Ub"],encodeOffsets:[[121332,37840]]}},{type:"Feature",id:"3702",properties:{name:"青岛市",cp:[120.4651,36.3373],childNum:6},geometry:{type:"Polygon",coordinates:["@@„@nU˜JXLƒ„@blVU‚š„nIVl„IVJ@„UxWLk¤@V@nlbXbWJÅnUJVbVL@x@b„ŽlIœaÆVVVk²VJ@X„˜šnV¼šJkX@blxlV„@VLU`@nkbƒLkm@nWJō„ó¤™bƒn—ƃbUn@xlxU@l@„¦@¼UŽl¼ĊUnW„@šnĠmÈxšU„V˜I„VnUVV@LšV@šnVWbXb‚UVbnK@UnKVmVIllœUVLUJVXlJš@nnV@nmVUUm@—˜Vna@ƒK@mUaV_UaV@„aV@@a™anlKUk™KklwlKXwlm„a@UVI@akW@™l@„bnxl@°nJšxl@°£„WŎIUÑn»lašmô¹Ŏ¥VaUUkƒmkġWɱIUUŹ`›@kk@ĉƨřV¥_Ç@™Ĭƒ¤ÝL¯m¯£ƽóķwUW±ī¯kōaĉĕ™kğmó°ƒbW@UKkLUaƒVmz@V@ŽUxVn"],encodeOffsets:[[122389,36580]]}},{type:"Feature",id:"3717",properties:{name:"菏泽市",cp:[115.6201,35.2057],childNum:9},geometry:{type:"Polygon",coordinates:["@@@¥šIVUÈmÞ»@UlU@Un@VW@UVmkk@aVUUKVÝ@UVknK@UV@VVnIVƒ@wnƒmwmKXaWaXI@UV@Vy²blkVKkam™U@kb@Um@VmUkmƒKmkXKWwkU@Ulƒ@UnK@UVUUm‚KXwšUVL„w‚K„U„@@Wl@@wUkV¥—@@I@W@_V@VWUw@UUa@aƒaWa—@@_mKUw™l¯amzmV—@WK™nU@kƒWLķaUKbÝVmV@UWÇbÛ@ƒX™°UbW@XŽm„Vlk²UJUbmLÇxÅWUzl‚¯Ll„@VkK™XUbWJ@bU@¯@™ƒkbƒLmKka™„@l™_WšXºVbUz@J‚n²V@¤lX„Ž„nV°šLn`WbXLôVlKVUšxXn˜lXLlU@bVV@„XJWLUVnVV@„„@n‚l„°nn‚V„KÈbVXÆJU°VnXV„kV@@xVL„@šWlb"],encodeOffsets:[[118654,36726]]}},{type:"Feature",id:"3708",properties:{name:"济宁市",cp:[116.8286,35.3375],childNum:11},geometry:{type:"Polygon",coordinates:["@@nam_nKlVLXa„Il`š_@KVVXI@m@w‚ƒ„@@k@Kšnô@n`VbV@@L„L@KVVn@VX@‚VL„Jl„š@VUUƒU@Uam@Uk„wšKWaXamkJmIUVUÈblašUnV@kVKl@@lXL°kVJ@VÈnVJUX@V‚LXl@xVLnU‚@VK„V@a„IUaV@„bĊU„x„K‚kVJXUlV„ƒ„UVašI@WUI@KlUnw„mWk@WXIWƒ™U™L@Wna@Um@@UƒVk™UUlanWW@kkU@y„kWk—aWVUlÝbUU@kƒJUIU@@ƒ™JmaókƒLKǃUUkKWLk@WbkUUaƒbmKn¯°¥V@XwV@VanaVaU_@Wlk@WÈ@VUÈVVۂm„aklKȯlLVUX@lK@aX@@kV@VmV@VwnJV_UWUwƒX™am@kW@wVUkKVIUUVmU@UV@IVK@aUL@aƒV@Lm„UKmx@ށômLkUWJ@šnXmlUxUL@Vkn›VUšU„@V™L™`Ub±LkV@kUKÇbÛ@ƒU™Wó_mJƒ@Wk@@Xƒ@ƒVLƒxUK™VWxLVnUV@VmL@Vk„@VlVXxWLnl‚Ln„VlUnn@@VlaV@nšlbULkl±aUzU@@VWJXbWbnLnxm„@xU„mJUUU@@VmLUl@VUÞVLUV@bllUn@VUXm@@VkV@VݼÇnUV™J@¦nnƒlnVlL@„Þb°KVV"],encodeOffsets:[[118834,36844]]}},{type:"Feature",id:"3714",properties:{name:"德州市",cp:[116.6858,37.2107],childNum:11},geometry:{type:"Polygon",coordinates:["@@„¤@VmbVXnVVbVJššX@Žll@z„lVInl@„@bVxUbĠ‚l@Èbla„IšxXVWb@L™@n‚ULWVXXšWWLnL@`@LUVVL@lVn„JšU@UUk‚a„™nš‚Vôô„b°¼V‚ސXš˜‚œIÜbČa˜bôW„XÞWÈzÆmnLVJ°ÈnlV²lbnW@™@UƒUV™šmnwmkkKWƒkla@mVIUKUa™aUwmn™JU@@amIk@@bVlkX@mmUklUUƒƒa@_UaUUƒV@wƒw™WkXmW@I@WUaÝU@UXaWUU@UUVW@UUUWUn¥nUVa@m@k@alU@wk™LWa@UUm@@wnmU™wla@anKn_@alK@ݙ_ƒ@@WUUUmlkaƒIƒyU@UwU_Wa¯yU_mWUwkImm@InWWUk@@UVWV—kW¯U@VƒL@b¯b@l±¦@šVV@lUbV„@škxVnUšl¼XV@b@lV@nIWxnbƒ‚™@UU™LƒxÅxm¯ƒaUƒ™wU@mUÅVÝKULm@bmKUXó@"],encodeOffsets:[[118542,37801]]}},{type:"Feature",id:"3716",properties:{name:"滨州市",cp:[117.8174,37.4963],childNum:7},geometry:{type:"Polygon",coordinates:["@@Vb@`„bV„kVlnV@nlWUk@al@nJ@bV@šInmVxšbVbVLUJ@nkb‚lX„lLnlmx™nUš„V@V@šmXn˜lbĸ@nnVx‚b@lnXV@UJ@nVxšxnxVbÆVn¯ƒĕ‚@@wÈçUÇlķVIœb‚@„Çmk@¥k@UkUK@aWakUóJW_UW@wkkWK@U@Kš@XUƒƒUkmUUalKXala@U@kkWlkÈl@kšV„mVIVmU_‚a„ƒƒwnwVW@wƒwUƒ@wU£ƒwkJWIyUI±bk‚VUJ@nmV™Ukl„Xmx@lnbW„kVƒUkLWŽƒxkKUUmUkb™J±—LÇxUKmkUmkkW™™a„mUaVkšJÆ_²KĠ@U„W@w„U‚¥nUWwK@aÝUkÅVaVK@akLWƒƒƒ¯I@bnbVx¯JW„ñšWbUL@šƒŽnV@VmbkUUV@IÇak@@bWak@WJUœJWL@bXV@„‚@„V„Jlb@zUlUŽUImšnbV‚mz@°UV@V™bV@@V@L@xLmKUnmJVX„J@VkLW@UVUL@b"],encodeOffsets:[[120083,38442]]}},{type:"Feature",id:"3715",properties:{name:"聊城市",cp:[115.9167,36.4032],childNum:8},geometry:{type:"Polygon",coordinates:["@@ô@VWnL‚an@VKÞLÆUnVV@šxV„„bn°Æw„wšKVVš@„maXwmJU@@k@aWUk»V™Umlw@™UƒVa@kUU@™²¥@k°a@a„K@U›ƒU@mmm@ów—ѱ¥¯@@w™Kmw—I›¥kU¯UmakJmIUaƒVkKUkm@VUUa™Uƒ@UaƒKUK¯@™w™UVŽUIUKVw™k™¥™wƒbVŽ@xn„@lWnXxlL@`„XlJX¦l°XxW¦@¦Ul™n@Ž™@@Um@@VXVmx@¯bllUnUJ@VULVn@b„xV‚VL@b„„VlnVVblV„ÈnVlIVJœLô„lJ@xl²„"],encodeOffsets:[[118542,37801]]}},{type:"Feature",id:"3705",properties:{name:"东营市",cp:[118.7073,37.5513],childNum:5},geometry:{type:"Polygon",coordinates:["@@ͬUǪlô@°Uœw°ōĠ¯š»Ģ炻XÇ@w™wƑa™ÇƒkwVƑ¯@řķUmm¯w@kƒa@mV@@anIU±m_ÛW@_mWVU„K@IkK@UW@@a@K@™L@Vk@±U@UV@lm@mUU@kLm„„xV¤@xV„„x@xUXmx„xƒ„bV`UnUJƒn™U@lÇkkllX@l@VkbWbkLVbnVVl„„WV™@@L@VXLll@xVXX`ôIlVXb@bVLVll@@¦nlƒÈ@›aUJkĸVÈÇè@x"],encodeOffsets:[[121005,39066]]}},{type:"Feature",id:"3701",properties:{name:"济南市",cp:[117.1582,36.8701],childNum:5},geometry:{type:"Polygon",coordinates:["@@²¦˜Òôxn@nn‚@V‚œ„°VlXU˜UX@Vl@XVmX@JnnlJVxnXV`°zXbV`VxV@„z„JlbkŽVnVV@X„@š`@ÞkL@bm`mL@bkbšxnVm@xn@VV‚@XbšKl@xkV@b@l@nUbmVm¦XVVV@VUXVVV@XVWb@VÞVVb@X@JnXlWšX„x@x„UVV@aVKVUX@lK@UƒIUWnIVmnL‚K@w@K@UU@ša@UVU@¯nyUman™VJVVk@ykaƒIƒU@@ƒWU@aXK‚IV›XIl@Xb@al@Èb@JVUlVna@UmU„@™VKXaò™Xƒ°IUwma@aU@UU@wVW@фw@a™I±`kbƒUkw™UmJ@UkmÇUUkmKknUVƒ@mJUkaWkƒa@KmKkUƒLmyXa¯_@WmImmbƒLmUkVUbUVƒJ™bƒUkkWJkUƒl™IUm™k™Lƒ›„lK@knaVmkI@mWaƒLUK™UU@@VmLUVLWK@UUUƒWUkkVmx@„Vl™¦"],encodeOffsets:[[119014,37041]]}},{type:"Feature",id:"3709",properties:{name:"泰安市",cp:[117.0264,36.0516],childNum:5},geometry:{type:"Polygon",coordinates:["@@n¼šŽW„nxšL@x°@š¥Uk@ƒnwlUVl„XVV@VXL‚KVUnK@UV@šVVL„KXb@nlJUnmb@lkLƒ‚„œšKšlVnšJ„klVXIll„Vša„IVUValUnV„K‚annnJ@X°`Wbnz„KlVnL‚Ž@L„bXl‚bVlnI„@VUU@UmVƒ@U@Uš¥@VmV@@_Ua@m°@@ƒ„kmUUm@UVmn@nX‚@@a„anJVUVL„mlIVJn@nkVLVa@KVmVLXVVLš@@U°bn@VaV@@K@aVkœbWaXUVymU@aUImWXƒ@™¥UaVwUaVwUUU@WWƒ@k_™VUKÇa@ƒƒnmxkV@LVJ@X™JUbƒVƒ„kUWVUIlƒLƒwĉVƒaU@VbƒJ@bƒUUL@mVUK@wWkK@UVWUIÇm@UUI¯lWK@kk@UL@lmU™VkbÇaUVVnJlIn‚WbXb™LƒxVln@VbV@V„UV™@kƒƒIUK@UWm@UU@LƒK@KU@Uam_ó@™m@L@lƒ@„@x@nWJUU@L™`k_ƒJWbUKkmLn`mb"],encodeOffsets:[[118834,36844]]}},{type:"Feature",id:"3710",properties:{name:"威海市",cp:[121.9482,37.1393],childNum:4},geometry:{type:"Polygon",coordinates:["@@VbUnVVUxĊ¼š¼ô@Þф¯‚WǬLŎUÆW„¹Uǃō¯ÑƒÝkţ™™ţóġ™óL™ł̥U™wm¥kÝmkkKóbÝ@U¦@‚mb¯LkšmJ@x„Lmn@lk@ƒa@Xƒ@ƒlXbmJUz™V@bVJ@n@x„blJXzšxV@Va„KVUXLlmVV@In@Vx„UlW°@nLVK@zXVVal@@V„w„bVKšL@bnx@„WbUJ@VnXVlVxl@nnnV@„lV@L„‚"],encodeOffsets:[[124842,38312]]}},{type:"Feature",id:"3711",properties:{name:"日照市",cp:[119.2786,35.5023],childNum:3},geometry:{type:"Polygon",coordinates:["@@UaVUUKVk„JVaVIČb@Vam@ka@Ul@„Uô„VK@UnKVLnKlkWVa@¯l@VbÈlV_V@XWW_@anKVwUmVw@@Uny„UVblKVLX@„aô¯ó¥mÛĊÿÈ¥š™Þ¹lUīƒ¯Kĉ¼ʟbÇV™U™ŽUŽ™XmakJUnmV@bUnmJ@XnJVLn¤UzmJUn@`¯ImŽU@™nƒKVkkm™KWb—b@xƒk™@mL@KƒUUVUKkbWaƒXkK@bkJWbnbl@UL@l„Lš@lxx@b‚nUVlV@¦²°@bVx@Jƒ@¯XUJ@bUnlxVŽ„X@‚VV@b„L@nô`@bkbVVÞL˜xnU"],encodeOffsets:[[121883,36895]]}},{type:"Feature",id:"3703",properties:{name:"淄博市",cp:[118.0371,36.6064],childNum:4},geometry:{type:"Polygon",coordinates:["@@nƒlKV@nVn@@kVU‚@²VVaUƒ@wmKXU@UƒUWwUW¯aU_ƒJUV™—VK@U™JU™@kUƒw@UlnWU_@›lI@U@wUml@@mVwX_„KWUXKVa@UVUUwšJlaXWUnƒ@mla„n„UVWkIV¥V@VVVI@a@akakLWKna@aVwk@WUƒbUlk@™k@U¯UWWU@mUUVUXkVmVVV@nkVƒLƒVÅwƒ¯k@WVXb›aUl@bV@@b@xkVVXVxkJ@nk@@ŽVLUlVb‚VXUVVUzV‚™LVbUbV„VWVkLmškJ@n±@UxU„VVkV@bƒx@ÒUX@xVVV@°J„„X„lK@bULUblÆÞV@b‚LXxmV¦ƒV@xƒXVŽğ@±LÅ`™IUlVbƒnšbXšllVnnlVLÈw˜K²ŽšIlanVVVlL„wXlK„VlUXƒma@knwƒWlkšVnU@mVIUl²aVJ‚zXJlI"],encodeOffsets:[[121129,37891]]}},{type:"Feature",id:"3704",properties:{name:"枣庄市",cp:[117.323,34.8926],childNum:2},geometry:{type:"Polygon",coordinates:["@@‚yUU„U„kl@@aVmšLXw°»°w@y„L@UUaWXKƒƒVknwVKlmš_UmmUXK@ašw@k@mUWmUL@ƒ@™@£@KƒbÝV@akw™aULmƒƒbUK™LUU@lm@—°mL@nUJVxVXU`mIUxU@UnU@@lW@@bkLW@UVkKǰkLlŽƒbnUÜÇUUVÇ@@Xkl@XV`UbmbUbU@WxU@¯¦m°nL„aVblVXal@XKlLVVȄ‚L„KôlnbšI@„V@VJ„I@lVVÞaVkXU"],encodeOffsets:[[120241,36119]]}},{type:"Feature",id:"3712",properties:{name:"莱芜市",cp:[117.6526,36.2714],childNum:1},geometry:{type:"Polygon",coordinates:["@@lmnLVlÈVln@VnIšVlx„Vla²_šJlUUUVƒVw²@@mlIn™lKXU‚UUƒVaUašKUVyUUWVUUaVkUK@l@@mlIUwUWlU@w@aU@@LU@Ubm@¯a@V™@UKWUUKUn@LUbUKmlm@UIkJƒnUKUVmIƒb@b@mWm@Un@VVnnVƒl@„¯@@nVb@`U@Un@Ž™¦@V@VU„VnV@"],encodeOffsets:[[120173,37334]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_xi_1_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6108",properties:{name:"榆林市",cp:[109.8743,38.205],childNum:12},geometry:{type:"Polygon",coordinates:["@@™ýVƒnIW»ƒW@»kUÇL—݃U¯¥ÇIUWWїUWwX¯mƒ@»n@ÜÈķô™@a±kȱƒw„ÑmwçċmU»ÆkkVyIm™ĉÿ@ƒÝ¹ƒWnwÇVš™Åaƒzmmĉ¦ó™kVmx™xU¼VškVm_UlVlk„°IV‚kmJa›¦k™™LmmV@XmKnšlUô›VXbƒbƒ@UaÇLğܙ™Åwƒ£mKnmċwÅ@UkƒbmaVƒƒƒn@m¯aU™Jm_k˜@kWXyl@@kÅamw™LU™Þ™ƒ™mWÅzUKƒš™Uk±@™b@nnK‚bX¤mzVšŽVxÇn„‚¯„@ÒknWƒƒVUbkķÈÑWkk@Va™™U@„mUkbƒÝÅ@Ý¥ÇbkĬ™XV`kLǍVmalUUa™nV±nwmkƒJ@Inƒ°KVw¯UnÅ@¥™ƒ™U±bUU˜±œmWbÛKWnUm`UƒVK@bmnœm‚Èż@V„L@xƒxmš„Ť°nŽ@VmK™²VlšlKk„ô@„êÜV@VXLlmš¦UššV°Ș¯²ÿ@¥š@ƁĊ˜²IšmĶnnb°b„KVƒĸLl„Þ@UȮš™Ü°IVƒÞÝސlŽœx@ŽķĀWŽ„Ux„èƐ@š°ŽXnšlĊ˰m„nƒšV„²V°ÒƦ„aބ„˜@zll@bÞšlš¼nKĊ¼óȂb²±šIǪÒ¯ĖV@„lxnVlk„JlaXwŌĉ„„@VnŽššlÆĕ„UÆLœèŌŤôxȚlUœ@šxlaUċĕXm„IWmnkšVVƒ„VW_@aÈWUUmk@ƒ¯çVm»™±W¯n¥V™mkXw±ÇVwƒ"],encodeOffsets:[[113592,39645]]}},{type:"Feature",id:"6106",properties:{name:"延安市",cp:[109.1052,36.4252],childNum:13},geometry:{type:"Polygon",coordinates:["@@@kkÇmIšmUwVkUƒƒU²WmšVkm@m`mIĢĕUƒVa@™mXƒƒÿVVkyUýšĕ@l_UmnƒW„KVkţ™™¥™aƒwğ@™@aôƒ„ƒWa„kUmƒa¯¯™a±£kx™mmxUwÝ@xmU™b¯K™wó„Ý@kmm¹Ub@lklVbmnnVUV@x›UknƧJUX@ŽƒLÇWkw™LķƧÅwWJk„ƒLkþĉxWz™JUnǚkš@Ɛk¼ÜÔÈKšè@°lșÆk¦l„n@l¼@l¯L™°UU™Vǰƒ¹—`m¼mXk‚™bUaƒV@U¯x@¦™Ç™„UUmlmUVm„nnmlkw™@@šƒ¦Å‚ÇLmx¯Iklš„@¦mưVUx¯Lm„@J„InlmxU²šmVbkV‚bUnȎlKU_šWlīÈaÞ¦Æ@„ÞlanV@ƒšVšUbl@XlÇÒĸlŽVa„UX„lm@ѰƒƒÈmUw‚U™nyW£amL@mša²@lšV„™VLÆynX„šÝšVššKnxÆb@lk@WzXŽ@ll—n`šIV‚°b@n„m„„‚Unb„aVlÆ@ČxmnnL„¤ÆxššĠÛÈKVb„@„aWaœU‚ókVm™nL@W‚UnnšKlšœ¥‚bnIlU¯JlƒUkVkn`lUU™V»šwnwlUôšĊ¥nn„yÆb"],encodeOffsets:[[113074,37862]]}},{type:"Feature",id:"6107",properties:{name:"汉中市",cp:[106.886,33.0139],childNum:11},geometry:{type:"Polygon",coordinates:["@@lKnb@n„lWb°bkxĸwVb@ł„nlŽ„ƒĊ¥šL@XŽl™ÈƒVblÈK‚b„akVwôml²`‚nœ@‚nVKœl˜k²xŎƒ°¦VU„JĊw@çnWçރVkUóÛ@¥kwš™šUmƒX¯WšÑkƒ@UymIUwlUn¥‚mUk²a°¯V»@™ÝVș„ÝċÅÅVl»@l@a°±@_kammÅb™a@ƒƒm@ż™KknõĠ—@mšƒ„¯LÅw›‚—LVxmb@¼kV™@mw¯wVakKW»X±¼¯Vkxƒb„¼WŽ@nx@x±bóakbƒ@ÝmU™@ķÓÛL™kƒVUm™k¯¤ÝLUlÝ@Ýz™š„x@x™°™™™bƒmƒX¯aUJW¯—k@bÇWƒwÛwWxƒ@XWlb@Žƒ„VŽÈUlwšLnl°VlUô¦œU°¤VšUxVXUxlbkVVlƒI„°„ÅVlU°m@k„ÇU¯xUlƒLUlVL@b™°ĠInĠ°ÈnK‚„@xÞa²n‚aUyšXUKVkšWô¼Èa‚z°JXUVÇV_„JVƒšz@Žnb"],encodeOffsets:[[109137,34392]]}},{type:"Feature",id:"6109",properties:{name:"安康市",cp:[109.1162,32.7722],childNum:10},geometry:{type:"Polygon",coordinates:["@@„bĊaƨèšwôô„¼šb°ašXVƒÞVUÞ@‚aXƒm¥kImx¯¯ƒV@anU@UÇéğL@ƒ¯¥V£mƒ@ÝÈb„K‚™„X°wČÿ˜ƒ„b@xÈblxȯĊ„„mÆUVƒ„nÈ@ƨÜLĢ¥ƒŹnƒ°Vnn˜K„aô_ȃšwU‚aXmnW‚¯kl›LXƒÇ™ō¦ÝaÅVmbğUn¥±wÅéVƒan¥ƒ„U„»°am¥„£ƒÝ@ƒ„wVw™¥nU„уUmmVwmķIÅaóVWxkblb@ból@œğÒĉ¤ċXƒ˜¯X™xk„Ç@óÆÅx@š™xķ_kmݎǣkblb@`¯²@bk‚‚@k¼ÆUČÆƒÞǚÞU@šU¼¯°±bVlnm¦kVVxnJVz@‚l„™ÒXW°n„™V™šlx@¦ôÜVUl݄Xèm@è"],encodeOffsets:[[110644,34521]]}},{type:"Feature",id:"6110",properties:{name:"商洛市",cp:[109.8083,33.761],childNum:7},geometry:{type:"Polygon",coordinates:["@@²nl‚ôbš„°aVwnKÞIš`°wšXôw°VĊ°@ŽÅš„ÞÆV„zÞK@xšŽ@a‚LŚ@b@ŽnLlƒ@šln„mnLVw„a„bVƒ‚VnbU¼„Vƒ°„bl„šbÈ@ĶŦb˜@nÇ@amIyUI@ĠVmôƒU™ƒVwkwlanJ„¯lwó¥@an°Jš_„‚@š™nóƒó@£l¥UwmašÑ@ƒUm±V_ƒJ—£›J—UW¥¯@ƒ_k¯¼mUƒVUè¯b@wmL™»ğVmağI¯¤ċIUW™XƒKĵ¦ķaƒJUb™IƒlUóVmk@WÅÅÇ@ƒmU„ÅVƒnĉƒÇ°kwÇa@wƒa—„ċxƒWšƒLÇa@Þn„U¤°¦@„ĠKÈê@VmV@b„U°°nwlJn¦W„bÝ@VŽ"],encodeOffsets:[[111454,34628]]}},{type:"Feature",id:"6103",properties:{name:"宝鸡市",cp:[107.1826,34.3433],childNum:10},geometry:{type:"Polygon",coordinates:["@@@ƒ„£@›°Išb@¯°ynʃaUƒlƒU£„Umšĵĉ@@ylUÞ@@£kWU¯WaU£¯ÇV¥ƒ@kb¯wƒn™¥ÇkUÇnUƒ@¯±›kULm›@m±_kŽónUxlŽƒbaÇLkŽUaDŽkšW@™Kĉ¦ƒ„kƒm@ŁUaķxlw¯aXaƒk@mmakL@šmšÛŽ@¼m„@l„XV`ƒn™KUš°°@²š¤UÈ@VxmôƒxKl„VV²aVw„Xla„Vlx@UVnŽÇnk°ƒVVL™lkI™šƒJÇk¯V@šknƘn@lznmlVkzVŽ„VVxš@Ux„z@x±¼VxxU„l‚kb˜@„¼Čk˜VXlĠkôV²w‚LUKlwœJ@a‚IV¥Þƒn¯Ün„‚„@nk˜l²kÆ@š°„aVbnI@™š‚Ťn"],encodeOffsets:[[110408,35815]]}},{type:"Feature",id:"6105",properties:{name:"渭南市",cp:[109.7864,35.0299],childNum:11},geometry:{type:"Polygon",coordinates:["@@@ÈôL„xUް„Þ@mŽÈnl¤nUôL‚wX`@ÞÝL™ŽUšmLô„„ŽôbVbnºlnÞ@ôƒšx°LšanV‚wÞ@Vxnwšnlw²¤šb°°„bVnƒlXbƒ„ó„@bš‚Ġ@„xšbš¦ŤšV™Xġ„£W¥ƽɽƒó@ýóƝÝ»„£X™mƅšĊkUƒ„@™™šó„kťaĵŽÇ@™akƒƒa„¯ƒUV»maUU„ƒaƒbUxmKƒnkm@™k„mK@ƒxó@¯n¯KǦ@ôÅèlxkx°nƒƾ¯KU¯WķL@VÝIUb™yWbX¼Ç°"],encodeOffsets:[[111589,35657]]}},{type:"Feature",id:"6104",properties:{name:"咸阳市",cp:[108.4131,34.8706],childNum:14},geometry:{type:"Polygon",coordinates:["@@šIXyĊwlý„KlƒXIVaķƒ™»a›£„¯aVU@a™‚wÈō‚ašL²»‚VœUln°WȯW»XašzVaÞJ@Uƒ»@¯Ýbğwly@£kÑţ±Wу@ka™IUƒƒnƒ@¯ƒómţU™b™U¯lÇIÝb@¤Ý@kV@zĊ@™ĶnƒVV¤k„V„„bmź¯z@°™a¯J@œƒ¤@„„bUx™bƒ„@`™xUÔ±ºVXœW‚„UnUJ‚L̝ÈKlblmÈXŎ°šU„°LšŽlkÞKš@Èxl_°ĶUÒkblš"],encodeOffsets:[[111229,36394]]}},{type:"Feature",id:"6101",properties:{name:"西安市",cp:[109.1162,34.2004],childNum:5},geometry:{type:"Polygon",coordinates:["@@°²@‚„mVVÈÈlš¦„m°xla„@U¦°ÈV¤XbV°lXÞaÈJ°kšVšaŤVôn°„„@„mV„šJlb„@XÒŤ²lÒ@¤kzĠxÞa@°„¼ĸK°XV‚°L„ƽ¯mlwkwÆç@óÈ¥°L°mô@„w@aƙK@b™@wÝLƒyÅUƒÝƙ@ĉ¯¯Uóx™W¯x™_ÝJmLUx¯b™ƒóak±mÝUU„™W¯b™aƒ»óó™xƧçĉbƒaĉxƒIUV¯¥ō„±w—l"],encodeOffsets:[[110206,34532]]}},{type:"Feature",id:"6102",properties:{name:"铜川市",cp:[109.0393,35.1947],childNum:2},geometry:{type:"Polygon",coordinates:["@@ÆxĸƨšKlxÈX„K@VWƨIlmœV@wVUmUnmUalk@kVaUaóaƒóƒnKV™šÞK@ÝW_xóKmVk£ÇmnÝ@¯ƒVƒwóK@ǯXkm›VU±¼™KbÇŎx‚š@bUV°bƒœ¤‚bš¼ĸ„Ub"],encodeOffsets:[[111477,36192]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/shan_xi_2_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1409",properties:{name:"忻州市",cp:[112.4561,38.8971],childNum:14},geometry:{type:"Polygon",coordinates:["@@Vx@lnbn¦WlnnUšmš°š²VšV‚VVVnUn„ºlz@l„„@Jƒ@kXWVXl@Lƒa@„ƒKUL„ŽlbnKlLnK‚LnKÆXn°šbVV@bUVl°Un@LnaVJUbW@UX²l‚@ČwlVVIšWnkÆa°„„anV‚Kn°™UW¯@™aVUVk@Un@„aV@ValwUanmWU„k@WVUUanaVwnLVl°@nk@mVU@UVK@w„LVKVU@ƒ„K@UUKVUV@@bnL„a‚V„aôšlIXmlKX_°KVV@bVV„@šzV`kblI„V„Ul‚šL@bnV@V„Ċll„„VlIXW@k„a‚U²blKšVnIlJ„albXXlWVn°JnšnL@l@XlJlaX@„X˜W²@l_VmnKšU„blU@mnkVK„¯@U@ƒma@kX¥VƒmakkƒLƒa@aƒ@WIUUVXWWnk@a°a@kkm@kUUmJm@WUUUIk`m@V—kaWWkX™KmƒXk¯ƒ@WKƒLkak@±bƒw@ƒaƒa@akaƒ@ma¯@ƒL—KÇÅkKWbkmġ™±ÅUƒLUK™VVkƒm¯LUVVbƒ„UwUW¯bm„ƒULƒxWJ—@ƒklmkUm@@KnwVkVK@akwƒ@@a¯bƒKkn›VUI™b¯mmbk@UbmKUL@xUUƒ@klmLUŽlVXI‚VVVUVUœU`mLXVWbXnW`Ų°xmށxU@mĉƒƒwU@mbU@UƒmbkVW¦kJ™@ƒX@`¯Im@UlUVVnb@bWJXnmbƒJUU™UUaƒ@UamIkaƒxƒ@@x@b"], +encodeOffsets:[[113614,39657]]}},{type:"Feature",id:"1411",properties:{name:"吕梁市",cp:[111.3574,37.7325],childNum:13},geometry:{type:"Polygon",coordinates:["@@@a@w„@„wlbnJVb„@VbšVVV„InaWmXI@a‚aUmVUVkn@°J@_„Wš@lIX¥lUnaV„V@naV@„xĊ„n‚V@‚wn¯wƱX_WmXaWUnKV_V›VUUUUWJkUVnKlk¯™@@kmKUaٱKkU@WmI@WUIlUUmVwXƒ‚w@ƒUlUVwœV‚@„Lnb‚W@anU@UšaVkô@l»n@na˜JnUÈLVaƃUUVm„VKVƒ²L@mU_lK@UVWkU‚a@a@U¯aUaƒÑóÑUb™„ƒKk@@aƒk¯mVaUwVƒÑkWUmK@UUKmXUWÝwUa™LUU@aWJUUU@Ua݄U@WL@VKVaVI@WnU@alIVKƒƒ@kIƒmIkJ@™m@ƒ™@@_™K@xƒ@kaW@U„@Vmn@ŽUK@mIƒJUXV¤XXWlkKƒkkK@XmJVakImJU@ó™¯LWKUV@nUVƒLkxmKkLma@kXKmmƒLƒab™LmK@V@mXVÆUxƒX@`nL„aV@@VmLUVnLlLš˜„b@„šŽ°²nx@b‚VUxlb@V¯bUV@zV‚XVĊXVx@lVn@VnnmŽUš@LlJXVƒz¯VWVXbšV@bmn™VUVk„Çþń@XVxmbUlV„Uln„W„@„Xl‚@VLXÒ@bÞJ°¦„L˜ò„@nU‚b@°„X@ŽXbmVU„V„nb@x‚x"],encodeOffsets:[[113614,39657]]}},{type:"Feature",id:"1410",properties:{name:"临汾市",cp:[111.4783,36.1615],childNum:17},geometry:{type:"Polygon",coordinates:["@@nW‚@@UnLšK‚a„b„KnnWL@lnblKnLlw„KVU@mVUXL°KôšV@nIlJUbnI@WlL„llLXkWWU£VW„InJ‚@VL@nm@UVƒX@lb„@@wšL@`‚@„šn@V@lw„@n„VmVX„WmwnUlƒœa@_lK„wVlUn°xVKVXXWlUšVVI@K@K„n°KœwlVlU@kna@V_„Wn‚m„UVm@kXml_@m„LlKXw°m@_ôJVUV@X™l@UaV@Va°I„lk»VwUkVmwUmmVn@V¯@KƒU—wmK@U¯wUVÝ@mJƒU—nWK™@@UnKVa„_lykUmKÛnm@™x@ƒUUlwVk™ƒXW@ƒa@Uƒ@@K@ƒkIV™nammVakUlƒ@wX@@kƒ™¯@ƒVVbml@„„°UbULmlVbnbÅK±VƒKVXUJWa@ULWaUU@@U@aWK@UkxUKƒLUUUJ±UkL@V±kk@kam@UV@l@LWl@n@VVUx„LlUUx@VUV™U@aƒIUl™L@°mLU‚ƒbkUUaWUUaUU@aWK—LWJ@bUL@VUVVbU@m@a@kmKmnĉlUK™XƒWUblb—xmIkƒƒU@xWb@lkšVx™LXŽmzVV@bklVVUzm˜@bk„@Vx@xlŽU„@lUbVnl@„Wxnl@n@ŽUbV„mL‚mƒb@`X@lUX@@xlnkLWaUJnnWV™Vn@l„@bULVV@l™V@XnJVX"],encodeOffsets:[[113063,37784]]}},{type:"Feature",id:"1407",properties:{name:"晋中市",cp:[112.7747,37.37],childNum:11},geometry:{type:"Polygon",coordinates:["@@@šlInJ„lJ„@‚„ULkJ@bmV@XUJUb‚L@UXKV@ރVbV@VVXI@bVVšKVbÞxVXnWVL@VnLV‚lX„ÒUŽVxUb°n„l@bl@„LšƒVaô҄ÒVb°b@VnLnnV@lmn@lb„U„V@„‚JœUVV‚Xkl@lUzmJ@xšXkl‚bUn„JVšUb„nU‚lb„V@nlLX@lakšV`Ub°š@XVJnU‚L²KlxnI@KV@lbUbVV„KnVl@„zlm@Uš@nŽšI@WUaVl@@mVU„@XkW@ƒnkVKVƒ„_Vw„y@knwVa‚@XalU„@šVnml@„X@V„L‚KVaÞbnnlJšI„mVKn„VVVInVlU„@„m@™mXK@UmyUI@mWUUakamw@wUwmLkakwVƒmK™w@wUam£y@am_ƒW@™UU@knmm„amU@WUa@knw@ƒUUUUV@nƒJm@mVUkKVUUUkKmwƒKULƒKUImV@lUn™nŽm@mbUK@°™bUnmbUmkkƒWUb@am@UXkK@a±@™V™@ĉř„V‚UXVxUVkLWl¯@@bULUlm@@nm`—XƒlWakIkm›VUbUL@Vm@kIƒ@@Kšm@—VaX‚I@W@aU@kUƒVU_™KƒbƒJkkǎ™b@nkKmL™wÅW@kVUUƒVU@WUIƒJmIXmma@_kyVaUUlkUm@ƒkU›x¯Lƒm@L@LUJ™UkVWXUWUL¯wVmUkƒxkL@`›bk„mVnxƒXUWUnmƒƒ@kxU@"],encodeOffsets:[[114087,37682]]}},{type:"Feature",id:"1408",properties:{name:"运城市",cp:[111.1487,35.2002],childNum:13},geometry:{type:"Polygon",coordinates:["@@„Vl„nJ˜wkaVa„XšWVLĊknmnL‚l@@bn‚V@UaVU@UVK@aXI˜KXL@bVVVbXVVblV„aVnK@¯šKVk„J@bšVVU@UVwkVƒKVwUUm@@Xk@K@kVUn@lbl@²l@UlK²VVIVV„KVLlw@VXL@b@VV@VŽXbVK‚@XbVIUW„L‚U²ÆLmaUankVKVaƒ¯@ƒnkUa„U°@„š‚n@@kWa„UVaXUW@IXKVw@U™ƒ„™WU@W@@UUƒU@mn@ƒ`m@UUULkUmJ™IUƒ@@UƒK@U@›anƒ™ak_@wmKUwmakV™kmK™V™k¯b™wƒ`kwUIÇx¯»ÇaŃmn@@™mƒmUkV@wkKW@kxmL™UkĉLÝk™xÝw¯lóVU„mV@ĀVVX¦W¤kz@`Vx°„²ĸ‚š@„Ul@x„êĸNJ°¤V„VlXLWnXxmV@nUl@„"],encodeOffsets:[[113232,36597]]}},{type:"Feature",id:"1402",properties:{name:"大同市",cp:[113.7854,39.8035],childNum:8},geometry:{type:"Polygon",coordinates:["@@²£šyl@Ȑ˜Ė@bĸŽĢbĸ„˜X„a‚KŤnn@ŎôllÈx„nVnÞDŽV@b‚nXllL°KšbVb@J@b—„‚„@ŽU„„xlKXLlKlXk„@Ulk„JlkUƒVKXUƒÇVIVm@_nǚLšašl‚w„VnU@UUwma@aƒaÝaLmUk@@Wƒ@U@@X™wVWÝUUUk@@VmLƒKV»nwUw™aUL@`mzƒJUIVƒUaUw™KUaVIlJôanÑlLVUn@ša„@VV„@@UUwVK°Vn_lJÆLœéW@UUUÅ@»lm@aÞIVwXW˜UUkkm@U@aƒU@mwU£VWU_kWmƒXwW_°yUkkK@UÇK@kkUVymóK—U@KWIƒbUak@mJ@bkbmLkŽ™UmƒkVU„W¦@lnb@„@Vƒ°ULml@nkVƒa™VmLUnk`±@—XƒWW@kbǦXޝ„WxI@xmbmxXlWV„„@bŎUz@J‚b@bÞb™ŽU@Wbk@ƒxk@WX¯VۙƒWÝbÝUkVUU@alI@a@akLWa™m@U¯UUmÇL@K@aU@¯VUkƒKmX@`@œkJ@nV‚Ub@lbVÆXVW„ULU`VbkLUV@XWl@bXJ˜@VbV@Vl"],encodeOffsets:[[115335,41209]]}},{type:"Feature",id:"1404",properties:{name:"长治市",cp:[112.8625,36.4746],childNum:12},geometry:{type:"Polygon",coordinates:["@@Uk™Lky@I‚JVa@mÞaWšy@_W@_WƒXVlUVwš@nw°K@m„UƒVaƒmVkU@mmmnLVUmKXa™U@IlKVUnK@UmWkX@WV_Vƒ@akU@a„KWIXyƒIUVmUn™Ua@WaXUVKVmkUWVkUƒLU@@VƒbƒKbƒIUmƒ@mbVL—x›WUUkn±V¯wƒbÅJUbmLkbmKÅKƒbVnUbƒV™KUb™KUbmLKmƒb™aƒKkUm@UŽnn‚VnxUVlUxl¼ƒk¯JUbU@Vbk@WšU@UVóI@`¯nWxkLƒK@nk`Wn@lUnƒVnm‚ƒXU`@mb@lkV@„VnklVVUblz@`nbWnnJ„IVJ@XUVV„UV@lÆXšxnKlL@mšaȍll„I„ašLV`„UlVV@@b@XJWUb@˜™n@L„@lJn@@UVKVaœUlnlJXb„k˜Wn_@mn@VkVK@a°@XklKVUUwVWUšƒĊƚ@šU²@@blLVWn@@bVa„XllVnnaVmša@¯VLnan@‚šmVm@knUVJ"],encodeOffsets:[[116269,37637]]}},{type:"Feature",id:"1406",properties:{name:"朔州市",cp:[113.0713,39.6991],childNum:5},geometry:{type:"Polygon",coordinates:["@@XXWVXVWnnlnn@èÆ¼@„„xlš„ŽV„nblšššVŽÈUVl‚š@„blnœL܃ĊmUkU@Ua‚—@WI@aXk@WVUlKUaV_VKXƒWUUÅka@VaU@mlI@›@_nW„LVl°UV@@b@LÈKVn°V@VšnXblK@b@bkJ@bVVlUÞVÞa„Xܚ°UXWl@„wl@XaV@šÝa@aa@IVyƍ@aƒƒXUWknwna@w‚JXw°ƒWÈ¥kI@W@kmKm™¯IUmkXWWkaƒbkImJ™UkL±aVƒb@lWXkJƒUkƒĉkƒ@UmU@a™KkƒVƒUkJlaU_™yƒ@UU@aUU¯LW`kLWnkJó™ƒbUƒbmK@aU@UVVL@VƒL@„UVULƒK@xUL@VUV@nml¯@UkmKUxmbVbUV@XƒlXVmnVbkxUbU@ƒbm@@VUlUVšb°@VX¯šm‚"],encodeOffsets:[[114615,40562]]}},{type:"Feature",id:"1405",properties:{name:"晋城市",cp:[112.7856,35.6342],childNum:6},geometry:{type:"Polygon",coordinates:["@@lV„Lšb„an‚LnKVašLVašL„UVaUm„aÆLnLlanKVaÆI„a°x²UlmVVœX˜wUKna„@Vn„J‚a„L„a@UV@@alUkKVKnkmmVwUk„w@ƒ™@kxWUXƒW@@mƒk@aUa@a¯aƒLkKmwkUm@kL@K@aWIXmƒVƒXƒWkUVakL@UVKƒw@aUK@UUKmLU@¯n™KUwVƒUIWJUWmka™@UXƒJƒk@UkmW@kLWKVƒx@bmI@VUaVU@a¯@UUmVKmX@±`kÝKVxUL±akL@V™bƒLkKmVƒ@XWVUbƒVXb@lm@@lW@@xk„lVUbnnmbUšlJ@„@L„@@V„b@‚WXš„UlkxVV@„šwn@ÜmnLlVkzƒ`UbmL@Vš@XL˜m„VnIÞ@VU°x@VnL˜x„V@LU°"],encodeOffsets:[[115223,36895]]}},{type:"Feature",id:"1401",properties:{name:"太原市",cp:[112.3352,37.9413],childNum:5},geometry:{type:"Polygon",coordinates:["@@„@VV@wVKnLVal@na°nšaVJœUlm„L°a@b„@lx@bULUlmx@Ln@lVkn„l˜@XI„w‚K„Vnƒ°aVXVx„ƒUaVU°K„nUlšUVL„KÆVš²Ģ‚lnXalLÈÆ˜L„KUaVkUanmWU™a@WwkUWU¯y¯Ñ@anIl@@aVU„m„I„ymUƒLUUVakaU@@LmJkw±LKmVUI@W¯™VaU_l™kbW@kK@mƒUkaVƒmVaU™ƒIVmalk™W@wnIVy@klkWUU›VI@ƒƒUƒVkam@knU@mmmK@bblVUX@VkLV`@n±KU„ULƒ‚UnVVńUbÇKmV—Imbm@k¼ó@Ul™b@VmV@bXmaƒK@›UUxkV‚V@„xW„UxVnkVVJ@XnJ@XlV²LƂVbnL@lš@°"],encodeOffsets:[[114503,39134]]}},{type:"Feature",id:"1403",properties:{name:"阳泉市",cp:[113.4778,38.0951],childNum:3},geometry:{type:"Polygon",coordinates:["@@°@nb„@lb@b„b„b‚@„x²al@lb„KXU@m‚kUWkkmUUƒVwV@XUW@™naVklKXblKnL‚ƒnLVanImaXKlL„ašV@U@KUKW„alƒXK@£WKXUV@VU„ƒUUVW„_V™@W@@K„@šƒUƒƒIWmXUmƒULƒn™JkImmÝaUbLƒK@UƒWk@mn™Uƒ@kVWb@Ubmx@lƒzUxƒ`U„ULml@„XWlƒ@UV@nk@U‚Vb@X™Jm™@@Vknƒyk@ƒzƒJƒnUV@bk@mJ@b°Ò°zXVlVXx‚@šbXVmnVbUlVb"],encodeOffsets:[[115864,39336]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/si_chuan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5133",properties:{name:"甘孜藏族自治州",cp:[99.9207,31.0803],childNum:18},geometry:{type:"Polygon",coordinates:["@@ƒaXamƒ¯wm@±°wUwV@UaVw²Kš™„U@UƒU„¥‚a„ƒ@£Þ™ôx‚Knkm™X¥™IUƒÝUwlk°V„@ƒÈ™‚KUwlkUyV¹„mšx²Xll„ÑW»š„l„w°UŎ„nƒ„„˜Jœƒl¯°V@wôIVÇn™nUllšLšVǚLô¼XW£@±„@¥k_ÇJƒkUéƒkšƒƒwXa@ƒšLlw²™Vx„b‚mš¼ÈxlLȃ„VWÞn¯mǙÑUÝlÛkwlĉmƒULmwUJ™ç@wkm@ÑlUX™ƒÑôġƒVa™ƒUф¯@wķÓkbV„mnU@@y¯IķKƒV@¹šaƒé@k„mÞU°¥@a¯@anKlblU„¥@óğç@Çw@wkla„çݱk¯±@ğÝUÛmݯwƒ@kb±¯akXWÜkXUÆÇUš¤X_Ɛw„V@¤ƒXU‚ƒbUƒŽƒIUlÇUkŽġ@™aXČmlUlèUV@„mVk¦Vxš@¦±š¯ƒƒ¯¯anlWš¯nƒƒÅw@w°KVak£m@klƒKknÇU™»óKšīlaUaV£@™™¯@ƙU™VƒÛÝÇXƒÇl—ÓlŹ„»WUğJ¯£mx™Lĵô›ºX„VlUll²bl„„lŽƒxónn°ÝšU¼mJUš¯nƒƒƒV@êĉ°Uĸ™w™@mƒ@¯kmXamѯaUwÝKU¥„mÅn¥Wmn™ƒ¹n±ƑƆÇôXê±NJnšƒ‚UôlĖkȂVÒ¯¼VnƒȮ¯ĀnƆ˜Ģ@Žk°V°¯ĢVlkšVxm¼X²™Ŏ@ŽVxknWܰU‚¯n™ÆÝœ@`„ôݲÒƒ‚Çzn‚mX@x„è°K°Å„UČĬóĖ݄ƒ˜ó¼ÅêƒÒƒbmšk@V„Ž˜„@ҁl@nĉܛê—x@Ėml՛J¯¦óxȭ°ÝmޝLĵè›Ā@Ɓ„l°żƒ‚šX@xmŽkV@z@‚„°blŽnÞ°J@bn@ƼUVƒUóŽóLƒ°X°ÝLƒxUn„°ƒĬƒn@lnL@ŽÆ@šn„KÆxnUnV˜InĬmÆnxŎ¼ĊIĢóÞ@ĊƒƨbUƒ‚mV¥lkƒ‚wnL„mšÅÆ¥Xƒ˜wU@w‚wUÞ™@alUUŚU™Vkkm°aU—°Ó°w°U„ƒ„b°aš²K˜¯œĕ˜@ÈbޏĊaš»„XVm°In„‚Ĭk¼Vb„ašJšôš£VĊan™‚k„ů™™nƒÜU@anKnĮ‚bÈmƎš»nI‚霣Ġ™"],encodeOffsets:[[103073,33295]]}},{type:"Feature",id:"5132",properties:{name:"阿坝藏族羌族自治州",cp:[102.4805,32.4536],childNum:13},geometry:{type:"Polygon",coordinates:["@@l@@þ²I@lƒ„VL°wnJ°Uĸ™Ŏè„Ilw„V°¤nĮ™¤Ý„lè„L@„ƒ„@x„l™è²ôĊ_ĊġVÈôJżīlbXšÆÈVŽkxÇVƒ„n°„¦Üb@è@nn@@°šUÈ¥WDŽ_Uala¯¯UǙkƒ»„mVwk»˜k²°VxlL@¤œ_@x‚`ȍ‚Ėöb˜š@l²alX„a@bnK°¦VK@nnWmx@nUnl@@lƒlĉk°l°UXkmW@Unš`k„ÇL„ŽW„ÛÈVxšVVlVk@l„IXb@ylXÈW˜Į„WŤzœy@šmIƒŽ²šJ‚š@nް@V„„J°a„Å@ƒŎkVǚk™aUw„KVw™™Vƒ„@nkm™@±ôkô™ĊJš¼šInÑm±nIššÞ‚XȃĊxĊUÈbÜyÈ£Vkw@kVUV™„m@ša„»ÜbÈmƒUXwÝxƒUn¥@°ġ™Å‚aœJVk™aW¯Û@W¥—UŏĶ™@¯kUƒŃ@ašI@mmanwސ‚W@œ™mw°»Uřk¹±W„xVx¯¦U°ƒzţW™w@°ÇVÑk¯@„y°aš£š@šmšnl¼„ašÝÝakwUƒ±aĉImlĵn@ƒm@kkVƒ¯Ñm™ĸ™°x„l™œ@˜ƒXVÞmlÛݙĉUÅ¥mwÅ¥VaUw›™XġċaVůÛŹlwU¯U™ó±™xÛV±¯¯n¯mċƒLmnĊm‚™@™_kJWaXmwUƒĉK™»™@mwX݃UDŽkKÇw™»nƒaUw±škx™K@„Wb„x™„„lVê„lÈIl`@¦ƒŽ@²X¤Wó»™KUșŽ™KkkmVmšUÈóJ@x¯Uk°›„—Iƒƒm„ōƒ¯Vƒxƒk™ŽX¼ƒÒkk±W™wƒnUºVzklVxLǚ@„ƒŽ¯UklVxސV„šJW¦nšmlLówݚ@¤ƒ„bƒ¦„V@VƒV™š±LUxVbU@Vx¯x@²n‚°xn„Wb„b"],encodeOffsets:[[103073,33295]]}},{type:"Feature",id:"5134",properties:{name:"凉山彝族自治州",cp:[101.9641,27.6746],childNum:17},geometry:{type:"Polygon",coordinates:["@@ĶóšKnw°¤ĠIXVƒ¼kź˜Ôk‚„ÈWŽÞȄÜUVšÅš°@šš‚@U¤Vbkb™ĬôLš¼ÈVlm„Llkn@l¤Ub¯L@xÆx„„°mX™mk°b„°°„²™@¥‚™Uwl¥nU@ƒVUkçVnkWċšbĢ@lÈVVk„J„‚V„aV„W@£ƒUƏxW`™£ÈVVÅlWXÛlW°b²la„@°xnÞVÜĠÞ²@l°Þ²ƒèkblŽ@xÈx@Ġènal£nU‚Dz@‚ÞK„nn¤@¼˜°U¼„nV‚šXU‚šbn™ĠUVbUlVš°LX„@lV„èÜUnK@_ƒyXVyUwmIU»Vƒ„kÇ¥šÿkkV¯m±n@ƒn¯ÜanVVƄz@Ž‚bœwÜb„m@wša@kƒmk»@™a@VUUó„w˜@nb°mš„XŽmnVbގVôanwšJ‚ak£lw„˜šLšÅnÝ@wl¥IÇӃ@U™™Lƒ¼kVǃÅó¯kVmmw@ƒn_‚Vn»°LÅ»@éÇçŹīVÇÝ@ÝğU™ƒaVݙ™š¯ķlŭġlƒ@óÞۂċ@¯nkUӄ—m±™IVġUwóKUn±¯—K›w»ƒKݐV„nl@„óxUwţ›£ĉƒUmŗÇ݃K™„ÝUlmKƒ£UVŽ@ÞȎW¦„Ò@Ĭšnny‚@nÒmœVŽ—¼@°Vbl@VlnUUwl™°a@„œ„@llnk°lbnKWĀnŽU„VxUŽ‚²Å‚m¦Û›ÇڃaU„Vbš@¦m`móX™Umm™xÅ@±Þn虲™U¯»m™ƒV—m@wƒU@wݚÝmLƒa@„™VÇUk„l°¯„VlkVƒ¦UšmxƒaULUèVx@„kIUxmWV¼¯VmȯšU„nl›È—@m»Å™ƒVWxÅbÅğW@kƒm@kVV¦mlnn@‚ō„l¦Åƙxkœ"],encodeOffsets:[[102466,28756]]}},{type:"Feature",id:"5107",properties:{name:"绵阳市",cp:[104.7327,31.8713],childNum:8},geometry:{type:"Polygon",coordinates:["@@„ńlV°š@Őĵ˜VX»ÆUĊќJ‚w„@È»m»š£°Kšk@ÇnÑÆš@„w°JUwnw@wšbVbš@VlźLUw„aƒ»„aUklyUUVakwWXwWƒUxkLƒmn¥mšwk™˜UX™lJ„w@aƒIk°X„¥Wƒ²l¥šaU™„IlmkklƒÈL@m°nlWU™aW—š@Vƒ„@UaV¥@ašk@Çk¹ƒK@a™K@kƒKkšÇX@VU@kx±V™èkIWwUVUkkKÇ@ƒa@wkml¯@kUWn£Wa„aVwnaV݃w¯@UaWx—n›JńUxUšma@L@„mbUށU±VVnkxUƙ„VŽm@kkKW°„X@¤ÇUkÆÇnU¦¯ŽkƒmLVwÅK@UóbÇÆVƒ¦™L@‚±êX¦mVޚkÜÝnWU—„›@kšƒŽ¯wķšnš°ÒU„lln@@„ĶmnkĊJ²bV„lxÞb™Þƒbk»™m™n™@™¤¯bƒz@Žl°UÒ¯È@ŽšxŤX„yV¯°¥Uwƒw²XlºVڝ¼nx›š@ށXݏmxnb@n™J@b"],encodeOffsets:[[106448,33694]]}},{type:"Feature",id:"5117",properties:{name:"达州市",cp:[107.6111,31.333],childNum:7},geometry:{type:"Polygon",coordinates:["@@Uxn°‚bnŽlUnÒÆƒnn@n‚¤„LnxlU„ššV@„Æl„x°XXxl`XœƒVW‚œL˜è—„±nÈbƒŽ°b@š²x°Kܼ°ĉ„V¦lJnU@¦šÞ‚JÞğ„mšLÞ»šxU„lb„VÆann„alŽ„VƍX@lnŎV„mU™maÅXƒa@aWmœ@‚£@wĉJVƒkk‚kkmƒnk@ƒmna@šal„Kš™‚J@Þwm‚ÅŃ@ambkUƒƒ@™™KUġKU@m‚ak¯±ƒ„a@aĉÑÅaVwšXlwƒ±—V¥l@@a™kƒ›@@£šmƒĉÝónWV@ށnÝÇÇx—UmbƒaVkkk@m„@m°ƒÝýXm›akÅīƒ@@ƒmb@@xmšnbƒ@mxšŽkWL@ƒ¯b@WUXmWœWKkbm@kx™Xmm@LUl„xlêóK™nUš„all™LƒlLó°m¯JVšU„K„„@x˜K²Āô¦l°"],encodeOffsets:[[109519,31917]]}},{type:"Feature",id:"5108",properties:{name:"广元市",cp:[105.6885,32.2284],childNum:5},geometry:{type:"Polygon",coordinates:["@@ÆL„Ċx°»Ŧ¦˜W„™šLȄ@xÞKܰÞnVxÅĀlÒnJ°a@w„V¯l@XWknKnw˜VȚ°XXa˜lX°VI°b„W„nšaššš¥@ƒw°™n@šyÆ@nkÞ@°¯lJn„°IÈl‚UšlXÅ@ķlUV¥VUUÝޙUUƒ@UwƒJUkĉm@ýƒƒlk™WUwVwWJk@VUK™lUkaVƒUƒmLk„m@ƒƒ@Uƒ›Ik`@„™UmlUkV¯ÇXKÝ_mm¯@Uƒ`kwmƒl¼±KV¯—¯Vk±Vk±kzma™KUnDZ™bk¦±ŽX„ƒ¦¯Wl„J@bƒxkIWš—Vlš™xnŽm¦„nlKVwX„WxXŽlxUbVVkzVlƒb„¼ƒbVxŹKUk™@Ua™a@xmxVx¯Iƒx™@ŎmÒ@șl¯L™¤n¼"],encodeOffsets:[[107146,33452]]}},{type:"Feature",id:"5118",properties:{name:"雅安市",cp:[102.6672,29.8938],childNum:8},geometry:{type:"Polygon",coordinates:["@@ln@xšèVInxVKn„‚ĊklxkÜVޚÒnÈm°nxš@š¼ĊLV„nx‚WXblIš`š@nmĉn‚KȄôÅlUÑmU„K²¹@ÇÅVÓůVýÞW„‚UVmX„ÆbnwšKUÿ‚™@UmmIUb¯¥Uwƒ™¯™Çmš™„çmanUm»UUƒl—kƒ¤ƒa¯bV™U_WĕmÇŚ±ĢUlƒUl™ÛVƒçkUƒ@WޝKU™VkUağVmš™aV™WUƒmV»—¯@»m£ƒmÝLŽ±@ÈmVk¤mb@ôƒ¦kVkamL@b°‚@b¯¦ÝVƒn@l„ê™b@º„UĸL°J@zV@nmUƒlaĸÔ@xƒ°VҚ„Ub„‚óĢ„ÒWškV@Ò"],encodeOffsets:[[104727,30797]]}},{type:"Feature",id:"5115",properties:{name:"宜宾市",cp:[104.6558,28.548],childNum:10},geometry:{type:"Polygon",coordinates:["@@VlÈnl‚XnWLX`m„²nV‚@b°xĢçlnšVm‚nn„@@„°‚UzšlV°nޘÒkxl„w„`UnVb„mšL@albÞKÈۚmܼ°@Xǚ@wmW@ńKĊL„lV„šLVŎçÞL²±‚ğkw@Uƒy@¹lKX™lKVa@w™™Č@‚w@a˜ÇU¯n™@@wġak—™aō‚ƒƒK@Å»VakUWmķwkbğ¥mL™akš™@ġރ°¯xVVÞ@VšxVš—VWx„XlxU‚™@k²WVŃULmèULVĊklĠ„VœJVx±nѝ¦mwğ@mƒƒlğkkl±@kšUk@¯±Ç™Kƒ—kxl¤b™Imx"],encodeOffsets:[[106099,29279]]}},{type:"Feature",id:"5111",properties:{name:"乐山市",cp:[103.5791,29.1742],childNum:9},geometry:{type:"Polygon",coordinates:["@@kšVŽk„ššÆkšV²UlºÈIlxƒLXèÜlU„„XU‚mkƒbVè„x°@„@¼°Knnn@m˜ÆIUbnJ@bVI°b°±@nK@mVakkƒKl¯nbšmĸ„èl@VnÈl‚UUw„wmwnm°¥„L„™lLnU@Va™ImbkƒmK„ƒƒnk@mƒb™ƒƒLV„JVUUƒ„VnkVmb@a¯JUaÆkk¥„IW¥„Klw—ÑmÝU¯™kVy¯@ƒƒ@mmn™Ukmġè¯w@aU±mnƒW_XKWmkÇmUkóbUÝUanmW™ƒ¯nma—@ƒxVôUV@šb@‚l¼„n@l™b@xƒnÛa›xa@ƒyUÅmUÛbm°@„m‚n²U°ll™ĀȦƒlU„V¼nJVxUz‚W„z@`mL"],encodeOffsets:[[105480,29993]]}},{type:"Feature",id:"5113",properties:{name:"南充市",cp:[106.2048,31.1517],childNum:7},geometry:{type:"Polygon",coordinates:["@@ȲVmšLnblyl²²UUl˜°U°²L‚»„knlx„_Vް@nnÞ`WL°ÈUŽVlnkšV@ƒl_œJV„‚@„„n@lƒnKV£™Çšƒ„UV¯šm„@laX˜U„‚UbVx„@VkôJU°Jn™@™‚wUk°wnUƒV_nJmknmm¯Vwk¯ó¥±ÿ—L@wƒƒƒLVU™kU›bX¯mykI@a±Kk¦ULmaXƒƒVm¯ƒK—z±ƒklUIVbÇJšƒkL¯™l™ƒU™ÿ™UƒlUkJƒUmŽUUkVVklKk@@a™U@„™J„²ƒxƒ¦kĬ@¼±ºXnWb—xƒU@xƒx@lšL@b„Llº@șl@bU¦Vbƒ@U„™@X˜‚bVškX¯m@nÇKk„llknƒJVš"],encodeOffsets:[[107989,32282]]}},{type:"Feature",id:"5119",properties:{name:"巴中市",cp:[107.0618,31.9977],childNum:4},geometry:{type:"Polygon",coordinates:["@@V„U„lbkVšŽVLUŽl@XI‚ŽUxVxšXkl„„@þĊnVl„IVx„@VVݚVÞUVU¦kV@ĸWÆô²š@VÞnš@Vaôb²W@‚K@XUmÑUW°¯°Ina@y„_lWn¼lLUbô¼„Kla@™nkUyô—Æx°@šn£™Ý@¥mVkIU¥Ċƒ‚¯Û»¯L±w@™¯a„Ça²m˜ƒ—ç›KX„UW›k_Ww¯WƒwÅk@ƒ™Uƒ™kVmwƒK£@mmmńmÑkVmamnnlmIU`V„m¯xVlx@šmš¯IV‚óIUlƒ@UwVaƒ—VW‚kbƒ@™nU°ƒV™„šÈU¤"],encodeOffsets:[[108957,32569]]}},{type:"Feature",id:"5105",properties:{name:"泸州市",cp:[105.4578,28.493],childNum:5},geometry:{type:"Polygon",coordinates:["@@VVXwVKn„˜wnVƒn„l@b¯xmKUbVn°°X°@blLšènV„@Vn‚l@U„LnmmUna„VV_ĶV@wnJ„„l@@kkKVólaUwnJm„wUlm@ašUaôKVnJWbޚ@VšwVLX¥VVš_Þ`šw„WƒÞŹmmnIn¥Wƒ@k„WV¯@ƒ°kI™ŽƒLk¼Ç@k¤±Xk˜™nmݯUlÅÛKWV¯kƒlUwkLƒÓ™@U—@ƒ‚w@ġXV„˜WX„š@UbVbšV›š_kÇV™lU°lnwŎ¦ÞaƯnmm¯šU„™m¥nkVmkƒl_ó¥¯UÇl¯@™ƒ™L™kƒ`¯ķLUy¯@mw—¼ķ°ġ_řU°mlšnÇVUޚ„@‚ƒš_ƒJUnV‚UXšbl˜Ģb@x@mšV°—È‚b@‚xċ@šš@xUbkLWškL@º„zV‚@lxĠ±²"],encodeOffsets:[[107674,29639]]}},{type:"Feature",id:"5101",properties:{name:"成都市",cp:[103.9526,30.7617],childNum:11},geometry:{type:"Polygon",coordinates:["@@°n°m²°ÜUšw²ŽôVš°ŽVkxÜźUŰČb‚ŽĢlaÈL„»ƒ@k„wVǂ@„ƒnÛÆ»È™UݰKl_„V°Uš`Vbn@VbÈLšaVU@ƨ»V™nIl™šUUa„±lIk±š@VnKmÅ@WaƒK¦™lVōškK™Ý@maXÇmw¯IU‚@kƒVƒwUmVIƒƒƒç—ÿƒU±ŽÅ@¯È@xƒK@wƒLUbÇKō@mÝ£@yóUóóUxkI@WlIUaƒbƒaŽVĀ™LmxÅaWƒUnVƒÝXUþưUÔÈÆ@±ºƒLnVVÒkóÆ"],encodeOffsets:[[105492,31534]]}},{type:"Feature",id:"5120",properties:{name:"资阳市",cp:[104.9744,30.1575],childNum:4},geometry:{type:"Polygon",coordinates:["@@„è„„UJVn„x„U@lV°JnxWÈnbÞ@šŽlLŎ™Ušk‚¥„LXbÆ@nŽmLU‚@zlbXmlnVynL„çšJVb‚UnómUnamU„an¥lKV_²aValWô„n@nƒ‚bVœK°¯VblW@kkƒlUnlV£°W@w„UXk°KVwƒmVkwVyVI@wkmƒVÅ_Umm@Uÿmbk£™xUaVw±V¼V¤kLWxU@Uk™bƒyƒXšómƒ°V@@zÝÒkKƒn™±U@@_VVkƒÇaVwnLWalm@@kkVVl™¦kIV`±n@w„Kƒƒk²™aƒVUUV¤™nkxmUkVWVnLUbVbƒ`kUU„mLU‚mX@`ÅbǚXbWLXŽ›n"],encodeOffsets:[[106695,31062]]}},{type:"Feature",id:"5104",properties:{name:"攀枝花市",cp:[101.6895,26.7133],childNum:3},geometry:{type:"Polygon",coordinates:["@@„b‚KÞnޙ@x„V@x˜n„Unš°¼šVš±mç²ÝÆ@šwnnšVWŽnôn_@¥‚™UaVƒ„bƙœÈ܎n¥Æ±VUwVƒmXÿmLkal¯km@k›ƒ@ƒ¯bkšVxmVUkk@Ua@¯˜»Un›mс@mz™m@īƒÑX¥Ç@ݙxU¦ƒšÅŽÇUkx@šlb„UWVX„mV@xĵ˱@@ޝxUšÆLnÆm„šx@nXL±lUUVwKWak@WxkbšÞƒŽĉbUn@‚ƒ@@xó¦„Ŏ"],encodeOffsets:[[103602,27816]]}},{type:"Feature",id:"5114",properties:{name:"眉山市",cp:[103.8098,30.0146],childNum:6},geometry:{type:"Polygon",coordinates:["@@„šVx°¦VanJVnš@„b„aVbkJ@XlJVwôôôV@zÞ¤@nƎÈLVa„K@x„L@w°ÇÆ@²„V˜ĀœmWXKWașÆa@_nWVnKVƒlV„_UaVamKXUWwnmmwœÑm£@ynUƒkWƒĉUkWVkkV±çkJmkKƒšƒK¯¦mnnxƒxVxVÇkUmk@ƒçķ™nmak°„LllUb@nmL@‚¯²¯aUJ@amIVaÅJn—m@mm¯L@»ƒŽ¯@ƒwUç„anlVƒWVƒÛkWç„KkwÇJk¹±V™UÅl™™ġV™²ÈƂnXĖV`Uš°a„b„£˜l„kVVn¼mVnbƒè™šÈn°š"],encodeOffsets:[[105683,30685]]}},{type:"Feature",id:"5116",properties:{name:"广安市",cp:[106.6333,30.4376],childNum:5},geometry:{type:"Polygon",coordinates:["@@„VlIV‚„kšVšĀ„Vkš°šlK™„ÈIUaVJlk²„˜y„Ln°„UW„nbVKl¥²L@blJnzW°œalV°Inô¯‚K„kšKkkƒbV™šmôLkéƒwVk@KnnšWlwn@laXL›ŽnXVW@X°a@„XKl™nw„@man™@w‚@na@„„@ƒw™ĕġġ™wUkUWb@mk@™¦ƒ¥mUÛb±yÅn@bml@kV@„ƒlknVbmVnlmš—bÇk¯bWyk@V_UamJ@I—@WaƒVXamIVWkUkbVaƒUUxƒ@VnkVU¼›bkKUxmK™„@WšƒxnV@n"],encodeOffsets:[[108518,31208]]}},{type:"Feature",id:"5106",properties:{name:"德阳市",cp:[104.48,31.1133],childNum:6},geometry:{type:"Polygon",coordinates:["@@nUW¥²é@šK„¥‚UÈÅôa@VÆLUxnKl„°V¥ÈmlÅÈV@£ƒWX¯lLln@UšƒVÅlwUm²U‚VVna@ƒ@KnbV™VwƃœI˜mXwWƒkIVwÝĕVUa™IƒèmKUzkmWnka@y™@l²kJƒ²Vb™VkšmJUšƧ¼@UV™bÇKUam@Ua™_¯VƒUk`¯LVÞǚżm܃„@Uȃx@l„ƒ¼ÇKkbWŽœšVxUbƦnxƦĊV"],encodeOffsets:[[106594,32457]]}},{type:"Feature",id:"5110",properties:{name:"内江市",cp:[104.8535,29.6136],childNum:4},geometry:{type:"Polygon",coordinates:["@@²èlUUllXĊVX„„lmV@zn¤›ÒnxmnXxlUnVlwšmU£VV„Ušbl±„„ƒL@x²mU_lJš¥UklU@ln@‚kXbmKUxÈbl„UU@`V@š²„mlLÞÑ@yU@„¯ôn‚™„W„zšaVlV@XwlKU£‚»—aVaUwm@mwUVUwkƒlVDzLlƒ„KV™m_@ykUmƒ@mU™çkKmxkIU‚Ý„@LUJ@n±„kº‚LXb™¼@mmIXa™@mamnkW™ƒKUƒƒxƒ_U`UklwUw™mUbƒV™²ƒakbƒmkn@`„UmҙšVxUb™I™`UƒaÝÈ"],encodeOffsets:[[106774,30342]]}},{type:"Feature",id:"5109",properties:{name:"遂宁市",cp:[105.5347,30.6683],childNum:4},geometry:{type:"Polygon",coordinates:["@@ÞĖUxlJX„Vb°@„xUÞmbUxƒbXbm¤VX@lk°ln@x„bÈ@lLVlVUXxlJšç²UlwV@@UÈWl™„L„w@w„V˜wXaWm²¹@»lī„¥„wƒ±šI@ƒšV@bl@kLUllUVVn@mmU„wX™ċbVb@VUkbmamšW@kƒa@™™k@ƒlaUa™@¯b@šmmwó@@lkXUa¯°›LU‚am„m@óƒkXUb±bU`kLm¦ƒbnVmbnVmô"],encodeOffsets:[[107595,31270]]}},{type:"Feature",id:"5103",properties:{name:"自贡市",cp:[104.6667,29.2786],childNum:3},geometry:{type:"Polygon",coordinates:["@@lIÞDŽbVŽš_šJVaUwš™nуV@_lm„nla„bš±„UVašnVxkxVlV_„`„wV„„LšlXnmnbš@WbnJ@nš»WaKl¹²ƒ@mVI@KރVlJnw@aW¯¯¯UmVanL°w@aƒk„mmU—xmƒULWxUUÝKōèU™KUƒƒkĉKƒL@ÆnX@x™‚Wȯ@Û»™nÇÜÝLka@b™KƒnUaVmƒ_ƒxkƒLX¦ƒJl¦ÅlVb°I@bnaUŽmlƒUV„UVƒIUŽ„Kš„„a@nml„„ƒŽnLl„našJUbV@"],encodeOffsets:[[106752,30347]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/tai_wan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"7100",properties:{name:"台湾",cp:[121.0295,23.6082],childNum:1},geometry:{type:"Polygon",coordinates:["@@\\sŽ@pS}aekgKSu™SsMß`¡CqZ·be@Q^o@‹gieMp‹‰]}•}Ľc_Kk…{™ù“A¡r‰[uom@эĥJiq©mʼnq¯Bq]ÙYgSåk_gwU­isTE…“‘ĕiqiUEkue_‰OSsZ‹aWKo¡­q“ycY£w}‹ĩ™ĕS§Z©S™N¥SyLÑ¡±Ks^IY‰PdƒY[Uo†Fp}´\\¬\\j]ˆe܍ò‹¤¡–ā a\\bn™U㺹Ìs¼j®[cíȈEŽĝĆ`ļf¶Š®K|VØDdKGpVnU‚FjpH—F`†B’[pMºxÖjbpÎxp€¬‚|ΟÜÒCв®‚ÜAp„ZG~€Šd˜ÞàV¨|¸€`|Œ²tx~\\~|dFf^zG€ĄŚhœdL\\hĸž¼†ŠOªP®lV`p\\]Xpll˜æ¤œCpQ|oF}fMRi†NSon_²qämœM„NM‹\\•"],encodeOffsets:[[124853,25650]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/tian_jin_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"120225",properties:{name:"蓟县",cp:[117.4672,40.004],childNum:1},geometry:{type:"Polygon",coordinates:["@@EUDAEI@WNMNCBFAHFFNACDJDPBD@@GD@DIFFHEFGDBDEQOFG@EI_KG@OcJQM]RMEKBGPG@[LaCIICBWKCEEG@WBQHCDFD@HSLEJI@IHWECFGAAEKCGDBFCBSBIDCKKHEADMJMFABKOKEQAA@IEEG@GIQAEK@OZEESMOL“lu@SLUTYFQCMG@@SQUAYKAACA@IB@BDB@B@DC@@BGAEFAA@BEGKJCC@AGAIHA@@JC@QEIP@@A@EGIDC@O@C@@@@CJCWKABFLBBEBSQGBAAMIEM@AKBcJEN@BEBCFMAEFEF@J@BG@BFABECKFG@AFQ@@F@BEB@@A@@AAAKAE@GFGDECEFEECBKIKDELDFEDYH@EIACDCHKBEB@BAAC@ADBHABKJIAIJICEDGDCD@@A@A@DHCHJHDFEFGBKRKBGIK@GIMHSBCH_BOJECCJCFKKMD@DNJEDEGC@OJCJHRUL@HRJ@H[DCNKDZHCTFDHCFFKR`TANVDFZRDLFARB@HPAPG`ILAR@TERNDFNHDLCLDDCXDYbHF@FEB@LDDVE@JPNfXPINCVDJJD@NJPAJHLXHDNANHhB@DPNLRMTBFRBHHr@`NBFEBOCCBIAQJDHCHLHFA@HSDCRLFTB@HEFLNF@PELBDJALFLTC@EPFLLP@tUHQJDfIHGTB^JTCPDLKAIBATFPADIEGECEMJ@JIAIHGECFEAGDI\\SPOXAFCL@BQTQBBTMZECYGAHA@GJAE@HCAEME@IECFKJADDBABLTHHG@ILEAMNDJCDHEBF@@JNFJELDFKTOT@JETBFFHBHEHKI@@IJEJ@XKEOUMS@AF@CEB"],encodeOffsets:[[120575,41009]]}},{type:"Feature",id:"120114",properties:{name:"武清区",cp:[117.0621,39.4121],childNum:1},geometry:{type:"Polygon",coordinates:["@@FWôµ@IFCLIB@EHNBp]AGEAKAEDMGZKFGBGME@ILGP@HEFB@BXMEAHUGC@IHCLOD@X[NWHWPKAEF[@EKIOL@EKGBNMJ@EIEHKBIC@BAKMIACCFQZCF]DB@ERAKADIHGEIBCGIIECFaGLZO@EFCNGAGDGAKL@BMG@IE@ADSDEH[JGC@CGA@BMDeK@EIACFE@@GG@FIAMM@CCGC@EM@ADE@CFMAAGHBDKIEAJG@DOGCDEKAGIS@KFCHKAEHIE]BeKNO[IFIOELC@A]GMBKVYCDDgGAICARc@MW@AQE@DGI@@AQ@@BKBAIQQYEFW@CEADIGGBCEIiMEMF_LGEKMBBDWEBGRC@E_CHYGCH_IAED@FFBQh@FGJaJ}AHRAREF@bE\\C@CT`FHC@\\BBF@BID@HGDDJ@@FAHKBARECKDAZBJIVNHCTA@EREAMLHDAFFBVFFC@RNRETHD@FOJMACH@CAB@P@DF@@FGDWE@FFSIEMKQDYCCHKb^JADOCIDGNDBdBCFJB@EC\\A@BJEA@JAAAD@HHD@LFBCFF@BERDHNhZQHMBGHOACCEBWEGD@PSJKCGEUD@CINLFGHE@AJK@HDABBHTB@F`DBFLBBHEDARCFG@ABJBAPVFE^FBGLGCFG_BMLEXGAAFE@@JNRVJHFALFBEHQJCTbNDHCF@PlFLJSXCHFHfVBTNJ\\BPJXC^FAVNFCHFB@FFH@JF@\\ABCFD\\BDMCAAJKQBGAILOEGHILECQLWFENJHADC@QxNHFJNLDFA@CBA@D˜UÂmR@FBL@BD"],encodeOffsets:[[119959,40574]]}},{type:"Feature",id:"120115",properties:{name:"宝坻区",cp:[117.4274,39.5913],childNum:1},geometry:{type:"Polygon",coordinates:["@@TZbB@JHD@DODCLM@AP@LL@BNH@ETFN@`E@DNG@CHLBCJA@AICFKDDBKA@\\N@AFNAGRBFjFFFL@DHLBLFQPcXAZMJ]GAVHAIZJFNE@JpDRRDCLFDGXA@EFF@CFFPDfEBDB@DCHCFCJDJIJBLI@I@CB@@ADBB@FALADGDC@@H@BB@FZGFCCE@@FMLALJDAFFFEFDFCB@@AHCF@L@@BBB@BB@FC@E@@R@BEL@HEFD@G@AH@AIB@@@FEFEBALDDEFAFO^IF@JCBBFPNJJ@D@PRDCEKBAXL@BIFD@T@JE@BHHJORFDI@@B@JGH@@B@BDDLIFFHCD@D@DEE@BAAAB@DAF@B@H@NGLJLMRDNMfGIEPMI@GDAKK@KIDIJ@GE@CFDN@FE@GFEPGV@TCDFKHBBF@RW@DD@@ID@TJFKIKLI@EP@IGBCLAEKLEN@KSHIGYACSD@SEAMBBMGEBMQBCMIGKFB[D@HDLPHDBC@IFITDLG@IIIFGVBNJDLN@VIRI@YIAIHIC@CLKZCBEE@JECEIHEAKGDGECBGEEM@@DA@CCCBBEGA[GEDBBoNAAH]MKiIAWKQoIIPMFQAEEDMH@FMSUYIeF@EK@BIOEKJEBICFKaKPFAFSE@LWCCFMHDDEKESBOGBKIEIODLG@CCDEQCEDWEMDIEIB@EHGEEDAEAa@@HqDEJGF[AECCFa@WCEIKAAEQB@FCAE^YDERDDJBLNABD@AJGLJF@FNIAMLH@FPKLJ@FE\\BFOLGXMXW\\C@KPGD@JHDGVFBWN@AEAGFO@KH@JNFAHEHYLNHFCLBFBBHo^MAFGA@KJED@Jó¶EX"],encodeOffsets:[[119959,40574]]}},{type:"Feature",id:"120223",properties:{name:"静海县",cp:[116.9824,38.8312],childNum:1},geometry:{type:"Polygon",coordinates:["@@NGFMDATCNDR@CCbINEHNJA@C\\EEGVE@IhE–[˜w”epc¢·²›^QEKIEKIgiQDkehY£uSDBMkUDOJDHC@GF@CAFBFEN@C‹Q@BeP@@G@HD@@MHQKi@[IGCOCESE@GMA_OcCGDu`aˆ@VZzKDkJBLNXGDqKEWE@cFEFA@ƒISIi@@KMABJGBcMuFEzGVH\\ATSEUBeALCEMG@CEBUHUCGXaBPtUBBFIBFTDFF@DDKBFNGBJPHXDDMDCLJ^mBIHIL@LR\\@LCR[@@z@NFD@LLBNb@RHDBNTPT\\F@BJF@BXCFBHHBDLFB@HODADE@@JHVXCPDHCFTLBBFNCDCCCU@@GAABEHHZHBCAEdEjFDD@GfD@DXFCHF@ERFDLBH@"],encodeOffsets:[[119688,40010]]}},{type:"Feature",id:"120221",properties:{name:"宁河县",cp:[117.6801,39.3853],childNum:1},geometry:{type:"Polygon",coordinates:["@@BFLBFJXDb@DEFD\\BHEFIrC@Gb@FBCBFFGH@FJAJFNCXFFCRDCFDDH@CKJPJFALPHTALFCFGCENDDKXF@ETEBO‚bLELJDFALIPFAJL@@FfEZJTVENG@CNFFRBNEJOpJLRBXjJNLG^BBpMAAFC\\HHBAFDADDB@@CN@FFAHFDCHLHFBJGFCFUNKJJTD\\XUXF\\^F@DDDQXXBRLRCBDFEVCDLVDpUl@LEDJHAPRFGL@CETGPBTCDDVI@CFF@GFDCCVGLKEK[Y@MECISG@BKNSCGCKWEAaEBEKNGFSECO@GGM@GYI@DÅCMLHPTF@DJHAVVNKEGDETJ^[TJNNd@NOAMFYJ@@GFANDPEJB^aOadSTQSI@MHBDIEOKCG@EEFCKCqXO@@DMFENCDDHCCGJ]AKFoDaGGHYFDHKJiCMFGC@EQ@AEHGAC@IEAATKOHGIC@IXIFEoƒGE[JCFCDHNmRADFZMF[EEBMO{GU@AOW@@]ZeHBDEHBKEfQkuIWBs‡@EC@d[@[^EDMTKCEEcI@cDAB@FCBCACmOCG{PYHeBgPwPFDDALFFFCHQGSD@BHFAR[TaFYXMASUiGFL@DQNCJI@@D@PLDN`ETEFIGMCGBCE‘~CAIFDPEHGEQPHJADFJGHCJLB"],encodeOffsets:[[120145,40295]]}},{type:"Feature",id:"120109",properties:{name:"大港区",cp:[117.3875,38.757],childNum:1},geometry:{type:"Polygon",coordinates:["@@JFFL°_`ONJKDDFIFZN xlb~yFVNRŒrdJGzDPVFBCTNND\\UR@E`F@@Ip@IWGUoawOEE@ÏDgK{İEEMFëC—b…™@—KwOCDHHKBDJCDEEEAGHOABFABMCgDLSQ@CFEB‰MgYIDQINE@AUSwSAdYEHQMEyK[KI@GRMLE@@OqOoBOnpJ@BmEAFHL^FDB[C@BBDVFAHFJENB@sNEjQAMYsUgCSBGDJH@\\LjGR@NC@@G@HO@AfR@DŒM@EFEADBE@@HGDICCPlVANTC¤vgZlfRChjLJ"],encodeOffsets:[[120065,39771]]}},{type:"Feature",id:"120107",properties:{name:"塘沽区",cp:[117.6801,38.9987],childNum:1},geometry:{type:"Polygon",coordinates:["@@|ODHnPBDADEDA@CB@ddJFFLDNSFC\\]\\@@cFDˆ@nACOMW@M@ITURBRZNHNWRQšoO•j½f‡cqŸAqeiDÿÍyÓįFL|Ch@ÐFFxPpbHVJXo@@JCTR^BPABQA]^MB@bE@@FQBFVJRH@FXtPNZSBAja@@NƒDTŽLJrQTHFXZFB`"],encodeOffsets:[[120391,40118]]}},{type:"Feature",id:"120111",properties:{name:"西青区",cp:[117.1829,39.0022],childNum:1},geometry:{type:"Polygon",coordinates:["@@@LHAHRHATh`LHNHDG`HDGZ`D@FQDAHXFACNAFLVRTBFOfHDCVBFQH@HSXHEPFB@LDBF[bDbLFKJBFLADBDjLvCPEI]FGEIGCBEUSjcFiBIVWfaHCjN^HtwBBFGPBJGjFBEGECGDONMFAP]TDHQOWCMGAMHKIJEIGQ]aDlUG]VGEGDC„{PEbBZmE@@GH@BCA@FMQCFMYMJECELCMI_P¯`]R±œ¡¸od“f—x•\\gF@JUFFH[F@DIBGMMFaJDDQ@MCSDCBENMH"],encodeOffsets:[[119688,40010]]}},{type:"Feature",id:"120113",properties:{name:"北辰区",cp:[117.1761,39.2548],childNum:1},geometry:{type:"Polygon",coordinates:["@@ROHFFGCOJEDB’}DFHANDJHFEFSM_KC@O@CJ@DIRM@CEKKA…L…FKACHoLSJSIBETDJaEIIE]E]K[MYUYQILC@GF[MGNKEK@A@BCWECAIFEFYAGFOMI[OFuDiKACBCEKIAELaKaCE\\CA@KEAFOWGGTG@ERUACDeGEPSAUQKHE`FNjNFJADHHCJFB@DEXZFRRBJLA@AR@@BJ@CHF@BRX@@NQdDBBJhHCCZDLUNA^H@BKDPFEJ\\JMPfL^AJFFGLBDGLET@HJLBCFHDCPH@BIJFCLGABHNBDEF@BCN@@FHDDDN@BNEJH@@HF@DEJB@FfLNC@AHB@DHD\\IFGTCBCF@@JNH@ALKHBHCHBDMFEP@KYbHDEJF"],encodeOffsets:[[120139,40273]]}},{type:"Feature",id:"120110",properties:{name:"东丽区",cp:[117.4013,39.1223],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZV\\N^L^FJFFJIbSCAFTJTIpKDGLB†E†KLBjHTVNBZWbE\\SBQGE@ATCRHDGEEKECBECxOhOfAZGA_YEEWSGqRKIS„C@Mb@BiTAMYsOEWG@IQEURA@EF@@acUOXQRYCUDCHDTEF[SUEgAYDcVGJM`iAWDWLQRMHUHgDsDBLHJFCFDFGHBFFVEAGHCJN@RJF‡PIhBD\\FENCPWA@LFBAFHBEJUEARCDIAEDQBRNa^"],encodeOffsets:[[120048,40134]]}},{type:"Feature",id:"120108",properties:{name:"汉沽区",cp:[117.8888,39.2191],childNum:1},geometry:{type:"Polygon",coordinates:["@@LMEI\\MTABKN@FCDMH@COAcH[AoēA™M¡Wa[Meq™pQRMXMGQYQASV@J@NNXDPmBAtJXlveRLFGACFGAYf@^X@BPV@|HNPFA\\FNEEYBCnQGMDCDE\\IHFp„EFWJ@JJDGHLPBSFB@JBDGHBFR@@FHDNEjDLICGZEHGbHpCLE^BHIDDCGDCFMNE@CP@rWLDEDFFH@"],encodeOffsets:[[120859,40235]]}},{type:"Feature",id:"120112",properties:{name:"津南区",cp:[117.3958,38.9603],childNum:1},geometry:{type:"Polygon",coordinates:["@@TLv@CNHFFBHGZFETNPhCVGNGRQXKXCjBN_HIdUZChBVF\\TFECSDGVCZDRQPWdVNA^]RBBAAOQ]DSE@F_Q@[VMCSMADUECOHycI‹qMQEU}zkaŸwENRDENB@ADG@@HF@YnaAOFƒ|CDFHUHH^kVbCR^JHIFLJNGHBDNPXGRSCO^EBMNCPDHHFAFiEIHOAEH"],encodeOffsets:[[120045,39982]]}},{type:"Feature",id:"120103",properties:{name:"河西区",cp:[117.2365,39.0804],childNum:1},geometry:{type:"Polygon",coordinates:["@@d@hZNFdcLYXKRCtCMOFSYEGHEAGEDMu@SKAAsx]GMTGt"],encodeOffsets:[[119992,40041]]}},{type:"Feature",id:"120102",properties:{name:"河东区",cp:[117.2571,39.1209],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZBVFFIGABEEA@KXBDOFM[EACJgˆOIE@QIMGDBHUFEEGAEHECEDGIAKQDWLKZcdQPEP@FOFBJTJ@HNORJf@DBCN"],encodeOffsets:[[120063,40098]]}},{type:"Feature",id:"120104",properties:{name:"南开区",cp:[117.1527,39.1065],childNum:1},geometry:{type:"Polygon",coordinates:["@@NMVDCG\\E^B@HlB@YEDS@C…HsNSiMGDebUXAJEjidVTAFHDFJ"],encodeOffsets:[[119940,40093]]}},{type:"Feature",id:"120105",properties:{name:"河北区",cp:[117.2145,39.1615],childNum:1},geometry:{type:"Polygon",coordinates:["@@DBXFADB@L@LFHM\\NHED@JKZRb]QMRAFCJBDCBQYADMCAe@QIMP@GSIAIPE@E[EGH@ZEF]^HJAXK@KF"],encodeOffsets:[[119980,40125]]}},{type:"Feature",id:"120106",properties:{name:"红桥区",cp:[117.1596,39.1663],childNum:1},geometry:{type:"Polygon",coordinates:["@@J\\PNHEZBFEJELEL@BWGI^]FEkA@G]A[FDHUCMNEHJ^"],encodeOffsets:[[119942,40112]]}},{type:"Feature",id:"120101",properties:{name:"和平区",cp:[117.2008,39.1189],childNum:1},geometry:{type:"Polygon",coordinates:["@@D†T@FCHG\\FFOROMEgYc@"],encodeOffsets:[[119992,40041]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/world_geo",[],function(){return{type:"FeatureCollection",offset:{x:170,y:90},features:[{type:"Feature",id:"AFG",properties:{name:"Afghanistan"},geometry:{type:"Polygon",coordinates:["@@ࡪ͇وŐǬϠڐŶӂʮǚڦ۾njƀ̚ІɣʪҴMوǯʲĹ،˒˰Nj˖ϪԈiżŬĘͺβ̈Ҕȏĝʱʪ¡ý۷ͪ˟̊ǰώĊԼϖׂ×ࢀAƬʋӧĥяƹ७ĭࣗǭӫλȤΣĪллΛ–͑ɳ̡ߛ€ͦ։՗ɅΥԕ²ԋ͡ɿ̳þٝŋğɻسDҵӇ‡܍થΓבôǝȁԇņ࠿űටіހހåզُƚßՔ˟ڢάҢιŮɲؒ΂ਸ"],encodeOffsets:[[62680,36506]]}},{type:"Feature",id:"AGO",properties:{name:"Angola"},geometry:{type:"MultiPolygon",coordinates:[["@@ȸصʌԋȘ˕͐ѯ֊æˤŠҬşŲɀɂӨԶ®ƤіHñ̡৴RfՉǞ͕ūԑÖԫ˪̷­ৃȼüκsԴŴϦ¹ĘʹĩСƨϿů̿î́ყZᦵ֤ۋպԽ໳΁᎝Š׋Ж₭—ŵÏԃϞկ~ԉƝЙDžÿՈŜ݊̂ޒªΰ˚ݶȨΆӘռːϐĘج«ӊʣ̜ɡԚȵԎ®Ǩʶͬʭ߼ǣ֚сՐĄǎΌŔʒg̎ĸៜ["],["@@ɉėɣلͼδʪƘ̀˽̩ǯƍɍλ"]],encodeOffsets:[[[16719,-6018]],[[12736,-5820]]]}},{type:"Feature",id:"ALB",properties:{name:"Albania"},geometry:{type:"Polygon",coordinates:["@@Ń˷ŢέΒȳiə˗ŧ»˙ϷСƛÐgȂү˰ñАîֶŖʼƗƂÉˌθаÂƿɨôǴɥȪďȨ̂"],encodeOffsets:[[21085,42860]]}},{type:"Feature",id:"ARE",properties:{name:"United Arab Emirates"},geometry:{type:"Polygon",coordinates:["@@Ƭ¤ŒɱڂƂ۞uԖ{ֺ֪ظՠՎԮdž˹ŖڑѕGçճƪŝϝǑE΅ʓΏuͷǝDZᡋъ͏࡚Ț"],encodeOffsets:[[52818,24828]]}},{type:"Feature",id:"ARG",properties:{name:"Argentina"},geometry:{type:"MultiPolygon",coordinates:[["@@ߗ§ѓ̔ԑx࣑@Aሞ͒ϵрؿનԋ୲ȿϙп"],["@@Ӵ؇͠ڰॠ“ƊǷ໶ോۊŷਆاࡾ͡Ŧχࠡ౧ࡒɭ़ŷڔƈނ٢ƎݐжLjфӝiڣۻҩ֟΁ॅࠃ૭ଧȽڥɣࡹT࠷ǽȇÝիËѫ੨ܙŗ׃Հν§Ч߯ઁఛ҉။ǩउĎǰԅǣػƺщԋ̏ࡱř̪͕߱ɗŜ࠳֨ʧҠˆʢѧޛʻڭԹūࡋȣ҇ߏEڃљʋؿؙࠞߦǝ˿ݭ঳Ӄձটލͧ΅Ͽ˔ࢍ֔ӡΟ¨ީƀ᎓ŒΑӪhؾ֓Ą̃̏óࢺ٤φˈՒĭьѾܔ̬૘ěӲξDŽę̈́ϵǚˢΜϛ͈ȝॺ͸Ǣƙ਀ȠࡲɤݢԊ̨ʭࠐEޚَոo۰ӒࠎDޜɓƶϭฐԬࡺÿࠀ̜ބռ߂צԺʥ͢Ǭ˔ඔࣶд̀ࢎĹɂ۬ݺશȱ"]],encodeOffsets:[[[-67072,-56524]],[[-66524,-22605]]]}},{type:"Feature",id:"ARM",properties:{name:"Armenia"},geometry:{type:"Polygon",coordinates:["@@୞ƀǨə͌ƣǛɁ҄˽ʁˋΦɫϘƏl׋̣}΃ӢHżχCʝɤǩuͧʖرȼĄФƛ̒"],encodeOffsets:[[44629,42079]]}},{type:"Feature",id:"ATF",properties:{name:"French Southern and Antarctic Lands"},geometry:{type:"Polygon",coordinates:["@@ը˃ߐĿˆDžɽϣಇÃq҂ŮΎÊǢ"],encodeOffsets:[[70590,-49792]]}},{type:"Feature",id:"AUS",properties:{name:"Australia"},geometry:{type:"MultiPolygon",coordinates:[["@@ߺ́ҜŘپNJԎÉÐঽ˽́ēگ̉ɰ׍בǧ®ԫ€ԭܘŗֈӝܸtϬռõ"],["@@̢ڇբ̈́˦ΡЖ͟đϋǴܛŸнɄĹɬܕąѥ˖֭࣬ѭצЋ֞λŋȯӔՃࣧ͜ͲȂ;ηȴźƢࢹ׬ԩϸ͋ڀڹʀڭtӏËԳА܋µݓơϵɩݡjӕǕ׻χއثЭ̫ٱ˫гʝܧ͕нɅػʼnׁªˇӕ̇व‰ޡ·ϫ͙ԕέ۟ψԥƪżѬҝǃ݁؉ܩɪӉƄӑÔ߿ʐիԮƻْțьЭ;߱ĸˢРȯزЧ׉ݝƷѮҬŶӞ͘ЬãجہܑԿ˽͏ڛٽΊ~ҀԿ،ѹ̀ǂȘઃԚןz߯Цຓāછ̝ख़˫ߡÈࢻљܯȗljѱ̳Ϳ܉qՅõݑƶ׿ğֽԁ҃ʕœуʁЗˋؕ֛Bࢽ՜ҋDŽlӖкŘƚȒ‡̠ĺאģӼѻࡖƏӒ˜ӎͭնsʚϋͰĽڄӓڔřΪτε˳ެиʑʞ͗aјеڎă˄țʦĠӠǢȸŘрęӮΎ؀Úٕ΢׀ۀˬЦΪٜ̰ϤàɴĻڎ̺ԚĤŶȀɞüҬoࢨʖҚώɊ҆ӲѐœͲvҘט܎ΠܩΦǚ̗Ј˂ТψǻĸٖҠаȮͨцƜ`ɼτĭdɂτŦОŔبϫҲӽՂMՖÿDZҦДڪϜɘſȾκӒԘ̒јıۺǂeі؛ˢ҂Ū֎ȻҀ·ۼɋʈĐԶʵӬʊ͂ñȠNJϬеɡ͉҇ͻ˿ƒĮͱʙп̗ЭÔʁڜҫ٨ˏѠ́؈ӻʂBѰɍŶʷߤ˵ֈ˼ǐҊǠόľҤʰڞŝОÔʔīӔŌنLjǠŽˬȮѾdžҦtʈ̸̾ʂЩÎՃȾķ˜Λ̨ёÚӇ‡̥"]],encodeOffsets:[[[148888,-41771]],[[147008,-14093]]]}},{type:"Feature",id:"AUT",properties:{name:"Austria"},geometry:{type:"Polygon",coordinates:["@@Û΃ӁCǎǻ˧էLJƗܽsщȏۛÞயɐȉ̊ࠧƣĭDžԗŢѕxϝƶźȴƬʪ²ьɹŤɜݎ•׸ƮЖ}ˀǣþƜšո̠ń̒ϰز˓ӀΆ̐ÚٶʱЂªϰǁãŃČ̅"],encodeOffsets:[[17388,49279]]}},{type:"Feature",id:"AZE",properties:{name:"Azerbaijan"},geometry:{type:"MultiPolygon",coordinates:[["@@ʞɣψDGŻ΄ӡֽŒщϰƃ͆Ǫv"],["@@ϊËƞɈԈͺѴѵђ׭ϺŸʸɧۗãƣٵƟ̭̍ȝvзȽ¥ԻѲ̂дʝʚ̿×যإk׌ϗƐΥɬʂˌ҃˾ǜɂ͋ƤǧɚȶƎضʍҐ¹ŘIJбҔɔŚʀ…׀ԙ"]],encodeOffsets:[[[46083,40694]],[[48511,42210]]]}},{type:"Feature",id:"BDI",properties:{name:"Burundi"},geometry:{type:"Polygon",coordinates:["@@Á০ɃϢԜßʲӎҀŸͧǸȏT˗ȹǭ͛ѫ̧̥΍Ÿ"],encodeOffsets:[[30045,-4607]]}},{type:"Feature",id:"BEL",properties:{name:"Belgium"},geometry:{type:"Polygon",coordinates:["@@؜áުǪՐοҦȝħ֧ɕĝһܿϦћßדІϷͶϷ`ũ̒ڪǔ"],encodeOffsets:[[3395,52579]]}},{type:"Feature",id:"BEN",properties:{name:"Benin"},geometry:{type:"Polygon",coordinates:["@@ۛįȹ׆žኞǛǦЮ̇̌ʱʞņѶ̀ĨǠξЪĀȀʤˮʘ̠F٘ә˩ȎӽǓͷĘɧСԳʵʳǁՉt՗µണ"],encodeOffsets:[[2757,6410]]}},{type:"Feature",id:"BFA",properties:{name:"Burkina Faso"},geometry:{type:"Polygon",coordinates:["@@ֹɐϽ‹̍Ƀϗǰƥ˦ϙǾÅӦɮΤo˴ښۢŬּɲȴОœΚǢŘɎٴϖdžˀ޼ΒҦŢɀLJՠJáСŔϣӀչ€НॺȏmֻǿʣЩÿǟν˿ħ݁lϳâ˓ƉωÖร¡qӉŘم"],encodeOffsets:[[-2895,9874]]}},{type:"Feature",id:"BGD",properties:{name:"Bangladesh"},geometry:{type:"Polygon",coordinates:["@@i׽̉ŶÆگʉѬµєDžКΕӨޟ’ü΋˃ҳΧǠũƵʃĠ͗øŽۖ̅لƜԒԫɤȆ̪Հ̼؅Ѽ֮̔ږεВ£ô׏ߞřު^Ӟƛϯ܅ϕµʷӍҢѥƎ՞ɶFѶ೯"],encodeOffsets:[[94897,22571]]}},{type:"Feature",id:"BGR",properties:{name:"Bulgaria"},geometry:{type:"Polygon",coordinates:["@@ʎΉ͚Ö٦ſ௾«иɌবȜ̩ؒӴĕѥΏ̫׹˔ӏܣŒࡥ˃Uлޅÿס̊ڧɱة|Ñ֊сːƒŢĝĴƘˌ͌ˀСδ÷̬ȸȐ"],encodeOffsets:[[23201,45297]]}},{type:"Feature",id:"BHS",properties:{name:"The Bahamas"},geometry:{type:"MultiPolygon",coordinates:[["@@ȵ£ɇӜ̿ʐǾՔʨ‘ۣ̎Jӥ"],["@@ࣷƅÏ̴Ђäֈ{~ɕ"],["@@ƟׯƷņ`ѮϓͪCĪڐϗ"]],encodeOffsets:[[[-79395,24330]],[[-79687,27218]],[[-78848,27229]]]}},{type:"Feature",id:"BIH",properties:{name:"Bosnia and Herzegovina"},geometry:{type:"Polygon",coordinates:["@@̦FȿσМ͓ūЃȡ™ƽû˙țūҥݓ͈ͅΘ͋Ȅϭ̾ǻʺЩϾǬΒ̞ȕǼǨϾnܠƓ׈\\Ϟȅ"],encodeOffsets:[[19462,45937]]}},{type:"Feature",id:"BLR",properties:{name:"Belarus"},geometry:{type:"Polygon",coordinates:["@@߼Mࣰ̈́ȚӄېːÿϔԜƚ͖ࣘࢮɁŢȻѲĴࠒȧĊЁǷɧՄս΂Ƴ»Ʊ֦Ʃʎɡ͝ǿڳˆljÿȠ˧ȸ՝ܝ¹ʵȁÃхͭĆݷ¡əȞ̿ƥ́ŨڍjफȬࡕàٱmҡɩГeϐʷϴԌǢLͰɷ͌™ϊ"],encodeOffsets:[[24048,55207]]}},{type:"Feature",id:"BLZ",properties:{name:"Belize"},geometry:{type:"Polygon",coordinates:["@@OŮĸžƴı̞ԔDŽZHūDŽGaɭƋεôŻĕ̝ÀăīщǓɟƱǓ̅ʣ@àॆPژ"],encodeOffsets:[[-91282,18236]]}},{type:"Feature",id:"BMU",properties:{name:"Bermuda"},geometry:{type:"Polygon",coordinates:["@@OEMA]NOGNG\\Q^McMOI_OK@CQSGa@WNLVWHFLJXVFGJ`ZRTDLeeWKIHGIK@@[MQNi`]VDTBHCJAPBJLVFjT^LV\\RJZRn^RH`TfJjZHHOTTFJP_NOX[EYQQKMEJOLANJH@HQHAARF@ZEPS[U_IcRQXE@EEKKOCGGCQCOGISKYGUC"],encodeOffsets:[[-66334,33083]]}},{type:"Feature",id:"BOL",properties:{name:"Bolivia"},geometry:{type:"Polygon",coordinates:["@@य़”͟گӳ؈વȲ۫ݹ؅ŗ͡୆ҋऺˆ߾ѳ΢ŏ؆ЫֲՌ࣢αۺȖ˰ƭ̶͠рh܎¤נǸ˶ܩഠزíѠnȈʪ݀;Ѷ͂સƚęؽļ͓ãࣰ֛ݫऴƑ̻ͦ֨ǕΐʑՈTӦʟšӟǐʕZγʓa͒এྖ“ūӟĜͧҞɽȤԹƫڋɯρĄӏʿǥaʶ޳јޭ^ัʓЕ݋sҋͥ৕ƉǸ"],encodeOffsets:[[-64354,-22563]]}},{type:"Feature",id:"BRA",properties:{name:"Brazil"},geometry:{type:"Polygon",coordinates:["@@૮ନॆࠄ֠΂ۼҪjڤуӞеLJǒӜŖӼBҦ̡ƴ̿Ƌ̻œį͔ýޔƿʤ֥ɪ΃ǏࢱLjÈଜʝҴˀǦăӐɰςƬڌȣԺҝɾěͨŬӠྕ”͑ঐʔbYδǏʖ™ӠӥʠՇSΏʒ֧ǖ̼ͥळƒ࣯ݬä֜Ļ͔Ěؾષƙѵ́ܿͽȇʩџmرîӃƟϡĪÈ౨ۏӷݏv҄ͅ֏¶DzΰұԞΓݴɜƶA΢ԖʎċҔɊ̈Ôϼ०ֲێNJŔŴݴŸϚᘰpθſӔύ̬LؐӀƒǚē†͐ӯĔYՀ࿖k˦̂ɸˉǐӷǂļҨѻٸÆnjʲشȞΊƐĮΤ׸ʆ¯Ǯ܅ðśՊ’֞ϓɒǀþجŅڜȿʐȤ؀žल̮͎̾ŏʂѪšȜȗʼnσ̀ŵȖϷɷ̏ƅ܏ɌыÔϳԬϿЮ¥Ģǒˆ˜ϠƦ˚ɢҬíȲŠҚçøǢƗǘĎʐͺõЈĒӔDZξǥʺɪȊ•ŘɿДÒ͒͊ʴؤӼޒ˺¢ȺҫҼ฽҈Ƒxׅمەʾʩ๤ƁŠࡃٔր੐̟ඊԡШӱƏҫ঎ʶ࿐ѹఴŽఔ۝੸व٪ʏܖ‘̦˅˸੭Ɣԗͯ൹ёշஅୡՙोثܯȿgɻءÒ༽ɹಓęօˇͧƫ૱࡛઱ƛࢁڹηȟԋ࣯Fೕ͓סύवʗ঩ڝ܅࠯ũطƔҫƽࡓȏЧחҥट๕݉ڗ֯Ͻϥߛ։ӑɷӈψЊӟֲڇҬࡹՠ̹{ࡅٰձę"], +encodeOffsets:[[-59008,-30941]]}},{type:"Feature",id:"BRN",properties:{name:"Brunei"},geometry:{type:"Polygon",coordinates:["@@ͬ̾܎Ң›Я·՛Б€ǭ˹ϥѦ"],encodeOffsets:[[116945,4635]]}},{type:"Feature",id:"BTN",properties:{name:"Bhutan"},geometry:{type:"Polygon",coordinates:["@@΂ˍÏԩۇ{ۿÈՇſޅ͊kǚ֌زҒɈ׸șѺqπɥ"],encodeOffsets:[[93898,28439]]}},{type:"Feature",id:"BWA",properties:{name:"Botswana"},geometry:{type:"Polygon",coordinates:["@@ǜƭ˄ӡॎइήĝD̑ʚՑٰŹ՚ϝ஑أݭع˩֓ʧ́ҙãƧГďʽ՝țہ¤БɾΟĸХșȵГЉʧпϑ׻đȇ̐üԠӽߚɧŲAរࠤˆ|Ჾش„ಖ͎̎΍՜ͤʮDӂȎưÙ͔ڣ"],encodeOffsets:[[26265,-18980]]}},{type:"Feature",id:"CAF",properties:{name:"Central African Republic"},geometry:{type:"Polygon",coordinates:["@@ۜÚƺɎƔgȾȏ੔͐Τ͠Ѭ̌ĉ̐ʂüߺ½߆ϴ؊ࣺю;ՐƜĪΫӜԿF΃ƋΓÄʻ̆ʍٖοҢͻT˗֠ѫΖεɆԋغͩƊˉˣęաpكĘ̹ïųȱ˕}ͧDzधнϥĎŗÝʥԕطǐؙĊ՗̴ۓ˸҉˓͛яùדգ²֩Ƙԅѻѯޱėʐ›Ϧϧ˔̳Ѡï̠ЇѮæʢċΞÞٴȬƴц࡜"],encodeOffsets:[[15647,7601]]}},{type:"Feature",id:"CAN",properties:{name:"Canada"},geometry:{type:"MultiPolygon",coordinates:[["@@؎œުxЯ΅̵Å੥Φȿˬ͆ʸ̎С"],["@@Хcઝ˂ޯІ̄î૆Ɂ࡮Η|Ʒ"],["@@хŝൡϢʥ̘ݩ̌Ưʈࡻư͕ҜðȚࢨǿԨŵ߄ė˺̃дЋ࠼΍Όҩ"],["@@։ܿո˴֠ǵ̏̉ݚɱϰȴ࠼ʵʹ؛טƞņѿʼԷΝ݉ϝ‹փǂǾیɻńইܯԅ†צЂ߫Ȳࣙ¹࿅~ŹʠԼ̐λɬ۸Ԓࢄ೾Զӎܲ̂϶™Njɫ҅Չ"],["@@@@@@@@߰äʥ॓ܶگͯDԑϪ̵ϮчʾƻτºˎЂŋ"],["@@͡ѳχîəʢ Î͖ʦΆkɈǣ"],["@@ঝҧץnǿɪزϲ଼SiǍ"],["@@ƼυјżӨɗं˽४ʽöЍؤÞ׶˥ݙ˃ಳȬҽϚ࠭ҁ஡ѣ˿Ӯଗăܴдņڌ˺ޔ؈å"],["@@ष¥ȿЪΦҼޖŜپɷXέħřձʛ"],["@@Է̍ଉʬۃğଫϘ݊ʼטζࢼʃԎƯʦDžԠ͍"],["@@G࡭૰ڄ৐եʡح߾֥࢚؈ؖܨ°ईஞÝఔūૼй¼зس҃פ҇ŃУ࿩חୡŻࢃʨʣуߵ۽ʓοই֩ளÇڏΡÇձ঍Ŀਉڻ࣭ु͙ڏ±উంƕϜ޻ϼّ୲ǔ༞εࡀ͋׺Ѕ੆ɳࢸΟ൶µࣴąƍܫʼࡋ،ळనߗ٨˚ҔࡺѭೢףѶഎЀ॒לҮהç֭֘܌৷لলࢤνݾ˫ಾגȘ෸ɫࡸć۠ɚ޴˵ਚӣʮ͙ຄÛ}۷˪ਜ਼ގſ،ӵ௖Ұߦऔ֌ϸٺݣબੳघ৙͵Յ૤Ӂݰӓംɏբˍͬ܃ټŏͶͅÖऻ؍́׽̏൯̗੏ۑ෇ƋᅛǮుPࢇÍ۱׽ੳω௉૗ॵޡ܌Ɛഘૄᄈ۪సČݔЫߍ֟ˊࣟ˜هતп൸ŨࡆीÎ؍ժ̥ਣսᇷԁ࠯ͽय؁ٓ֍܆ฤ۞഍ƒणĹջӆBନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥŽˏ¥čȹ໽A౥MϛƷࢵ؃Ŀßˍ͝ޗBࠛGϛƅƊǑøʯeďષлࡽſউ҅Ɂ@˷ƂĥŦnĔȂ̎ЂҦʘӺǙܴǵނ࢕ЂľƬūĺɳ@ǛƆ¥ȤǍēɥ€¾ĊȡĊćɚٵːڹ˪ࠑ͘߁̨ݧʃ˝Sਕɔڻʼnࠁʺ࡫Ɔו¾ʻƜƫҤ˳IE͓჏BᮝA᭯@ᡃ@ᠿ@៙@ᢡ@ࠛ@᠁@ᛷ@őF྽ࠜ׵δຽΐҳݖŤԨ੻ΨƧڴ৭؎iѠҲКwՌෙ՘࡭ॠՁ׾ޑϚ֣ΈѿѢࡇ˕ࠇҹݛւדπࠋɸࠟ|JⷎNᷲ༬ȭ೘Й࢘û݆ΖৰˀఢĹ఼τ൘Ⱦ־ΑظȠȊЄ׈ęෆݫ૦֬ŖّਔƐ͆ʖৰ·౼Λዸ̭ୄƛࠖÄଊэ஁зຶǷᗘIJܒƦࣆԋࣴьࡩΦժ˼৾žڦĎڴȩࡊҗरä๢ϛಬƄ௬oĭԺݞƦದ˵KߑՖڠڰuϞࡊ࣑԰কͺäघশ؎ૌƇࡘχଞॅݗЭ༠ǝ"],["@@нϿሎʬୠщॊіސ˟یࠛфΒ׭ࡰ݊Ŭ࠲Ƈश͹ՆࠉʼץථеະЉĝσൡã՚͓˱ູ̯Ƃฃɪঋ»ཅ˷ᒃű๻āҕІଫɮݙģਛږ֔ĚಘƜஈ›રƦྷȞᅗã஗jѷ̴ዎͲಗ[ืɚ۶ـגͮᖬԠ࡬Nj"],["@@݉ևಹך˸Ş૸’ٔȁ"],["@@öɵࢿ|ࣟjࣿőʑ¼ऍѾ˜̠ИÈነěชң"],["@@ڎԽޤڴᒆΈ෺ࢅůջဒʒߒͮሀыୄЏŊν༚Ȑ࢘՗᎐ܸͩ͹ߐ޻໯ϹጘչೲȁீޙೖÇʽכ้ঋਗά೓߲ઙĿŁӕࢪӥଜϯΌɟմࠩ́׿੕ɪᑏڨஎܣ࢔ԕƎ̉ᗱͲᅩӤ৳Ц̌ʂయќ௥Т`ʑᝡƅ܃˾ֆؤ཈dႸņ˫̜̊оચࠊɳϊ͕˾౿Рၳ˺՞ɆࢷԺ݋´ڏ˸҇ʛ຿ŅᵝȈᄫʚഹŴۥ̐࢞Ϧ஝Hˉ࡚٦ݨࡺ΄ᓪɢأի"],["@@৊ǯຄńɖʑ޷Е౜αƱݳ൝͗߳ê׉͎ᐡٮjˎ႖ĽएռসР"],["@@࣓عय़ŒԽ݆`кѮΨ࠰ɮც‡ྈȱళݟ৉Ǎ"],["@@ᕍЙѷςኹѺήΤ׌ؘܰւࠑԦᭊƀ஬ǧᒰ±ࠄʑࣖΝ੍ɃᏝןਫי@ν"],["@@ҙ͙௝Øৱɖ҂Ϛீɨܼ̬̍ˇ"],["@@ٞϵ€љϣس൱đࣗƈjӬ൝ÝÁٮࣜౌ˺ஂµÜŎ"],["@@̙͢ݠƘࢢ™ƪЩԝЋ᭗Žᑯη౩mŅ˜პϊ④ij୯Ʈପࠐ߈ɾᛄ˳๶ӻฺÛறߨޔ̪ࢄĭ˲Џ"],["@@ढ˓ကFܨˡȑ́८ȍՔȧଊ™௬ë೸ǼႊðീÏ࣒ͅȊ΍ԽɟభǷ੽ĸᜱŻႫcഫļᖁ˔̃ҦĹжࡇξ჋ĺঅʼ͂ΈႾÁ"],["@@ŗ٣٩̇޹£༝Ϋ഍ŹଗǼ@@ුؼႮծಆ[ସŬ"],["@@ϣy༽Âɡɼၜ]מƻĵĩ"],["@@༩ʋఝ˔ڼˎ௮Đஈſ˩ʥ"],["@@৽ǏඉBbŤࡴʦҌદǝ"],["@@కǥۃȚέ͂áΎજ‘ӪÅ৐̇ɫ̣"],["@@͜Ε൏Ĥ൩˘ሏŒߺʠ৫ȮÕ͐࿶ŕᗢ̫ٞЍ"],["@@০˕ଽʟ༇ك๥Óდņࣗ΄^̦ڔɢ໡Oए˨ՑϠ׌ώ׊ʲࡴÎοȖዜ¨੶҅මǵ൞ǃڒև"],["@@ᖢßᅮŅ໤ɫ™ɡᏅη᎙ǟݻȉᆬJጡԙേʃ෯ۇႿƓՙǡᡷěୈĿׇƭ۞бߙ˽ಛʃЋ͡୫ʣŞȏ෬lȳᖟԋᔧɴឿŻధĸཟªĿЖ༊Ȑб؆ԢÐᖤγ଩բഹLjڼ͘๰Ȩʄ̊஋͠ΥѠᘞ—ڒĝ಼̪ቃĬ᰽Á๣˸۩ͼগʘȁ˺దLjঘ‚࿲ƌం̺ਬ©ࣤɽٔҒૐƈບĢᢲ–Ҁĝ᝚ƚᆔÁᆒÁ"]],encodeOffsets:[[[-65192,47668]],[[-63289,50284]],[[-126474,49675]],[[-57481,51904]],[[-135895,55337]],[[-81168,63651]],[[-83863,64216]],[[-87205,67234]],[[-77686,68761]],[[-97943,70767]],[[-92720,71166]],[[-116907,74877]],[[-107008,75183]],[[-78172,74858]],[[-88639,74914]],[[-102764,75617]],[[-95433,74519]],[[-123351,73097]],[[-95859,76780]],[[-100864,78562]],[[-110808,78031]],[[-96956,78949]],[[-118987,79509]],[[-96092,79381]],[[-112831,79562]],[[-112295,80489]],[[-98130,79931]],[[-102461,80205]],[[-89108,81572]],[[-70144,85101]]]}},{type:"Feature",id:"CHE",properties:{name:"Switzerland"},geometry:{type:"Polygon",coordinates:["@@ƫŹȳϞƵіwá΅χƙةŀǻ͹ЏơƄһ˵Л¡αǶ˽ςБſ^ϠؚҾɈϤûɲƞ܎MǦǼ࣒ʱ"],encodeOffsets:[[9825,48666]]}},{type:"Feature",id:"CHL",properties:{name:"Chile"},geometry:{type:"MultiPolygon",coordinates:[["@@Bም࣒@Ԓw˧ͻܛʻЭ‚ӻä؏ʨ࢟ŨੑҸ࡫Ҏୃशۘǭ୼֗૜̟ѢϬ˘ֺޠΎװı"],["@@͢୅؆ŘĺɁ˿ࢍࣵг€ඓǫ˓ʦ͡ץԹջ߁̛ރĀ߿ԫࡹϮฏɔƵCޛӑࠍpۯٍշFޙʮࠏԉ̧ɣݡȟࡱƚ৿ͷǡȞॹϜ͇ˡΛ϶ǙĚ̓νǃĜӱ̫૗ѽܓĮыˇՑ٣υôࢹ̧̐֔ÄgؽΒө᎔őުſݝPЙȷݷ̣Ɖ޹Σoॅ˚१ג@@ਲ਼ӔˁՒʄӰх֒Ņ෤Φ߰ࢴٰౣʔߞݒ˸ඊत̏Ѯგ֝ɠʿ਻ՉŠ˂ல˺༒ϮָʍࠎéूΠ„Ԩപ׈എΤబȗ఼ʤۚĵਞӮਆưྺ˒ნˀሤÕ൘ǩ஄ќɌɦњЬֱŐ؅ѴΡ˅߽Ҍह"]],encodeOffsets:[[[-70281,-53899]],[[-69857,-22010]]]}},{type:"Feature",id:"CHN",properties:{name:"China"},geometry:{type:"MultiPolygon",coordinates:[["@@ԑഓΫۏѷ܂ĩخӶࠜڦَϨʡƣԓ","@@ܩЗۏʺyܢаϠࣾɾӚoȊ͍σσșӟ"],["@@ฬˍ঺ׯͼ߃౨Cܰͨ൸ʜѳݱ͙̭˽ः֡ࠇ৵ƪܝ̑ɜܙť঳ѕwLяթӺͯһಙαƀѹܩŒЍ˂ֽ׭ऑҋۃա୭ʑأϽࣝɭ҂ϴǭ͞ږ֠ѹѲܷ̓ॉ׏ԫթ࠙¡ѓϻѸ֩یƏ„ϕڔʕस׶ݚ͝լuƌѱஓɻϻҏࠇућיࣜҥͦࠝԞޓ֮٥_دՅɯȪ҃ӶʻŻۃɇڗҷ÷ؗࣧڹિޭোିޡୟۻृĩԣύ̃˘Ӈй୭сࢵŹ˻ࢱҭ·ə؎Ȧ͘ૻːЇƍࡍɔЏ΀ƄӜޏƶЙܑ̀҃ࠇīڡJ҉ȳѥūŶ॥҃x÷Ȣ}Ύ؝ʓεƸر͂ʔۤՏǎȧޜࢱƓĴাߔۮ”ۚ{٠νȨ˭ӶӭÙࣟŲ˴ΜϿԺ׳Ν۵ȸॷ՗އسڳĿοɦѹr׷Țґɇ֋رëڌԟǭওĈोȖڿτٵǔ˯ЖҽŦࡓոکʴΑȩଢ଼טࠛՒɽऐ׾ő‚іͭјĐۆࣙঠ൧ͼʝ٦ةϼƫʌųӎˆ͜ԛȔ˟ďɇިʈȔśȠߤЈ׈ǐࢸő͆՜ંIJͮ̚೜ҔŠȐãӐּɔݱฦဘͲјȈ؆ຒဠˡҲϞ¢ࡆۦĀٖ֔͢èɚו۸ѽப̿׆ڱ͕ঙ̢ηূƝଆŝ৪ԻԲġϤޟӲӿऒnჄȉ૤Ŝࠦůఔԛ৮BόʽঐҌബ̈ాŒঘ̒׾҈ך˰Ƌˤˍ͔ѴըӀùࡺǝ࠸Ѿ౲͚؞֊נʆ௠ŐڐĥĠ̘ݿזګː٥̳ࠣžӇŃɏΆר࠾Цو৚̓ஆՎQτݸࢾҲːWҪңȦۜмਰƲ૜vసʡ݈̱԰ࡏ̀α̊ԩ̶ࠕ"]],encodeOffsets:[[[124701,24980],[112988,19127]],[[130722,50955]]]}},{type:"Feature",id:"CIV",properties:{name:"Ivory Coast"},geometry:{type:"Polygon",coordinates:["@@ϣUוǒ՟Wহƥ׍ʍ̯ࠫNjvÞۖĄŀ}ͨΣΚˉÈʕɲǾώčО ʔƄB¸ξÝnjĄŜ̸ĶȹڨȗΎæ˸ǘÞŊúɸųٮOƸʖƢgʎĦžΫȞłΌŰϚǽƦ˥Ϙǯ̎ɄϾŒֺɏɠ஡Ο۷ɕेθܣ›ͧ"],encodeOffsets:[[-2924,5115]]}},{type:"Feature",id:"CMR",properties:{name:"Cameroon"},geometry:{type:"Polygon",coordinates:["@@Ľ°ӻŇԝŒЋÅ൅nŬڒ͟֊ϧƚǟϖɋŦXɶɎתЎ߸ʒRԄӮ͈bҾΉ־˲ĀΔȌͺžь҆ΊǞךDzȊŢѨɜ՚۾ٲ¬˨ĠƲͫͰ‚ˌʂ¶ͮ՟Ê֏‹֏ҜޅҷTʁÏϥČǻЅӸөμƛŠΏˆ׃ſɩх࡛ȫƳÝٳČΝåʡЈѭð̴̟џϨ˓œϥĘʏÓґڛȤڷɜ੗"],encodeOffsets:[[13390,2322]]}},{type:"Feature",id:"COD",properties:{name:"Democratic Republic of the Congo"},geometry:{type:"Polygon",coordinates:["@@»ঙͶŕˑ̗͓ɟ͍ѫǯϷ±ګț͍Oهʍɹ‹ԃŗÝýҟɄϡÂ৥ưޝċѧǘӣӤҹҒ੕ͥĒ૿ƙɣĵʇՙȊχƫষĻࡇɨƫט͝ɲƴìٟࣟR·Ҧ̳ΨٟŠȋѰԣ˅ڧŞ˫ϢՕüϽqµʾ́rϥºԳųιtȻû®ৄ˩̸ÕԬŬԒǝ͖eՊ৳Qò̢ѕG­ƣԵɁӧűȿҫŠˣş։å͏Ѱȗ˖ʋԌȷض៛\\̍ķʑh΋œşʼɊʀμƎɎ̪ǰɚđ˼͐ҜSÄʃ̼ƩӶՄӨШɆːƒ۔θࠆϬўքМĪˌt̰Ǝ̆«ӊŀݖǐԾʦ҈¸Ԕúה͜ѐҊ˔۔˷՘ؚ̳ĉظǏʦԖŘÞϦčनоͨDZ˖~ŴȲ̺ðلėբoˤĚԘۙϘķɤƖϲÅҶDzȦΫ݊֏"],encodeOffsets:[[31574,3594]]}},{type:"Feature",id:"COG",properties:{name:"Republic of the Congo"},geometry:{type:"Polygon",coordinates:["@@̿˾ʩƗͻγۏࢸٖҪ̓֌˾ɂ֦ĺäό҆Зݐ•ʴЈł֒ĝڀЉӺζ঄ȽǘسçɻѢÔξ੘ڸɛڜȣÔҒѰ޲ԆѼ֪Ɨդ±·ԓʥ҇ǏԽĿݕ¬Ӊƍ̅s̯ĩˋփЛϫѝηࠅ„ۓɅˏӧЧӵՃ̻ƪÃʄқT˻͏əĒ"],encodeOffsets:[[13308,-4895]]}},{type:"Feature",id:"COL",properties:{name:"Colombia"},geometry:{type:"Polygon",coordinates:["@@ΫȤЭ˨ʅƅ܉Ŝȱΰƽ_࠿Ӓŕʺ̼ڛтȢ̦иÊΞՆ͐Ѵ̳ȦDŽӦȏސǸɚƃ܄ͻ҄ņТ˔ÑǂʠțӶĺŬѢـהΌĚT˦ƺ܂ӖϸՊfäǪڂéڌъ͞ȊОК̖»ɚɛǍ˱գƕɇп͗ʋʓ̷Ĺ׵ɷӭѢÇņϭȄȁâ͹ij̵ˆǫȸéȨ̉ઊĄӦŃעܡͼĚ؂­ӐĪ̔ƟƱҍȇ˯ß׻ǜ֑ʆʟ†ȉэл̨ȃɠ̋ʰ࠹ǁĻǏӸɷˊ˥́࿕lZԿӰē…͏ǙĔҿƑK؏ώ̫ƀӓoηϙᘯп҂ʣpժࡤٟϾԍị̈ƤҧɝصŀӵࢤϳɐˍІ֑Њɡā"],encodeOffsets:[[-77182,-155]]}},{type:"Feature",id:"CRI",properties:{name:"Costa Rica"},geometry:{type:"Polygon",coordinates:["@@җȆǟǮĬƤ‰ȄɷȪͥǔ́ņÅʖəƮÄʑǗȩȓɸˑĊŗǞLʮŎˆʁŠȖnjŴňֆɝȖŊˊéƔǥʜÇȪDzɈҙ͖ͷЂΩ͗õLͷǪűűıƱëǟ©Ǖ"],encodeOffsets:[[-84956,8423]]}},{type:"Feature",id:"CUB",properties:{name:"Cuba"},geometry:{type:"Polygon",coordinates:["@@ܨÑڊW߄˹̭ͮ޺Ĩ̔ȡ܈ԳԺϛˢ\\ԆǟÕʁئ“ٌ΅ıȟ֑Ń֡¥׃âளą֜Ҷ΁ɔէÈ̃ʐȥӎӃ޵ɦʥǬભž̋ǐ̀ɀࠗ¨׿ѧΏ[ťȳеğΫĂѺʸǼ̤ϞȈіǎَĄȰĢ"],encodeOffsets:[[-84242,23746]]}},{type:"Feature",id:"-99",properties:{name:"Northern Cyprus"},geometry:{type:"Polygon",coordinates:["@@ÐJŨȮ؄Yކʢ֧ΧÔƿęˆLJÙűj¥iĎѾNjVɫïƿ¬"],encodeOffsets:[[33518,35984]]}},{type:"Feature",id:"CYP",properties:{name:"Cyprus"},geometry:{type:"Polygon",coordinates:["@@€ãࡱͿЩŊȟͶЎŒǀ«ɬðnjUÒ½j覎ŲiLjÚ̇"],encodeOffsets:[[34789,35900]]}},{type:"Feature",id:"CZE",properties:{name:"Czech Republic"},geometry:{type:"Polygon",coordinates:["@@ϯǂЁ©ٵʲ̏Ùҿ΅ر˔ӃΰѕȬėΠƧʠؒǾ̸Ⱦ׾ǎɂdžɜīϒĖЊ˓ؼñ¿ɳҘǧŲɒּĥĄʿز»ϮЯʡCŽƯȕ—ÅȑLJ¡wý˹ēϋbšȁ"],encodeOffsets:[[17368,49764]]}},{type:"Feature",id:"DEU",properties:{name:"Germany"},geometry:{type:"Polygon",coordinates:["@@d͗ࡔțS̗ࡢǂҾɰॊͧІˋȞёɹɣ̨̙Ⱥ҅ß́Έ՛ϑĕɛĬɁDž׽Ǎ̷ȽؑǽƨʟĘΟіȫӄί̑ϯ̟ŃŢշýƛʿǤЕ~׷ƭݍ–ţɛыɺʩ±࣑ʲǥǻ܍Nń״ьֺ௅ƸЇɘ´ςǗȐĨ֨ƗࢢԎ@Ɉ͂Ⱦޔƿ˴ǐDz۰°Ƽȃ֮вȓ̀ӈٌōՠŸ"],encodeOffsets:[[10161,56303]]}},{type:"Feature",id:"DJI",properties:{name:"Djibouti"},geometry:{type:"Polygon",coordinates:["@@ȤʹΑӏȩήɯ̱҇ȅƬȭÏҷb_ʮßɶ˴Ѐ̐ϊήñʪȴ"],encodeOffsets:[[44116,13005]]}},{type:"Feature",id:"DNK",properties:{name:"Denmark"},geometry:{type:"MultiPolygon",coordinates:[["@@ԋڹ࢟ӄŝΒ௼˨ˎу"],["@@ȵ̓ʡĞ؁؁ɮХ՟ŷًŎͽҲ}࡬Ɣɪʌʦ݌À̐ɴڮʂƒѝʟ˙ĶɽҘŵ"]],encodeOffsets:[[[12995,56945]],[[11175,57814]]]}},{type:"Feature",id:"DOM",properties:{name:"Dominican Republic"},geometry:{type:"Polygon",coordinates:["@@ŀƞپIӾɏɜtƴ̕Ҡhʡϐ‰Ю̷̯ͿЍǼϫ•ˡ¢ƱƵ͑½ŷȲˣťͳֻɏƆ§ʎjɬɍʦȲƚÞ͒óҜ"],encodeOffsets:[[-73433,20188]]}},{type:"Feature",id:"DZA",properties:{name:"Algeria"},geometry:{type:"Polygon",coordinates:["@@ᮩཽᝩ࿷இϑटćU՘ϵƌԹʊȧЀᬻᆴᬻᆴṕᎠfnj@ÊQ঺ബب࠼Ÿێɦ͎тচͪ˜جӢòϞ̶સƚƸ͜ɛDz̃ࢲ¹Ԟ́ՠ߰ҠࣦƢՌΎ߶ʰ෎Ƭർæшůߊͨ࣌P΀ȝֺ¾ǟћƄߟȡۙԭҵôمۊԃRȯԮ͹Ϊຝ˖ݏ°ϵƧۇÔϥŃҟòՇͫΗӺؓŽέ̘ҵϼƸڒϷςՃ"],encodeOffsets:[[12288,24035]]}},{type:"Feature",id:"ECU",properties:{name:"Ecuador"},geometry:{type:"Polygon",coordinates:["@@҂غǻξ͍ϵԉςǞʀƙބ̎ŴƺԼ͆զÍ΄ҢǸ׀Ͱࡀӑƾ`Ȳί܊śʆƆЮ˧άȣŞٓʽճࣷ࢟য়ͧԥܵǃ֣Ӆ΋ΙъͻĞ΍áw̮ʈȨıΔ"],encodeOffsets:[[-82229,-3486]]}},{type:"Feature",id:"EGY",properties:{name:"Egypt"},geometry:{type:"Polygon",coordinates:["@@ɽͷǹىɫѩȝƥ˩˔ϛϒ׵ஸđùΐࢯԪࡋٌವ̴ҙ˒ӃݮछǗƣ‚ճ঒ݭƨǣΏ@Ὁ@⁩@@ᶶ@Ჴʥڲɐ԰Żά̤Ж૦b߲ɝ࠲ʛϴſ٨ˊΌʊݎêװŃɮеȜ˜ڨȣټ³аɄւ෽"],encodeOffsets:[[35761,30210]]}},{type:"Feature",id:"ERI",properties:{name:"Eritrea"},geometry:{type:"Polygon",coordinates:["@@˻˖ΉӰϋ˒ɏܷ̄ͶֻXȭǬӯȡԛϢʽط঑ǬęʹβఀĊ֒ˆʴؤƐьӒӦঃɴޗҢУବߏҲӍҖӝˀ˿аʧʩȳέò"],encodeOffsets:[[43368,12844]]}},{type:"Feature",id:"ESP",properties:{name:"Spain"},geometry:{type:"Polygon",coordinates:["@@¦״΃θஒ؆ਊƱ૾NࣂƝۦªമƒͰ͛໺ϡ̨ǺीϝআŊ®ӥߓ֓ઁǯõ˱ԩү͕ہ͞ӑӟϑǹճىǗש٥੧_ߟhՃ͍̓ͅЩê̵˴ʃӚ޷žé˦̶̀Śɬ̃ʢɶրͳԌδè’ЈƎŬZپϲɪɻфөˆƝŁӹCɁЬ΃ū̥ɇ"],encodeOffsets:[[-9251,42886]]}},{type:"Feature",id:"EST",properties:{name:"Estonia"},geometry:{type:"Polygon",coordinates:["@@ĮӸ̱ŁՓ̘ñӘਫ਼ɼ੔Ũ࣮Ƒࢂ|Ŵƣׯӝʞ޵ΫˉۙDܡ̸ρļ܏Ʃ"],encodeOffsets:[[24897,59181]]}},{type:"Feature",id:"ETH",properties:{name:"Ethiopia"},geometry:{type:"Polygon",coordinates:["@@ԜϡӰȢȮǫּWܸ͵ɐ̃όˑΊӯ˼˕̏ω˳Ͽàɵ`ʭҸaȮÐȆƫǽ̴̕ҧ̴Й̛͎ᩨঽۺNᛛᡃફ™ݟףաeɯ˅ַB͹˴ލΙʝΓ֕àȃĬȟwˇT੟܌ב@˹ˢ@ҾѧƘӻࣴϥȚƧʹэЦԧÒ˸ӐҀrŲʰ[ݲʞࢠЊɾĎ΄ήٜԔи΀ࠠƆܠ঒ǫʾظ"],encodeOffsets:[[38816,15319]]}},{type:"Feature",id:"FIN",properties:{name:"Finland"},geometry:{type:"Polygon",coordinates:["@@ūיಀ֓ޡى঎ख़֡ܛݴس΅յఘֻ́ѓޭӟᅡੵໃá๑̯ൃǯӡҞ߿ˠȈࠢСݶАӪނՆ኎࣮֖Ǭē΢ୟЈ˳͜uಒ಻ֲ૩ЪԊɞतѻલ¦ࣘȭߠϊЬ؞ಬ˶઄ͯΡכ"],encodeOffsets:[[29279,70723]]}},{type:"Feature",id:"FJI",properties:{name:"Fiji"},geometry:{type:"MultiPolygon",coordinates:[["@@̂ʍƓѭԳŗҩļąτ͖̀ϤĻȼƐ"],["@@՛ǯŅ̼оǤˊ°Ӱˀ@ЧՕȷ"],["@@é­@ШǨžĽЗ"]],encodeOffsets:[[[182655,-17756]],[[183669,-17204]],[[-184235,-16897]]]}},{type:"Feature",id:"FLK",properties:{name:"Falkland Islands"},geometry:{type:"Polygon",coordinates:["@@৘Ԍ܎ȿԌʹڦϙʥ̋ଋʥϙ̌܋ϙпϚ"],encodeOffsets:[[-62668,-53094]]}},{type:"Feature",id:"FRA",properties:{name:"France"},geometry:{type:"MultiPolygon",coordinates:[["@@ˣ٭ϡǠș֢ǜ̺ը͎Ɯܛ"],["@@הЅќà݀ϥȊñʎjЈɗெƷыֹŃ׳ɱƝϣü‚ɇؙҽ]ϟВƀ˾ρ“ʁʚ̿̅ʯɐٱҖŃĩηݿӅစɬ௧˗ĩԑঅʼnिϞ̧ǹ໹Ϣͯ͜ѢԎdžူࢁࢤإю౹͒čؖઠǾථɏˇॎߌέዠپʨێܾǞŪ̑ϸ_ϸ͵"]],encodeOffsets:[[[9790,43165]],[[3675,51589]]]}},{type:"Feature",id:"GAB",properties:{name:"Gabon"},geometry:{type:"Polygon",coordinates:["@@ࡹࡔ։ۚԙࢄ‚˨ǾˎȲؔǜخ˴¶௢SOৠЌÆԞőӼňľ¯ÓνɼѡشèȾǗεঃЊӹĞٿŁ֑ʳЇݏ–҅Иãϋ֥Ĺ˽Ɂ̈́֋ٕҩ"],encodeOffsets:[[11361,-4074]]}},{type:"Feature",id:"GBR",properties:{name:"United Kingdom"},geometry:{type:"MultiPolygon",coordinates:[["@@҉ֽًǦԱ[ǦҊǥ҈۴–ࣔԳ"],["@@࣋ࣧࡦŘऄIɕۅݯݩࢄÃäĕݠ঱ֺƇԬढ़ʈͧৰDžķ՝ѓʗͲѣݱѯ૳Rෝɱϻǒ։ϿޥĪם͍ҁǘ௼ࢨݪǺOBಽƔʃͰ࢜ʺҡҐdžռఢ÷D@ŮӤ֛Ԯ_\\৵ƨȧɬ̨ϒˡɴҍЇ·߶щє̨ࢆٶھڤá০ì"]],encodeOffsets:[[[-5797,55864]],[[-3077,60043]]]}},{type:"Feature",id:"GEO",properties:{name:"Georgia"},geometry:{type:"Polygon",coordinates:["@@Ųάȿִӟ̲ҭĬ̯ʴĺIJ܄ƝఆƋଦЕƦƻԚƂ޶ǭʴ·Նșɓřвғŗıҏºصʎȵƍଢ଼ſ߳Юࣅ¡"],encodeOffsets:[[42552,42533]]}},{type:"Feature",id:"GHA",properties:{name:"Ghana"},geometry:{type:"Polygon",coordinates:["@@೉ӯҳ˽ݳʑݡʆœͨηܤɖैΠ۸ɟ஢ŗنrӊฤ¢ϊÕ˔ƊϴáÕʿΖџC؍Ąڍɂ̫ȅݳäйɢՓȈ̍"],encodeOffsets:[[1086,6072]]}},{type:"Feature",id:"GIN",properties:{name:"Guinea"},geometry:{type:"Polygon",coordinates:["@@ʃtǡͷʁJǏǴÈͶΗԨɕħǵmɳ³V̮Ƈɘ‚ʔǻΜɹ̜ڥDțǁɵoƝǷīɹ҅σρӼ͛͢ɋŊȿǖħϊūȂʓƐώЦʮeɖƘȄDƄŎï˨ĢĖd˶МU؀ȱȄlÚĤҜáŨ´¶̭ƆBɖŒƔƒɸɇάãɲǺ˖ŒȬŠǚuȈȁĴɳΆΙǣɏ˙ǴĊŀį«ʡʲʍǗÝå˷Ș΍Ⱥڧ̷ĵăśÞNj·νƃA"],encodeOffsets:[[-8641,7871]]}},{type:"Feature",id:"GMB",properties:{name:"Gambia"},geometry:{type:"Polygon",coordinates:["@@ņόࣶzȎȦˊ`ͨȷʼIˢƚǞʏεȋιdέǰ̷ȗƭQȫŝއl"],encodeOffsets:[[-17245,13468]]}},{type:"Feature",id:"GNB",properties:{name:"Guinea Bissau"},geometry:{type:"Polygon",coordinates:["@@҅ΘΝÈȕʀLŸʯǴÁǶѼƌ˦ɦĨ༈•c˵ġĕð˧ƃōȃCɕƗʭfύХ"],encodeOffsets:[[-15493,11306]]}},{type:"Feature",id:"GNQ",properties:{name:"Equatorial Guinea"},geometry:{type:"Polygon",coordinates:["@@ƿŴ़̀െmPয়௡T˳µ"],encodeOffsets:[[9721,1035]]}},{type:"Feature",id:"GRC",properties:{name:"Greece"},geometry:{type:"MultiPolygon",coordinates:[["@@Ҡ˱ٺ¶شÑqƣҜĶĿʛ௃íTƒਁǎƺΦ"],["@@ʹՁȥĥԟ|ѫĀৱɓ׌ҿяƋҳAѻўƿȁȊԅрЁ̓ǿҴϯжʑ^ӅޥɠʜѕՓĕ͈ݏ֏Yۍμ̿ڦƧ֒͝ϮљӐÉʆϸТ¼˚˘Ũjɚռö͌ȀҖgƒƦdž„ت{ڨɲע̉ކĀVмЦɝ"]],encodeOffsets:[[[24269,36562]],[[27243,42560]]]}},{type:"Feature",id:"GRL",properties:{name:"Greenland"},geometry:{type:"Polygon",coordinates:["@@ᬜԆ᱒›ੴ̴ᲈĄ䀦Ŀ㉊ڗ༅͕ộ™⭏ćшƫᲐĠᡚ́࿈ʴۦ̝इӧᒞ̺✘͚ᠼNjҾΫ⃝ױӃȕ᧑ơወ¡ছؕگկ€ध৚շಽ“൧ˇ༂ѽȢ܋࣍ýઞܡህÑঈ΁˟̑இŽ୥E੆֩\\Ϗပΐћɣଌȿ઼ԣ͈ڱກlj٫͖ਣӘ˼֭উѵᕖ•୆¯ᖯܵᗿڏឧ́ओIࢅ͓ୟࢱᅵכׅ“૧ȷ஽ȝܛԱ[כыտോڧͺٿϗ۝љࠍஅ½఍ۈဿLࠁҢ֕ࠐฝਲэոŗݮ୓ޢ̢ئ֗̒ࠪচొ̺ͨΘǬڀॡ̕қůݯţਏ˜Éְ͢҂ެ\\႔ɟ෿Քݩ˾࠷ş۫ȼम޴ԝ̺ڗ׈ৡࢼ੯͚XΚᖷӮᄻÖᖟ‘Ꮕ×ইˌวՈᕂ˄ၚ¬≹ɖ቉΄Ś͜ẊИᶎИ̪͘ᗗ̠ܺͰ᯲ז௢ĚΓϘጲɜᣚƂᣖRࣺʽᕺҨፘ̽୺áპ˙ፅҐŘή"],encodeOffsets:[[-47886,84612]]}},{type:"Feature",id:"GTM",properties:{name:"Guatemala"},geometry:{type:"Polygon",coordinates:["@@ћƦԻfϩǖҍΌrʖĮȠšƾКۆ઄Ft˸Ƌ¾ġǺ̵Ț̹ˬϜDBӂ޸BަUOڗßॅʤ@˚ƱòŰʘŃϥ͍ЉɻÏljâǑǧɇȟ½¬ıƿġ˽Ƀ}ŭ"],encodeOffsets:[[-92257,14065]]}},{type:"Feature",id:"GUF",properties:{name:"French Guiana"},geometry:{type:"Polygon",coordinates:["@@͉͑ГÑŗʀȉ–ʹɩνǦɈΪòϤƢή͛ӸáֺѪܠ˸ğؤȥࢸۿƔ·ӻޑʳأ"],encodeOffsets:[[-53817,2565]]}},{type:"Feature",id:"GUY",properties:{name:"Guyana"},geometry:{type:"Polygon",coordinates:["@@ր̯Դյzџ̈́o҈Чͪ̇Ƈݱԛɕ°ȣƹџϊ؏ːAŎӃԢܳȱ‰ҫî˙ɡϟƥ˅—ġǑЭ¦ԫЀÓϴɋьƆܐɸ̐ȕϸ˿ŶŊτțȘѩ™ْ֩ɬɲiϲԬƊȾƾ˽̸ô̬ږӲ"],encodeOffsets:[[-61192,8568]]}},{type:"Feature",id:"HND",properties:{name:"Honduras"},geometry:{type:"Polygon",coordinates:["@@ơˀʭòÐʹŗĞǣÒσij‹ŔʩƈǷǚʛìǨɈáǒÐNJЊɼϦ͎ĔȂƨʊ\\þ垦ϸùϲv˒ĢİĦˎ©ȪÉɘnǖòϨśƄkʲƿʐį̏Źɜɳ˽jśŕ̇ŋɃAȅŃǙœƛźĕ{ŇȩăRaǥ̉ɳƹıđĽʛǞǹɣǫPȟqlЭūQĿȓʽ“"],encodeOffsets:[[-89412,13297]]}},{type:"Feature",id:"HRV",properties:{name:"Croatia"},geometry:{type:"Polygon",coordinates:["@@Ȳ͗ˊʇ͓̓ϝȆׇ[ܟƔϽmǻǧ̝ȖǫΑЪϽǼʹϮ̽͌ȃ͆Ηݔ͇ġƛ߃̶ӣ̢ޑʠ۹ؤǞØϥΞe˲եƄʱγʝˮn̆Šbג…Ƹƚ˸ƍͤgGɼ̈ĒĈͺڞɠˊĻؼέۜlj̼Ų"],encodeOffsets:[[19282,47011]]}},{type:"Feature",id:"HTI",properties:{name:"Haiti"},geometry:{type:"Polygon",coordinates:["@@Ԣ™ܰƁôқÝ͑ȱƙɎʥiɫ֏ƜЅÍԡÔϽƿ҉ʾö˔ޜśيã̢ȈϧθP͎ՋžȌɶ"],encodeOffsets:[[-74946,20394]]}},{type:"Feature",id:"HUN",properties:{name:"Hungary"},geometry:{type:"Polygon",coordinates:["@@˨ըǍǼӂDÜ΄ђɋ̲ğ۸ļäǚͮ~ЦžĜÃЂŀȠȢˠ¼࣒ʭǴĒҲɭÎɣԡǭЉ֫ԕ֭کǁԽš١ə̻űۛNJػήˉļǍ˴ƗV"],encodeOffsets:[[16592,47977]]}},{type:"Feature",id:"IDN",properties:{name:"Indonesia"},geometry:{type:"MultiPolygon",coordinates:[["@@Λe૝ך޴ǒѴʭ̎ʭ»ɩ"],["@@ܙȁijĶø˸ΰԢࠨͬĐǓfʫշع"],["@@̢ɣԲèȼΥॿǛ׉őҍP̀ӚҤPɤ̖"],["@@ūұ౅ʅૣľE̬ښǪՂʥ֔Üݬ̮"],["@@ྔċȂΌ༘З̪կీƵਐӿय़͋ऍ͸ݻwࢍØ޻ưঅ͎؝ČΓŁ໕ΌƣΰޑØּߤ৶·ڴ͡ΒÛŘ̗"],["@@ѝֱćنƬ̠Ǭ˴ȒʗCЏ"],["@@̿˥ׅƸǏΰࡘ¢Ⱦˣ"],["@@̨ٝۿΌۯìӃÅׇˆȦҦਠ”ऎʕ"],["@@ɼയ࢈ԉ۰ࢼ८ԔݜBܘ̉خ̛ࣘLJbᩑbᩑݟې࡟ǜȷʇ੡}ΦۂՈɺɕࣲЕ۸࿃܆ۗêృަʛУ͑óȏ̮GκٛЮ̢ࣞ״gëɠ௵DͩԄݥƺΡдଈȰњ˜ഘ·Ƃ̹"],["@@ڭ࠭كlj߱ǐඓ¥ܽŧţٍݪݛҒϠ༪˸çϯλŪιӯ͙݉ߒ੿Ƶ˿ݲॻQտ҅ʙ̐͡Мی࠙͗ȻɶŊ͖؅ӲØࠌ֕ʭîও”றՓũίʚʌޜŽ߸ΛPʻֺΎվŤښф౎ǮΎ܎ذپʛ੖śॴ–ࠨ؎Ʀȉ"],["@@©ܽџĈŷԝΌѷɽĵ͹Ւʟ੺ǚڤ˨̨ÔҝӸóĀ΃"],["@@सާহį˫ֵšݿַ߱u࠷͕౻ŭ̚ॕϙͫԤ׳´лːৃ̟̩Оս¯ۗĬŹૺнɺЕܘŝ݀ĮުԂ֐Ɩָ֗ӅըǠ՜ÑӪъЖôߒɽۆǶњୠ͔̈̆क़ॲ@ܰƙӍݷآߓơϭ"],["@@छkۻ۰અۊέԚٍۄзؾٕ୴۪݅ʙܠ̳ڀݵՊѭܘمҺࢗऒóђզ‘ಢNjݔࠓٮ֫ҪΓߔࣙࡢ_ۺֹӠ۳٘ϥͳۉӖ̞̅sƜו̊ҵؠõФՏɁ਱‘ಟ"]],encodeOffsets:[[[123613,-10485]],[[127423,-10383]],[[120730,-8289]],[[125854,-8288]],[[111231,-6940]],[[137959,-6363]],[[130304,-3542]],[[133603,-3168]],[[137363,-1179]],[[128247,1454]],[[131777,1160]],[[120705,1872]],[[108358,-5992]]]}},{type:"Feature",id:"IND",properties:{name:"India"},geometry:{type:"Polygon",coordinates:["@@ࣚটďۅͮїѕ׽ŒɾएࠜՑ୞חՑϟ͛޻ࠀͅߊЭરһସʼnӜёٮāৠȝ۪bĪͪŋՖÞβԠǮìڋlǙކ͉Ոƀ܀Çۈ|ÐԪ΁ˎڴŀވشॸ՘۶ȷ״ΞЀԹ˳Λ࣠űÜ͇̍Ʒèԫ׷Ʋછׅ~ӓҩ۵§ХϏۗځȒࢇȏ˹ĚΣгȥѵ೰ɵEƍ՝ҡѦʸӎϖ¶ϰ܆ӝƜީ]ߝŚóאБ¤ڕζ֭̓؆ѻԿ̻ȅ̩Ԭɣƛԑ̆كžەţֱ̫Zਛǩ´ك҃ӻ௃֡ळ঩كՋ࠷ջCϭлȹݳ̝Ͻ«ʥٙǪધ®ۡΣߙI෗ѣ¡ϣٙʰˣދʃ˱֯͵ʍߑ޸ϳ୴͑ࡒ̍Јѿ߰ȻੂơՀޅ଼Α࿀ʣ੾HৰǍ޾௣ԉףĶ઱৲И̤ʝͤড܊֖֔ᇜCǗܞҽюĩ٨ջϘऒࢢঊÙ࢞ࢢՄ࡞ࠄࡈ_״ܒӠڳд֪݂̇̕Ьβ౤ȱपŰߺ۸"],encodeOffsets:[[79706,36346]]}},{type:"Feature",id:"IRL",properties:{name:"Ireland"},geometry:{type:"Polygon",coordinates:["@@ƒ׷ًݣ๯ӹ஑Ŷڼ࢚ѭࡢତڄٌϼǦ҇ǥ҉Բ\\ٌǥ"],encodeOffsets:[[-6346,55161]]}},{type:"Feature",id:"IRN",properties:{name:"Iran"},geometry:{type:"Polygon",coordinates:["@@݈njװӔ֚{τƾװýघэڤğ।ݓظ‰òۻ΁਷ɱؑκŭΫҡˠڡàՓِƙæեݿݿжѵ͸ԓߦυx݉ДƋêϯ௉ѡ̓উཌྷʪࣷȖेŊΧਐЕƪ٣ƭࡑНਇ˦ࡑ٦߳ʈ֗ߘا૪ҍƋՕ˦̻͝ҭѴS҂ˍ@Ɛ،ѝٔ਍Ң׉ߜȜپц̂ÙӬտʨխ৊ҟڨǐʼʿ६ּʈƄͅъϯ־ő̤~রئ̀Øʞʙ́гԼѱȾ¦ˈإߖǩ׎у஠ƟಾɞĄȞ"],encodeOffsets:[[55216,38092]]}},{type:"Feature",id:"IRQ",properties:{name:"Iraq"},geometry:{type:"Polygon",coordinates:["@@րʧÚӫх́țٽ׊ߛ਎ҡўٓƏ؋ˎ@TҁҮѳӿ¤֟ê؝߭༟äᛍၖఫךৡɪ͹৾ᇶ࢔͆৬āؘҢȺјԾΰž঎Ň̐ɉЖƚծ৉"],encodeOffsets:[[46511,36842]]}},{type:"Feature",id:"ISL",properties:{name:"Iceland"},geometry:{type:"Polygon",coordinates:["@@șիॊֵથٙᝓֹܣƵૉŮᚑˈࠠψᆧЪ๪ǎ—ʘᄋȜ֨նౠŰಸ֭౨Ҝ੒ʃൌ҄ආÑ"],encodeOffsets:[[-14856,68051]]}},{type:"Feature",id:"ISR",properties:{name:"Israel"},geometry:{type:"Polygon",coordinates:["@@ƥ˅̣Ŝǫ֓ɂĥɋř—ɛЄŖp͛нഉց෾ʔˢ˶ɞϼǠيŤɆzVˬCþƦɤ\\`·ŕŵhM"],encodeOffsets:[[36578,33495]]}},{type:"Feature",id:"ITA",properties:{name:"Italy"},geometry:{type:"MultiPolygon",coordinates:[["@@̟ڋŲʹǭѝٝ̈́ёĞ୩ѐŞќজûࡪĠْò"],["@@Ԍ׭ş૕ϣÂ΁˫͇ɞ‘২ȓӒҨ¥рʼ"],["@@ரɏĝЯȬΧڝŪہ̗²зĻʇˠё߀чцۛदڱچLȲȃɽǗݪ̥ؠʩܜѫĔƿƽ̛үϼܳƐΝի؈̷ıѫΗ¹҅ܛΕÝHʲǢҊǼǶ͝ӤʱшΑŀʛδգƴεͶثÆٿϜޑմ֯ӜʿࠪйĮہˤϯŕӝϵΓÕĪθҕńɏٲ̆ʰʙ̀”ʂβǵМ¢Ҽ˶ƢƃА€ǼͺتĿψƚâΆԘšĮdžࠨƤȊ̉"]],encodeOffsets:[[[15893,39149]],[[9432,42200]],[[12674,47890]]]}},{type:"Feature",id:"JAM",properties:{name:"Jamaica"},geometry:{type:"Polygon",coordinates:["@@֢÷ҀȫƔɯןeʭƗҹƊӑ̪ĶȔΜÎȒƒ"],encodeOffsets:[[-79431,18935]]}},{type:"Feature",id:"JOR",properties:{name:"Jordan"},geometry:{type:"Polygon",coordinates:["@@Ʀˆपͫ࿪ࣆͺ৽Džų၅у࠸࠿ˣƛƑ˭ٙřȩ̡εʵधƆƒŨоഊo͜Ůʚ@Ԥ"],encodeOffsets:[[36399,33172]]}},{type:"Feature",id:"JPN",properties:{name:"Japan"},geometry:{type:"MultiPolygon",coordinates:[["@@ņ˽ҿԕΉːљțɝӭշʈRЊҬԆӌīΊΜؠǹ"],["@@́ڡƤсѩף੹Ѓ๏½ணॡ͔֡“غษȃষЃঝe࡞أ֗෗իΝН͜ȶݶՏʒͿ־ߐʶѲՈࡌѢ؞ָာʤ࣎ǣࢠ๺֔Б௾ࡀӌ͜ՈਈƟा΢ՎࣀƸҞୗ}ڻޥࡍbࢁ"],["@@נǵרΤȈहఝɯ݁࠱೓ָқँण]ř࠴д٨࣌²ʖ୐ʜټন࢓٤˯"]],encodeOffsets:[[[137870,34969]],[[144360,38034]],[[147365,45235]]]}},{type:"Feature",id:"KAZ",properties:{name:"Kazakhstan"},geometry:{type:"Polygon",coordinates:["@@ӕƹ્דο׹̹KɱЊ੫‚ǡێХNÚࡆ৓ؘ෷ßডũߣݶۋ͆ಥ׼ƽðᓗӹᶽљ£יچ֧ɼॕǩχ˧±ȲȶΖDž̊অ˺ϛݮҩɆ…˜ࠊāŽؘ܎ƎܼűƲࠎƭԲ࠿£܍ȴঃσ޵ǭяƌĐўՙ֘دw܉֬ӞِʕǢڢऊࡺӣŀؘჄࣴಾtᇢ׉঺ͻࢼΠ೰j੺ѥʔʠ୼—ɂЊഷ׀߮Цƿɮ߮ɔ؅ֺϬ˼Ḯ̈ШȺᑆ̴ݰΒຢǹ˄ࢉ࢚Ȳઆ˹éҝ߮´ᑌߎ̭ˁ੶٭ሠᒑ҄ѰୄӛீɎҪƯКӟטNjΨΥ઎ŒѾԣٕ֓ۥÿ¡ࡅұϝဟˢ؅ຑїȇဗͱݲลֻɓäӏԭŬу̠ఝĖඃx̧ġ஥ΞӉǧŽӹ൩̂փşȉρ"],encodeOffsets:[[72666,43281]]}},{type:"Feature",id:"KEN",properties:{name:"Kenya"},geometry:{type:"Polygon",coordinates:["@@ӾۙיͱȹΕ̿Õšףˑ͹Ǐ֑ͷ˥஻ࡀËӤᵁႌƙĢSࢺʊ;а֌̨ؔσ॰įтЉ׎ԬԈ֬ֆѨƗ@ҽ˺ˡג@੠܋ˈSȠxȄī֖ßʞΔގΚͺ˳ָAܽ॑Xᵣ"],encodeOffsets:[[41977,-878]]}},{type:"Feature",id:"KGZ",properties:{name:"Kyrgyzstan"},geometry:{type:"Polygon",coordinates:["@@ȊςքŠ൪́žӺӊǨ஦Ν̨Ģ඄wఞĕф̟Ԯūşȏ೛ғ̙ͭઁıͅ՛ࢷŒׇǏߣЇŜȟʇȓཟŵਡ˘࣫ÝĂӜࣴƕ̮ʸٖĉ੾؂঻ѸױȽإ͂۶ծʟĊ"],encodeOffsets:[[72666,43281]]}},{type:"Feature",id:"KHM",properties:{name:"Cambodia"},geometry:{type:"Polygon",coordinates:["@@΁Ѭыࢄȣ২ՠۨઘdž߀ťۚ͡Ϟׄݖ̱Ȝ֕Ļ৕ඳ٧τԙࢥÓܫͷ۱Ū"],encodeOffsets:[[105982,10888]]}},{type:"Feature",id:"KOR",properties:{name:"South Korea"},geometry:{type:"Polygon",coordinates:["@@ܨযȺխPॷ̓ҥݽljڥΏݳïĥҚƼـχ࢔ذƚֻܘÂúϒ‡͞Ϝצ¢ΨÈŨȮ"],encodeOffsets:[[131431,39539]]}},{type:"Feature",id:"CS-KM",properties:{name:"Kosovo"},geometry:{type:"Polygon",coordinates:["@@›ǣŃPĘ́ȩĐdzɦƾȌȪÒŜ˨ư²Ţşƾ¿ŌƅƒŸǎƻŢLĥȳijij„×ȉӹŻ"],encodeOffsets:[[21261,43062]]}},{type:"Feature",id:"KWT",properties:{name:"Kuwait"},geometry:{type:"Polygon",coordinates:["@@Ǭχõȓ˔هשuȽАݟĆ؞߮֠é"],encodeOffsets:[[49126,30696]]}},{type:"Feature",id:"LAO",properties:{name:"Laos"},geometry:{type:"Polygon",coordinates:["@@˚Ϝœ܆ڹܸ¿ٕࠦھٍÎǛ̉ӯyʣƨࢯԅoݬȸࢮ֧ž³ԎηʸǴ̲ܐնøȡ҄wŵ०ѦŬӮڏϖޅਚO͚ܹ՝ɗʉ̟৔ԉۦ঳Ռ݋َ׏ɄץƵ࠿ݕ̲ϝ׃ۙ͢"],encodeOffsets:[[107745,14616]]}},{type:"Feature",id:"LBN",properties:{name:"Lebanon"},geometry:{type:"Polygon",coordinates:["@@ɣ[ýƥ˫D̘ۄмעfˆϘ§Ɛͣқ̓ȷҟ"],encodeOffsets:[[36681,34077]]}},{type:"Feature",id:"LBR",properties:{name:"Liberia"},geometry:{type:"Polygon",coordinates:["@@ɗQࡽАޅٖ܏Ң֣ըȪː¬ʔϜҘϺϺǶnɖĨΘԧÇ͵ǐdzʂIǢ͸ʄsŸʓĎНǽύʖɱˊÇΤΙ~ͧăĿÝە"],encodeOffsets:[[-7897,4470]]}},{type:"Feature",id:"LBY",properties:{name:"Libya"},geometry:{type:"Polygon",coordinates:["@@ק̷ҿҤ೧βρՄڑϸϻƷ̗ҶήӹؔͬΘñՈńҠÓϦƨۈ¯϶˕ݐШȜðΠėΒ־͔ʶːЦʌ´٦দ́ΜðۮƓ૞ϓЀݛݮǍஆΙࣆйЦɔЖϮț٠˂Ф؄ЀׂŘ଒ǣ˺ϑ̺Iˌƛ࠴ıȲˣ̣ЕżΫɏԯʦڱ@Ჳ@ᶵ@့ॱGYΙ‧ྐ‧ྒࡓҟ"],encodeOffsets:[[15208,23412]]}},{type:"Feature",id:"LKA",properties:{name:"Sri Lanka"},geometry:{type:"Polygon",coordinates:["@@ų࢓ΙʇܵȓЍڜƫீϠ഼׆ұϺסО࢓"],encodeOffsets:[[83751,7704]]}},{type:"Feature",id:"LSO",properties:{name:"Lesotho"},geometry:{type:"Polygon",coordinates:["@@̆ʩʳУƛ˛ҳſƹˍ̛ċؿ٨҄ՐҖ͢ϼǠξʵ"],encodeOffsets:[[29674,-29650]]}},{type:"Feature",id:"LTU",properties:{name:"Lithuania"},geometry:{type:"Polygon",coordinates:["@@ãɊĚɲχƄࢡƨDZ۸२ʴඬÁࠜĊŞǩ҂Ã߲СĀϓۏˏșӃ࣯̓߻NȫʶљĜ"],encodeOffsets:[[23277,55632]]}},{type:"Feature",id:"LUX",properties:{name:"Luxembourg"},geometry:{type:"Polygon",coordinates:["@@ǘȏ³ρʍiȉòĞҼɖŽ"],encodeOffsets:[[6189,51332]]}},{type:"Feature",id:"LVA",properties:{name:"Latvia"},geometry:{type:"Polygon",coordinates:["@@†نЮՆߊ˼ڜعڪhNJ٤ܐƪςĻܢ̷ۚCКȕîС˒ӷ͕ࣗԛƙ߱ТҁÄŝǪࠛĉණÂ१ʳ"],encodeOffsets:[[21562,57376]]}},{type:"Feature",id:"MAR",properties:{name:"Morocco"},geometry:{type:"Polygon",coordinates:["@@ԒΥߜÎࢊȃκU͂՟ºԝ̄ࢱɜDZƷ͛ષƙϝ̵ӡñ—ثঙ͍ͩсۍɥ࠻ŷഫاRহŷ@@@p҉Ա˓ȑϡ@̥Ŋ۹ě˛ٻʿÕЁ੕ୟ࣡ˣୋ΅ϗĵ̡ቅãaD ϶͒ɮ˞ѪÃ˶̀פҴՖ˲ƊɞӬp҂̤Բ̪֔Ւ࡬f\\ц͔ްĢڎָтɠۮۮȿਸ਼͊ܢŔѶդ֨ࡈϦخΐ֘࢈˄ԪؤI"],encodeOffsets:[[-5318,36614]]}},{type:"Feature",id:"MDA",properties:{name:"Moldova"},geometry:{type:"Polygon",coordinates:["@@ȨŮ֒ĊؤʽΊϞɥÑ˵̪ƏŨΗ̊ɇÏűƾčɝ×ӷ|ĉŜǫãÒƭɱˍƥ˽ɁĝƯϦĘΪςӝԂˉΠʹʠʯĈ"],encodeOffsets:[[27259,49379]]}},{type:"Feature",id:"MDG",properties:{name:"Madagascar"},geometry:{type:"Polygon",coordinates:["@@ɠΥȺ։Ɗঢ়ɒϽĉЗƩʙ˷ӰǁʝLjثõΥɵȗ¿܅ͧওб୅ԯཧ͑ୟϛইہȣܻΡӛɊڙ̜ɳѺÇݘ̑ڠù؂Ʈ؄ϰƢD˪Дِø՚șЈǃՌãޠ̊ҺŔՒмŒҶǤ̶Ʋτ\\ӐӎۖԮʦцŗάΦĵҪ׎fԐ˦ϔ̊ί"],encodeOffsets:[[50733,-12769]]}},{type:"Feature",id:"MEX",properties:{name:"Mexico"},geometry:{type:"Polygon",coordinates:["@@͙݅ƥ؁Õ૷ąЧƤқʺЧǚٳ֎سȞӏ͢бࢾɝΐΙ݄ɾٚĎؼưՊƠՖ΂ȨӬè۸Ƣʖ֬ɚࢶȚݔ‡ԚîȬDZ…ЙҋԁȥԝƸƥűγɁٽɅɎǭcǃY̝ԓƳIJķPŭޥV޷AAӁϛC̺˫̶șĢǹƌ½s˷ઃEЙۅŢƽĭȟqʕ्ࣞџ˘ۇɖҷÓګ́чĉץɜؿDŽ޹ϬؿŠ्ϸ۱ВɃɤҹº࡯ˈΓϦࣗӊсՌȧЦ˪ĈđʈȖɔJ̄˱Ϙùͮ˭ъ݋࠴ࡋڀУԼܝ΄ƷȴŸԲѓȞӹФȽהҍæӣѸϿФ™ˀҍو̓٠^͔؇ͬ˫™ӑɴƇͿƔЕĆف̀΋خׁƒȡŸÓŎ˽Ƭ\\ǜթʮɇǴ̕Նё˨ޯʠρɸϿ²ѷКƒͶϡ̨ϑqƭΝ̱ƫJɛԞջӎ؃РїɈ„ؚŵҖЏʺֿϒŏŇɃɖԭȰӷӦÖÚΊ³̸̼ŽϜ٩׶ӱɶ̱Հ̷վϳڦͿݲॖÞ੪ĞÿǑ౔СኀףဪPژ@DΌผ@̪̕јˇԀσ˨ѭȾҥѢʩۤʥՊڒۊhפͱфֹ̄ӯӸӏȂחɾЃپʹ׮ȁ͞|"],encodeOffsets:[[-99471,26491]]}},{type:"Feature",id:"MKD",properties:{name:"Macedonia"},geometry:{type:"Polygon",coordinates:["@@ńOœǤӺżȊ˺¶ϴbтˏÒ։DžƒƑƥҕh͋ǿջõΑȴšήń˸"],encodeOffsets:[[21085,42860]]}},{type:"Feature",id:"MLI",properties:{name:"Mali"},geometry:{type:"Polygon",coordinates:["@@˰ƶƘӶˊpזɻӄǖ͖ÇŴȈ⁚^ȈךƣļЛ⋈Л⋆౾dᬼᆳᬼᆳȨϿԺʉ϶ƋV՗ठĈFካҟ֗íԭݛƃ଩ï̳̗ա՟IȿLjҥš޻ΑDžʿٳϕŗɍΙǡНŔɱȳūֻڙۡp˳ɭΣÆӥ΋ůȝŁŽάʍĥơhƷʕ٭PɷŴʼnùʱʎ¬ʢĿİdzĉ˚Ǥɐ΅ΚijɴȇȂǙvȫş˕őɱǹΫäɷɈƓ„ɕőƅAµ̮žʾí̽͘ʀǓӔԺ"],encodeOffsets:[[-12462,14968]]}},{type:"Feature",id:"MMR",properties:{name:"Myanmar"},geometry:{type:"Polygon",coordinates:["@@ӫηץ›ϥࣥΟƳО݅ՔؗΈօ̭ܵ̃ƹȪу֖ڙĪҷ_ϵ͠ދң޵Сࡷăذʴ٠˯ӼæࣸͽѤ˛৔Ʊਗ਼εۢօуॕ׳ҽöԳȠ̂ਪǫ޾څॺļ̢ӭņ׭ۆÅڰ̊ŵj׾дȦęΤȐ˺Ž࢈ڂȑϐۘ¨ЦҪ۶}Ӕજ׆׸ƱçԬ̎ƸÛ͈ӮÚˮӵξȧ|ٟ“ۙߓۭijঽࢲƔȨޛՐǍʓۣز́ζƷ؞ʔ~΍܏յdẕӓȗ"],encodeOffsets:[[101933,20672]]}},{type:"Feature",id:"MNE",properties:{name:"Montenegro"},geometry:{type:"Polygon",coordinates:["@@ÁǀηЯÊˋǫÞɽ˞εǖĢƜŬҦ˚ȜƾüɠƟŬśˠě͌ǧçïƽȋɧó"],encodeOffsets:[[20277,43521]]}},{type:"Feature",id:"MNG",properties:{name:"Mongolia"},geometry:{type:"Polygon",coordinates:["@@ࢮƢ྄ܤ౬Єܴʳ࢚]֘Ͻ࠼‰ௐɁࠈגͿӶࢊࢊश΍ނįনɍLjؿஜΛߐƺਫ਼ŌࡆōࠖЗԚѕެT੒Ƌޜȼૈƒ௸פԌĝѰ˭ৌêХهק࠽ɐ΅ӈńࠤŽ٦̴ڬˏހוğ̗ڏĦ௟ŏןʅ؝։౱͙࠷ѽࡹǞҿúѳէˎ͓ƌˣי˯׽҇গ̑ఽ‹ഫ̇এҋϋʾ৭AఓԜࠥŰૣśჃȊऑmӱԀϣޠԱĢ৩ԼଅŞুƞ̡θ͖চׅڲன̀۷Ѿəז"],encodeOffsets:[[89858,50481]]}},{type:"Feature",id:"MOZ",properties:{name:"Mozambique"},geometry:{type:"Polygon",coordinates:["@@لæ৞ʁɖńגt̚ʦԌaऀ͜ڞӤƊϕ“࠷ľ݅ಿƨЫʣ׷͙׍՗Եޏ͉ृСॉ͓ࣕƵוׯ΋ȗí׳ЌُǔӱZʣƪ¦{ࠗƋϷȤƝűΓΗ̗ۗ˳য়ҕρ̳ðΟɊÉíѵّRïϊůϖí̠ƬपɓװГஂࢬ॔ɜ؆ŶúĨӶƉʞ˜غǐ׌E੠ѥ˒ЏÔǹȼϳǰ۫gÅ̼āװᢈۘӚЕɴüͨɅ¸͵ǯϷØסոԱʲ׌ζǰíઊΙ؈̣˖̅]ɽદɾٔ"],encodeOffsets:[[35390,-11796]]}},{type:"Feature",id:"MRT",properties:{name:"Mauritania"},geometry:{type:"Polygon",coordinates:["@@և־ԗؤ֍ɞГʚҵUЧǽйð˽ˏïҐɺаŀߊģࠨĵкČмɑЎѵδǾˬᾔMǃ௎ȴќ߀øᒸ᪂©F౞Ṗ᎟౽cМ⋅М⋇ƤĻȇי⁙]ųȇ͕ÈӃǕוɼˉoƗӵ˯Ƶ"],encodeOffsets:[[-12462,14968]]}},{type:"Feature",id:"MWI",properties:{name:"Malawi"},geometry:{type:"Polygon",coordinates:["@@ɽٓɾથ̆^̤˕Κ؇îઉεǯʱ׋շԲ×עǰϸ·ͶͧɆɳûәЖѵɔʮޮ˄̈LJۢǚڼƞɪɉ܌Ѕϐ࠘ƽǜɵ˶Ϲɾଡ"],encodeOffsets:[[35390,-11796]]}},{type:"Feature",id:"MYS",properties:{name:"Malaysia"},geometry:{type:"MultiPolygon",coordinates:[["@@àћֈĶ˞ΈȘýӸԓΜ֛¶֣ęϡĆ˿Öӻ̒ɵͤݑe˳׫Éߑخ঵ښįђӟ֚ś̡۠ҜĠؔȃΤƤƮۈρ"],["@@أ˹ܯƚॱ@̅ॗ͓̇љୟۅǵߑɾЕóөщ՛Òէǟַӆƕ֘؜˽ٮǀǜ܆άǂ৖Ǻ׾ڔЬՐϦѥǮ˺В¸՜œа٪אшڀͼHќыžιֆɻ۬ʧÑ֝͡¥ƮЧ"]],encodeOffsets:[[[103502,6354]],[[121466,4586]]]}},{type:"Feature",id:"NAM",properties:{name:"Namibia"},geometry:{type:"Polygon",coordinates:["@@رٌؖ͡ȃࠊȷ،˯ಒm৒ŅҞ͛Όѡۜѳ৘ǽՆۃࠐ»٢КdžԊƞհ}ԄϝŶÐ₮˜׌Е᎞ş໴΂یȒհµͨȍPéӁȍʭC՛͍ͣΎಕ̍سƒ{Ჽࠣ‡BយA᷋ݣѕҋÕՇDŽϗÔƗάͩɰГг"],encodeOffsets:[[16738,-29262]]}},{type:"Feature",id:"NCL",properties:{name:"New Caledonia"},geometry:{type:"Polygon",coordinates:["@@ېԵѨϭ͉ȫҥɪ׹ϚէѼ։פś˶β[Һ˹φ˷ˎɻ"],encodeOffsets:[[169759,-21585]]}},{type:"Feature",id:"NER",properties:{name:"Niger"},geometry:{type:"Polygon",coordinates:["@@nּॹȐОҿպœϤâТբ̴̘ପðݜƄîԮҠ֘Eኬஈϒᝪ࿸᮪ཾ೨αӀңר̸ȸಯ̾ɓ`ˋΔ˽ǻί͕ၻ«ધੳߋγૉΔ̵CեբmčЃʁµˋƻm֩ंȟ’ځҷٱʔҍ¸ʏşӯ~ӷΧѓq৯ѢЉȵѓb̿͆ࡅ̼ࣗıɕǻşӗʋ͹ÍݣٗӚ̟E˭ʗ"],encodeOffsets:[[2207,12227]]}},{type:"Feature",id:"NGA",properties:{name:"Nigeria"},geometry:{type:"Polygon",coordinates:["@@ࢍ̡͉¬͓ȉڥl҇Ղˡ؊שֆكYݍB¶തs՘ǂՊʶʴТԴėɨǔ͸ȍӾ˪ÎݤʌͺŠӘɖǼࣘIJࡆ̻̀ͅєaЊȶৰѡєrӸΨӰ}ʐŠҎ·ٲʓڂҸȠ‘֪ँƼnͬͯğƱ«˧۽ٱɛՙšѧDZȉǝי҅ΉŽыȋ͹ÿΓֽ˱ҽΊ͇aԃӭʑQЍ߷ɍש"],encodeOffsets:[[8705,4887]]}},{type:"Feature",id:"NIC",properties:{name:"Nicaragua"},geometry:{type:"Polygon",coordinates:["@@̃ˆϽͺȁ˲Ο˄сϜĤžƒŵÚÒʾ”ŀȔŬRkЮȠrǬOǺɤʜǝĒľƺIJ̊ɴbǦĄQňȪĖ|ƜŹǚ›ȆńɄB̈ŌŜŖ˾iïă§ȉĐ̫ȗ˹ěͷυ®ɏtϙŹĉýΫÌɛǣɋ ɩźƏȩDZʛÈƓǦˉêȕʼnօɞųŇ"],encodeOffsets:[[-87769,11355]]}},{type:"Feature",id:"NLD",properties:{name:"Netherlands"},geometry:{type:"Polygon",coordinates:["@@ۦyǀ˳Ƚޓɇ́ԍ@ƘࢡҥȞՏπީǩ؛âѠɲ݀ఆଲΘ"],encodeOffsets:[[6220,54795]]}},{type:"Feature",id:"NOR",properties:{name:"Norway"},geometry:{type:"MultiPolygon",coordinates:[["@@᥆ؙઍɣऄՅෛ͵ڵû΢לઃͰಫ˵Ы؝ߟωࣗȮ઱¥णѼԉɝԷ“ūփནƊɝҵ߭Hևױ࠿झಫ஁̨˹̇ͫ࠯bձ޿¾૟՞э˥ধֻۧυӛ֝Ԫဋঁ૫ȟ୏є̛ࣚˇ኶ޞզᕠ۶ဌࢂ໤୦፺ྴඦلᘼ੊ᇎπ൪­౮ۢ໖›ພǘ"],["@@ም΅๝Ȝ׆ɐԕˎეǚͮ̿ொȍ"],["@@᪖صᑟͥұأ݅ǁЍۡৣᅵԢނ̘ఽʐ࿕܂ٷڄᘎ̜Ң̋஦\\͊˼௾ˆ੖̋"],["@@࿮̏ఝҍ᝱ı៙ƖƫɴஹdँϬᣴɼ௞ȫࡘʤᑺȽ"]],encodeOffsets:[[[28842,72894]],[[25318,79723]],[[18690,81615]],[[26059,82338]]]}},{type:"Feature",id:"NPL",properties:{name:"Nepal"},geometry:{type:"Polygon",coordinates:["@@ÝαŌՕĩͩ۩aয়Ȟ٭ĂӛђଷŊયҼ߉Ю߿͆͜޼ՒϠΒȪڪʳࡔշҾť˰ЕٶǓۀσौȕঔć"],encodeOffsets:[[90236,28546]]}},{type:"Feature",id:"NZL",properties:{name:"New Zealand"},geometry:{type:"MultiPolygon",coordinates:[["@@Ȓ΋װ;ʐΡBΝ̹ϳչإїͷ̴З٭Yܗ̓ɣջӋࡗڇϓнʇޝlխˢࣱÐƗ̰Ҍذ੐ࠦժǀ׾͌ܜѰԎѦώظ͈ɆŰҶלϴȆΧ"],["@@،ࢫlָϜɯŲًڰ˛֨ãӒ͎юĭȯݗʯӫٛjɡʭþαūƻͅҏзֹ٭ͯƟɘΕŨӞ۔˟ҨࣛͲz̦؈̌ƚ٨Ÿլͻ֜vƪБΎڋݔΗת̸àҚұٺɑʂݡ"]],encodeOffsets:[[[177173,-41901]],[[178803,-37024]]]}},{type:"Feature",id:"OMN",properties:{name:"Oman"},geometry:{type:"MultiPolygon",coordinates:[["@@ֹ̻ϟªǩȧƉэļ֗ÿĻϯFԽ̻ćХȓǯԹP͡ɃJͻПɷҩĂ֗˳ϱ³˝טٿ൴ᠾ࠾֖၂ϩתv͸ʔΐFΆϞǒƩŞèմіHϖֵҸ̧؞ŋӼƳϜӕɨ˧̞ŃCȉ̩ԃƅɽΟˏ"],["@@ʼnƳDž˺ʔ˺ľñā΍"]],encodeOffsets:[[[60274,21621]],[[57745,26518]]]}},{type:"Feature",id:"PAK",properties:{name:"Pakistan"},geometry:{type:"Polygon",coordinates:["@@تϻʞ٥൨ͻ߹۷ऩůౣȲЫα̖݁̈֩ڴгܑӟ`׳ࠃࡇՃ࡝࢝ࢡউÚऑࢡռϗĪ٧ҾэǘܝᇛD֓֕؛Ɇʣ؀٭٘໻ǁിeஃŝ̈́ঊொѢéϰГƌw݊ߥφͷԔеѶඨѕࡀŲԈŅǞȂגóદĈ܎ҶӈشCĠɼٞŌ̴ý͢ʀ±ԌΦԖ՘Ɇͥ֊ߜɴ̢•͒мΜĩмȣΤӬμࣘǮ८ĮѐƺӨĦ"],encodeOffsets:[[76962,38025]]}},{type:"Feature",id:"PAN",properties:{name:"Panama"},geometry:{type:"Polygon",coordinates:["@@˫ʎǵҒȺɢɅÎƿˤлɸοÁǝ̇ͻɁǽ‡ĉǩВҗɯŅŧŭϷ©ơԈŋƛˡ¸ǝ͸·ÈɓİέCǻĩŶªǖìǠƲŲIJǩŲK͸͘ö̠̝iDZͲ›ĀæɴȵЮÔΨɄԜǞ˺ʤҬ·‹ĉҶ…ώơ˜ʧ̈́ɵĹūȜӵǁʟ˓ÒŅС"],encodeOffsets:[[-79750,7398]]}},{type:"Feature",id:"PER",properties:{name:"Peru"},geometry:{type:"Polygon",coordinates:["@@ɥљћɋࡅӘñΈရࡊທࣾ٫԰ΏۜƐʎ܅ાࠣ༄ߍီ΅Ϥ˃ؤٷպױͼ˖ϒПߢʼךڢՎIJΓʇȧx̭ΎâͼĝΚщӆΌDŽ֤ԦܶৠͨࣸࢠʾմŝٔɢĂ֒ЉˎЅϴɏӶࢣضĿҨɞ̤ƣԎð٠Ͻթࡣʤoрҁݳ œųۍlj॥ֱÓϻɉ̇ČғԕʍBΡɛƵΔݳҲԝDZί֐µ͆҃ݐuېӸÇ౧ϢĩӄƠܪടǷ˵£ןg܍͟пƮ̵ȕ˯β۹Ջ࣡"],encodeOffsets:[[-71260,-18001]]}},{type:"Feature",id:"PHL",properties:{name:"Philippines"},geometry:{type:"MultiPolygon",coordinates:[["@@Đ֏ºҽ˹ޑ̫ࡨϽэˎإʉϿ঩Ӧɿ؊ʰЎՑЈˁΑЃثҵƑʖ͢۾ՌʀҜ̈́̔ϝٔɰƎϒרv·ٰڼЋêхÐ̱"],["@@̟ˡˁՍ˃ʝԫ׈ǦɤɂɾĢԸҨ¸Ɖ֣جߺāߡ"],["@@ૣߕЬט؈԰Ԏ׊Ѱ࠲Ʈۅևҧѳֿ"],["@@Ԏʹ՘BgΗϳΣՕʧ‡ϸÒєŽА"],["@@ʀभ٫ɞj˭ȶԯЍȋ•עʧªƁԘӶãY͈ԣٜ߮mɴ̻"],["@@ɟܩέоѓ٘ܚ‰̡̈"],["@@ԮʉʶɖüɇƍΑ˼׻ɛۥӷ˥ƁڳȊڝѾġϊIJਾүăҙ˜ȫēϯٻЮ̵Ѵɍ̯՗ԊރůлȆ¨ΎˀɊʣȘŇ̡бӚűμߨͺˡĔೄ˜ހԘA"]],encodeOffsets:[[[129410,8617]],[[126959,10526]],[[121349,9540]],[[124809,12178]],[[128515,12455]],[[124445,13384]],[[124234,18949]]]}},{type:"Feature",id:"PNG",properties:{name:"Papua New Guinea"},geometry:{type:"MultiPolygon",coordinates:[["@@ɽčε͔ρՔǷ٘ŜĆĜʡʬȏРՑЈ˵ŝɽ"],["@@ѯçƃɽҟȱћȟѽBۏʔӑɺêʺݬũҠàŶЖŦrĆѽӐÜʂ˼Ҹ̚ġӸԌfǜƏgү˯ԡ"],["@@ݤտղࢻӖ„‘ω٬ƛʥǁࣀΝġʏ֋ÏȷɔܟĦࡕŴٷ՚ӉҦѧ݀ભπ܇ʇԡˣńإڇ˿һƖࢅ–aᩒaᩒภ׃༊ӓׄїҴхŸӵඔԱȲѽޛěȄ֕"],["@@ʿɡǁӸȝ͘ϝ˞ӍΪ؇ʚɺȮҒɻ˸ȁΜȫʹΛ͊ˏĶѧ"]],encodeOffsets:[[[159622,-6983]],[[155631,-5609]],[[150725,-7565]],[[156816,-4607]]]}},{type:"Feature",id:"POL",properties:{name:"Poland"},geometry:{type:"Polygon",coordinates:["@@·՜à̂ȹ̧҆̚ɺɤȝђָʘ಼ϴ੒˴࠼ƙÚȱ߸Yਚħ໶^њěȬʵšωɸ͋KͯԋǡʸϳfϏцܻěɽзįރۥɒϗǿ¶ߙ͔؁šЇĒӹǵч̖Ήŕ³¼ϭаر¼ăˀֻĦűɑҗǨÀɴػòЉ˔"],encodeOffsets:[[15378,52334]]}},{type:"Feature",id:"PRI",properties:{name:"Puerto Rico"},geometry:{type:"Polygon",coordinates:["@@јõưǕɋɃمLӫ‡·άŢŬیK"],encodeOffsets:[[-67873,18960]]}},{type:"Feature",id:"PRK",properties:{name:"North Korea"},geometry:{type:"Polygon",coordinates:["@@Şƥ͉ºη˵ʣ˷Ž׽ѣȅƫƧ̓ʝ֓ƏηɥηįġͰƋӈσŧȭΧÇץ¡͝ϛϑˆÁùСdžĵƿʙé‡ǀɑüɥƆɰφȤİõƶɆҒÅƎөĠЇɤۄբऒҌ־׮Ўˁܪ‹ſѺಚβͰҼժӹ"],encodeOffsets:[[133776,43413]]}},{type:"Feature",id:"PRT",properties:{name:"Portugal"},geometry:{type:"Polygon",coordinates:["@@̦Ɉ΄ŬɂЫӺDƞłӪ‡ɼуϱɩYٽƍū‘Їγçʹԋɵտ̄ʡřɫ̵̿ê˥ͷɓѷŠџġŸڂÿԬϓþȩ͈äռͰ̨ÒͼǪԎkΤǙ̠™˲"],encodeOffsets:[[-9251,42886]]}},{type:"Feature",id:"PRY",properties:{name:"Paraguay"},geometry:{type:"Polygon",coordinates:["@@ͦ৖tҌЖ݌าʔޮ]޴їbʵʞҳÇଛࢲLJ΄ǐ֦ɩǀʣþޓİ͓̼›̀ƌ̢ƳAҥŕӻǑӛƍݏށ١ړƇऻŸࡑɮࠢ౨ťψࡽ͢ਅبۉŸ໵ൌ"],encodeOffsets:[[-64189,-22783]]}},{type:"Feature",id:"QAT",properties:{name:"Qatar"},geometry:{type:"Polygon",coordinates:["@@ÇؔɨѲɰĜʬˁdӯǽӳɵÑʫǖ"],encodeOffsets:[[52030,25349]]}},{type:"Feature",id:"ROU",properties:{name:"Romania"},geometry:{type:"Polygon",coordinates:["@@δǶԴġՠGϸȳ˺źبĄɄȠΠ@ʰćʺʟˊΟӞԁ€ρėΩưϥϒƹЂƊϠƟpɏПǹʯĀɻ৥ӳĖ̪ؑফțзɋ௽¬٥ƀ͙ÕʍΊƵƦȚƘȷŀ˃ȋөʔßΌԟȢĥˌҕͤڪǂԖ֮Њ֬ԢǮ"],encodeOffsets:[[23256,49032]]}},{type:"Feature",id:"RUS",properties:{name:"Russia"},geometry:{type:"MultiPolygon",coordinates:[["@@ࡌ๫కˤԫ்ࠌࡳyוُԒսٱƻ۸Ĥࠊħ࣢Țٌš૴ӯࠜôରަϮͭϴϐŠɔ։̆ߵuࠟΎࡑ"],["@@໵]ਙĨȒτ୊˚ࢢƧψƃęɱäɉ"],["@@֦Ƚțؐᗸű࿨޻࠭λ൛ēsࠑͳǩ޽~ٗ̊ૣʖȉθ࡟Ǝॗʼnҗ̎Ǽ̸৓ȥϚЃӉΣ@„Ꮪٛᔺ࠳ïԷ"],["@@ः©ƭˌੲΖ@ַ"],["@@ળ»@ָň–܈E௒ʉïŗࡽȩ"],["@@ౡMႣĤƧ¬ߘͪੀþஞ͏ĸə"],["@@ॿͩഉø༛ͨȪ˖༨ųᑔɗ"],["@@ډرᶽzඃȣမղҎ׀૎ǂᕞ™ᴬѽ"],["@@ӹóᩣŊɟώູɦūҒ࡮Ƕ…Ҟသܒޙĺ፨݆ɩϢሤѺ᪪բ᫠ǀ෴̸࿐Ŋאͩ֟ʻᲗз᢭Џᤙߝఫࠍ೉߱Ǡۥྎۏ"],["@@ɨгސȲឤYቈЧڬ̿ȽѧङʝᕅүفʟਬşఖɃݴDŽєաτɔഊƂ᧪ƑȴϽ↲ů´ٜᄼƥഄLബѷϮ՝ӹΙੌڋ೔Ϳ߸ࢦഖϙ෢ɦྼʵؤʀൖş؅ޮૐζ䢀ձܐӿᔲٛ₎DŽာƑ۪΍Ĺؙਜʇ૴Ǥ๰vཚǑཪĢะݛਪˎڷ՞ϐώᧆɻფºᝂБ୲ν@”MKઇσઝÖݶҁԄەϲɧĮΏɑɝ༧Ǿ᚝مݛĭ౽ן௛ԧ̱ϣய׊ᔗڇϣ̸ߵΫ૱Ř˓ց৙߽Šͻड़ȋő௣ޭ‹Ϋ۱Δα฽ѕ̅ॡభȳʥ࡟ே޳ׂ̳έ௬ҵለИ୘܀ԆªϾರȊຊ੒คࡺຢڢڮஆ৷ëԍۗᒉइۍਖᓧ˷ᑃටۚԧሙɕಝēÔ؊ಯŶ਩ЭᢵƠ᪏ʟᨩ࿛ủጝ೚ŁаՃࠄȅ՞оईÃௌऍ†܍ځ࠽ë্ϛഉ్௓˯ׇଙ঑ଇॻթӹ૩ӱՉYՇФૻؙſ˩ŝƦKѐіxŦ঴ɛܚܞ̒৶Ʃ֢ࠈ˾ऄ͚̮Ѵݲ൷ʛܯͧ౧Dͻ߄হװหˎ̵ࠖ̉Ԫ̿βԯࡐ̲݇షʢ૛uਯƱۛлҤȥXҩұˑݷࢻRσஅՍ৙̈́োéѯˮԋĞ௷ףેƑޛȻੑƌޫSԙіࠕИࡅŎ੝ŋߏƹ஛ΜLJـধɎށİवΎࢉࢉ΀ӵࠇב௏ɂ࠻Š֗Ͼ࢙^ܳʴ౫Ѓྃܣࢭơ͡çѽԤઍőΧΦחnjЙӠҩưிɍୃӜ҃ѯሟᒒੵٮ̮˂ᑋߍ߭³êҞઅ˺࢙ȱ˃ࢊມǺݯΑᑅ̳Чȹḭ̇ϫ˻؆ֹ߭ɓǀɭ߭ХസֿɁЉ୻˜ʓʟ੹Ѧ೯iࢻΟহͼᇡ׊ಽsჃࣳĿؗࡹӤڡउʖǡӝُ܊֫ذx՚֗ďѝѐƋϥӽ߿Ƒ࠳ࢁކߕĉ֣ࣼফԇ͹ƝɇωÌֿԚɿ†ՅȚʳΈ޵ǮԙƁƥƼଥЖఅƌ܃ƞĹıੱ܂य़̈́ܩӴؒƈۤ۰ҹͪఌ΄uȀݯƉ‚ώѠɼ߼ÖƄ˪ȅҪ΀ѰWʚఉ˚ӭUԯЀ١ƃ੩̐lǒ̗θڟ¤éʼɀǞ՝ӈࢋąʭ¦Ƀȑ̽”ȷ՞ȟ˨NJĀڴ‡͞Ȁʍɢ֥ƪ¼Ʋ΁ƴՃվǸɨĉЂࠑȨѱijšȼࢭɂˑӸíТЙȖάˊʝ޶װӞųƤक़ҬࢡЎᅢ੶ޮӠ͂єగּΆնݳش֢ܜ঍ग़ޢي౿֔ŬךڶüොͶࢀ̈൦ԕᘨȧṺो٤ЋÆ֓टѳ൏ɡ⏷ٔ؟Ńൌ؛ÂϵÆ࡫ઌʯڂɓňРԑΰ՘͈᎖Թ۾Ȳ֣؜ዦࠖޢµ޸̋Ӫ׀۫ԄЪԊءԶᚠˑӔҹ੡ĻNҳڌ˽ಜǼȶ՚ჶАᰪܞي£ࠣԙਬĕ׼˼༾xఢΐफ़ԏॖ֌ࢡӢѪˤ២ʫ୒ʿᴾॣ֚ѰࡡѺ{ǴৣĈˢЌ҅ټ}ː༄ݾրކزǒᕮɛǬұߕڽԺˋ˒חȏଵऒԧέ֕࿫஝०ŭ̢ͮऎɎɞжܮЎөӌϼֈࣿêȫҲڢࡈણۆຒ֦șװмnѴүͧ߷࣐Ƶϥ؄ඤͦლ¬༈ӏݛ۪ċࣆศǞ፾™ᆘŌہѮংւॲx࿎иᕠŐ˪ɲᕂþیȋሴҀ໲aɶδߤΨጤΈ෸˗ଥȷበŹ"],["@@ⵙ͕ໞીےĦقÃᒈӋʟͿ"],["@@૽ōݱÛśƏঙƑ࣫ȦӐʾል~࿞ƶ౨XǢɧӘȬߊƐఞǿ͗ŷ"],["@@ᆳĿᚉʎඅ͎٣׾଩ǔᔆָᆎȎ࿌чኬ߻ȹݯ"]],encodeOffsets:[[[147096,51966]],[[23277,55632]],[[-179214,68183]],[[184320,72533]],[[-182982,72595]],[[147051,74970]],[[154350,76887]],[[148569,77377]],[[58917,72418]],[[109538,78822]],[[107598,80187]],[[52364,82481]],[[102339,80775]]]}},{type:"Feature",id:"RWA",properties:{name:"Rwanda"},geometry:{type:"Polygon",coordinates:["@@ͬӃµӵʏŁѿÆʱӍԛàþҠŘތԄʎɺȰďԈʸ"],encodeOffsets:[[31150,-1161]]}},{type:"Feature",id:"ESH",properties:{name:"Western Sahara"},geometry:{type:"Polygon",coordinates:["@@oҊŸ@@ÉeNjEౝ᪁ª‚ᒷ޿÷ȳћDŽ்ᾓNǽ˫˜΢bCቆäĶ̢ΆϘˤୌୠ࣢Ђ੖ˀÖ˜ټۺĜ̦ʼnϢ@˔ȒԲ‚"],encodeOffsets:[[-9005,27772]]}},{type:"Feature",id:"SAU",properties:{name:"Saudi Arabia"},geometry:{type:"Polygon",coordinates:["@@ʼnΪʩʨÝͲѡ̞҃۴ʁۆׇ׀ϑƐ֋ߠīא–ӾӕञϿ͠ґǨˡӖ°ȎɹѦʕȊ͝زԟڴѓ־лIžҦœ̌ļͲनƅζʶȪ̢ٚŚƒˮˤƜ࠷ࡀ၆фdžŴৢɩబיᛎၕ༠ãݠąȾЏתv͠ܥаȓƠִ̏Λ¼΍ċ˩ł˯ʎɽŐ˟ŲȵʬǕɶÒdž͍Žș࡙͐ᡌщǞDzϪש֕၁ᠽ࠽ᝑ͑޷ϙ׻ࢥϹƕɁˬ͏§߻ĎƷČॹmɫùΉɔɝЭĒΟρˋ"],encodeOffsets:[[43807,16741]]}},{type:"Feature",id:"SDN",properties:{name:"Sudan"},geometry:{type:"Polygon",coordinates:["@@śhdмĵ̀џͨĵ؄ĶبϳÌÍȇԍ©Ȭʕðԍңңл؅џđ۹Ӫͅǥđʓџǃ…ǥ࠵@řǦ؃†̡ƝɳîѝӬƟɲ؃ŗɱϵɏݣ˿ǁʳğå ̅ʎÃʼƌΔE΄ӛՀĩάZȰ̱ʜUӦǭ͖̍µĎ̰ɒΖħΐˢʴǫȞɞ԰ϨئܦÏ¥ ZΚॲH@း@Ὂ@ῼ@˔ࠗȁƳŪࡻ্̰͌ȷҠ̳ыӑأƏ˅ʳĉ֑α௿ĚͳƅܟͿࠟԓзέٛč΃Љɽʝ࢟Dij"],encodeOffsets:[[34779,9692]]}},{type:"Feature",id:"SDS",properties:{name:"South Sudan"},geometry:{type:"Polygon",coordinates:["@@Xٽűʯѿq˷ӏԨÑюХƨͳϦșӼࣳ֫օԫԇԫϭסFگȟՕȊ΋ɭ݉֐ȥάҵDZϱÆɣƕϗĸԗۚƉˊعͪɅԌΕζ֟ѬS˘ҡͼ֯͠ʴĠ̀ǂɐݤɲ϶؄ŘƠɱўӫɴí̢ƞ؄…Śǥ࠶@†ǦѠDŽĒʔ͆ǦۺөѠĒм؆ҤҤïԎȫʖԎªÎȈϴËĵاĶ؃ѠͧĶ˿cлŜg"],encodeOffsets:[[34779,9692]]}},{type:"Feature",id:"SEN",properties:{name:"Senegal"},geometry:{type:"Polygon",coordinates:["@@΍ٺн̚φDŽРמȦќ˾ːкïШǾҶVДʙ֎ɝԘأֈֽžԹǔӓ̾ɿî͗ʽŧ³қâÙģȃk׿ȲЛV༇–ɥħ˥‚ѻƋƏ٢ވkȬŞƮR̸ȘήǯκcζȌǝʐˡƙʻJͧȸˉ_ȍȥࣵy"],encodeOffsets:[[-17114,13922]]}},{type:"Feature",id:"SLB",properties:{name:"Solomon Islands"},geometry:{type:"MultiPolygon",coordinates:[["@@ɾ˿חN͉ԬԈȯǜ‰"],["@@͝mԧĎǫżÀͮֈƁ˜ǭƎə"],["@@ųƹحܰǫԈ˺@̠ڥʹЗ"],["@@–ǛڅΦҟ̠̿˪ŰĐϮȫېϭȢˉ"],["@@Ǘ³οȒ·Ί¨ƖԈΡͰ˛"]],encodeOffsets:[[[166010,-10734]],[[164713,-10109]],[[165561,-9830]],[[163713,-8537]],[[161320,-7524]]]}},{type:"Feature",id:"SLE",properties:{name:"Sierra Leone"},geometry:{type:"Polygon",coordinates:["@@ɧØ؁ͺѩ҈Ƨ̬Ĺت҆τĬɺƞǸɶpȜǂڦCɺ̛ǼˁʓƈɗṶɴ´ϹϹϛҗ«ʓȩˏ"],encodeOffsets:[[-11713,6949]]}},{type:"Feature",id:"SLV",properties:{name:"El Salvador"},geometry:{type:"Polygon",coordinates:["@@ġȡӡ^̡Ą΍ǘұÀʃǶ~Ů˾ɄǀĢ«IJȠ¾ʜëǸǙʪƇŒœτĴǤÑŘĝÏͳ"],encodeOffsets:[[-89900,13706]]}},{type:"Feature",id:"-99",properties:{name:"Somaliland"},geometry:{type:"Polygon",coordinates:["@@ϛԩד۫۹Mᩧা͍̜̳К̳ҨǾ̖̲҈˚ƹǒΏϜΗкGߊɌࣴĴ݌ʼиÆ̚ƶӎˆKaE΋Aࡑ@ѫ"], +encodeOffsets:[[50113,9679]]}},{type:"Feature",id:"SOM",properties:{name:"Somalia"},geometry:{type:"Polygon",coordinates:["@@ѼĎЊ˾͈FpɵýӧHѳǯ̣ʁࣥЙयԱ੷ܝ௷ܓवধ଩ࡁڹష࠯޳ٕँৱȗѷȍȣӽۚWᵤܾ॒ɰˆբfݠפબšᛜᡄה۬ϜԪ@ѬBࡒFΌLbːhϰŰ"],encodeOffsets:[[50923,11857]]}},{type:"Feature",id:"SRB",properties:{name:"Republic of Serbia"},geometry:{type:"Polygon",coordinates:["@@Ԡȡà΋Ӫʓ˄ȌȸĿșƗƶƥȷȏø̫Тγ͋ʿƗˋĞijƑšϳa˹µƒØĴĴĦȴšKǍƼƑ ŋƆƽÀšŠƯ±ś˧ȩÑèð͋Ǩ˟ĜūŜɟƠȢšŬЄЛ͔ɀτ̥Ë͔́ˉʈȱ͘٢ɚԾ™ҖͣĦˋ"],encodeOffsets:[[21376,46507]]}},{type:"Feature",id:"SUR",properties:{name:"Suriname"},geometry:{type:"Polygon",coordinates:["@@৔ǙĞưڶÔࣚɥѩܟâֹͤӽƥίóϩɉΛӓDzЇđ͹öčʏƘǗ÷ǡҙèԡܴōӄˏBωؐƺѠ¯ȤԜɖƈݲ"],encodeOffsets:[[-58518,6117]]}},{type:"Feature",id:"SVK",properties:{name:"Slovakia"},geometry:{type:"Polygon",coordinates:["@@´»ΊŖш̕ӺǶЈđ؂Ţߚ͓ɷɓǏ͹dzđ࣑ʮ˟»ȟȡЁĿěÄХŽͭ}ãǙ۷Ļ̱ĠёɌċ̆äńŢȂόa˺ĔxþLj¢ÆȒȖ˜žưʢD"],encodeOffsets:[[19306,50685]]}},{type:"Feature",id:"SVN",properties:{name:"Slovenia"},geometry:{type:"Polygon",coordinates:["@@ۜÝъȐܾtLjƘƘUǎ˳ڝɟć͹̇đHɻͣh˷ƎƷƙב†ȈúȫΨĞа"],encodeOffsets:[[14138,47626]]}},{type:"Feature",id:"SWE",properties:{name:"Sweden"},geometry:{type:"Polygon",coordinates:["@@ࠁוƀԥ೹ڭྱܡؓஃײףߦүޗॅ࢑ȝ͍තӋ޿৳ĆӅڗঃˉߐ۳॔ٓஐφӜּۨ˦ন՝ю½ૠղ߀࠰ä̧ͬ˺ಬஂࡀञֈײ߮GɞҶཔƉŬքԸ”૪Щ಼ֱv಑˴͛ฃʃ"],encodeOffsets:[[22716,67302]]}},{type:"Feature",id:"SWZ",properties:{name:"Swaziland"},geometry:{type:"Polygon",coordinates:["@@ǡύӭěԅҖS̄ɰ̀ĂʔʐÒшƵŰϕðω"],encodeOffsets:[[32842,-27375]]}},{type:"Feature",id:"SYR",properties:{name:"Syria"},geometry:{type:"Polygon",coordinates:["@@࿩ࣅऩͬgNŖŶ_ΈȸҠҜ̈́Əͤϗ¨ÿٞȶΌɤȀɤȀ°Ҹ˞Ǐऎɺ҂ƿۖFॴ̀Ґaक़žїԽҡȹĂؗͅ৫ᇵ࢓"],encodeOffsets:[[39724,34180]]}},{type:"Feature",id:"TCD",properties:{name:"Chad"},geometry:{type:"Polygon",coordinates:["@@ĎЄաnDզΓ̶δ૊ੴߌ¬ન͖ၼǼΰΓ˾_ˌ̽ɔȷರࡔҠ…ྑ…ྏ¦ ܥÐϧإɝԯǬȝˡʳĨΏɑΕč̯̎¶Ǯ͕Vӥ̲ʛYȯՏƛэͽ؉ࣹ߅ϳ߹¾ʁûĊ̏ѫ̋Σ͟੓͏ȽȐƓhƹɍۛÙƀɪ˅ׄşΐλƜӷӪǼІϦċʂÐҸSқކŒ֐É֐ͭՠ"],encodeOffsets:[[14844,13169]]}},{type:"Feature",id:"TGO",properties:{name:"Togo"},geometry:{type:"Polygon",coordinates:["@@ڱdzȇ̎ɡՔãкȆݴɁ̬ăڎD؎ΕѠÖˀ݂kŅѵʲʝ̈̋ŽЭǜǥኝȺׅ"],encodeOffsets:[[1911,6290]]}},{type:"Feature",id:"THA",properties:{name:"Thailand"},geometry:{type:"Polygon",coordinates:["@@ݭϬܗeŬڈ݉Káऋґ௯˙ݏÌ؋ն΀ދưܭҶӓԚĭѤѧ˝·ևĵßќۇςƣƭͧ͒ƝжҁӄПЌƏӳǃҲĠԾʚ߬ТࡸҤ޶͟ތ`϶ĩҸ֕ښȩф̄ƺ̮ܶ·ֆՓؘН݆ΠƴϦࣦצœӬθӔȘθʷ´ԍ֨ȷࢭpݫࢰԆʤƧӰzǜَ̊ÍٖڽÀࠥںܷ›܅˙ϛ޿ŦગDž՟ۧȤ১"],encodeOffsets:[[105047,12480]]}},{type:"Feature",id:"TJK",properties:{name:"Tajikistan"},geometry:{type:"Polygon",coordinates:["@@̭ʷࣳƖāӛ࣬Þਢ˗འŶɈާˠĐԜȓ‡͛ŴӍࡿBׁØԻϕύĉ̉ǯͩˠþ۸ʩ¢ĞʲғȐα̇ė͹Żūԇj˕ϩ˯nj؋ˑʱĺӀࡘǹض؟ȨɔφۮŸЌҬˌբ૲ȜǩϵŤɹΎv"],encodeOffsets:[[72719,41211]]}},{type:"Feature",id:"TKM",properties:{name:"Turkmenistan"},geometry:{type:"Polygon",coordinates:["@@ñۼطŠॣݔڣĠगюׯþσƽ֙|ׯӓ݇NjƻרŪ࢞ٽ˶Ɏֺ֏¸Ȇ۾ߊȵ݈ˎؓԎʉӔڱɋď؛ʿհψ˨ॖǪ֨ɻךڅњ¤ॆ\\Əцܖ̂۾ӦଆѹĜڡ͐ǣࣦžˮƳаࡽ०ׇոЃ࢞Щ૤Ϋwԥʩ€Ѕɤſ̙۽NjǙڥӁʭڏŵǫϟهŏࡩ͈"],encodeOffsets:[[62680,36506]]}},{type:"Feature",id:"TLS",properties:{name:"East Timor"},geometry:{type:"Polygon",coordinates:["@@IJȤܢȌז†ˀŀ͆Ľ̯ɫ࢕ο۳ʋeʬďǔ"],encodeOffsets:[[127968,-9106]]}},{type:"Feature",id:"TTO",properties:{name:"Trinidad and Tobago"},geometry:{type:"Polygon",coordinates:["@@ӚŊǮ‡‘صۭġƯúʒɲiͪ"],encodeOffsets:[[-63160,11019]]}},{type:"Feature",id:"TUN",properties:{name:"Tunisia"},geometry:{type:"Polygon",coordinates:["@@ΩພԭͺQȰۉԄóنԮҶȢۚƃߠǠќࣶͺךĵ}ы܊̲ÒljпЫMϱ̆ȽōܫփхDŽқѤaɄЍ͊ſ³٥Хʋʵˏֽ͓ĘΑïΟЧț"],encodeOffsets:[[9710,31035]]}},{type:"Feature",id:"TUR",properties:{name:"Turkey"},geometry:{type:"MultiPolygon",coordinates:[["@@஺͗ঐżܤõলѬࣆ¢ߴЭƜ̑ăУزȻͨʕֻʇˀ५ǏʻҠڧЕƙ̏Ɋ঍ňίŽॗŽҏbॳ̿ەEҁǀऍɹ˝ǐ¯ҷɣǿɣǿ̱Ϡ͈͂ԟí۱ȖֿәౣĥڹҊࣟ†ȗΑׇij߻҄ࣻeӽ࠶ؗҰЦٸՓВठߨಒ’Μྀٔŏ৞հ঒ʄർlุף"],["@@۫ҏ˃Ϻ\\ǦȦĦʺՂХɞࡦ˄ܤőĴ͓ܼ˓Ƶȵি±Ωʷ"]],encodeOffsets:[[[37800,42328]],[[27845,41668]]]}},{type:"Feature",id:"TZA",properties:{name:"United Republic of Tanzania"},geometry:{type:"Polygon",coordinates:["@@ƚġᵂႋÌӣ஼࠿ϱਙ¸Ӊՠ̩~ɓɳԓ¶ʭÇГ̌Ճΐ̰ࠡǿڝӣࣿ͛ԋb̙ʥבsɕŃঢ়ʂكåɽଢ˵ϺǛɶࠗƾӉʨՕƘͯƘΗɈґ੖ӣҺǗӤČѨƯޞΎ ̨̦͜ѬȺǮS˘ǷȐ·ͨʐł¶Ӷͫӄ̎Ķऄ[ႎà"],encodeOffsets:[[34718,-972]]}},{type:"Feature",id:"UGA",properties:{name:"Uganda"},geometry:{type:"Polygon",coordinates:["@@ः\\̍ĵԇʷȯĐPوȜ͎²ڬǰϸ͎Ѭ͔ɠ˒̘͵Ŗ¼চΌɮՖȉڰȠעEԬϮЊ׍İсτ९̧ؓЯ֋ʉͽTࢹႍß"],encodeOffsets:[[32631,-1052]]}},{type:"Feature",id:"UKR",properties:{name:"Ukraine"},geometry:{type:"Polygon",coordinates:["@@̾“ɄȒʮ¥ࢌĆ՞Ӈȿǝêʻڠ£̘ηkǑ੪̏٢Ƅ԰ϿӮVఊ˙XʙͿѯȆҩƃ˩߻Õџɻύڡã֑˕޽«ܣ̻¸ԹЪȭࡨ¼Ǐ̛ँơଛӟұǠȄЂࣽʘƨLjߪ˪ʑȔಯɆË̼ީĻ̷ҧٱةϟƠЁƉϑƺɂĞƦ˾ɲˎÑƮǬäĊśӸ{ɞØƽĎÐŲ̉ɈŧΘ̩ƐÒ˶ϝɦΉŽأʾ֑ĉȧŭΟ@Ƀȟاă˹ŹϷȴ՟HԳĢγǵÍɤұɮǐͺɸɔȀµɑϘބۦиİĜɾхܼДҢɪٲnࡖßबȫڎi͂ŧ̀Ʀɚȝݸ¢ͮąÄцʶȂܞº"],encodeOffsets:[[32549,53353]]}},{type:"Feature",id:"URY",properties:{name:"Uruguay"},geometry:{type:"Polygon",coordinates:["@@ղĚࡆٯ̺|ࡺ՟ڈҫӠֱχЉɸӇεՇॉұاǚғěޥΰ֫ԟҬÞլǾȈS࠸ɤࡺȾڦ"],encodeOffsets:[[-59008,-30941]]}},{type:"Feature",id:"USA",properties:{name:"United States of America"},geometry:{type:"MultiPolygon",coordinates:[["@@ũƕȽŤ|ɾƓ̨¦ĤƤƎÍǔ¸þÜe͐ƙƬñƌőɊ̍q¯͟ǵˏſ"],["@@˭ÑƟǮīèQÀĈî̘āɘŹëĵ"],["@@ĝ҉|Úĸа•"],["@@­µÓŻˆŃȒ’ɤŚêÃʐ˥"],["@@ıĉ˱ƴªÖŸĈȘijȝ"],["@@Ƭңʼƛז½࡬ƅࠂʹڼŊਖɓ˞Tݨʄ߂̧ࠒ͗ں˩ٶˏĈəȢĉ½ĉɦǎĔ¦ȣǜƅɴ@ŬĹĽƫ࢖ЁǶށǚܳʗӹЁҥȁ̍mēĦť˸Ɓɂ@ঊ҆ࡾƀસмfĐ÷ʰƉǒϜƆࠜHޘAˎ͞ŀàࢶ؄ϜƸ౦N໾BĎȺː¦Φž̖Ϣʲٺٚي˨ə֜ƜώʏAଧռӅƢ˝࣋Пࡷ̃ࢱʝѻӿƛȋSѽˤѽΒsė̬ʦȇãʇ֥ƋЗhةƥλ¥ӥ¥۫ʏఀǂʠǃ୳ʥ՗C|ĺʭɷʚǹ׽ؑ٧×Ɏȁª˟ɀǪҍȼƭ^ͅˏ͛ҿڡûʺֲѕ͎įۦljεǴՑևƀׂ˓˜ߛʊÍĖ̃ŠࡁՕدࢇʝցӱнÁэ̱ţ˭इձӁЍЅӽŻׯƪ׍ˬܗώשLεЊঅ֥—͛ȿԡʣŃЯĺƁς͋ȖѻܢϹٞű͢Ǥ֐ɽҦٻ۲͟źࡑϡƭ¦СϼՃȺोŁݗĤٙÍΏſƲɟaͽǴǓLJō̵Ů́ǃ؍€طѺܻĿ؏ȚԹÏۻȝއح࠳γҝБȕϗUׅ¨ЕDŽ˹͝{׭ȂٽʺɽЄȁטӷӐ̃ӰуֺףͲۉgՉڑۣʦѡʪȽҦ˧Ѯӿτїˈ̩̖ป@C΋ڗ@ဩOቿפ౓ТĀǒ੩ĝॕÝƙіխӚϻĴğʌһ¦̝ɪޭĊɉƌĹҢࠁࡊ۩ୠˆȚχˤٯ۴řۆ҃ҞȀۢ…ܜˍ٢͠ߊĸނĺނƱૼˇܘʓ϶ĸǐ௒˷҂ߋȺɜƇې˷ێᛸ@᠂@ࠜ@ᢢ@៚@ᡀ@ᡄ@᭰@ᮞBაAF͔˴J"],["@@࠽͋ѕɐŽЀބ̘҆Ÿ֐ÉΤʻܫЍ"],["@@ԧŽսƾԛɮࠦƞښùĂ͑"],["@@԰DžԾĒڸɛ࠲őéĝُDZٕǾ͋Ʋݍµȧôº̈́"],["@@؊ϛώnjහ»¹ȕ౾ƛࡨČᄚ˅ྤā٨ʼn૦Ǝౢʧࣲŝ@@MᷱIⷍࠠ{ࠌɵהρݜցࠈҺࡈ˖Ҁѡ֤·ޒϙՂ׽࡮य़ේ՗xՋұЙҥ͂ݍˌʃܺએںҍߎ߯Ä೷rটʌ჉ࢎߩDŽ฽̜୑í࿻ϬৃΨटǯǦ׏ҫÁঁǫ݉˱झdzťӶϚࠚࣀʶɱɂੱҵֵ֑௅ױؚСߏ׿ࣗΗࡁʱȻωಽѡ˅ϿছΫֽÞ޷ɻ࡝˹ۧ˫෹ʉſƘऀϾࠔʸࣆҠਬĨвΈ୘ԊȈǚب̒ƢْђӸॹʫ˓Ơҕ̧շюɧ̝̽м࠿ͳԩBïԄƲ̮ե̚થLJ܁ЀַȬIӈ٩Ϊ͘ӘۆҸ̚њںÖ־ƇڴМ؎ï٘ʼƻϨҹưج͖ԩWࢻǽʯȃڏȄஏĥ௷ȬΛ͸੟Ӧ୾ΘመШ۔@ŕнᄢŽڽԶਕ͌ױр߫ΨଽˈҺѲ๰‚ਗ਼ϦȨФ࡬ЎࠊĪཪώޜÉಐ҄ౚǭ"]],encodeOffsets:[[[-159275,19542]],[[-159825,21140]],[[-160520,21686]],[[-161436,21834]],[[-163169,22510]],[[-97093,50575]],[[-156678,58487]],[[-169553,61348]],[[-175853,65314]],[[-158789,72856]]]}},{type:"Feature",id:"UZB",properties:{name:"Uzbekistan"},geometry:{type:"Polygon",coordinates:["@@xԦૣά࢝ЪշЄ॥׈Яࡾ˭ƴࣥ͏ǤěڢଅѺ۽ӥܕ́Ɛхॅ[ᶾᓘӺƾïದ׻یͅߤݵঢŪ෸à৔ؗÙࡅЦMǢۍ੬ɲЉ̺Lπ׺૎הӖƺʠĉ۵խئ́ײȾ়ѷ੽؁ٕĊ΍uţɺǪ϶૱țˋաЋҫۭ ɓυؠȧǺصҿࡗهǰҳN"],encodeOffsets:[[68116,38260]]}},{type:"Feature",id:"VEN",properties:{name:"Venezuela"},geometry:{type:"Polygon",coordinates:["@@yȣӱĭ˜ϡYѭυӥ͆ڙδÆȌ؈ʻ̒§َਸ਼΀řІ̎ˆ̞ןל_մҵ˧ݮQ࣌ĔӖϕٞĻҼʾXɄਨ¼৖\\܉ʛ˼Їڦ×ِЯƆڧѬn͢ȣڕӱó̫˾̷ȽƽԫƉjϱɫɱّ֪Őʁ̭͍ऱ̽׿Žʏȣڛɀثņƿýϔɑ‘֝ŜՉ܆ï°ǭ׷ʅĭΣΉƏسȝNjʱٷÅҧѼʯ࠺ɟ̧̌Ȅюм…ȊʅʠǛ֒à׼Ȉ˰ƲҎ̓Ơӏĩ؁®ͻęסܢӥńઉăȧ̊ȷê‡ǬĴ̶áͺȃȂŅϮѡÈɸӮĺ׶ʔ̸͘ʌɈрդƖ"],encodeOffsets:[[-73043,12059]]}},{type:"Feature",id:"VNM",properties:{name:"Vietnam"},geometry:{type:"Polygon",coordinates:["@@૭ܗ۫ߍȁ׍٠ࢭ޺ળނԱԞګϪ།ŕ๓۫փ१եۇ۫਷ޱ̧ՠʀ֬دӌܬ͸ࢦÔσԚප٨ļ৖ț֖ƶࡀɃצٍאՋ݌ۥ঴৓Ԋʊ̠՞ɘ͙ܺਙPϕކӭڐҊȴڢIࠈĬܒ҄К̿ސƵƃӛАͿࡎɓ"],encodeOffsets:[[110644,22070]]}},{type:"Feature",id:"VUT",properties:{name:"Vanuatu"},geometry:{type:"MultiPolygon",coordinates:[["@@ˣō˭ςŒɤՆӗ"],["@@ƌڱɥŀǩ­ťɴi٢Дʵ"]],encodeOffsets:[[[171874,-16861]],[[171119,-15292]]]}},{type:"Feature",id:"PSE",properties:{name:"West Bank"},geometry:{type:"Polygon",coordinates:["@@@ԣŭʙЃŕ˜ɜɌŚɁĦǬ̤֔ś"],encodeOffsets:[[36399,33172]]}},{type:"Feature",id:"YEM",properties:{name:"Yemen"},geometry:{type:"Polygon",coordinates:["@@؉ɥNjύo˹࠷Οഇϻݩףυ±ʥºӭΑ՗lj۷©ɃµǿɛəÕŻɇеlˍœ׉¨ɓӬzҠƍʜǑتʋΊǚ¤đϨĸNJ™ξςˌđΠɞЮΊɓɬúॺnƸċ߼č͐¨ɂ˫ϺƖ׼ࢦ޸Ϛᝒ͒ڀ൳˞ח"],encodeOffsets:[[54384,17051]]}},{type:"Feature",id:"ZAF",properties:{name:"South Africa"},geometry:{type:"Polygon",coordinates:["@@ǏŧΣяɻћӇ׻ोࢁףԋًϣ࢛͙ѓ«ŇɷԛŰеDž࣫NJԙĹΏ¬ࡿͩܓƃԱͅϡoΣ̚˳fαϒŸśŏɦLӰ˙֞˔ƴs٤ս޼х܈AF׽તДдͪɯƘΫϘÓՈǃҌÖݤіB᷌ɨűӾߙûԟȈ̏׼ĒрϒЊʨȶДЦȚΠķВɽۂ£՞ȜĐʾƨДҚäʨ͂˪֔ݮغஒؤ΂UОƛ˲Ķ҂ċД஁ɔׯƫऩî̟чƶʏÑāʓɯ̿T̃ԆҕӮĜǢώْQȿؑıۥɑϛֵщ","@@νʶϻǟҕ҃͡Տـ٧̜ČƺˎҴƀƜ˜ʴФ̅ʪ"],encodeOffsets:[[32278,-29959],[29674,-29650]]}},{type:"Feature",id:"ZMB",properties:{name:"Zambia"},geometry:{type:"Polygon",coordinates:["@@ІϏɊ܋ƝɩǙڻLjۡ˃̇ʭޭѶɓᢇۗĂׯٍřӍͯĹ̛̅ßܵۓҭխ˳o˗ĬऱĠƯÚOêͧȎկ¶ۋȑչԾ֣یžᦶშYí̂Ű̀ƧЀĪТėʺ̂q¶ʽϾrՖûˬϡڨŝԤˆȌѯ٠ş̴ΧΈҥ٠Që࣠ɱƳח͞ɧƬļࡈƬসȉψʈ՚ɤĶ଀ƚͦđΘɇͰƗՖƗӊʧ"],encodeOffsets:[[33546,-9452]]}},{type:"Feature",id:"ZWE",properties:{name:"Zimbabwe"},geometry:{type:"Polygon",coordinates:["@@ҁČ˱ĵНƜ΁VՙϞٯźʙՒC̒έĞ्ई˃ӢǛƮ͓ڤलğ˘ī˴pҮծܶ۔̜àĺ̆ӎͰَŚÆ̻۬hϴǯǺȻАÓѦˑF੟Ǐ׋—عƊʝħӵŵùɛ؅ࢫ॓"],encodeOffsets:[[31941,-22785]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xiang_gang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"8100",properties:{name:"香港",cp:[114.2784,22.3057],childNum:1},geometry:{type:"Polygon",coordinates:["@@™@}ScTʟ@cWuJÁ–]„l¦RLj¼BĄà˜ ŽH@TOHCTDDDHDNAT@PEHDDNJLX@BABALHFF@DKHADBBLDHHFBLEJB@GDBBFBADDB@@KFAFBBJJA@BB@@FFDDADFF@FADDDBJC@AFBD@@DDD@DAA@D@DB@DHHBFJBBFEHDFAN@DGDC@DLCBDDCFDlAFBFCBEF@BC@GDAB@FD@DZJ‚X´HĐMja@Ý`p_PCZ@lLnRGSDMFK|a\\Y}­ƒ§™Mën"],encodeOffsets:[[117078,22678]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xin_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6528",properties:{name:"巴音郭楞蒙古自治州",cp:[88.1653,39.6002],childNum:9},geometry:{type:"Polygon",coordinates:["@@˜@ÈÒĊanwŎV„™Ȯ¦ͪŃĢ„ÜōȂçČéƐżLɆóĊ‚Ċaʊٱ¯²Um»ˌmÈ»V™ʠţWÑůǓ郙ôƑƒğÆīŎī@Ƿ™wô™˺LÞ¯ƨVǪуšĢ™ȘV°wĢŽôk°¯ƒ»΀@Ȃ»ĸŽǔ@΀ƒ͔ôôLɆó̐ÝɜLɲōͪƒƨóŤK@ī@IU܃ÛmȻţǩÝ˹ÛljťǓǫō@Ɲ²¯VçōKͿŁΗÇţ»ƽ™ɅƑLÓŏÅÅɱV@ÝĊU¯ÑĊĭÞLšÞŎJ±̃XȣˌōlƒUÈ¯ŎKÆƅ°™XÑܱnŗġV¯™óaUƒƧUōŁ„Ñ™±„çɲ¥lĉkğ°ƒk¥˜ƒnğţL¯ÝÝUƽĬ΁lķ°@„ō„XÿݯV»ŹLʉÞɱŤĉó°ÝJ™¦ÝKÝ£ţܙÈĉ@ƒxǩUċƑ@ky͓¹™`U²ĉVġ»ğa¯¥ť@ĉ™‚ó@ŻÛÛJƒw¯nó¯ġWƽʩķÝɛwĉĕݼȭÞķō@ó£Å΀ƑޝôȯÞ¯Ȱ™ÆōèĉXǼó@ݚnºƒĸ„ÞVƜĸȚUʶõˀĵĖɱŎÝĖVࢰӒѢ°˘nϚVˌ™ÈmɼĵŦW¤öʊõʔ@°ÈXVŽ™ènŎȁb¯ǫĉ„±Èğ`ġwōÔğ»mVVށ„Ý¥ó@™ĸķô@ššbX„ĶmV²²`Þ_˜˜ɴbͪȰ„ÞWĸÈŌmބškɲŽÈUÆ»n¼ǬVķĸźô¯°n¦ɄǜÈ"],encodeOffsets:[[86986,44534]]}},{type:"Feature",id:"6532",properties:{name:"和田地区",cp:[81.167,36.9855],childNum:8},geometry:{type:"Polygon",coordinates:["@@ƨ¥šèź٨ΘƑᩄbUࢯÞĕɲōĶĕöʿVʵķșUƛƒÝ„ķm¹Þ™ô@È»ĊWŎçšÅ°ȯȰÝ°óƒÆͿĉ»̽çnƒmɱĵƧºóU™™ƽ@±wóL¯°̻L±Æ¯Vƴķb¯VÇ¥ğ²Ǖbk¥ÇKlÅɱġ@у™óK@™ÇaÝXğţxĉČǫķê¯K@уaŹ„ƑKƒ¼¯Vóaónġw™óÞéU™ġbóĉğÇl¹™aUóğKW„Vůn›ÇŋƑ›ķnʇ»óxĉw™çǰÅw™°ċ„XŽ™„ób±ƒkÈÇJ—ƒm²ţx@ÒݎšŦǺn„ó¼n°ÇbUÒ±¼XĸĠłƽXmwĉºƒzÈÜmnxmx²ĖmҚbnŽƧêUºĊêÆVóĖóUĉ¼ÅĬƑ°ɆƆŻŚlłÞLš¼nĠƒ¼@ޙšÞź@ŎÞ°VšɄɴжϼِ͈Ŏ„"],encodeOffsets:[[81293,39764]]}},{type:"Feature",id:"6522",properties:{name:"哈密地区",cp:[93.7793,42.9236],childNum:3},geometry:{type:"Polygon",coordinates:["@@WnŐÆĶL̦ţºź„lxÅĸƽŚ‚Ʉ—Į˜è@ô²ÞUĔƐńV°¯ĸX¦Ɛm̐bƒ»Ɇa΀šĢ™ƐLˤ™ȘÑnƒІljĸÿn¯ĶaŎ¯ĢĕȘ¯°΂œla¯¥™ǕǔwˤӱlťО̻nŻmɃĕċţUw°WUóƨÅţķ°ýV±óÅǓéʉ¯ƽكéōǖȁÝƏůǕw˹ǫȗǓƧǕVý™é@ĬţLƧôͩ„ɱŎɛK̏ÞɅôóK@²@°ōؚ¼lŦ¯ŰóƜÛlV¼ķ¼ƒ°kȰ™Ű„ĠƒǬ™ŚÝŎmˁ`@ÇÜn„"],encodeOffsets:[[93387,44539]]}},{type:"Feature",id:"6529",properties:{name:"阿克苏地区",cp:[82.9797,41.0229],childNum:10},geometry:{type:"Polygon",coordinates:["@@VƚxˌŎÞŎƒ°n„ȂÒ°²VĊ¯VğƾˍǬƨÞÞKÈÞĊVźôɆÞĢèԐôWȲŤVÞĸʶbl‚¯ôn_VÆĸlmÞnVź_ĸ¼Ȯmǖ„šéĸW°°„ĸJ„kʠ¼Æw°¤ÈƒlxɆzČºĶI²ÆǔUš°ô@Þ¦‚ƒUnUĠ¼ŎÓĢxĠ_²ÇĊƒǬ°ŽȂamōšçUÇW@¯öʓõʉX£ĶťnɻšÇUˋmϙ¯˗ӑѡᩃaΗƒœɜ°xWƴUxɃÒˣ¤Ʌwğ„ʉōóÝŹ±°ȗ@¯„ƃ²¼","@@ō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘnIÇŃÛÝĊÑĠƏ"],encodeOffsets:[[80022,41294],[83914,41474]]}},{type:"Feature",id:"6543",properties:{name:"阿勒泰地区",cp:[88.2971,47.0929],childNum:7},geometry:{type:"Polygon",coordinates:["@@ɲˣĊIÈ¥‚ÅU±Ċýkō°ƒĉƽó»ĶƽXóʵʵ™ȯƑÅȁɅ¯ĉ@ÇሗK֛@@ˤV֜ʵрƒǬVĸƑŎ@ƆϯÑóŽķ@ʇ»ķ¦έmlÈĸĊX¼WźÛÞÝѸ‚ĢČþ„ĀĊôάVö¼ĊUƨ°°èŎČUÜÆóôVôô޲êȘlˌç°`n²ǬŽĊaš™ƒÛ°±kğmm»š@°ÝɆÛÅÇVaݍVm͔ğôÝÈb‚„@„ƒ™n¯š™ÜUĢÑĊ@źīżWŤÈǖWôŁÆI²ÓƨL@ŽĊX„mmÑÆ»ȰÑkƒĶō@ý°m—¯"],encodeOffsets:[[92656,48460]]}},{type:"Feature",id:"6531",properties:{name:"喀什地区",cp:[77.168,37.8534],childNum:13},geometry:{type:"Polygon",coordinates:["@@Č@°ƒĠ„ôÓô@Ŏĉ@Ƴĸ@Ť£ĢlVôWVóřXĉŤêÞ@ƐÒĢÑlèÈV@šĠIk°ÆŘ@ÈÈĀ@ǶťÒğ@š„@ÒĉlŻ_@šƧĖÅĬōÆ@bźÞnƒƒlVœÝĬšWƼʇ„ƒÝÅ@ÇÅÈwWóĉ±ğz‚ĬČƨƂÝIĉݯbÇÑĉƒ¯ʈV°xUŰĊ¤ƪ_ôÓɚI@lȚXȮ™ŎlɴȘ՘š„¦ɲÆʈ_ɴŽźŽôÞʊŎĠƒɆxˤ£ɄÑVwXƳ¯w›ɛŹ٧™çƧ¦ōƒُ͇еϻɃɳU™Ý¯@ōÝŹš™@݄»mğ™»ÝKkŁżřɅƅƒ¯ÆīĊ»ôVôĕÅUĉéV¹ƨém™anѱĕnwmwnÇۄyĉ¹ŹlŏkĵèķmōÞġKñÔċKÅèĉzƒŽ„ômxȗÿƿI@þÅČÝKݰ@¼ÈVºš@Å̚ÆUċłn„ÝÆǕČĵJm£ÝJ¦@ĊƒxV°ƏLċ¼ǩ™@™m@ÅĢómÇÆğ¹Çš™ÆšĖÞKšx„wô¦ÆÑÆL²ÆƾŽU„ޱŚÅŻĖ@ĬŤÈñ„@ǔÇx„Èǃ","@@VÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁVé"],encodeOffsets:[[76624,39196],[81507,40877]]}},{type:"Feature",id:"6542",properties:{name:"塔城地区",cp:[86.6272,45.8514],childNum:7},geometry:{type:"Polygon",coordinates:["@@ήnĸ¥ʈ¼ĸ@ôϰÒ@ƅƒōUķƑǫʶпU֛܃LګK@΋ĸ@Æ£ÞġÅĠċšLV݄»™@Å»Ýnm¯š»nŻĊ@nķŃ@¯ómóÛÝǟ¯aÝóȭ¥ƒšōUmxĉbÇї@›bUº¯X¯ÆƧbVÒĉnǕw¯°ƑŽV„—ŽÇ@kx±Uƒšɱn™ŽÅKƒ„¯ƒĠǠU°ɜL@°ƒxnĬ‚ĀŋŎÇLƒŽğšϱÞέƜkôÅĀǕłƒĸĊŤUṴ̋„¦ȂϰÜɨ°x@°żǠÆƈČVĠ»ČL°ÇšbĊÑ̐óÞlĶwބɆVÞwǬxǪţȼÜLŐĶˢ@","@@óKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°ɜÞʊĠğŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒašƒċƨbš™Vğ—w›ġ¯@Uōa™ĉÝJğÑÆŎkŎÞĀlꃦ"],encodeOffsets:[[87593,48184],[86884,45760]]}},{type:"Feature",id:"6523",properties:{name:"昌吉回族自治州",cp:[89.6814,44.4507],childNum:7},geometry:{type:"MultiPolygon",coordinates:[["@@መL@ȰĊȂɆƒÆĊ£„ťôWÓɆbĢÅŎƒÆ¦ČÑW¥°ķU¯ƏŃVē±Ý@ó—ç˜ĭɃƾřÆķkwʃŤ¹ġ¥ĵKŏÅXmˍщwǓ¤Ƒ@wóōVķ£ɱšġôÛa±Òȁ„óèţIVŽƽ¼k¤ó¹ġJmx—»ÝUƒ²™@ÅÆƒĸǫŎ„ĊmŎǬ՘"],["@@Þô°bÞǠôÜôn@°ĸń˜Ƕkłƒ¼UޙKğȂÆÝĢŤķ@@ΌڬL܄K@ˣȂ˭lĉńW¥ĵVÆý@ŃÞēUŃȗƅ@ŹƩǕĉ»k»Ç™VğóřX™ŻKƏŽċêȁèÛŎġƒͩń"]],encodeOffsets:[[[90113,46080]],[[87638,44579]]]}},{type:"Feature",id:"6530",properties:{name:"克孜勒苏柯尔克孜自治州",cp:[74.6301,39.5233],childNum:4},geometry:{type:"Polygon",coordinates:["@@ˎǫĠƽ°UUĉ¯±ȁÑmƒ„¯Ýōˋō™wUű»ÅƑ°ƒȘ@²¯ɳʇ`ɱŃ¥՗™ɳȗōkȭšșW@kəJóÔƩ`ĉ£Vů¯wU°ʇĊ„ÈÒ°aĊÞÞJŁċƧīĠyĊ²XôÇxÈÆÆ@„ÞʈƒÅ»™XÞīU›Ƒkm„ŹÝ@aŎÅÆīƨĕ@™ż`Ċk@љƒĠ@ŦÑ@ǵÇÿ@ÇÅŗl¯ğJ@™ÇUkçġÒƏÑÝ@ţéWĊôŚUŽóXUġkţ¤ķ@@ƴōĊó@óÔğƒ¯„ċ@@Қ¤kôˣŰ͓„k»ƒKX¯ċwƧôğɐšÒôIVƙš¯UķǬķšnŽ™¼ôb°ÒȰVVÈÞ°ƒĸó¤V¼°„V°²êƒlĢ҂Uƨ¦ôȰƴĊVV¼ǖIċĊ„ÞɜéšnČW˸Ǹša„řÈw±īšçĸ¤ĊšôšwšŽĸU̦˜éǖĬ„Āô¼lÞkÒ°x°ƆÞx„šÆV²ǔ»„b°wގȘ¥°n„šŎV@°„„ʠè‚ŰȂb"],encodeOffsets:[[80269,42396]]}},{type:"Feature",id:"6521",properties:{name:"吐鲁番地区",cp:[89.6375,42.4127],childNum:3},geometry:{type:"Polygon",coordinates:["@@ôK„ĉǪa²¼lÜô@ʠê°Ĭ™ôȂƒ²ÑÜbĢóɲ™ĸ¤ŎUô@xƒŽǔ£ъxˎmƒÈÛ@‚_nĕÞōšř„ǫƒğšůlȯ„¯ĸ»U»Ükôƛ°ůkť™»Ŏŗ@¯@±͓óͿ„Ǔ@ķȁ¼Ϳ@Ƒ¼¯°ólġ¯xȗUġšƑ™ǩÒƧUݰ˹Kóššx@ǸōĬÅĬƑĠ󃄚ǔêÆ°XÒʟŤUšÇ¼ˋnn¼±V²°ȂUŌݜbʟǔɅô@żǬaҎÈ"],encodeOffsets:[[90248,44371]]}},{type:"Feature",id:"6540",properties:{name:"伊犁哈萨克自治州",cp:[82.5513,43.5498],childNum:10},geometry:{type:"MultiPolygon",coordinates:[["@@ĉ„ÆŘȁ̐mÞ¯ĀX°±¼@ƾ¯ƴ°ŎÝþŋ¦WÜÞbȂĉźUœÇmwVUȂóô@ȰÝ΀nÆJn™ƾ™ʠ™ŌLČóǪ¯œ¥ǔaǖšŌaôÝĢLšx„ƒÆLšɲm„™²VlwÈ@˜Uƒƒ°¯ǖxĊmUÑƨa°Å°WV¹œa›ÇɃÈm¥°¯ŹóĸķǫUm»Å¼ÇVɱ™l݃ŋnķÇÝX¯ƒͩÇɳa——Ý`±_U±ĵnWƒ™a@™ĸóšķ™¯ǓV±ÅĵJċ¹ɅykwDޝ£Åxʟ»ƒlķI¯ƒX¯ķ‚™êǕƒȭnķ»Ź`±„kÞ@Žš„Ýô@Þ°xšŤŎIƨÆUxōš¯²ǔĬǬlUŚ"],["@@ÞĀlꃦ¯ĸŤKޙšƒċƨbš™Vğ—w›ġ¯@ţƽJ"]],encodeOffsets:[[[82722,44337]],[[86817,45456]]]}},{type:"Feature",id:"6527",properties:{name:"博尔塔拉蒙古自治州",cp:[81.8481,44.6979],childNum:3},geometry:{type:"Polygon",coordinates:["@@ήƛϲÝĠ™„ÈKŌōÿmī„w@¯ɛKV¯ğǟ°Ƒ™wġKóÞŋbǕ™Ǔb›¦ǩ°ċôŋKʟšƽšmšÅImŽͿŽȯÞó@ȁôUVnx›ÈŹVȁĊÝabŻ£¯°l„óxȂŤĸkĊšÞyĊêĊmĢxV„ƨÈŽĠX„ŽΘÆĠÔź‚Ɇţ°LXƾŤŤb"],encodeOffsets:[[84555,46311]]}},{type:"Feature",id:"6501",properties:{name:"乌鲁木齐市",cp:[87.9236,43.5883],childNum:4},geometry:{type:"Polygon",coordinates:["@@šŽWŽôŚUĠȚl¼Ċ¼ƪǖ@źȘƆ@ýlܚXVŘޙš¦V¼kĖó҃èkĊȁˮ֜@ǫ՗nōƒĉǬō„ķÆÅš@„±ÞV˜¼nwĢIôºl£ƾ»UŤJôçšó¯īʟéó@kÛ±»ǩbƒĊóLҍÇǫb@ŻɆóʠǓ›aŋÞȁVʉłĉbĉɅô"],encodeOffsets:[[88887,44146]]}},{type:"Feature",id:"6502",properties:{name:"克拉玛依市",cp:[85.2869,45.5054],childNum:2},geometry:{type:"MultiPolygon",coordinates:[["@@ɜÞʊĊýVaŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒaݚţL°ķóKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°"],["@@ƾIŤ@UUwōa™ĉÝJğÑÆŎkŎ"]],encodeOffsets:[[[87424,47245]],[[86817,45456]]]}},{type:"Feature",id:"659002",properties:{name:"阿拉尔市",cp:[81.2769,40.6549],childNum:1},geometry:{type:"Polygon",coordinates:["@@nIÇŃÛÝĊÑĠƏō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘ"],encodeOffsets:[[83824,41929]]}},{type:"Feature",id:"659003",properties:{name:"图木舒克市",cp:[79.1345,39.8749],childNum:1},geometry:{type:"Polygon",coordinates:["@@VéVÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁ"],encodeOffsets:[[81496,40962]]}},{type:"Feature",id:"659004",properties:{name:"五家渠市",cp:[87.5391,44.3024],childNum:1},geometry:{type:"Polygon",coordinates:["@@„çôÑlĕU»™¥ÝšUŗ™WkÛ@þVńÝĔ@ńÅþĶUX¦Æƒ"],encodeOffsets:[[89674,45636]]}},{type:"Feature",id:"659001",properties:{name:"石河子市",cp:[86.0229,44.2914],childNum:1},geometry:{type:"Polygon",coordinates:["@@lŁ—ǵm‚ĉ@mż™¼n°ÞmƼš@"],encodeOffsets:[[88178,45529]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/xi_zang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5424",properties:{name:"那曲地区",cp:[88.1982,33.3215],childNum:10},geometry:{type:"Polygon",coordinates:["@@ƨʔĸbܺÞwnxźbÞ°ô@„ĶŽĸIȼĊJŎÈôUšÝƒ¤ǔLސŎ@ĢŽȘblƒôL„ÇźçȤôLš¥ÞIÞ¯Ķxʊťƨ™ƿÑĉXVķŦ¯ȂKÇǕšÑ¯IUš£¯Óƿ£VĕōÞÿÆwƒƑ„£ǖxÞĕ±ÇÝaUÑȃU¯‚UōÈ݃wWŁĵ™±Ý„óĢÿ°IÞ±mÅ̝mÿ„¥°UnÑŤĢĕĶwǬŻͪwŎ¼źÇĢ„Ġĕˎٰóƨ¼Èa‚m@¥°wǔ„ǖ°ŽƨÇŤœšġƨ„ŎŃôbÈÛŎĊ°@Ġw²ÑÞJƃÆb²ƒ°êĊUނlȲƒV„ÈKĊÒĸĉ›»ÅôťUÅǃk¯@ǂÑklǁÅl™Ģ™VÑóƒ@°@„ÛĸƒV¯ƒÇĊ™n¯Uĕšƽ¯m›¯b™È@Ò°Ĭƒbĵ›¼„‚kxķýÇJk£ÝaUÑÅóĶǟkÓʉnĉƒÝ¼Ƒ„ó»Þmn£m™Č¯@ƒȮÿV¯ĸƒ™k@Ýówƒ»ğ„ġ±ǓLō„ƒšV¼Əèķĉ™è±b@Òţ„UÑóakƒl£™Ó@¯L@™ÇlUóȁš¯aġÈÅĕÝLķ¯Ė¯@WĬ—x‚ÒÈnW°ţôU²ǓÓġ²V°¯ôƒǔÝL—ċšk™š»Ý»Ýš¯ÞƒVƒwۄÝÇōͩÈĉċ»ĉm¯£W¥ţKkóġƏW@¯±kōŽÈ›b@җšÇaƒÆ¯a™„ƒkóŽÛƒÇ¦Ýa¯šÝ™ĉ@ǻۄmƒǓxķƛ¯lVĀÅÞġb™™ÇJUÅV™ĖƑW™zō»ōšƒW™n@è¯ÞóVkwƩnkźÇބҙޯƒƒýğÇUxÆÈnè±bĉÝ»ÈуwšwÞ@m»ÈV@ýÇ°ķ™xƒa„ݯXċ¥ƒÈóW@ôkxlnxVÈóĊkŤġ¼@°¯ŰƑL̻۱ŎÝV—Þ›VƒÇÞŎÇakƞ‚š@èğŎĸżšƾ°ÒšLÞôĠKȰĖźVÈÒĠ„¤™VôšŽU„ÈþťL@ôǬÞlÜÈnÇÒUŚ™@šĊƨW°™°Xƒ‚@ČÇþ„ƴĉÒķ¦@ŽĢôWĀôłUÞĢǬ™ź°¼š@ƒôV°„bUÆnzm¤ƽĸƒÈ"],encodeOffsets:[[88133,36721]]}},{type:"Feature",id:"5425",properties:{name:"阿里地区",cp:[82.3645,32.7667],childNum:7},geometry:{type:"Polygon",coordinates:["@@„Çƾķn£myVŃaU¯„ó™@¯»šŹġǫVÝóŁXÿġó@ĸ¥ĊуƳÈý@ċ„Wš¯X¯ĉƧ‚™š@VřÈÑÇmkÛǫÝ@óŦKÇýVƒ™U󚏃£ğÇÑŹUȯĕğLÝó™K¯Ñ™ƽķŻĠō@灙lƝÈbƍÈ݂„œU˜ÝÞU²ō̼ůƒK°ů@¯UK±—ĊƧbōÇmçÈġƒóšÅób™™źóš¥kól™ç™KôĵUƒÅ„VŃķ¥nÅŏm¯¹Å‚™»@ÑǍóxÝkʇȤU¤ķb@ƒ¯ĊÇx¯ĸĉKm°šĀk¦l„„KnĬȀƾÛ¦WÆÅmNJĉ°ōUţ¤UšŎ°šŎKÞłÆ„Ǔ¦ƒÞ™‚™„ř¯bmUÝl¯Um™ğl¯£șwŎǫaÝnĉ̓k@¯™K™šō»ĉn™aÞ»ťnkml™ĸ¥UŚŻkÑťƒĉV™ôó°LôīĠU„ÿĉǕÅz±Kƒ¤„²ō¤¯Ė¯UÝ¥Vĵ™óÈťÝwķșÑk¤ó„™ƒWýĵĕ™„VĠƒV󍃎Ǔ„ķ°k±VU±ţ¦UǟÝřJVљ¥XUċUŎlÛƆǕÆȗƆ¯wŏÞÅ@™šĉl݁óŽƒÒ™nUôńlxólÝôێ±™™LÛôÝL@‚ġ¯X¯ÇUżóa󤛼XÒġŎóLk¦‚ôżĸĠ™¼™KġƆô¦„ÆƑÔĉ͝ImÒ°¦n°¯Þl˜ÝČn„ƒÒšKĠޚĕkƒlýƾťœšôI‚ĖŤÒnƜm¼¯lnżóÞ@Ůó¦™ôƽĖċŚn°Ý°ôÈUƜƒblÞóŽ@Žǖô°UÈƆ°X„þôŽô‚lѢšŽ²Ėm¦°š@¤™XŽĊblܚzkºƒĖmX„šŎWVšóÞn°lĠxȚa°»żLźƒ„b@ưXĠÝȚxĊĕŤaȚ‚°È@„„@èŤ¦Ü¼œW˜ÞkŽÈ@V°lŤkŎ±²¦ƐUšlj°aÈÑŎb̃ŎbÆ¥ÞIȘlššôVÈU‚™šb„kɲĶn„mnXb̼òƾĖŎ@̐ȂÑôÓĠĖʊšĊÔ"],encodeOffsets:[[88133,36721]]}},{type:"Feature",id:"5423",properties:{name:"日喀则地区",cp:[86.2427,29.5093],childNum:18},geometry:{type:"Polygon",coordinates:["@@ĶĖXþš„ôƒl£šÒĸÇÞxÇŦšôUĶÞ¦°V°ĕŎ£ƒ±„£²LÆyĊǖƒĀğVóĬ¯KóôUš‚ĊŦ„lҙżVÆķ¦kšlnŦmݼšbĊmŎ¼š™šL@°„lĊĵÞmǬbƍȚx°¤Ġknš°VÞkVn°aƒŚš‚š„Ýǔ¥ÅƒÝŁōL¯™ōV™Ť£ŎVĊ¯nljƏXÅÜ¥ǿƽmīƒLkƒl¥™ÿn¯ĊL°ķÈw°ĉ@ƑĸaV£ʈȣÞlôwȎ@Қ¼Æ°ºŐnmÆĸ¦UńƃV„ó͚LšèôkŰlĬ™¦Źôššôa™Æ„ôÇĢnèŎÈƨa˜ĉ²‚VLĢ»lţôĉUǂwkmlw@óôX„ÇȦ°WƒÞ„b‚wĸšÈ¯@þÇUn¼Ý@™x„xÇńÞ¼Ċ޲amçÅÇVwĠȄþ°„šÝƒÑÈÝlŹƪmlxôU°Ý@çšm„XŎ™Ŏ¼šyƒXšĕÆUVÈIššĢaÆÝUÿ°kĸƜǔwn„܃ȼĊ@ޚ°™Þbȥ܄ô„lšƒ°b„ÅÈb˜™@ќa‚ǯUU¯Vġš»ƒ™¯aV¯Ç°Å™mnÑŤçǬVǬ™±ĉ¯¥Vĕ¯Ýk£˜ō—w@±ġÛ°ÇVїƒ@ۘa@ČL™Ƴ™„ƒÇa¯¤ÝIĵ¼U¥ƿōķÅţŻókÝóĕ‚¥¯™U»Æ£X¯ġŃÛkݰV°ó¼¯èWôÞĖ„ȎƒŽkĀƧĀówm¥¯JŹÝJݙōVVŁaݐƑ@ƒ˜ğŭǂ¯_ƒ˜ĵ—›VnxŃón›ƒĵxÇĖĉVÝÈğV™Ò󃯐±Żĉ£ķÆÅL™Ljĉý˜ţۃ¯VƒnV¤ÝÈ@°ÅÞݤ™ŰğŁm¦ÝxóKƒ¥ɱÈUĠôêVôÛ¼ÇWÝçĵaō¦óĖƧlÇĢƑŽnŎDŽV¼¼‚ºÛ@m¦ƽ„ĉmm¯ÝKÛç¯bŏłĬ™bƒ¼ÅLmŽ„xť°ÅU™šÝXkŽÝmĉ¦W„¯K„ÒknÝaV„Ýè¯KɅńÝKnÞ¯¼"],encodeOffsets:[[84117,30927]]}},{type:"Feature",id:"5426",properties:{name:"林芝地区",cp:[95.4602,29.1138],childNum:7},geometry:{type:"Polygon",coordinates:["@@‚VÈłVôÈk@š°K@ŽšÔk¤l„ôbVÒŤƒ@ѲašçĸĊƐçU»„™ŎƒǔK̲Ġƒ„¼ôx@ޚlƨĬ„Ul¯ÈLV‚šÞJ„°Ünʊ„wÜbXê‚VÞ¯°ššanaU°wƼɴÑWѰmÈýÈam¥Þ£Ť@„¥ôblÞĢ„ź¥ôxÈÅmݚ™ƒĕŃV»ĉōŤōnóƒ»ÈīķIUƒĠѰġĸLÞ¯VÒÆ‚@bš¼WôÈ@V¼ôóŤKÈÑU»šwVǫżnWÒÈx™¼‚lŦ£ĊōŤx²¯@ƒÆƒU¯šçÆ@„¤°£„é°k°lšůÈó@¯ŤÇÈĉƒkkÿó¥ÝXķљÜ@ÒóŚÝ¯°ĉówÇ±¦ÅJUÒĉĀķw¯°m˝„±akxÝÅnƒ™»lуK@¯lU™¯UVѯóĊ¯mōğVǓƅƒÞƒWÝÈÛ@ƿô¯ÜġzÅþ¯ólmôʇġĊÅUͿřŏȁˋŁóÇˡōƧƒÇb™w°Ķôk¦šÒƒnUþġҙÔkǔķèó@ƒ²@ŘōńĵyƒzġaݤÅIƒ¤Ƀť¦ğѯ¤ķbóš¯ó±ŽU²°¤ČÜVnÈÆ‚„ŚŎ°ôĢ„þÆzèVĀǎĀǘƒXŹÑ¯¤ówċķk¦šłUÒġzÇ@ƒ™ÆÝx@²Þ@Ƥ„Uô¦Uš°x„U"],encodeOffsets:[[94737,30809]]}},{type:"Feature",id:"5421",properties:{name:"昌都地区",cp:[97.0203,30.7068],childNum:11},geometry:{type:"Polygon",coordinates:["@@™ŽVĖm°ĉš„ÈU°ķ„ƒÜ¯@@ô„UÒġškš‚ÆkÈlށÒ@Èl°È„VÆóŦƂœ¼‚a„ÅĢ™Ʉwnōw@¥Ŏ¦°ŹÞmVš°wnÿƒw„wÝw@¯šmÞŗ°wĠ˜ĸkÞğlĔ²¦°@„ĕĸwVóšal@nĢÇĊn°@¦šŽźUXçǔůĸVš™ÆK„ÈÝĠš²ÅĔô@lšŽÈ_m˜„zǖl„šaU¼ôwV°¯¦‚ĬÈa„l@Čǎ„¼™„nŽ˜I„xô»ɜ@ƨ¥ɆŁ„ŃǪȁkƛƨȍʊȡóĭ›@—ÈÇVƒůރĸƅmēƨť™ÅÈʉVǵ°ġVŭÅɧ°ÿnɛš£mƒķ²ŃóÑUĉ°mÇ»¯@mxUèţ°ȁÝç„ġU¯ÆÇţÈ@°Çô™Ű¯k¯lƒê¯¤ƒ£Å@™èV°Å„@„±°ţwĉŎť¤kš»ÇwXÑŻmUǬ™xV¼ÇÒţLóôU»Ç@X󙻂a@ÿŁUÑݰķK¯ĢğÒV„ĸJÇĬ„¼môţŎĊŎU¼Æ„„Ė™šnÞÇÆówʦġƒkÝóaƒ¦ţ@ݤn¦ÇbÇþ¯nXÒɳÒÅ»¯xVmb™b¯™Ý°UWéÛaƒxʉÛmƒ¯ÝI™‚UÇKk°ƒVƧīķ„U°ȭĀ@„ċ°nšm¤Ýnô¼ƒƒÞ»Ċ„ʊmlÔĵǠÆôVÒÞbl¤ÈIĸþlwƒœ»ĶŽ„a¯ī@њǰanœƾ°"],encodeOffsets:[[97302,31917]]}},{type:"Feature",id:"5422",properties:{name:"山南地区",cp:[92.2083,28.3392],childNum:12},geometry:{type:"Polygon",coordinates:["@@°ÞU˰¦²ĊôÇÜLǖĀɜŽȘŰÞLĸźêÞ@UÜUŤ°ɞ¯Ü„°WŦĀmŎ„¦ĢyVљŁl¥Čĸôx°£źÒ„Wȗ‚ÿȍUÿ‚çÅyƒýóġō¯ƒřŁmÇÛUċޝ£V±²°ôô™ĸa°£ĠÒŦ¥ɄŽ„£ÆJÞ£Ģb„yĶzŎŃ@ŗ„±ô@ĸçlǓšÓĢÑVý„m™Ñl¥ĵó‚¯̻̥™ƛǫÝһÇƧĉyţ¼ҍēVĶĉŎ°ĸmšÞVÝĸ™ÒÛaċ„ó™ŹĖƒèÈÈl¼k¤ÝX@`ސŏ¼Æō¼ÇçĉKUÝÝ£ğ¤@¦ġl¯Òġĉ¯óš™móxÝÞğVšƴċK@—b@ܘ„UÒ¯ÈĢÜ@²˜x—Ŏl¤"],encodeOffsets:[[92363,29672]]}},{type:"Feature",id:"5401",properties:{name:"拉萨市",cp:[91.1865,30.1465],childNum:8},geometry:{type:"Polygon",coordinates:["@@Ŏ²l@°‚XĢƐlôŤLX¦°¤ĊnȼÇĊŎͪÞÈ܃„x„U°Ýޙ޼™¼lšČ™˜ŽÞK„Ǔ°óU¯Ģ±ǔÔV±ŤóX¯ÇmÑ˜wXī°@°ĕĸÞKÆĖĢǰbȂ™ÇفUƒV¯wV™ó¥ƒVÅ£Ý@@±ÞwšÅ‚„È@ƒ¥nōťÿ¯Xۃɝ°ţ¯ÛVVÝ@ŹéķÝKȗůɛǕÿÛKóÈǫšǫUţèmҚn¯Æ°ÈU‚°b„š™¼UĢV°°V"],encodeOffsets:[[92059,30696]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/yun_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5308",properties:{name:"普洱市",cp:[100.7446,23.4229],childNum:10},geometry:{type:"Polygon",coordinates:["@@U‚ô²‚a@޲²Ķ¥œV°šĶ²bl¤kVxl‚@œ°‚ڲ@˜„„y„@ô¦¯„@xƒxVxU„VššbVšÜm¼Ŏ„„ĢmºXXWÆ@œšmŽmXU°ÅÒm¼Þx°w„@°‚XêĠ°»nV°U„l@k„@V±ôī@£‚ƒČŃÆ£„KÞý@¥‚k@y„a@—nWV„UVƒšwƒmƒ£Jƒknm@wmkn‚X„˜šX„¥mUUlUnbš¯°ŽnkƒVInlIUw°n™mk@@mlanXlanmšk@wVWUw™_@éĠašnmUaÜ£ƒmXƒ¥¯@@„óUmݯ¯ÞÝlKnxô£š»„»Ġ„J°aV„UÝÿV¥ÛbƒI@wmŽón¯yÛL@ƒWkŎmș`IWa¯K@¯mUnmaXm™bmak„¯ŽƒĢ™ÒÝm¯mV¯KÇb¯KۜWW™X@a™V™knċLUWV™kXóW@k™a@ƒób¯Uƒwmb¥UUlaU¥U£ma횃KXkƒmÝ@kwmѯk±ċbUUVakaġ¦ƒƒkL@`ƒœ™a¯xƒm™Åƒ™LUWƒ@ċnŎUV°LkL@b°°@¤š²ƒ‚šnôôk„l°kè›ÒÈzV¤È„WôôƒnV@„ƒ¦@¼Ux"],encodeOffsets:[[101903,23637]]}},{type:"Feature",id:"5325",properties:{name:"红河哈尼族彝族自治州",cp:[103.0408,23.6041],childNum:13},geometry:{type:"Polygon",coordinates:["@@°°nÞôV@ƒ°@„¦WŽ„nÛ¤Vbmn™ğb@êš`VxUX@xš„ÆÞUnn˜WÞĸ̃šÈ@ŽÇè@zÛÜWšÅêlš²„˜KnV¯ĖĊx@bk@@„°JÆ£Èbl„nnm°nlUkVUUwVm„Kn„‚nVŽÞxVLX¥laX@@xl@VzȎVmšk@b°šÈĸmŽV¦`W„XšƒbUb‚bX¼°x@ašVVkn@lþnXUlVxŤÅ„y‚IUƒka‚IŎĊ@lXx@b„z@‚ô„ƒ¥„_V@l‚n@„ôy@al_l`nmƒÈ»@kƒmXwWK™U¯»™a™Å@wƒmUÝKUa™UUƒ™wWƒ@w²»@kƃV£—mm£VKkÑV@@»nwƒ¥™ƒ@kƙnllIVlnLVakalknJšWmnaUaVÑVVލn¥m@ƒ„¯Uÿl™@™™™VçƒaXaV¯UyVLVkš@nJlšXLlŽkxlbla²Òl@nVJVkšx„KlkUaVķÝÑU@Åm¯@±™Uó°ğńķĠmU™Ñ@ǯ¯Å¼@nml@°¯¯`@w™£@¯Çƒk@ƒ»nmċ¯U»™I™Ž¯LÇĶÛn@bó°™U›šwmޝ„™Umǯa„™ƒ™ƒI@ykIƒVUޝbƒIğŽƒ¼™¼ó¤mwkLÝÞ"],encodeOffsets:[[104243,23429]]}},{type:"Feature",id:"5326",properties:{name:"文山壮族苗族自治州",cp:[104.8865,23.5712],childNum:8},geometry:{type:"Polygon",coordinates:["@@šwô„š@²¯maUmôUÆxš@Xš˜bÞInlVUVw„JVaU„K°¥„xmÞXnlKlnna°@ĊČ„ÆwUmnkl@°ƒƒ£nyn@VV@Vak™ƒ@@kÞ݄bmx°Vnw°klÞInĖÞVlKl™@Xa°„„KlV„U@šJnx‚U@ÈĢbUKlm@ak_‚wšanWUk°ƒl»„k@Wk@lwU_ƒ@UalóU¥ƒÇnƒ™kJWƒ@mVXx±bƒK@nV±a@™Åa™£ÝK²ƒWknamKknǏk¯ƒaV™™V¯ĀƒU™„™Ò¥ƒI@mm¯¯xōW@@`k@ó»ƒUU¯lm£ÅWlĵ„w@mmwÅmWU@y±U—xmwU„¯Uƒ¥Ý¥¯£m@kŽÇVUV°VbklƒL™wUlUIm‚k@±ÑkbkalwkWKk™mI™@UlUKVzU°Wb„bU蚚@škšVƒ°@„n‚m¦ÝŽUUUÒVbmbXn™‚mIkllbUbmKUkkJmkŚ@lš„„¦mx@¼U@lÒULn¤˜nU¤Å„@l±¼@xX„šxV„šVVbÞLVŽ„n@xšÆšb°¼šV"],encodeOffsets:[[106504,25037]]}},{type:"Feature",id:"5303",properties:{name:"曲靖市",cp:[103.9417,25.7025],childNum:9},geometry:{type:"Polygon",coordinates:["@@ȦlKÞĕUV¯Um¯„ÇVUnVVUƒĉn™ĊÇƾLn°°È„JÆw„@lbÞa„¦V„XJ°¯W¯„aÞJVkUša„ƒ@lKnÅmWUk¯a¯»@m±@уkkbWWX_WÓU»_l™kÑm@U»m@l@IWċn¯l@VanV„UV™UVwVx„KȄVmUē‚@„ƒn@VÝÆL„w„VVwnVlmkUVÑǰka@k™ÿÝaÞUl£™›—ċĕX±±ĉƒa@UnVnalónk@wl™UVmkÝJ—aW™™@ÅwóVVnnb±°™@óƒ™xXLWx„n@lǼn„m‚k_k`@bózƒ‚m@kU@ƒ`„¦óƒ@nWš@ÜÅXWw@ƒyƒb¦@ÒlnUb@x™lܐk‚@²Ç@Uƒ¯bmy@kV@bƒb„¦U`lLVx@b—Ll¼Þ¤@„°VVބU@WސUb›J@nnš@lnnm„šxUŽƒUUbƒK@šÇwklkUƒVWakn@ŽlbU@@„ULVxkKUn‚°¯Ò@¼™„kmƒ¦m@kl™Ȱ@lU„l¦„@Vl°wšnnþĊUÆbUx™b„ŽV„šĖU°„a‚nnašV„al@@b"],encodeOffsets:[[106099,27653]]}},{type:"Feature",id:"5323",properties:{name:"楚雄彝族自治州",cp:[101.6016,25.3619],childNum:10},geometry:{type:"Polygon",coordinates:["@@mҁXU`Wnšš™@Xl±¦š„Uxnbl°knmKUx„„ƒxVôUx°¼ôÒȄ°JlnÞKĠœW°¦ƒ„Vx²JVwš_°¥@UV@@wnymknK¯I@‚™²b°ƒš£V¥šwU‚V„¤nLškÆJÈwôô°„l»Č¯ƒġVƒUU@@ƒ°ƒƒÝXl@U»°Å„@U„¯@w±¯VmUUlm@m™„ÑnIVyUwmak£Vwm±—@Çw@nƒ@UxkwlÇnL‚mkř@±Žk™ka@kóJV¯Ç»U£lw¯™Xalbl¥¯UXƒ@a˜™UaÈL@ÇVIVƒkaU¯mm™akLWkUJ¯Umxnšƒ@ƒkUx¯xƒ„mWÅīÝkkbƒŤƒbkxWmXwWk¯wƒKkƒƒLŤċń„@¤óĬU²ƒ@@lƒk¯VmU¯¼@xV@k°l°kbUš°nm‚VnUš@°„š„UVèރÆbUÒÞnU¦›V—¼lô„@Vl"],encodeOffsets:[[103433,26196]]}},{type:"Feature",id:"5329",properties:{name:"大理白族自治州",cp:[99.9536,25.6805],childNum:12},geometry:{type:"Polygon",coordinates:["@@lbœKVIUa˜@²m@b™xôÒÜxXLmbnšl@š„„K°šš¼k„Uô‚xôlV¦nJ„Uš™Ænšm„@šx„ÆwšbXšÆôô„LUVwôK@wlmšaVwœ@WknmƒIUmlnJla@_™@kÝmKUašÑm¯Xw°aUaVl»²JV„bÆJkôͲVVk„mšbVwUó„wƒƒVwnLlmk¯maVw™ƒ²¥Wkš@™™XmV_‚WnÑUkƒ@k󘻜UV¥ÝmVÑÅa݄UçƒVƒ™@¯V™Umn¯mV™lak¯l¯U@@wğŽW鯁ƒ@¯xÝw¯š¯Jċa¯U¥mLU¤„bÞȤƒbÇLWUwmIUVW¼kbš`U„Vb¯L±ĊÛkƒÿÝKkwƒKţê™UĉþƒÈƒV¯ÞVbUްKVšk²Ý‚mI—ƒmV@kƒm™UkšVxm„¯KXÈķJU¦V°ULWxšL@môƒšb@bkx±LnVUŽVLnkÜWnwlLŃmW@kkJU_ƒV„šWĊ„Þ"],encodeOffsets:[[101408,26770]]}},{type:"Feature",id:"5309",properties:{name:"临沧市",cp:[99.613,24.0546],childNum:8},geometry:{type:"Polygon",coordinates:["@@‚xĢ„l`²X°ŽV„šx@x°Þ°KXašğUњW‚bnIl`X²°b„xl°„„šV@xVxk¦mb„l@xšXV‚ÆzX¤™Æ˜k°„kx@lźêlaX»VUnJVx‚XÈK„aÝȣƒaV£nKV¦°‚Čb°I°™n»ÆÑV¯nWn›™@ÿXÅWWn¹ƒġōƒn»‚ÛU™™aU™VƒUw„w@w°ƒó¥ƒ@ƒz—ƒ±@ř›¯@kUwlk£±aĵޝ™›Uĵ¦±±@bó±VÝ@ó¤ƒw¯I@mńóm±XޝIólƒK@š°Ullb™zkKlln@@ԙºƒUmVk²ôҙx™ŎUVóLƒb„ŽmÈnŽmbnl‚a„x@z„@Ǝ„¦kš"],encodeOffsets:[[101251,24734]]}},{type:"Feature",id:"5334",properties:{name:"迪庆藏族自治州",cp:[99.4592,27.9327],childNum:3},geometry:{type:"Polygon",coordinates:["@@W™Xwƒ™@akk@y›—k°īX¥›Uóķ¯w@n»UaVaUۃ¯ƒmV¼k‚™Þċô@n¯xÛÒm„V‚¯Ô@xƒ‚@šk™wm™Åa@ƒUa‚݁¯VŃyV„a@ÿšn»ÝVmank™mmÞÅôƒ@n£±›ğzÇmU¦™Vm„nÜmbn@°nV@xmzÅ@mºV¦k°ln¤š¼õô„n@xkƃIUxUš@Ťƒ¦VšmVkmkXW¤XzVx@ƚx™¼ƒÞ¯b@lVš™ĸގV„m¼XŽm¦V„ŽÞ@Ǝš¹Vón¥ÆKn„‚KX¯x@èĊȱłXšaÆxnlV@UÛlȻkğV¥„m²ljmÅÞĕƒƛm°„ÆmX¤mznƃŽV¦ÞVVb°bnÞWbnްl@V„È@„‚VĵĊ±@ó„InxÆw„¥@£Þ›W¯ĸ£UƒUK‚ƒk±akkkbmWmÈķ„aÆÇU—ȃÆW@wmknmU¯"],encodeOffsets:[[102702,28401]]}},{type:"Feature",id:"5306",properties:{name:"昭通市",cp:[104.0955,27.6031],childNum:11},geometry:{type:"Polygon",coordinates:["@@mƒnK@wmƒUř¥mšóXǓŏmX@Ž—VƒmL@xţ™nk@mlUšŻÒğŋ@ƒL@mmLkm™š@b™XŎW¼ka¯lÇŹ¯aÇ»™ÝÝ_@m„@@a™@UklwUm@ak@ƒb™UmbmƒbV¯™ĕUƒƒšaVwÅaĉVmý™m¯xUkƒ@k¥VƒUXƒ¤VÈm`@„—ńÇÜ@Ākn‚ĔkƞÆĠ„™Þš‚U„VôƆÞI@ŽUxƦn„l@ĊĊnxUÒ°¦Vb¯WUnWށIml@xn„Ubô¤‚¼ÈxlI„»šKVš„@ÈԂJkšU˱ÆVb@nœ„VÜVUVƒšL„wĠl„kn„Ġ@nx°¥Æ„²mUwƒ@m™mÅUl¯UњÑUm„Lll„Il±š@VkwƒW@w°@U»™kUóI°ƒ„»ĢтL„™š`nUĠ²lm„bôV@n„JUxƦX¦l@š‚ŎUƒV„@lV„KVřV£UaÞU™ƒnW@¯VU@ó™"],encodeOffsets:[[107787,28244]]}},{type:"Feature",id:"5301",properties:{name:"昆明市",cp:[102.9199,25.4663],childNum:11},geometry:{type:"Polygon",coordinates:["@@n@Vk‚VUn²°@xƒ°Vƒ@¯ÆV¼k@WŽ„Þ¯„@„@‚VVU„„Ģċ°k¼V„Ċxœ¤Ōœx°mVkƒÑȏšL‚°„x°Xœ°VmĊLVxU˰bX¦VW@kšȯlkn@„¥lnšƒ@»°Ñ¯VmlLUwVK@ƒV@ka@lmXb„UlVlkÈx@™„LVa„VV™wnƒmm@km™@mœIVaݏ@XƒVUݯU@ƒÝ£k»˜K@aUwkKV_ƒ¥„a@alU@nz°aV„È@@±lÛšk@wVakm@т¥„a„z‚@XxÆW@ÛX™@m@ƒy@aWw@kōĉJlbV„JƒzţÆUwVkmWkým@Ul™U@b¯wVºƒU™VUêšĠƒXUaUbVĊUŽWXUmkK™™WnUUU™V™ƒƒVV™Ý@kk±‚™¯ƒƒLkƒš±WkXlVklƒ@ƒwXbmLƒ›VUIVmk@Ubma@kkaVKUƒ™kmlXLWn™J¯ÒĊ°@zkºlLUŤn@@n›ô@lƁnmKkÈlxVw„@@mÈx˜@n²Uxl¤nbVxUzmJƒÒnš"],encodeOffsets:[[104828,25999]]}},{type:"Feature",id:"5307",properties:{name:"丽江市",cp:[100.448,26.955],childNum:5},geometry:{type:"Polygon",coordinates:["@@l@™„@w°ÓUnƒÜѰw@mČóšÝlU»n°„„VÜUbVbm¼@ްxôĸœVW¦¯Ĭlœ˜@zll@b„šWxXš‚a„X@ÆĠÆaXwl@XaƦn¼˜Jn@mnKW¯È»V¯°ak™VanXVwl@VyUĕVU„bÈīlaUk°ƒk¯lƒ²V˜Ukƛô@ƒ„I@mVwĊa„™ƒVaka„™ÆbUŽVLšaXIWKUw™ƒ„aWÑÅKUaVk°ƒ@Uw„ƒ¯¥›XğÝLkm¯Iǃóѯ»™aƒnUl±UĵÿlóÅIƒaU‚±Ik¼UŽVb¯bWxn°™ÒVbnLlޚ@@`kbmIkŽVn„JmnXl›@Ux™bkn@xóLUxVŽƒKóóŐW™™aÅxƒŽ™wƒ@™nÅm™šƒV™„ƒôX„ƒLlVU¤ƒb¦m¼™Ž@ƒbU‚„zUƂ°ÞVb@„Æbnššx"],encodeOffsets:[[101937,28227]]}},{type:"Feature",id:"5328",properties:{name:"西双版纳傣族自治州",cp:[100.8984,21.8628],childNum:3},geometry:{type:"Polygon",coordinates:["@@l²°ŽnÒlxÞ@„nWl„Lĸ™nbV¤V¦kbVV‚¦na„x°Vôa@„šb@lôXlWUšVXČKlmššU@bšWXXܛ°LÈa°LnU°‚ÞnšÑ„ġ°lƒnbšaƒ¯¯KWƒœó@kmK@UšĉV@k°„VV¹„a@y‚_ċl_nÓlL@anI@ƒóWl£VU—ƒl™kĕl™šKVw„U@™kVƒam¯ÅL@bƒ‚Ýk@Vn„UbÇbÝwÅ@ċ¥¯lk‚¼ÅŽ™Ò°b@¦nlUn@ŽÇV„mƁbWôU@ÝÅōm™¯ƒaU™™mk™WWw—@±ƒ™n¯U™è™a™Lƒ¯mƒL™škwƒl@°mnÈÒ¯šów@V™xƒĀU¤°Įƒ°Xl"],encodeOffsets:[[102376,22579]]}},{type:"Feature",id:"5305",properties:{name:"保山市",cp:[99.0637,24.9884],childNum:5},geometry:{type:"Polygon",coordinates:["@@X°„Il‚@¦ƒŽÈ¼m¼ÞaÞÅl„ÈxV¼šlVôÈÆlLޣȺlkUƒ‚ƒUw„¯UĕVwĊ@n¦mlnVĸIWǰLnƒUwl™šV„n@lnU˜„nJށl±U™¯LVUa°Ý„U„ÇĊýšVŤé„LlxÞL„ĀÜl²ĉ°KUaVƒ™_Źé@klw¯ƒlÅ—šW£ÅyU™W@wƒknal¥Uw@w™Uƒƒk¯ƒw¯aW±k_mJa™XVҙĠWb¯L¯Ý@w™wUƒ¯±Wk_ġƒwƒwōKmb@¤„bk°l˃ô„UJƒšVnÅlťUš¯°VbnbWxX„m„ÞššWUĀ™L™yWzÛKmbUxVKkn݃kŽVšĀċ¤Ux„@ޝŽm@ƒ¦"],encodeOffsets:[[100440,25943]]}},{type:"Feature",id:"5304",properties:{name:"玉溪市",cp:[101.9312,23.8898],childNum:9},geometry:{type:"Polygon",coordinates:["@@l„„L°xXlWxXnlw„a„ţlaÞlÆĬnX„ƒ°wVw„l„@m™nw°VVIXllKšbnnV°lbU„UJ@ÈÇKVb—š@bW„°Vk¦kaWb°škxV¤È¼U°ôI@llblš²š@‚@œó@mm@VţkKl¹@yĉ¯°ÑšIXmWKnkšlV„ULlb@lnbVal@UnVJœU‚„nKWa„x„@lkkUlW²X„™‚l„K°„šl²@lšÞUŽ„U‚„UšVšVVXmššlLVnXWVUĉVaVb„W™ğVéšU„VU¹W»aVa„aW™Xƒ‚_U¥nÇ흙@a™lUnǍUyk@@wW@kbW¦UKÝwUmmƒƒLUnVxUVVlk¯mmnƒmkÇaŤ¯I@ƒl@@aĉw°ĕmU—L±ƒk™ÆéX™ÜÛ@yÈç@™Çġ„Ýķ—XmmÝVՙƒ™lmnkbmWkb@nl@nŽmš¯VxkJmUJ„ml¯™°makVVnVƒ¦™Wƒ—Wmnl@xmn„l‚I„¤„n™xU„ƒVUŽmX@˜ƒb@zl@¦Ýþ"],encodeOffsets:[[103703,24874]]}},{type:"Feature",id:"5333",properties:{name:"怒江傈僳族自治州",cp:[99.1516,26.5594],childNum:4},geometry:{type:"Polygon",coordinates:["@@WyX£lWlnnUU™„¥@ţV™Vw„JlÅ@wƒmö󙻂£kml¯U¥n¹Æ@ny@wmU@¯mnamÛnƒšUV¥ÈnĠy²œm¤„@ÆónݚnmlnbÞU‚¥„aV£kU„KWƒ„óšƒmIU¥ókwVólƒ™»¯™ƒL™ƒk@m™naWKÛwóњw@a±n—@VbUJ›LkaƒÝXĉƒ™„UV`lI@lnXÆƑkKmxÛXmlUKVmU²Klw@a™aó„@n™KXwVKU¯V¥mUnkm¥ĉ@UxV˃°Vx„V„klmޙkKWĀkVWšnl°Lnm@°ŽUxlV@nk¦™JVȰŽVÒ@nX°@ÆlUômlnôƒ²nxmłnVV„¯x@Èm°XblVUšl°@xkXU¤WXX‚W„Xƃ„mkÅJmށw±bƒxUīkKmÅVUĖÝèV„kx@š›lX„lnk¤ƒLkŽ‚Ėk¦‚xUššL°‚¯Ė@LnK@b°xVI„¥Ua°Ñ@»nm@¹‚KŎÞÈWln²n"],encodeOffsets:[[101071,28891]]}},{type:"Feature",id:"5331",properties:{name:"德宏傣族景颇族自治州",cp:[98.1299,24.5874],childNum:5},geometry:{type:"Polygon",coordinates:["@@„¥n@°@ƒVwČ£™ÿUlÞ„lmULVwnaÜLXyšzšKVÿ™XݙnƒWƒXwmaUa°¯V™ŦŽÆkUm„™VIƒ„ókĕl¯ƒa@£nama™@¯m¯œó@óyţbġkÅm±ÛammVkƒLwU`Wk@VƒkUmŃlUUKmbkkUVUwƒ¦óް¼šbn°ô¦lºƒz@xšŽ¯„™@UްnƒšU¤ţU„°VƆ@ÈmlnzÞl°¦Æa„xUxƒLkxWƒn@‚š²ŰšW„™‚@°ÈXl°Llx"],encodeOffsets:[[100440,25943]]}}],UTF8Encoding:!0}}),i("echarts/util/mapData/geoJson/zhe_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3311",properties:{name:"丽水市",cp:[119.5642,28.1854],childNum:9},geometry:{type:"Polygon",coordinates:["@@@V‚bVl@Xn‚UXƒKVŽ@¦nxlUXV‚n„KVmnL‚UV@bn¤lLXK˜²„`nnlJXIVJ‚I„Vnn°KnnVll@VLXWV@UkVaVK„zV@„ƒšVVaUK@U»VUl@@WnUUƒ@wVLn@Vwl@XW°LVbn@VU‚@X„l`@XnKVbkl@XVJlUnlV„„xlL@lnXl„@VšUnV°°„@a„UVLXblWVXn@VVUV@Lš¤VLV„U‚VbnalLUUVX_laVa„WVzXKV@@a@KUmImmXama@kU@yVIUK‚aVa@kXK@aWU@VIUmW@kkVm„Uš@VwUa@K@k@Uƒ`@kUKVk@UV@VaUm²Vy@klUUWUkVmUa@_ƒKVaXa›XmƒU@mUlWkaUXƒ@mmkL@w™JƒnVVÅbWKXa™@@I@aƒJUUÇ@V„UL™W@akLmb@K@a™XXw@mƒVmUVkUy@£@aU@@VkUWm@kUKƒXUWU_mW@wkkmJUUkLWWUXƒW@IkJ@k@mW_kӃ_Ul™Lƒm@I@aUa¯m@kƒa¯LUJƒ@mVVxUb™a@LUKkXƒbm@Uak@@a@Um`ƒIUbUJ@nUVW@@LnVV@lšUbVlUX@`š@blXklW„Ušm„Xlm¦U@@V¯bml@š@nUb@llnn@VbX@lV@ŽUVULmU@JVn„bVbkb™VWxU@@nUVk@"],encodeOffsets:[[121546,28992]]}},{type:"Feature",id:"3301",properties:{name:"杭州市",cp:[119.5313,29.8773],childNum:6},geometry:{type:"Polygon",coordinates:["@@X@l„°KXXlW„b@²„`šššb‚I„šX`l@„@bWl@n@VnLUV@V„@°¦@šl@XVlU@š@xVbUb@Vkb@‚@XVJVz™J@Lޚ@VmLUxUJ@LU„Vx‚b„xXUl@VaÈw„b‚aÞa@Vl@XUVx@V@V„LlbnV„al@lb„Vnn‚LnKnL@VlbVJXalIšb@KUU@mVInJ˜„U„Vl@xUšVLnUš@UÞaV@lkV@UanK„L@UlKVUnbÆmn@@nUlVnVJl@@UXU„L@WVIVJVxVLXV@IÜKnbn@V¥V@@I@ƒƒ„y°b@UUwnk°ÆƨVlUšçXm›£aƒÇ™IkVƒ@WV@@aWIUWUIkb@WW@UnƒK@UU@kaWVkƒVIVVnU@UWVUV@VmVkKkWIkVWaULU`UImJUImm—U@ƒƒwmwUV™IUWVkUamaU@mV—kƒb@KVU@aVU@anKULVJ‚U@kÛU™JUV›kkƒVakU@ƒaVwkW@UWkXmWaULUaUK@XƒJUUmƒVU@UVƒUkJ@ImwmKU@k„@lU„W@@akKm„kamIkWl_UwVm@UkaVUUaƒ@UamakbWlkL@aUalU@mkL@U@U™lmK@XkKm@Ýakb@xƒnXbƒ`ƒnUUU@›™U@™wU@@ƒmKkkƒV¯U@lULUbVbUb@V‚a@L™ºÝb@bLmK™x@VUL@bk@mxULWl"],encodeOffsets:[[121185,30184]]}},{type:"Feature",id:"3303",properties:{name:"温州市",cp:[120.498,27.8119],childNum:9},geometry:{type:"Polygon",coordinates:["@@ll@xnXV`VX„WVL@lXnlV@UV@@b@¤VzUlnV„U@nWxšW@b@LnalK@bšXVKUƒÈ@VV„I@b@Jš@WbXLÆaUU„mšI@xlKnn„@VWlbkXV‚@n„VWnœ‚WbUb„L@`VbUnVlVXkV@lUz±‚VnUbU@@VUlVL@l„_@V@l@LVbV@XLV`VÈlxn@lU@aœaVV‚k„@XJ@nl@@LU`°LVb„L°a@a„UVy@anI@a„a‚nV@²wÜJX@VšVV°k„na@WVk„aWwU@m@™ƒkƒaUĕ™ÝšÝŤnÈa„aóI›»@±X™WkUķ@kV±kw™ƒUkWw„™UƒÝ»ÛkɳlImaUaWóXÿǬk‚UnWVmmk™KţnŏÞğl™„UlUx@XWb„V@JkXƒ°mb@VULVxUVk@@LWWk@WIkšƒUkJmUkVmI@yƒ@Ua™kLm‚U@mUUUkaVk™@mK@UlUU@UmKmbUUUJ@n@KVLUL@VkJWXX`mnULWlkL@JVLVb@°kxkU@LVŽ™V@„VLV`UL@VUX"],encodeOffsets:[[122502,28334]]}},{type:"Feature",id:"3302",properties:{name:"宁波市",cp:[121.5967,29.6466],childNum:6},geometry:{type:"Polygon",coordinates:["@@Ċ¦ĸ°‚nXÞVšKškƨƑźÿ°»n„@wô¥ÜbœU°ÆXÞWóçĉݱIUƒÈ¥@U°wÆ»²mm_@aXƒVKÞVlk@akk›̅@£X»VwƏXWa¯aȗb™KƽۃĊ™xƒLóŽk@ƒƒƒ@¯nƒKUL@xkL›ÑkWULUUmJUXVŽU@mŽUX¯@V`mbXbV@@nn¤WXšx@škJ@nVVUVl²UbÝVUVk@Wx@V@„ƒVXzmlaƒL@VlLU`„XUVVVUnl@VbnJlnUVVnƒlUKkbmnn„VxlJnxmbU@UL@KUV™X@xmb@lk@mnVVUš™è"],encodeOffsets:[[123784,30977]]}},{type:"Feature",id:"3309",properties:{name:"舟山市",cp:[122.2559,30.2234],childNum:3},geometry:{type:"Polygon",coordinates:["@@l΢ƒʠþÆVĢLĊƒǬXĊ܄XôV„ÑÆw„ƒlšƏÈóVĭVǓ@ƒĉwɛkmK@ĉXīWaĉUĵÝmƒ¯ĉƒwĉ±±nż¯x@VǦV„²JĊÞôèÝXÅW¯›VÛaó¦@xƒŽmޝ¼ŹĀ"], +encodeOffsets:[[124437,30983]]}},{type:"Feature",id:"3310",properties:{name:"台州市",cp:[121.1353,28.6688],childNum:7},geometry:{type:"Polygon",coordinates:["@@lV„IVWVz@bXJl@Xal@°„nLll@nVxnV„K@UJVbƒ¦°„k`UIWJXnƚ@bUJ„Xl@lb„Wn@UzVV@bVVšmVnnJVXna‚bšKUKnUVVUnVLlKVLXa„Jm£@mU@WanaU_°@VWnV@UVWnIVVVKlXœÒlK@wVK„L°m„@„„l@ô„Kšw„ĉƾůUƒl£@»UƒVk„m@ƅUƒƒaÛIŏmUk@m„w@a™£ƒWk@ţšƒIm±@ankôUlaU™Uw¯ƒōaƒbÇbţm™ÞšÞVĖ„b„l@š@n‚VXxƒbUl@XmbƒŽ¯lUUU™W@ÛI±xU@mƒb@bmJ@bUzƒV@b¯bƒKUa¯KV_@Kk@@mWIƒ@lUU›b@bkVm@kwUÇU_WKU@Ux™@ƒVUnllX@Vn‚J@UXV@bWL@lUbbVLUJ@z‚V@lnbWbnnnJVŽ@L"],encodeOffsets:[[123312,29526]]}},{type:"Feature",id:"3307",properties:{name:"金华市",cp:[120.0037,29.1028],childNum:8},geometry:{type:"Polygon",coordinates:["@@nbVb„@VbUVlb@VUnVxk`lXnJlbnƒlL@bX@Vƒ@klƒV@nLnx@JlI„V‚U@VUVn„VV„I@WVLVbVKXbWnXl@VlXUx„b@ŽlVUbl„œlVUšIÜVnalKX@@bV@@aUUlUƒwUw„@naWW„UVaUUšaVb„LlxXJVk°ƒUƒlkU¥@k„a@LVlXLVlšVWznVn@lxšJl_@WX_@mVa„a@alU@kVVna„KVLlK„b@UUaVašbnUWmXU@k@yVI@ařWmXIVJl_¯ƒ„¥UaVI@ƒLmUUw@mkkmK¯ƒk@Wbk@WI@aUyUXƒJkU@bU@WLUyƒXUbkbW`UVVkKmbUaVUƒUK™£@KVUUUm@UWkXWaUKƒV@b¯ƒ¯mU™V@UkƒmW@kkKƒwUƒmkkVUI@WlkUamL@Wk_Wƒ@UVm@Ua¯KWXk@Uxm@UK@xV„mV@Xk@UVV¼@‚VLUb™Uƒ„U@ƒyULUbVlU@@XlVUVVbƒU@lXXVW@XUVl@@VUVƒÈn@VVU„@lVa@„U„mL@`X@`WL@VUX@lUL@xlx"],encodeOffsets:[[122119,29948]]}},{type:"Feature",id:"3308",properties:{name:"衢州市",cp:[118.6853,28.8666],childNum:5},geometry:{type:"Polygon",coordinates:["@@XkVKnwl@@aVK@UšwnL‚K@aÞaš¹@Kb@UVaUaVaVK@k°V„UllnL@„V@šxV@œšV@VV„m„_Wa„m@wlaÞbn@lL@WnLšk@V@VlK@nkVVb@blKXklakw@wVK@kVW@UXK@_‚W@_nKVƒ@ƒUb@kVƒUUm@„ÇVU@Uk@VU@WUXWW@k„VUaVUkU@WWXUKk@Ukmm¯LmmƒUJUIWJkImmƒ_—±WLkKm£@aVUmKUnƒLmWUkVmw@¥U„LVWm@WUka@UmmLmm@@bUX™@@WUIm@UVUK@UVUUU™VVJmb@b„Xn‚mVƒ¼nnn¦mJUVƒL„V@VW@UzUlVnUbl`UnVl@XU@kl@bmÈUx™Vk@@J@„ƒ¼W@ÅaVVnzmVƒ„@WJk@kWJ@ƒlXbWbXxmVnšlLXb@°lKVXnWšbWV„„X„mbV@Xl‚bšI@Kn@@x@šVLlm"],encodeOffsets:[[121185,30184]]}},{type:"Feature",id:"3306",properties:{name:"绍兴市",cp:[120.564,29.7565],childNum:6},geometry:{type:"Polygon",coordinates:["@@„x@„˜VnnVJnIVJV_VKXblUXJlŽlLUŽUnU@UVVX@ŽmVUUUJl„XUlbV@@V„LVmX@@XlaVJVXXJ@b‚@XU„@lUšJ„È‚bœ¤Ō„JšçV™UUnml@@kna@wšWVU@LVKV@namwkIUwmƒnmlaVL„kUmVUkmmIUak@VmUUVUƒWV_kK@U„K‚bnkWy„U@ƒ@UXwl@VUÞUVak±VUUU@mlI@™™wXWƒIWbUKkLUKVmUUmVVL™LambUWmIUm™nUU@aUUVym@ƒXkak@ƒW@z@lWVXnmV™aUbVb@VƒakLUKƒLmbUU@lkV@bƒbUb@nW`@Xk`™Ikwm@mUXy™UUkWKUk@Kƒb@lV¦klV„¯„UlWIkwƒKUa™bVVUbƒVXXmbƒ@Vx„xkVVV@bU@@aW@kLmb@lVUIVKmL@bUV@bUV@L„a˜lnUV@nbVbUlVXšJVUnx"],encodeOffsets:[[122997,30561]]}},{type:"Feature",id:"3304",properties:{name:"嘉兴市",cp:[120.9155,30.6354],childNum:6},geometry:{type:"Polygon",coordinates:["@@@blIX@@VÜVUnn@l‚k„lKnI°Þl`²LVKVbnbVaVLUVn@W¦@VkVVb„@VI„`@blLnL‚aX@„VVb@U‚@XlVa„@@kVaUKV»U_lWXUƒƒ@alb„k@VllnLVKn@@UVIUw@y°IVVXU@VV@lw„m@wVkƾaœJ‚LkΡƧƒ™l™LÝUmW¯ķÿĉ¥ƒIŋŽWn™èkVƧU¯ÅmlVx@V¯aƒz„Ž@„@JU@U¦m@@šnVmn@V„LV‚"],encodeOffsets:[[123233,31382]]}},{type:"Feature",id:"3305",properties:{name:"湖州市",cp:[119.8608,30.7782],childNum:4},geometry:{type:"Polygon",coordinates:["@@kLlƒkm@VmÛU@UW@kJ@aUƒK@UnmmU@™maÛL@JWUUKUwUIUJ@XƒKWV@Vk@UIUmVk@mm@ÅnmaUVkL@VƒKmLVbU@klU@ÝbV™@mVUKV™@wUkVƒ—ƒmIUJ@nVV@L™akJWbUIka@UmKmLKmmƒUUVk@@nmLX`WXUV@Ž@nUl™kmlU@Ub„„ƒxVVšIlV„Žšnn„@@n˜„UҚ@„°n@@xmb@„VbnV@šš„@b@`@L@L@x@blVklVbnnV@‚aXb°VlU@W„b°U„LXWVUV™„™VwÈwÜ»ĸaĠnUVw²X@V@lVU@wlaUUVm@knUV›"],encodeOffsets:[[123379,31500]]}}],UTF8Encoding:!0}}),i("echarts/chart/gauge",["require","./base","../util/shape/GaugePointer","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","zrender/shape/Circle","zrender/shape/Sector","../config","../util/ecData","../util/accMath","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/GaugePointer"),a=e("zrender/shape/Text"),o=e("zrender/shape/Line"),r=e("zrender/shape/Rectangle"),s=e("zrender/shape/Circle"),l=e("zrender/shape/Sector"),h=e("../config");h.gauge={zlevel:0,z:2,center:["50%","50%"],clickable:!0,legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,min:0,max:100,splitNumber:10,axisLine:{show:!0,lineStyle:{color:[[.2,"#228b22"],[.8,"#48b"],[1,"#ff4500"]],width:30}},axisTick:{show:!0,splitNumber:5,length:8,lineStyle:{color:"#eee",width:1,type:"solid"}},axisLabel:{show:!0,textStyle:{color:"auto"}},splitLine:{show:!0,length:30,lineStyle:{color:"#eee",width:2,type:"solid"}},pointer:{show:!0,length:"80%",width:8,color:"auto"},title:{show:!0,offsetCenter:[0,"-40%"],textStyle:{color:"#333",fontSize:15}},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:40,offsetCenter:[0,"40%"],textStyle:{color:"auto",fontSize:30}}};var m=e("../util/ecData"),V=e("../util/accMath"),U=e("zrender/tool/util");return t.prototype={type:h.CHART_TYPE_GAUGE,_buildShape:function(){var e=this.series;this._paramsMap={},this.selectedMap={};for(var t=0,i=e.length;i>t;t++)e[t].type===h.CHART_TYPE_GAUGE&&(this.selectedMap[e[t].name]=!0,e[t]=this.reformOption(e[t]),this.legendHoverLink=e[t].legendHoverLink||this.legendHoverLink,this._buildSingleGauge(t),this.buildMark(t));this.addShapeList()},_buildSingleGauge:function(e){var t=this.series[e];this._paramsMap[e]={center:this.parseCenter(this.zr,t.center),radius:this.parseRadius(this.zr,t.radius),startAngle:t.startAngle.toFixed(2)-0,endAngle:t.endAngle.toFixed(2)-0},this._paramsMap[e].totalAngle=this._paramsMap[e].startAngle-this._paramsMap[e].endAngle,this._colorMap(e),this._buildAxisLine(e),this._buildSplitLine(e),this._buildAxisTick(e),this._buildAxisLabel(e),this._buildPointer(e),this._buildTitle(e),this._buildDetail(e)},_buildAxisLine:function(e){var t=this.series[e];if(t.axisLine.show)for(var i,n,a=t.min,o=t.max-a,r=this._paramsMap[e],s=r.center,l=r.startAngle,h=r.totalAngle,V=r.colorArray,U=t.axisLine.lineStyle,d=this.parsePercent(U.width,r.radius[1]),p=r.radius[1],c=p-d,u=l,y=0,g=V.length;g>y;y++)n=l-h*(V[y][0]-a)/o,i=this._getSector(s,c,p,n,u,V[y][1],U,t.zlevel,t.z),u=n,i._animationAdd="r",m.set(i,"seriesIndex",e),m.set(i,"dataIndex",y),this.shapeList.push(i)},_buildSplitLine:function(e){var t=this.series[e];if(t.splitLine.show)for(var i,n,a,r=this._paramsMap[e],s=t.splitNumber,l=t.min,h=t.max-l,m=t.splitLine,V=this.parsePercent(m.length,r.radius[1]),U=m.lineStyle,d=U.color,p=r.center,c=r.startAngle*Math.PI/180,u=r.totalAngle*Math.PI/180,y=r.radius[1],g=y-V,b=0;s>=b;b++)i=c-u/s*b,n=Math.sin(i),a=Math.cos(i),this.shapeList.push(new o({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{xStart:p[0]+a*y,yStart:p[1]-n*y,xEnd:p[0]+a*g,yEnd:p[1]-n*g,strokeColor:"auto"===d?this._getColor(e,l+h/s*b):d,lineType:U.type,lineWidth:U.width,shadowColor:U.shadowColor,shadowBlur:U.shadowBlur,shadowOffsetX:U.shadowOffsetX,shadowOffsetY:U.shadowOffsetY}}))},_buildAxisTick:function(e){var t=this.series[e];if(t.axisTick.show)for(var i,n,a,r=this._paramsMap[e],s=t.splitNumber,l=t.min,h=t.max-l,m=t.axisTick,V=m.splitNumber,U=this.parsePercent(m.length,r.radius[1]),d=m.lineStyle,p=d.color,c=r.center,u=r.startAngle*Math.PI/180,y=r.totalAngle*Math.PI/180,g=r.radius[1],b=g-U,f=0,k=s*V;k>=f;f++)f%V!==0&&(i=u-y/k*f,n=Math.sin(i),a=Math.cos(i),this.shapeList.push(new o({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{xStart:c[0]+a*g,yStart:c[1]-n*g,xEnd:c[0]+a*b,yEnd:c[1]-n*b,strokeColor:"auto"===p?this._getColor(e,l+h/k*f):p,lineType:d.type,lineWidth:d.width,shadowColor:d.shadowColor,shadowBlur:d.shadowBlur,shadowOffsetX:d.shadowOffsetX,shadowOffsetY:d.shadowOffsetY}})))},_buildAxisLabel:function(e){var t=this.series[e];if(t.axisLabel.show)for(var i,n,o,r,s=t.splitNumber,l=t.min,h=t.max-l,m=t.axisLabel.textStyle,U=this.getFont(m),d=m.color,p=this._paramsMap[e],c=p.center,u=p.startAngle,y=p.totalAngle,g=p.radius[1]-this.parsePercent(t.splitLine.length,p.radius[1])-5,b=0;s>=b;b++)r=V.accAdd(l,V.accMul(V.accDiv(h,s),b)),i=u-y/s*b,n=Math.sin(i*Math.PI/180),o=Math.cos(i*Math.PI/180),i=(i+360)%360,this.shapeList.push(new a({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{x:c[0]+o*g,y:c[1]-n*g,color:"auto"===d?this._getColor(e,r):d,text:this._getLabelText(t.axisLabel.formatter,r),textAlign:i>=110&&250>=i?"left":70>=i||i>=290?"right":"center",textBaseline:i>=10&&170>=i?"top":i>=190&&350>=i?"bottom":"middle",textFont:U,shadowColor:m.shadowColor,shadowBlur:m.shadowBlur,shadowOffsetX:m.shadowOffsetX,shadowOffsetY:m.shadowOffsetY}}))},_buildPointer:function(e){var t=this.series[e];if(t.pointer.show){var i=t.max-t.min,a=t.pointer,o=this._paramsMap[e],r=this.parsePercent(a.length,o.radius[1]),l=this.parsePercent(a.width,o.radius[1]),h=o.center,V=this._getValue(e);V=V2?2:l/2,color:"#fff"}});m.pack(p,this.series[e],e,this.series[e].data[0],0,this.series[e].data[0].name,V),this.shapeList.push(p),this.shapeList.push(new s({zlevel:t.zlevel,z:t.z+2,hoverable:!1,style:{x:h[0],y:h[1],r:a.width/2.5,color:"#fff"}}))}},_buildTitle:function(e){var t=this.series[e];if(t.title.show){var i=t.data[0],n=null!=i.name?i.name:"";if(""!==n){var o=t.title,r=o.offsetCenter,s=o.textStyle,l=s.color,h=this._paramsMap[e],m=h.center[0]+this.parsePercent(r[0],h.radius[1]),V=h.center[1]+this.parsePercent(r[1],h.radius[1]);this.shapeList.push(new a({zlevel:t.zlevel,z:t.z+(Math.abs(m-h.center[0])+Math.abs(V-h.center[1])<2*s.fontSize?2:1),hoverable:!1,style:{x:m,y:V,color:"auto"===l?this._getColor(e):l,text:n,textAlign:"center",textFont:this.getFont(s),shadowColor:s.shadowColor,shadowBlur:s.shadowBlur,shadowOffsetX:s.shadowOffsetX,shadowOffsetY:s.shadowOffsetY}}))}}},_buildDetail:function(e){var t=this.series[e];if(t.detail.show){var i=t.detail,n=i.offsetCenter,a=i.backgroundColor,o=i.textStyle,s=o.color,l=this._paramsMap[e],h=this._getValue(e),m=l.center[0]-i.width/2+this.parsePercent(n[0],l.radius[1]),V=l.center[1]+this.parsePercent(n[1],l.radius[1]);this.shapeList.push(new r({zlevel:t.zlevel,z:t.z+(Math.abs(m+i.width/2-l.center[0])+Math.abs(V+i.height/2-l.center[1])r;r++)o.push([a[r][0]*n+i,a[r][1]]);this._paramsMap[e].colorArray=o},_getColor:function(e,t){null==t&&(t=this._getValue(e));for(var i=this._paramsMap[e].colorArray,n=0,a=i.length;a>n;n++)if(i[n][0]>=t)return i[n][1];return i[i.length-1][1]},_getSector:function(e,t,i,n,a,o,r,s,h){return new l({zlevel:s,z:h,hoverable:!1,style:{x:e[0],y:e[1],r0:t,r:i,startAngle:n,endAngle:a,brushType:"fill",color:o,shadowColor:r.shadowColor,shadowBlur:r.shadowBlur,shadowOffsetX:r.shadowOffsetX,shadowOffsetY:r.shadowOffsetY}})},_getLabelText:function(e,t){if(e){if("function"==typeof e)return e.call(this.myChart,t);if("string"==typeof e)return e.replace("{value}",t)}return t},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},U.inherits(t,i),e("../chart").define("gauge",t),t}),i("echarts/util/shape/GaugePointer",["require","zrender/shape/Base","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/tool/util");return t.prototype={type:"gauge-pointer",buildPath:function(e,t){var i=t.r,n=t.width,a=t.angle,o=t.x-Math.cos(a)*n*(n>=i/3?1:2),r=t.y+Math.sin(a)*n*(n>=i/3?1:2);a=t.angle-Math.PI/2,e.moveTo(o,r),e.lineTo(t.x+Math.cos(a)*n,t.y-Math.sin(a)*n),e.lineTo(t.x+Math.cos(t.angle)*i,t.y-Math.sin(t.angle)*i),e.lineTo(t.x-Math.cos(a)*n,t.y+Math.sin(a)*n),e.lineTo(o,r)},getRect:function(e){if(e.__rect)return e.__rect;var t=2*e.width,i=e.x,n=e.y,a=i+Math.cos(e.angle)*e.r,o=n-Math.sin(e.angle)*e.r;return e.__rect={x:Math.min(i,a)-t,y:Math.min(n,o)-t,width:Math.abs(i-a)+t,height:Math.abs(n-o)+t},e.__rect},isCover:e("./normalIsCover")},n.inherits(t,i),t}),i("echarts/chart/funnel",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Polygon","../config","../util/ecData","../util/number","zrender/tool/util","zrender/tool/color","zrender/tool/area","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Polygon"),r=e("../config");r.funnel={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,x:80,y:60,x2:80,y2:60,min:0,max:100,minSize:"0%",maxSize:"100%",sort:"descending",gap:0,funnelAlign:"center",itemStyle:{normal:{borderColor:"#fff",borderWidth:1,label:{show:!0,position:"outer"},labelLine:{show:!0,length:10,lineStyle:{width:1,type:"solid"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0},labelLine:{show:!0}}}};var s=e("../util/ecData"),l=e("../util/number"),h=e("zrender/tool/util"),m=e("zrender/tool/color"),V=e("zrender/tool/area");return t.prototype={type:r.CHART_TYPE_FUNNEL,_buildShape:function(){var e=this.series,t=this.component.legend;this._paramsMap={},this._selected={},this.selectedMap={};for(var i,n=0,a=e.length;a>n;n++)if(e[n].type===r.CHART_TYPE_FUNNEL){if(e[n]=this.reformOption(e[n]),this.legendHoverLink=e[n].legendHoverLink||this.legendHoverLink,i=e[n].name||"",this.selectedMap[i]=t?t.isSelected(i):!0,!this.selectedMap[i])continue;this._buildSingleFunnel(n),this.buildMark(n)}this.addShapeList()},_buildSingleFunnel:function(e){var t=this.component.legend,i=this.series[e],n=this._mapData(e),a=this._getLocation(e);this._paramsMap[e]={location:a,data:n};for(var o,r=0,s=[],h=0,m=n.length;m>h;h++)o=n[h].name,this.selectedMap[o]=t?t.isSelected(o):!0,this.selectedMap[o]&&!isNaN(n[h].value)&&(s.push(n[h]),r++);if(0!==r){for(var V,U,d,p,c=this._buildFunnelCase(e),u=i.funnelAlign,y=i.gap,g=r>1?(a.height-(r-1)*y)/r:a.height,b=a.y,f="descending"===i.sort?this._getItemWidth(e,s[0].value):l.parsePercent(i.minSize,a.width),k="descending"===i.sort?1:0,x=a.centerX,_=[],h=0,m=s.length;m>h;h++)if(o=s[h].name,this.selectedMap[o]&&!isNaN(s[h].value)){switch(V=m-2>=h?this._getItemWidth(e,s[h+k].value):"descending"===i.sort?l.parsePercent(i.minSize,a.width):l.parsePercent(i.maxSize,a.width),u){case"left":U=a.x;break;case"right":U=a.x+a.width-f;break;default:U=x-f/2}d=this._buildItem(e,s[h]._index,t?t.getColor(o):this.zr.getColor(s[h]._index),U,b,f,V,g,u),b+=g+y,p=d.style.pointList,_.unshift([p[0][0]-10,p[0][1]]),_.push([p[1][0]+10,p[1][1]]),0===h&&(0===f?(p=_.pop(),"center"==u&&(_[0][0]+=10),"right"==u&&(_[0][0]=p[0]),_[0][1]-="center"==u?10:15,1==m&&(p=d.style.pointList)):(_[_.length-1][1]-=5,_[0][1]-=5)),f=V}c&&(_.unshift([p[3][0]-10,p[3][1]]),_.push([p[2][0]+10,p[2][1]]),0===f?(p=_.pop(),"center"==u&&(_[0][0]+=10),"right"==u&&(_[0][0]=p[0]),_[0][1]+="center"==u?10:15):(_[_.length-1][1]+=5,_[0][1]+=5),c.style.pointList=_)}},_buildFunnelCase:function(e){var t=this.series[e];if(this.deepQuery([t,this.option],"calculable")){var i=this._paramsMap[e].location,n=10,a={hoverable:!1,style:{pointListd:[[i.x-n,i.y-n],[i.x+i.width+n,i.y-n],[i.x+i.width+n,i.y+i.height+n],[i.x-n,i.y+i.height+n]],brushType:"stroke",lineWidth:1,strokeColor:t.calculableHolderColor||this.ecTheme.calculableHolderColor||r.calculableHolderColor}};return s.pack(a,t,e,void 0,-1),this.setCalculable(a),a=new o(a),this.shapeList.push(a),a}},_getLocation:function(e){var t=this.series[e],i=this.zr.getWidth(),n=this.zr.getHeight(),a=this.parsePercent(t.x,i),o=this.parsePercent(t.y,n),r=null==t.width?i-a-this.parsePercent(t.x2,i):this.parsePercent(t.width,i);return{x:a,y:o,width:r,height:null==t.height?n-o-this.parsePercent(t.y2,n):this.parsePercent(t.height,n),centerX:a+r/2}},_mapData:function(e){function t(e,t){return"-"===e.value?1:"-"===t.value?-1:t.value-e.value}function i(e,i){return-t(e,i)}for(var n=this.series[e],a=h.clone(n.data),o=0,r=a.length;r>o;o++)a[o]._index=o;return"none"!=n.sort&&a.sort("descending"===n.sort?t:i),a},_buildItem:function(e,t,i,n,a,o,r,l,h){var m=this.series,V=m[e],U=V.data[t],d=this.getPolygon(e,t,i,n,a,o,r,l,h);s.pack(d,m[e],e,m[e].data[t],t,m[e].data[t].name),this.shapeList.push(d);var p=this.getLabel(e,t,i,n,a,o,r,l,h);s.pack(p,m[e],e,m[e].data[t],t,m[e].data[t].name),this.shapeList.push(p),this._needLabel(V,U,!1)||(p.invisible=!0);var c=this.getLabelLine(e,t,i,n,a,o,r,l,h);this.shapeList.push(c),this._needLabelLine(V,U,!1)||(c.invisible=!0);var u=[],y=[];return this._needLabelLine(V,U,!0)&&(u.push(c.id),y.push(c.id)),this._needLabel(V,U,!0)&&(u.push(p.id),y.push(d.id)),d.hoverConnect=u,p.hoverConnect=y,d},_getItemWidth:function(e,t){var i=this.series[e],n=this._paramsMap[e].location,a=i.min,o=i.max,r=l.parsePercent(i.minSize,n.width),s=l.parsePercent(i.maxSize,n.width);return(t-a)*(s-r)/(o-a)+r},getPolygon:function(e,t,i,n,a,r,s,l,h){var V,U=this.series[e],d=U.data[t],p=[d,U],c=this.deepMerge(p,"itemStyle.normal")||{},u=this.deepMerge(p,"itemStyle.emphasis")||{},y=this.getItemStyleColor(c.color,e,t,d)||i,g=this.getItemStyleColor(u.color,e,t,d)||("string"==typeof y?m.lift(y,-.2):y);switch(h){case"left":V=n;break;case"right":V=n+(r-s);break;default:V=n+(r-s)/2}var b={zlevel:U.zlevel,z:U.z,clickable:this.deepQuery(p,"clickable"),style:{pointList:[[n,a],[n+r,a],[V+s,a+l],[V,a+l]],brushType:"both",color:y,lineWidth:c.borderWidth,strokeColor:c.borderColor},highlightStyle:{color:g,lineWidth:u.borderWidth,strokeColor:u.borderColor}};return this.deepQuery([d,U,this.option],"calculable")&&(this.setCalculable(b),b.draggable=!0),new o(b)},getLabel:function(e,t,i,a,o,r,s,l,U){var d,p=this.series[e],c=p.data[t],u=this._paramsMap[e].location,y=h.merge(h.clone(c.itemStyle)||{},p.itemStyle),g="normal",b=y[g].label,f=b.textStyle||{},k=y[g].labelLine.length,x=this.getLabelText(e,t,g),_=this.getFont(f),L=i;b.position=b.position||y.normal.label.position,"inner"===b.position||"inside"===b.position||"center"===b.position?(d=U,L=Math.max(r,s)/2>V.getTextWidth(x,_)?"#fff":m.reverse(i)):d="left"===b.position?"right":"left";var W={zlevel:p.zlevel,z:p.z+1,style:{x:this._getLabelPoint(b.position,a,u,r,s,k,U),y:o+l/2,color:f.color||L,text:x,textAlign:f.align||d,textBaseline:f.baseline||"middle",textFont:_}};return g="emphasis",b=y[g].label||b,f=b.textStyle||f,k=y[g].labelLine.length||k,b.position=b.position||y.normal.label.position,x=this.getLabelText(e,t,g),_=this.getFont(f),L=i,"inner"===b.position||"inside"===b.position||"center"===b.position?(d=U,L=Math.max(r,s)/2>V.getTextWidth(x,_)?"#fff":m.reverse(i)):d="left"===b.position?"right":"left",W.highlightStyle={x:this._getLabelPoint(b.position,a,u,r,s,k,U),color:f.color||L,text:x,textAlign:f.align||d,textFont:_,brushType:"fill"},new n(W)},getLabelText:function(e,t,i){var n=this.series,a=n[e],o=a.data[t],r=this.deepQuery([o,a],"itemStyle."+i+".label.formatter");return r?"function"==typeof r?r.call(this.myChart,{seriesIndex:e,seriesName:a.name||"",series:a,dataIndex:t,data:o,name:o.name,value:o.value}):"string"==typeof r?r=r.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{a0}",a.name).replace("{b0}",o.name).replace("{c0}",o.value):void 0:o.name},getLabelLine:function(e,t,i,n,o,r,s,l,m){var V=this.series[e],U=V.data[t],d=this._paramsMap[e].location,p=h.merge(h.clone(U.itemStyle)||{},V.itemStyle),c="normal",u=p[c].labelLine,y=p[c].labelLine.length,g=u.lineStyle||{},b=p[c].label;b.position=b.position||p.normal.label.position;var f={zlevel:V.zlevel,z:V.z+1,hoverable:!1,style:{xStart:this._getLabelLineStartPoint(n,d,r,s,m),yStart:o+l/2,xEnd:this._getLabelPoint(b.position,n,d,r,s,y,m),yEnd:o+l/2,strokeColor:g.color||i,lineType:g.type,lineWidth:g.width}};return c="emphasis",u=p[c].labelLine||u,y=p[c].labelLine.length||y,g=u.lineStyle||g,b=p[c].label||b,b.position=b.position,f.highlightStyle={xEnd:this._getLabelPoint(b.position,n,d,r,s,y,m),strokeColor:g.color||i,lineType:g.type,lineWidth:g.width},new a(f)},_getLabelPoint:function(e,t,i,n,a,o,r){switch(e="inner"===e||"inside"===e?"center":e){case"center":return"center"==r?t+n/2:"left"==r?t+10:t+n-10;case"left":return"auto"===o?i.x-10:"center"==r?i.centerX-Math.max(n,a)/2-o:"right"==r?t-(a>n?a-n:0)-o:i.x-o;default:return"auto"===o?i.x+i.width+10:"center"==r?i.centerX+Math.max(n,a)/2+o:"right"==r?i.x+i.width+o:t+Math.max(n,a)+o}},_getLabelLineStartPoint:function(e,t,i,n,a){return"center"==a?t.centerX:n>i?e+Math.min(i,n)/2:e+Math.max(i,n)/2},_needLabel:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".label.show")},_needLabelLine:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".labelLine.show")},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},h.inherits(t,i),e("../chart").define("funnel",t),t}),i("echarts/chart/eventRiver",["require","./base","../layout/eventRiver","zrender/shape/Polygon","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","../util/date","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._ondragend=function(){r.isDragend=!0},this.refresh(a)}var i=e("./base"),n=e("../layout/eventRiver"),a=e("zrender/shape/Polygon");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var o=e("../config");o.eventRiver={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0,position:"inside",formatter:"{b}"}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0}}}};var r=e("../util/ecData"),s=e("../util/date"),l=e("zrender/tool/util"),h=e("zrender/tool/color");return t.prototype={type:o.CHART_TYPE_EVENTRIVER,_buildShape:function(){var e=this.series;this.selectedMap={},this._dataPreprocessing();for(var t=this.component.legend,i=[],a=0;an;n++)if(i[n].type===this.type){e=this.component.xAxis.getAxis(i[n].xAxisIndex||0);for(var o=0,r=i[n].data.length;r>o;o++){t=i[n].data[o].evolution;for(var l=0,h=t.length;h>l;l++)t[l].timeScale=e.getCoord(s.getNewDate(t[l].time)-0),t[l].valueScale=Math.pow(t[l].value,.8)}}this._intervalX=Math.round(this.component.grid.getWidth()/40)},_drawEventRiver:function(){for(var e=this.series,t=0;ta)){for(var o=[],r=[],s=0;a>s;s++)o.push(n[s].timeScale),r.push(n[s].valueScale);var l=[];l.push([o[0],i]);var s=0;for(s=0;a-1>s;s++)l.push([(o[s]+o[s+1])/2,r[s]/-2+i]);for(l.push([(o[s]+(o[s]+t))/2,r[s]/-2+i]),l.push([o[s]+t,i]),l.push([(o[s]+(o[s]+t))/2,r[s]/2+i]),s=a-1;s>0;s--)l.push([(o[s]+o[s-1])/2,r[s-1]/2+i]);return l}},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,t.needRefresh=!1,this.isDragend=!1)},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},l.inherits(t,i),e("../chart").define("eventRiver",t),t}),i("echarts/layout/eventRiver",["require"],function(){function e(e,i,o){function r(e,t){var i=e.importance,n=t.importance;return i>n?-1:n>i?1:0}for(var s=4,l=0;l=e)return[0];for(var t=[];e--;)t.push(0);return t}(),u=c.slice(0),y=[],g=0,b=0,l=0;l.5?.5:1,r=t.y,s=(t.height-n)/i,l=0,h=e.length;h>l;l++){var m=e[l];m.y=r+s*m.y+m._offset*o,delete m.time,delete m.value,delete m.xpx,delete m.ypx,delete m._offset;for(var V=m.evolution,U=0,d=V.length;d>U;U++)V[U].valueScale*=s}}function i(e,t,i,n){if(e===i)throw new Error("x0 is equal with x1!!!");if(t===n)return function(){return t};var a=(t-n)/(e-i),o=(n*e-t*i)/(e-i);return function(e){return a*e+o}}function n(e,t,n){var a=~~t,o=e.time.length;e.xpx=[],e.ypx=[];for(var r,s=0,l=0,h=0,m=0,V=0;o>s;s++){l=~~e.time[s],m=e.value[s]/2,s===o-1?(h=l+a,V=0):(h=~~e.time[s+1],V=e.value[s+1]/2),r=i(l,m,h,V);for(var U=l;h>U;U++)e.xpx.push(U-n),e.ypx.push(r(U))}e.xpx.push(h-n),e.ypx.push(V)}function a(e,t,i){for(var n,a=0,o=t.xpx.length,r=0;o>r;r++)n=i(t,r),a=Math.max(a,n+e[t.xpx[r]]);for(r=0;o>r;r++)n=i(t,r),e[t.xpx[r]]=a+n;return a}return e}),i("echarts/chart/venn",["require","./base","zrender/shape/Text","zrender/shape/Circle","zrender/shape/Path","../config","../util/ecData","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Circle"),o=e("zrender/shape/Path"),r=e("../config");r.venn={zlevel:0,z:1,calculable:!1};var s=e("../util/ecData"),l=e("zrender/tool/util");return t.prototype={type:r.CHART_TYPE_VENN,_buildShape:function(){this.selectedMap={},this._symbol=this.option.symbolList,this._queryTarget,this._dropBoxList=[],this._vennDataCounter=0;for(var e=this.series,t=this.component.legend,i=0;ia[1].value?(t=this.zr.getHeight()/3,i=t*Math.sqrt(a[1].value)/Math.sqrt(a[0].value)):(i=this.zr.getHeight()/3,t=i*Math.sqrt(a[0].value)/Math.sqrt(a[1].value));var o=this.zr.getWidth()/2-t,r=(t+i)/2*Math.sqrt(a[2].value)/Math.sqrt((a[0].value+a[1].value)/2),s=t+i;0!==a[2].value&&(s=this._getCoincideLength(a[0].value,a[1].value,a[2].value,t,i,r,Math.abs(t-i),t+i));var l=o+s,h=this.zr.getHeight()/2;if(this._buildItem(e,0,a[0],o,h,t),this._buildItem(e,1,a[1],l,h,i),0!==a[2].value&&a[2].value!==a[0].value&&a[2].value!==a[1].value){var m=(t*t-i*i)/(2*s)+s/2,V=s/2-(t*t-i*i)/(2*s),U=Math.sqrt(t*t-m*m),d=0,p=0;a[0].value>a[1].value&&o+m>l&&(p=1),a[0].valuel&&(d=1),this._buildCoincideItem(e,2,a[2],o+m,h-U,h+U,t,i,d,p)}},_getCoincideLength:function(e,t,i,n,a,o,r,s){var l=(n*n-a*a)/(2*o)+o/2,h=o/2-(n*n-a*a)/(2*o),m=Math.acos(l/n),V=Math.acos(h/a),U=n*n*Math.PI,d=m*n*n-l*n*Math.sin(m)+V*a*a-h*a*Math.sin(V),p=d/U,c=i/e,u=Math.abs(p/c);return u>.999&&1.001>u?o:.999>=u?(s=o,o=(o+r)/2,this._getCoincideLength(e,t,i,n,a,o,r,s)):(r=o,o=(o+s)/2,this._getCoincideLength(e,t,i,n,a,o,r,s))},_buildItem:function(e,t,i,n,a,o){var r=this.series,l=r[e],h=this.getCircle(e,t,i,n,a,o);if(s.pack(h,l,e,i,t,i.name),this.shapeList.push(h),l.itemStyle.normal.label.show){var m=this.getLabel(e,t,i,n,a,o);s.pack(m,l,e,l.data[t],t,l.data[t].name),this.shapeList.push(m)}},_buildCoincideItem:function(e,t,i,n,a,r,l,h,m,V){var U=this.series,d=U[e],p=[i,d],c=this.deepMerge(p,"itemStyle.normal")||{},u=this.deepMerge(p,"itemStyle.emphasis")||{},y=c.color||this.zr.getColor(t),g=u.color||this.zr.getColor(t),b="M"+n+","+a+"A"+l+","+l+",0,"+m+",1,"+n+","+r+"A"+h+","+h+",0,"+V+",1,"+n+","+a,f={color:y,path:b},k={zlevel:d.zlevel,z:d.z,style:f,highlightStyle:{color:g,lineWidth:u.borderWidth,strokeColor:u.borderColor}};k=new o(k),k.buildPathArray&&(k.style.pathArray=k.buildPathArray(f.path)),s.pack(k,U[e],0,i,t,i.name),this.shapeList.push(k)},getCircle:function(e,t,i,n,o,r){var s=this.series[e],l=[i,s],h=this.deepMerge(l,"itemStyle.normal")||{},m=this.deepMerge(l,"itemStyle.emphasis")||{},V=h.color||this.zr.getColor(t),U=m.color||this.zr.getColor(t),d={zlevel:s.zlevel,z:s.z,clickable:!0,style:{x:n,y:o,r:r,brushType:"fill",opacity:1,color:V},highlightStyle:{color:U,lineWidth:m.borderWidth,strokeColor:m.borderColor}};return this.deepQuery([i,s,this.option],"calculable")&&(this.setCalculable(d),d.draggable=!0),new a(d)},getLabel:function(e,t,i,a,o,r){var s=this.series[e],l=s.itemStyle,h=[i,s],m=this.deepMerge(h,"itemStyle.normal")||{},V="normal",U=l[V].label,d=U.textStyle||{},p=this.getLabelText(t,i,V),c=this.getFont(d),u=m.color||this.zr.getColor(t),y=d.fontSize||12,g={zlevel:s.zlevel,z:s.z,style:{x:a,y:o-r-y,color:d.color||u,text:p,textFont:c,textAlign:"center"}};return new n(g)},getLabelText:function(e,t,i){var n=this.series,a=n[0],o=this.deepQuery([t,a],"itemStyle."+i+".label.formatter");return o?"function"==typeof o?o(a.name,t.name,t.value):"string"==typeof o?(o=o.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}"),o=o.replace("{a0}",a.name).replace("{b0}",t.name).replace("{c0}",t.value)):void 0:t.name},refresh:function(e){e&&(this.option=e,this.series=e.series),this._buildShape()}},l.inherits(t,i),e("../chart").define("venn",t),t}),i("echarts/chart/treemap",["require","./base","zrender/tool/area","zrender/shape/Rectangle","zrender/shape/Text","zrender/shape/Line","../layout/TreeMap","../data/Tree","../config","../util/ecData","zrender/config","zrender/tool/event","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a);var r=this;r._onclick=function(e){return r.__onclick(e)},r.zr.on(V.EVENT.CLICK,r._onclick)}var i=e("./base"),n=e("zrender/tool/area"),a=e("zrender/shape/Rectangle"),o=e("zrender/shape/Text"),r=e("zrender/shape/Line"),s=e("../layout/TreeMap"),l=e("../data/Tree"),h=e("../config");h.treemap={zlevel:0,z:1,calculable:!1,clickable:!0,center:["50%","50%"],size:["80%","80%"],root:"",itemStyle:{normal:{label:{ +show:!0,x:5,y:12,textStyle:{align:"left",color:"#000",fontFamily:"Arial",fontSize:13,fontStyle:"normal",fontWeight:"normal"}},breadcrumb:{show:!0,textStyle:{}},borderWidth:1,borderColor:"#ccc",childBorderWidth:1,childBorderColor:"#ccc"},emphasis:{}}};var m=e("../util/ecData"),V=e("zrender/config"),U=(e("zrender/tool/event"),e("zrender/tool/util")),d=e("zrender/tool/color");return t.prototype={type:h.CHART_TYPE_TREEMAP,refresh:function(e){this.clear(),e&&(this.option=e,this.series=this.option.series),this._treesMap={};for(var t=this.series,i=this.component.legend,n=0;nt.width||e.normal.label.y+U>t.height)&&(h=""):h="",e.emphasis.label.show?(s.x+u>t.width||s.y+y>t.height)&&(p=""):p="";var g={style:{textX:t.x+e.normal.label.x,textY:t.y+e.normal.label.y,text:h,textPosition:"specific",textColor:o.color,textFont:m},highlightStyle:{textX:t.x+e.emphasis.label.x,textY:t.y+e.emphasis.label.y,text:p,textColor:s.color,textPosition:"specific"}};return g},getLabelText:function(e,t,i){return i?"function"==typeof i?i.call(this.myChart,e,t):"string"==typeof i?(i=i.replace("{b}","{b0}").replace("{c}","{c0}"),i=i.replace("{b0}",e).replace("{c0}",t)):void 0:e},_buildChildrenTreemap:function(e,t,i,n){for(var a=i.width*i.height,o=0,r=[],l=0;l ":"")},V),clickable:!0,highlightStyle:p});m.set(u,"seriesIndex",t),m.set(u,"name",a[c]),i+=u.getRect(u.style).width,this.shapeList.push(u)}},__onclick:function(e){var t=e.target;if(t){var i=m.get(t,"seriesIndex"),n=m.get(t,"name"),a=this._treesMap[i],o=a.getNodeById(n);o&&o.children.length&&this._buildTreemap(o,i)}}},U.inherits(t,i),e("../chart").define("treemap",t),t}),i("echarts/layout/TreeMap",["require"],function(){function e(e){({x:e.x,y:e.y,width:e.width,height:e.height});this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height}return e.prototype.run=function(e){var t=[];return this._squarify(e,{x:this.x,y:this.y,width:this.width,height:this.height},t),t},e.prototype._squarify=function(e,t,i){var n="VERTICAL",a=t.width,o=t.height;t.widthl;l++)r[s].y+=r[l].height}var h={};if("VERTICAL"==n){for(var m=0;ml;l++){var h=i*e[l]/o;a.push({width:s,height:h})}return a},e.prototype._isFirstBetter=function(e,t){var i=e[0].height/e[0].width;i=i>1?1/i:i;var n=t[0].height/t[0].width;return n=n>1?1/n:n,Math.abs(i-1)<=Math.abs(n-1)?!0:!1},e}),i("echarts/data/Tree",["require","zrender/tool/util"],function(e){function t(e,t){this.id=e,this.depth=0,this.height=0,this.children=[],this.parent=null,this.data=t||null}function i(e){this.root=new t(e)}var n=e("zrender/tool/util");return t.prototype.add=function(e){var t=this.children;e.parent!==this&&(t.push(e),e.parent=this)},t.prototype.remove=function(e){var t=this.children,i=n.indexOf(t,e);i>=0&&(t.splice(i,1),e.parent=null)},t.prototype.traverse=function(e,t){e.call(t,this);for(var i=0;it&&(t=n.height)}this.height=t+1},t.prototype.getNodeById=function(e){if(this.id===e)return this;for(var t=0;t0&&this._buildLink(i,e)},this);var n=e.roam===!0||"move"===e.roam,a=e.roam===!0||"scale"===e.roam;this.zr.modLayer(this.getZlevelBase(),{panable:n,zoomable:a}),(this.query("markPoint.effect.show")||this.query("markLine.effect.show"))&&this.zr.modLayer(m.EFFECT_ZLEVEL,{panable:n,zoomable:a}),this.addShapeList()},_buildItem:function(e,t,i){var n=[e.data,t],r=this.deepQuery(n,"symbol"),s=this.deepMerge(n,"itemStyle.normal")||{},l=this.deepMerge(n,"itemStyle.emphasis")||{},h=s.color||this.zr.getColor(),m=l.color||this.zr.getColor(),U=-e.layout.angle||0;e.id===this.tree.root.id&&(U=0);var d="right";Math.abs(U)>=Math.PI/2&&Math.abs(U)<3*Math.PI/2&&(U+=Math.PI,d="left");var p=[U,e.layout.position[0],e.layout.position[1]],c=new a({zlevel:this.getZlevelBase(),z:this.getZBase()+1,rotation:p,clickable:this.deepQuery(n,"clickable"),style:{x:e.layout.position[0]-.5*e.layout.width,y:e.layout.position[1]-.5*e.layout.height,width:e.layout.width,height:e.layout.height,iconType:r,color:h,brushType:"both",lineWidth:s.borderWidth,strokeColor:s.borderColor},highlightStyle:{color:m,lineWidth:l.borderWidth,strokeColor:l.borderColor}});c.style.iconType.match("image")&&(c.style.image=c.style.iconType.replace(new RegExp("^image:\\/\\/"),""),c=new o({rotation:p,style:c.style,highlightStyle:c.highlightStyle,clickable:c.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()})),this.deepQuery(n,"itemStyle.normal.label.show")&&(c.style.text=null==e.data.label?e.id:e.data.label,c.style.textPosition=this.deepQuery(n,"itemStyle.normal.label.position"),"radial"===t.orient&&"inside"!==c.style.textPosition&&(c.style.textPosition=d),c.style.textColor=this.deepQuery(n,"itemStyle.normal.label.textStyle.color"),c.style.textFont=this.getFont(this.deepQuery(n,"itemStyle.normal.label.textStyle")||{})),this.deepQuery(n,"itemStyle.emphasis.label.show")&&(c.highlightStyle.textPosition=this.deepQuery(n,"itemStyle.emphasis.label.position"),c.highlightStyle.textColor=this.deepQuery(n,"itemStyle.emphasis.label.textStyle.color"),c.highlightStyle.textFont=this.getFont(this.deepQuery(n,"itemStyle.emphasis.label.textStyle")||{})),V.pack(c,t,i,e.data,0,e.id),this.shapeList.push(c)},_buildLink:function(e,t){var i=t.itemStyle.normal.lineStyle;if("broken"===i.type)return void this._buildBrokenLine(e,i,t);for(var n=0;nr&&(t=r),r>n&&(n=r)}e.layout.position[0]=e.children.length>0?(t+n)/2:0;var s=this._layerOffsets[e.depth]||0;if(s>e.layout.position[0]){var l=s-e.layout.position[0];this._shiftSubtree(e,l);for(var a=e.depth+1;ai;i++)this._buildTextShape(e[i],0,i);this.addShapeList()},_buildTextShape:function(e,t,i){var a=this.series,o=a[t],s=o.name||"",h=o.data[i],m=[h,o],V=this.component.legend,U=V?V.getColor(s):this.zr.getColor(t),d=this.deepMerge(m,"itemStyle.normal")||{},p=this.deepMerge(m,"itemStyle.emphasis")||{},c=this.getItemStyleColor(d.color,t,i,h)||U,u=this.getItemStyleColor(p.color,t,i,h)||("string"==typeof c?l.lift(c,-.2):c),y=new n({zlevel:o.zlevel,z:o.z,hoverable:!0,clickable:this.deepQuery(m,"clickable"),style:{x:0,y:0,text:e.text,color:c,textFont:[e.style,e.weight,e.size+"px",e.font].join(" "),textBaseline:"alphabetic",textAlign:"center"},highlightStyle:{brushType:p.borderWidth?"both":"fill",color:u,lineWidth:p.borderWidth||0,strokeColor:p.borderColor},position:[e.x,e.y],rotation:[-e.rotate/180*Math.PI,0,0]});r.pack(y,o,t,h,i,h.name),this.shapeList.push(y)}},s.inherits(t,i),e("../chart").define("wordCloud",t),t}),i("echarts/layout/WordCloud",["require","../layout/WordCloudRectZero","zrender/tool/util"],function(e){function t(e){this._init(e)}var i=e("../layout/WordCloudRectZero"),n=e("zrender/tool/util");return t.prototype={start:function(){function e(){p.totalArea=r,U.autoSizeCal.enable&&p._autoCalTextSize(m,r,a,o,U.autoSizeCal.minSize),V.timer&&clearInterval(V.timer),V.timer=setInterval(t,0),t()}function t(){for(var e,t=+new Date,i=m.length;+new Date-t>1,e.y=d[1]>>1,p._cloudSprite(e,m,s),e.hasText&&p._place(n,e,h)&&(l.push(e),e.x-=d[0]>>1,e.y-=d[1]>>1);s>=i&&(p.stop(),p._fixTagPosition(l),V.endcallback(l))}var n=null,a=0,o=0,r=0,s=-1,l=[],h=null,m=this.wordsdata,V=this.defaultOption,U=V.wordletype,d=V.size,p=this,c=new i({type:U.type,width:d[0],height:d[1]});return c.calculate(function(t){n=t.initarr,a=t.maxWit,o=t.maxHit,r=t.area,h=t.imgboard,e()},this),this},_fixTagPosition:function(e){for(var t=this.defaultOption.center,i=0,n=e.length;n>i;i++)e[i].x+=t[0],e[i].y+=t[1]},stop:function(){return this.defaultOption.timer&&(clearInterval(this.defaultOption.timer),this.defaultOption.timer=null),this},end:function(e){return e&&(this.defaultOption.endcallback=e),this},_init:function(e){this.defaultOption={},this._initProperty(e),this._initMethod(e),this._initCanvas(),this._initData(e.data)},_initData:function(e){var t=this,i=t.defaultOption;this.wordsdata=e.map(function(e,n){return e.text=i.text.call(t,e,n),e.font=i.font.call(t,e,n),e.style=i.fontStyle.call(t,e,n),e.weight=i.fontWeight.call(t,e,n),e.rotate=i.rotate.call(t,e,n),e.size=~~i.fontSize.call(t,e,n),e.padding=i.padding.call(t,e,n),e}).sort(function(e,t){return t.value-e.value})},_initMethod:function(e){function t(e){return e.name}function i(){return"sans-serif"}function n(){return"normal"}function a(e){return e.value}function o(){return 0}function r(e){return function(){return e[Math.round(Math.random()*(e.length-1))]}}function s(){return 0}function l(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function h(e){var t=4,i=t*e[0]/e[1],n=0,a=0;return function(e){var o=0>e?-1:1;switch(Math.sqrt(1+4*o*e)-o&3){case 0:n+=i;break;case 1:a+=t;break;case 2:n-=i;break;default:a-=t}return[n,a]}}function m(e){return"function"==typeof e?e:function(){return e}}var V=this.defaultOption;V.text=e.text?m(e.text):t,V.font=e.font?m(e.font):i,V.fontSize=e.fontSize?m(e.fontSize):a,V.fontStyle=e.fontStyle?m(e.fontStyle):n,V.fontWeight=e.fontWeight?m(e.fontWeight):n,V.rotate=e.rotate?r(e.rotate):o,V.padding=e.padding?m(e.padding):s,V.center=e.center,V.spiral=l,V.endcallback=function(){},V.rectangularSpiral=h,V.archimedeanSpiral=l},_initProperty:function(e){var t=this.defaultOption;t.size=e.size||[256,256],t.wordletype=e.wordletype,t.words=e.words||[],t.timeInterval=1/0,t.timer=null,t.spirals={archimedean:t.archimedeanSpiral,rectangular:t.rectangularSpiral},n.merge(t,{size:[256,256],wordletype:{type:"RECT",areaPresent:.058,autoSizeCal:{enable:!0,minSize:12}}})},_initCanvas:function(){var e,t=Math.PI/180,i=64,n=2048,a=1;"undefined"!=typeof document?(e=document.createElement("canvas"),e.width=1,e.height=1,a=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2),e.width=(i<<5)/a,e.height=n/a):e=new Canvas(i<<5,n);var o=e.getContext("2d");o.fillStyle=o.strokeStyle="red",o.textAlign="center",this.defaultOption.c=o,this.defaultOption.cw=i,this.defaultOption.ch=n,this.defaultOption.ratio=a,this.defaultOption.cloudRadians=t},_cloudSprite:function(e,t,i){if(!e.sprite){var n=this.defaultOption.cw,a=this.defaultOption.ch,o=this.defaultOption.c,r=this.defaultOption.ratio,s=this.defaultOption.cloudRadians;o.clearRect(0,0,(n<<5)/r,a/r);var l=0,h=0,m=0,V=t.length;for(--i;++i>5<<5,d=~~Math.max(Math.abs(y+g),Math.abs(y-g))}else U=U+31>>5<<5;if(d>m&&(m=d),l+U>=n<<5&&(l=0,h+=m,m=0),h+d>=a)break;o.translate((l+(U>>1))/r,(h+(d>>1))/r),e.rotate&&o.rotate(e.rotate*s),o.fillText(e.text,0,0),e.padding&&(o.lineWidth=2*e.padding,o.strokeText(e.text,0,0)),o.restore(),e.width=U,e.height=d,e.xoff=l,e.yoff=h,e.x1=U>>1,e.y1=d>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,l+=U}for(var f=o.getImageData(0,0,(n<<5)/r,a/r).data,k=[];--i>=0;)if(e=t[i],e.hasText){for(var U=e.width,x=U>>5,d=e.y1-e.y0,_=0;d*x>_;_++)k[_]=0;if(l=e.xoff,null==l)return;h=e.yoff;for(var L=0,W=-1,X=0;d>X;X++){for(var _=0;U>_;_++){var v=x*X+(_>>5),w=f[(h+X)*(n<<5)+(l+_)<<2]?1<<31-_%32:0;k[v]|=w,L|=w}L?W=X:(e.y0++,d--,X--,h++)}e.y1=e.y0+W,e.sprite=k.slice(0,(e.y1-e.y0)*x)}}},_place:function(e,t,i){function n(e,t,i){i>>=5;for(var n,a=e.sprite,o=e.width>>5,r=e.x-(o<<4),s=127&r,l=32-s,h=e.y1-e.y0,m=(e.y+e.y0)*i+(r>>5),V=0;h>V;V++){n=0;for(var U=0;o>=U;U++)if((n<U?(n=a[V*o+U])>>>s:0))&t[m+U])return!0;m+=i}return!1}function a(e,t){return t.row[e.y]&&t.cloumn[e.x]&&e.x>=t.row[e.y].start&&e.x<=t.row[e.y].end&&e.y>=t.cloumn[e.x].start&&e.y<=t.cloumn[e.x].end}for(var o,r,s,l=this.defaultOption.size,h=([{x:0,y:0},{x:l[0],y:l[1]}],t.x),m=t.y,V=Math.sqrt(l[0]*l[0]+l[1]*l[1]),U=this.defaultOption.spiral(l),d=Math.random()<.5?1:-1,p=-d;(o=U(p+=d))&&(r=~~o[0],s=~~o[1],!(Math.min(r,s)>V));)if(t.x=h+r,t.y=m+s,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>l[0]||t.y+t.y1>l[1])&&!n(t,e,l[0])&&a(t,i)){for(var c,u=t.sprite,y=t.width>>5,g=l[0]>>5,b=t.x-(y<<4),f=127&b,k=32-f,x=t.y1-t.y0,_=(t.y+t.y0)*g+(b>>5),L=0;x>L;L++){c=0;for(var W=0;y>=W;W++)e[_+W]|=c<W?(c=u[L*y+W])>>>f:0);_+=g}return delete t.sprite,!0}return!1},_autoCalTextSize:function(e,t,i,n,a){function o(e){c.clearRect(0,0,(d<<5)/u,p/u),c.save(),c.font=e.style+" "+e.weight+" "+~~((e.size+1)/u)+"px "+e.font;var t=c.measureText(e.text+"m").width*u,r=e.size<<1;t=t+31>>5<<5,c.restore(),e.aw=t,e.ah=r;var s,l,h;if(e.rotate){var m=Math.sin(e.rotate*y),V=Math.cos(e.rotate*y),g=t*V,b=t*m,f=r*V,k=r*m;l=Math.max(Math.abs(g+k),Math.abs(g-k))+31>>5<<5,h=~~Math.max(Math.abs(b+f),Math.abs(b-f))}return e.size<=U||e.rotate&&t*r<=e.area&&i>=l&&n>=h||t*r<=e.area&&i>=t&&n>=r?void(e.area=t*r):(s=e.rotate&&l>i&&h>n?Math.min(i/l,n/h):t>i||r>n?Math.min(i/t,n/r):Math.sqrt(e.area/(e.aw*e.ah)),e.size=~~(s*e.size),e.sizel?l:V:l,s.area=t*s.areapre,s.totalarea=t,o(s)}},t}),i("echarts/layout/WordCloudRectZero",["require"],function(){function e(e){this.defaultOption={type:"RECT"},this._init(e)}return e.prototype={RECT:"_calculateRect",_init:function(e){this._initOption(e),this._initCanvas()},_initOption:function(e){for(k in e)this.defaultOption[k]=e[k]},_initCanvas:function(){var e=document.createElement("canvas");e.width=1,e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);if(e.width=this.defaultOption.width,e.height=this.defaultOption.height,e.getContext)var i=e.getContext("2d");this.canvas=e,this.ctx=i,this.ratio=t},calculate:function(e,t){var i=this.defaultOption.type,n=this[i];this[n].call(this,e,t)},_calculateReturn:function(e,t,i){t.call(i,e)},_calculateRect:function(e,t){var i={},n=this.defaultOption.width>>5<<5,a=this.defaultOption.height;i.initarr=this._rectZeroArray(n*a),i.area=n*a,i.maxHit=a,i.maxWit=n,i.imgboard=this._rectBoard(n,a),this._calculateReturn(i,e,t)},_rectBoard:function(e,t){for(var i=[],n=0;t>n;n++)i.push({y:n,start:0,end:e});for(var a=[],n=0;e>n;n++)a.push({x:n,start:0,end:t});return{row:i,cloumn:a}},_rectZeroArray:function(e){for(var t=[],i=e,n=-1;++ni;++i)if(e[i].type===a.CHART_TYPE_HEATMAP){e[i]=this.reformOption(e[i]);var o=new n(e[i]),s=o.getCanvas(e[i].data,this.zr.getWidth(),this.zr.getHeight()),l=new r({position:[0,0],scale:[1,1],hoverable:this.option.hoverable,style:{x:0,y:0,image:s,width:s.width,height:s.height}});this.shapeList.push(l)}this.addShapeList()}},o.inherits(t,i),e("../chart").define("heatmap",t),t});var n=t("zrender");n.tool={color:t("zrender/tool/color"),math:t("zrender/tool/math"),util:t("zrender/tool/util"),vector:t("zrender/tool/vector"),area:t("zrender/tool/area"),event:t("zrender/tool/event")},n.animation={Animation:t("zrender/animation/Animation"),Cip:t("zrender/animation/Clip"),easing:t("zrender/animation/easing")};var a=t("echarts");a.config=t("echarts/config"),a.util={mapData:{params:t("echarts/util/mapData/params")}},t("echarts/chart/line"),t("echarts/chart/bar"),t("echarts/chart/scatter"),t("echarts/chart/k"),t("echarts/chart/pie"),t("echarts/chart/radar"),t("echarts/chart/chord"),t("echarts/chart/force"),t("echarts/chart/map"),t("echarts/chart/gauge"),t("echarts/chart/funnel"),t("echarts/chart/eventRiver"),t("echarts/chart/venn"),t("echarts/chart/treemap"),t("echarts/chart/tree"),t("echarts/chart/wordCloud"),t("echarts/chart/heatmap"),e.echarts=a,e.zrender=n}(window); diff --git a/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.css b/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.css new file mode 100644 index 0000000..d2d9be7 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.css @@ -0,0 +1,77 @@ +/* Table */ +table.inputtable { + width: 100%;margin: 15px 0;border: 1px solid #ddd;border-collapse: collapse;border-spacing: 0; + -moz-box-shadow:0 1px 3px rgba(0,0,0,.075); + -webkit-box-shadow:0 1px 3px rgba(0,0,0,.075); + box-shadow:0 1px 3px rgba(0,0,0,.075) +} +/* Buttons */ +table.inputtable a.icon-button { + background-color: #ccc;display: inline-block;width: 18px;height: 18px;text-decoration: none;color: #fff;font-weight: 800;line-height: 16px;text-align: center;font-size: 14px; + -moz-border-radius: 1px; + -webkit-border-radius: 1px; + border-radius: 1px; + -moz-box-shadow: 0 0 1px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 0 1px rgba(0,0,0,0.2); + box-shadow: 0 0 1px rgba(0,0,0,0.2); +} +/* Add Buttons */ +table.inputtable a.icon-button.addcol, table.inputtable a.icon-button.addrow { + background-color: #81b71a; +} +/* Remove Buttons */ +table.inputtable a.icon-button.delcol, table.inputtable a.icon-button.delrow { + background-color: #db4a39; +} +/* Disabled Buttons */ +table.inputtable a.icon-button.disabled { + background-color: #eee; +} +/* Row last cel */ + +/* Table single cells */ +table.inputtable td, table.inputtable th { + border: 1px solid #eee;text-align: center;height: 40px;vertical-align: middle;font-size: 14px; +} +/* Table headers single cells */ +table.inputtable th { + background-color: #f1f1f1; + border-color: #ddd; + border-top:none; + border-bottom: 2px solid #ddd; +} +/* Table body inputs */ +table.inputtable td input[type=text] { + border: 0;width: 90%;height: 100%;padding: 0 5%;text-align: center; +} +/* Table body inputs on focus */ +table.inputtable tr td input:focus { + background-color: #fafafa; +} +/* First body row cells & input on table without columns header */ +table.inputtable.wh tbody tr:nth-child(1), table.inputtable.wh tbody tr:nth-child(1) input { + background-color: #fdfdfd;font-weight: 800; +} +/* Hide borders when not needed hack */ +table.inputtable th:first-child, table.inputtable td:first-child { + border-left:none; +} +table.inputtable tr:last-child td { + border-bottom:none; +} +/* Mobile Landscape */ +@media only screen and (max-width : 480px) { + /* Table single cells */ + table.inputtable td, table.inputtable th { + min-width: 40px;height: 80px; + } + /* Buttons */ + table.inputtable a.icon-button { + width: 40px;height: 40px;font-size: 18px;min-width: 40px;line-height: 40px; + margin: 3px 0; + } + /* Table body inputs */ + table.inputtable td input { + height: 80px; + } +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.js b/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.js new file mode 100644 index 0000000..7a2e7b4 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.js @@ -0,0 +1,309 @@ +/*! editTable v0.2.0 by Alessandro Benoit */ +(function ($, window, i) { + + 'use strict'; + + $.fn.editTable = function (options) { + + // Settings + var s = $.extend({ + data: [['']], + tableClass: 'inputtable', + jsonData: false, + headerCols: false, + maxRows: 999, + first_row: true, + row_template: false, + field_templates: false, + validate_field: function (col_id, value, col_type, $element) { + return true; + } + }, options), + $el = $(this), + defaultTableContent = '', + $table = $('', { + class: s.tableClass + ((s.first_row) ? ' wh' : ''), + html: defaultTableContent + }), + defaultth = '',//'', + colnumber, + rownumber, + reset, + is_validated = true; + + // Increment for IDs + i = i + 1; + + // Build cell + function buildCell(content, type) { + content = (content === 0) ? "0" : (content || ''); + // Custom type + if (type && 'text' !== type){ + var field = s.field_templates[type]; + return ''; + } + // Default + return ''; + } + + // Build row + function buildRow(data, len) { + + var rowcontent = '', b; + + data = data || ''; + + if (!s.row_template) { + // Without row template + for (b = 0; b < (len || data.length); b += 1) { + rowcontent += buildCell(data[b]); + } + } else { + // With row template + for (b = 0; b < s.row_template.length; b += 1) { + // For each field in the row + rowcontent += buildCell(data[b], s.row_template[b]); + } + } + + return $('', { + html: rowcontent //+ '' + }); + + } + + // Check button status (enable/disabled) + function checkButtons() { + if (colnumber < 2) { + $table.find('.delcol').addClass('disabled'); + } + if (rownumber < 2) { + $table.find('.delrow').addClass('disabled'); + } + if (s.maxRows && rownumber === s.maxRows) { + $table.find('.addrow').addClass('disabled'); + } + } + + // Fill table with data + function fillTableData(data) { + + var a, crow = Math.min(s.maxRows, data.length); + + // Clear table + $table.html(defaultTableContent); + + // If headers or row_template are set + if (s.headerCols || s.row_template) { + + // Fixed columns + var col = s.headerCols || s.row_template; + + // Table headers + for (a = 0; a < col.length; a += 1) { + var col_title = s.headerCols[a] || ''; + $table.find('thead tr').append(''); + } + + // Table content + for (a = 0; a < crow; a += 1) { + // For each row in data + buildRow(data[a], col.length).appendTo($table.find('tbody')); + } + + } else if ( data[0] ) { + + // Variable columns + for (a = 0; a < data[0].length; a += 1) { + $table.find('thead tr').append(defaultth); + } + + for (a = 0; a < crow; a += 1) { + buildRow(data[a]).appendTo($table.find('tbody')); + } + + } + + // Append missing th + $table.find('thead tr').append(''); + + // Count rows and columns + colnumber = $table.find('thead th').length - 1; + rownumber = $table.find('tbody tr').length; + + checkButtons(); + } + + // Export data + function exportData() { + var row = 0, data = [], value; + + is_validated = true; + + $table.find('tbody tr').each(function () { + + row += 1; + data[row] = []; + + $(this).find('td:not(:last-child)').each(function (i, v) { + if ( s.row_template && 'text' !== s.row_template[i] ){ + var field = s.field_templates[s.row_template[i]], + el = $(this).find($(field.html).prop('tagName')); + + value = field.getValue(el); + if ( !s.validate_field(i, value, s.row_template[i], el) ){ + is_validated = false; + } + data[row].push(value); + } else { + value = $(this).find('input[type="text"]').val(); + if ( !s.validate_field(i, value, 'text', v) ){ + is_validated = false; + } + data[row].push(value); + } + }); + + }); + + // Remove undefined + data.splice(0, 1); + + return data; + } + + // Fill the table with data from textarea or given properties + if ($el.is('textarea')) { + + try { + reset = JSON.parse($el.val()); + } catch (e) { + reset = s.data; + } + + $el.after($table); + + // If inside a form set the textarea content on submit + if ($table.parents('form').length > 0) { + $table.parents('form').submit(function () { + $el.val(JSON.stringify(exportData())); + }); + } + + } else { + reset = (JSON.parse(s.jsonData) || s.data); + $el.append($table); + } + + fillTableData(reset); + + // Add column + $table.on('click', '.addcol', function () { + + var colid = parseInt($(this).closest('tr').children().index($(this).parent('th')), 10); + + colnumber += 1; + + $table.find('thead tr').find('th:eq(' + colid + ')').after(defaultth); + + $table.find('tbody tr').each(function () { + $(this).find('td:eq(' + colid + ')').after(buildCell()); + }); + + $table.find('.delcol').removeClass('disabled'); + + return false; + }); + + // Remove column + $table.on('click', '.delcol', function () { + + if ($(this).hasClass('disabled')) { + return false; + } + + var colid = parseInt($(this).closest('tr').children().index($(this).parent('th')), 10); + + colnumber -= 1; + + checkButtons(); + + $(this).parent('th').remove(); + + $table.find('tbody tr').each(function () { + $(this).find('td:eq(' + colid + ')').remove(); + }); + + return false; + }); + + // Add row + $table.on('click', '.addrow', function () { + + if ($(this).hasClass('disabled')) { + return false; + } + + rownumber += 1; + + $(this).closest('tr').after(buildRow(0, colnumber)); + + $table.find('.delrow').removeClass('disabled'); + + checkButtons(); + + return false; + }); + + // Delete row + $table.on('click', '.delrow', function () { + + if ($(this).hasClass('disabled')) { + return false; + } + + rownumber -= 1; + + checkButtons(); + + $(this).closest('tr').remove(); + + $table.find('.addrow').removeClass('disabled'); + + return false; + }); + + // Select all content on click + $table.on('click', 'input', function () { + $(this).select(); + }); + + // Return functions + return { + // Get an array of data + getData: function () { + return exportData(); + }, + // Get the JSON rappresentation of data + getJsonData: function () { + return JSON.stringify(exportData()); + }, + // Load an array of data + loadData: function (data) { + fillTableData(data); + }, + // Load a JSON rappresentation of data + loadJsonData: function (data) { + fillTableData(JSON.parse(data)); + }, + // Reset data to the first instance + reset: function () { + fillTableData(reset); + }, + isValidated: function () { + return is_validated; + } + }; + }; + +})(jQuery, this, 0); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.min.css b/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.min.css new file mode 100644 index 0000000..3130dc7 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.min.css @@ -0,0 +1,18 @@ +table.inputtable{width:100%;border:1px solid #ddd;border-collapse:collapse;border-spacing:0;-moz-box-shadow:0 1px 3px rgba(0,0,0,.075);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.075);box-shadow:0 1px 3px rgba(0,0,0,.075);margin:15px 0} +table.inputtable a.icon-button{background-color:#ccc;display:inline-block;width:18px;height:18px;text-decoration:none;color:#fff;font-weight:800;line-height:16px;text-align:center;font-size:14px;-moz-border-radius:1px;-webkit-border-radius:1px;border-radius:1px;-moz-box-shadow:0 0 1px rgba(0,0,0,0.2);-webkit-box-shadow:0 0 1px rgba(0,0,0,0.2);box-shadow:0 0 1px rgba(0,0,0,0.2)} +table.inputtable a.icon-button.addcol,table.inputtable a.icon-button.addrow{background-color:#81b71a} +table.inputtable a.icon-button.delcol,table.inputtable a.icon-button.delrow{background-color:#db4a39} +table.inputtable a.icon-button.disabled{background-color:#eee} +table.inputtable td:last-child,table.inputtable th:last-child{background-color:#f8f8f8;width:54px;border:none} +table.inputtable td,table.inputtable th{border:1px solid #eee;text-align:center;height:40px;vertical-align:middle;font-size:14px} +table.inputtable th{background-color:#f1f1f1;border-top:none;border-bottom:2px solid #ddd;border-color:#ddd} +table.inputtable td input[type=text]{border:0;width:90%;height:100%;text-align:center;padding:0 5%} +table.inputtable tr td input:focus{background-color:#fafafa} +table.inputtable.wh tbody tr:nth-child(1),table.inputtable.wh tbody tr:nth-child(1) input{background-color:#fdfdfd;font-weight:800} +table.inputtable th:first-child,table.inputtable td:first-child{border-left:none} +table.inputtable tr:last-child td{border-bottom:none} +@media only screen and max-width 480px { +table.inputtable td,table.inputtable th{min-width:40px;height:80px} +table.inputtable a.icon-button{width:40px;height:40px;font-size:18px;min-width:40px;line-height:40px;margin:3px 0} +table.inputtable td input{height:80px} +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.min.js b/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.min.js new file mode 100644 index 0000000..c2527ec --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/edittable/jquery.edittable.min.js @@ -0,0 +1,2 @@ +/*! editTable v0.2.0 by Alessandro Benoit */ +(function(e,t,n){"use strict";e.fn.editTable=function(t){function p(e,t){e=e===0?"0":e||"";if(t&&"text"!==t){var n=r.field_templates[t];return""}return''}function d(t,n){var i="",s;t=t||"";if(!r.row_template){for(s=0;s<(n||t.length);s+=1){i+=p(t[s])}}else{for(s=0;s",{html:i+''})}function v(){if(f<2){u.find(".delcol").addClass("disabled")}if(l<2){u.find(".delrow").addClass("disabled")}if(r.maxRows&&l===r.maxRows){u.find(".addrow").addClass("disabled")}}function m(e){var t,n=Math.min(r.maxRows,e.length);u.html(o);if(r.headerCols||r.row_template){var i=r.headerCols||r.row_template;for(t=0;t"+s+"")}for(t=0;t");f=u.find("thead th").length-1;l=u.find("tbody tr").length;v()}function g(){var t=0,n=[],i;h=true;u.find("tbody tr").each(function(){t+=1;n[t]=[];e(this).find("td:not(:last-child)").each(function(s,o){if(r.row_template&&"text"!==r.row_template[s]){var u=r.field_templates[r.row_template[s]],a=e(this).find(e(u.html).prop("tagName"));i=u.getValue(a);if(!r.validate_field(s,i,r.row_template[s],a)){h=false}n[t].push(i)}else{i=e(this).find('input[type="text"]').val();if(!r.validate_field(s,i,"text",o)){h=false}n[t].push(i)}})});n.splice(0,1);return n}var r=e.extend({data:[[""]],tableClass:"inputtable",jsonData:false,headerCols:false,maxRows:999,first_row:true,row_template:false,field_templates:false,validate_field:function(e,t,n,r){return true}},t),s=e(this),o="",u=e("
                              + -' + field.setValue(field.html, content)[0].outerHTML + '
                              + -' + col_title + '"+n.setValue(n.html,e)[0].outerHTML+"+ -
                              ",{"class":r.tableClass+(r.first_row?" wh":""),html:o}),a='',f,l,c,h=true;n=n+1;if(s.is("textarea")){try{c=JSON.parse(s.val())}catch(y){c=r.data}s.after(u);if(u.parents("form").length>0){u.parents("form").submit(function(){s.val(JSON.stringify(g()))})}}else{c=JSON.parse(r.jsonData)||r.data;s.append(u)}m(c);u.on("click",".addcol",function(){var t=parseInt(e(this).closest("tr").children().index(e(this).parent("th")),10);f+=1;u.find("thead tr").find("th:eq("+t+")").after(a);u.find("tbody tr").each(function(){e(this).find("td:eq("+t+")").after(p())});u.find(".delcol").removeClass("disabled");return false});u.on("click",".delcol",function(){if(e(this).hasClass("disabled")){return false}var t=parseInt(e(this).closest("tr").children().index(e(this).parent("th")),10);f-=1;v();e(this).parent("th").remove();u.find("tbody tr").each(function(){e(this).find("td:eq("+t+")").remove()});return false});u.on("click",".addrow",function(){if(e(this).hasClass("disabled")){return false}l+=1;e(this).closest("tr").after(d(0,f));u.find(".delrow").removeClass("disabled");v();return false});u.on("click",".delrow",function(){if(e(this).hasClass("disabled")){return false}l-=1;v();e(this).closest("tr").remove();u.find(".addrow").removeClass("disabled");return false});u.on("click","input",function(){e(this).select()});return{getData:function(){return g()},getJsonData:function(){return JSON.stringify(g())},loadData:function(e){m(e)},loadJsonData:function(e){m(JSON.parse(e))},reset:function(){m(c)},isValidated:function(){return h}}}})(jQuery,this,0) \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/edittable/main.css b/novel-admin/src/main/resources/static/js/plugins/edittable/main.css new file mode 100644 index 0000000..cb2f100 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/edittable/main.css @@ -0,0 +1,51 @@ +body { font-family: "Helvetica Neue"; } +.container {margin: 0 auto;width: 90%;padding: 0 5% 20px 5%;max-width: 960px;} + +a { text-decoration: none;color: #4988C6; } +p {color: #444;} +h1 span {color: #ddd;font-size: 26px;} + +.title {font-weight: 800;font-size: 12px;text-transform: uppercase;padding: 15px 0 0 0;display: block;} +pre {background-color: #fafafa;padding: 20px;overflow: auto;border: 1px solid #f1f1f1;color: #000;} +.note {color: #999;font-size: 14px;} +.download_button {padding: 15px 0;background: #F2F2F2;display: block;margin: 30px auto;width: 100%;max-width: 200px;text-align: center;color: #4988C6;text-decoration: none;font-weight: 800;font-size: 12px;border-bottom: 3px solid #ddd;} +.download_button:active {position: relative;top: 3px;border-bottom: 0;} +.download_button:hover {background-color: #eaeaea;} + +button, a.button { + border: none;padding: 0 20px;height: 40px;background-color: #eee;color: #333;text-decoration: none;display: inline-block;line-height: 40px; + margin: 0;vertical-align: top;font-weight: 200;border-bottom: 1px solid #ddd;font-family: "Helvetica Neue"; + -moz-box-sizing: content-box;-webkit-box-sizing: content-box;box-sizing: content-box;font-size: 14px;cursor: pointer;margin: 5px 0; +} +button::-moz-focus-inner { border: 0px; } +button:hover, a.button:hover { + background-color: #f1f1f1; +} +button:active, a.button:active{ + background-color: #e9e9e9; +} +textarea { + width: 98%;height: 100px;padding: 1%;border: 1px solid #eee; +} +#ui-datepicker-div { + font-size: 12px; +} +.examplecode { + padding: 15px 2%;background-color: #fffef1;border-top: 2px dotted #eee;border-bottom: 2px dotted #eee;margin-top: 10px; +} +.examplecode pre { + background-color: #ffffff; +} +hr { + border: 0;margin-top: 20px; + color: #eee;background-color: #eee;height: 3px; +} +.inputtable.custom textarea { + width: 96%;margin:0;padding:5px 2%;border: 0;resize: none;height: 100px; +} +.inputtable.custom textarea:focus { + background-color: #fafafa; +} +.inputtable.custom input[type=text]{ + height: 110px; +} \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/fancybox/blank.gif b/novel-admin/src/main/resources/static/js/plugins/fancybox/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_loading.gif b/novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..a03a40c097ee728709f65d4ea7397903a389d484 GIT binary patch literal 6567 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_loading@2x.gif b/novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_loading@2x.gif new file mode 100644 index 0000000000000000000000000000000000000000..9205aeb09fffa6b571b4c6beee30b18400829c03 GIT binary patch literal 13984 zcmdtpX;f2(+Ar{(ot=4L0|COk2@%3*z%UvmBmq&;1`CRoVn8Z`pb=0JsqPHSQ$#>O zlpu(Ls8JA6P{W{NYc1kXYOM{3ii(OuTWdX>n;y^c^`4${?|t8U*In!0e1XN{3&Z}c z|NnWOELa%o9}vd{xWEAbfIvv4P>F@&!Tv!ui=7ak(7eBSVtj&O!iZcJ$@AuAre}7Z z=&Y=+yfJd)^~={(GPR_rBz#f$m9MV2ySk^Qq_(%U+gRDetcu|W@^i9tde8K}d;4zc z*;M_$`a5^;KzK-%rxJ&X2QLn?o!AL$6PjC^Cmu{N%o&l(BYD2O%*~mdU7huH^*3(a zc>T+3DxF$VRuaB6{L0lU?w;r>m0w%gd*#Kgw%=ks&6=k%WIeK+$C_{YoPuau=B zk)Mi!B_ZCPTr9@$b%);|5($_Gxc~7zfBcvLenz)X7Uph+@%iqcoEz9Md`R*#z-GR2 zt8dXVpW?ZVIZ+-Gx=Ycb(>>SzCy`;_Wwyar_cK7Wh&O zrlIseae92AkZ50;y?W<7KWti>V~)@`f6qLxhBEd3d4LHAEHdDkiYOs-Y)E{V> zW6~D2Vh>eoeqwMQvwM#Fl3qfgiFP)WjF1Bwg^0QQ6y5A-#_f4rQ>{ZN!bL)0FKcTj zmtREz>uarK!Iv6s=Pl9&3g{3SgfGt;U2si=UkR|9DQrcaG60u7isr@<0SI=eK&Fo^ zD5be?9#mQCKQjUyhnGl(MIkd-Q|7a?DLlO$K=fO7R5j{NxbUU>FJ2r>(*il^6xhiY z>VYN#BOC1&Nbi>(V6PW1W^Qu2@}*POh)!lqE&*prUJD90A6Ur~1Cn9C3_=KY-6?@2 z+kBkHC|pv+ec`({{OnGtI;_W%MbkT22*IID5#$9S zXvQ)C7@*nAY@T$WGDj4Gs1X2WF#xqhL=24KkO8B4T{q2%dO;l3^!ANQqQmk-HIRco zYYlba_0G!GuXnx?`&;QJn|JA-4k2QTD;$VyMqM~oZ3Y1Sv_
                              bMxRL(pijsY@019xTxeF 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_overlay.png b/novel-admin/src/main/resources/static/js/plugins/fancybox/fancybox_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..a4391396a9d6b6d7ff3b781f16904732fea40bdd GIT binary patch literal 1003 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

                              {cP>K~WSV?QiOUg(!Dd1dWv0J@GIAL)h*?aeE#ulO zk|BhCPH)43#Mp`=Bf0xHCiYY{;2@sygM5xXMzZ%K92->{{Z|j(x?YBs5pATq*L&*r z8$-QkBs%oFGZ1E zS`=@;rpDhdTu)kBxE`@XVMZOqRx+hEt1E(U+scqDrXACRk4X3mLI5>h!%J-zA`=aW zSGbs*ZzFPLxt8_W8Sx2(W)|PWl&rpYY0#|um@d^SJTV$U^CFmI$lv;tFu14AEZklZ zzJVmGv3u`7>k!O-@_cQuIZ%gpuQ+pgtzg~2_>JkkG_|jQ(#~q^uL~|{wjMe(Fzho6 zBb;2MMEWZG?xua1muK@9h7r554RN<$xn>es!t^=ks!~q6voxbz#ozRgL+n{8#Cf=LK1}?L?PGipU>sa z)yHF4R*C`{Dq)ho{B2uWQ?$+FECBTrofb+*{y3xD&a?~N;?BV*)klj7{gr*Rb z3zRa#*zWc+tT!gB#B!bV1-Grf1Z^lFE-pmJU(_sf^>uymMAXgN1@`#1; ze&uuY_Czmy32YL6nG8wkrvSWIFZ9`K+L8KE4x`lHREkN96+(UskQ#`m(JC8#p@k_h ztrFe|Pw3lA`2(v@3ocXtAS9EGdegUP*?yaEZD#K+SkP%o;Dj%9_pzkDk6UHv;@m#h z(ek%E1X4Laemh2;T~ch3b+NPDVdGOs$p3kud2CVlG{x`Sm$*@O9?_n-%A!$BAHnnR zwvp+nMD&ZY1!FE#V8amjJj?Oj?9*FhPp-To`@bYL(Kn8qw9^#x*cGvck6OkEo|Mu= zf$1Je=xGT>@L5ljNQkiCe-cl53FATYs}{62m7Vn59vqn01}#~(BWRG)gz{&;{B zhV4JMP>f)s7Po63UrFw*J42u$*sY;S6 z5p@_fM(slvZGq~1>`3QH>MsTd9jdL?E%V~jRhoTf=;55#BSvEWF%Ac2$OpQvtk<+C z{95iP22@5lt?Rl|g9-M}H0^X$@4Nlid~K2zi1ZC1Ar}EUis9!Pb!?q9H7tuefW_FW zmqv#`QpP3{CxMaIv`t?e zcw11XtJZ?%hu@fVFdP&sV&I$Iq&}6Y{>$a=j1X^TiE)e4z>}YhEKTJr2`+|dpCa># zs8);fZ|#G(rY4?BGvI|M(+MT9B6<8Zgs}rxJZ&$(D4Z+W@~&f-DYgB2ME>E^qgTNu z*<5SZFG7ez7Ym7EfjzDOM8)zVl{F60*)?in+)6Q5Dj)ps-|yKL2lLvmwI(V#!6ae` zWnX%&-F_?)^T%N$+{$IF!h@uCS&swPs4EIH;i?URX6Fa5m+yK7wR|TFlA&)&8o_jV zDTOAl9GzEAs>*RREaP>j8IAD_HfeICPI*5)|7?>i%V-`{-(&{_k39%&gW zo$16PZH!PZMHbXaTSo_t({|xh+<}hxwhQZb2P{!f#O`tfYF2Rj(P|c3g#K)H2ypvsZ@9GF&<5HT5)CTU0M&1@tauT zxlk(W^<{aF)1!N@=DLeBHXe6}+k&2E96!T%44{`bWJn2fu_KsNqI5l6u7CmDdyvz< zk*Hqyk*0`jFyNU2J;q5ZtSePbQ}H0{Z2fAVwA=#RoB3@du%Lz3QS<1U$)ma+HE(`3 zQIhnhQ(NBa?ysA^XwBO}&@U;=ql1GzHOlp|#}iV{6$L#OS;gS;DXkCYiju*z`N zuw8kOKg=TfdfTL&oUsVLHmI$Bw^{xpxMjj4%H-xI#i(*;fPX8sA}qTdyKFrr>c!(v z!P~R#-#oczrNJt#Tdg+1SF>3LtEDmUQBg#8%0D8SsQj(Z;uoSxA79$6Q;k;S0*w&_cj@-Qs@$G|9ky?Oey7=20!DG zD_M2$wQ|stoVX9l10-&_UZAbBwGm;1+ ze}l8!FIrmj70ZyqifJ|{M!FzM9Kr5h6y8GwIv%BcU)c9HT(Yw*Q?xi2rJUvwHP5Tx z2Uc@Te-4Z^5Qq@X5YDl{#KxGBFn%5L#tq@U{Jly2SKEt)3f}zl276=I<;DQjb;bII z7>=kYX4eAu&Zm?}vvHb+b?s?WlClzkWIcOzIiW^r(A1oO=fsQj^p2Ju>fqi%oGJr< z=DPrCJX}m{;wqxWwXxw!`g!~H=jzmyvI3$}N(4DUoCa-gO6GRhwYep8Q7TlTkGH`+ zA3mTX5zLs4Z9|u0*l-ncUHI7jmV!T08p-Xesj@YE!pUgp!`0RHR21Cne)BB9dzxhS zQKY(umEHw(p0EUuoN2r#tHgg0l%ukPwNknrp4OeB%`X- zqM%;a{Jw9@kpEsLAbv`VO+l_I>g&CQ65Ax3NDu=`CUe^(ivCd|`w@Ie;Nz{fZ{Kur zcy`L}>kPTFZGJ%{8VjTaR)Kw)(f{z8_!ob>U)vg$){*%mObM{&)t}vGEi6{;pZBxu z4iL(}RDMhuAuI;r$3$PQ2!z(DoLl%Xk;|>7A5l9zmAk;b)!vH6X1wD<`TuR{=Hu-4 zNv=m$_?b&*AM0&I6pe=)FsTS&y$YKy~XOgKVVnB(F3oa>|jtRW#?W{JEP@c)9qpcy7~BYnCW&Kw~Yz62|BTHwX6+;CklwaE^2p=-)+ZCOO^!`JWa%CDI-Px5F{A zi~`Qd(A|D>X0j5Kr;^=1MqU9@fn&ABSNO5@V09QkW=epK$cbPVY-eEv^D%9ls z)=h6p99=_e83xZTF&iUroj(xLK;o}=4ubBgtd=Z5or*I*8&0aKK~E@($$yto3g&pc zOHZVX0~99aNM>Y?kMkUhTJuu2LK-{tm1mu32m%7}SH`5SwGp=(FzOuV_$A2N~E zT1!%5*$TcvNx@vF#DY5|-ZMASLa!z~A2#*mPwA$1q%*y5XXk~z!Vq4+mi&L@i1=VR zmjkR%?wW>U5}urjk;=mis1_0vdN%qClrLUpK5ntoc5Ve&8*fiOx^7N~384=0Z5_`? zj3nl=7MO7^O9LyypVtop@~J(d5>9Qk>byP#}Hd8ZYz9ahK^a2(Q*y<~&fsQ!`BT;OzkD?(~jc z5F#@X%l4=1;?T>8TgQ$(6Ht1M52=Z=tIcDEjz4x;EcE1!-|L{8<&5NeNxIzZFFd(M zw&c}B%=vB(`}-Gd3RPUGU40LULVDrk8TKsHRk?cK;<6S+b;ZuiY+7KH{OR#xo(Lm2 zcyj3O5soRhN3lSf9No1QjB@{nBpektQqZ@$Whb=4EIR8X7Y1@IUq z;4@>7-Ak-U70Z>;B$EHC z`BqhJp@!B&%oK4yh9HXaibXtJgRKijubV=Ze^A*5f;X%nH#0=vSNcXk zU-48)jQj59@e|M_L%$Cdfq+>j0bE1b*HJF*gY?~+ZUqKtt7f7meA|y6Q*|$3xZZ&6 zf{Nqs(9fGb5^Dan9Oew3p(AvNiYa74kQdk%u21__VSl%k1%>RiTB;omrM0#~ zUGBMa6l;9*nlwa0r49uUL(1l z7ibJ|BM&fA>Xl!Bcqh7il}~Es!)IL>$DfO7+;6L!3K6Ro&)ns{*9o|s+RPwRLuD$s zAN?zUjlL^xOoXBJfcsjFBdb|T<4A*uYr+8ZNx9Ml(%{|BtvPS#m({P7`yAWSu4SbA zd0WyHXh-iZpac+|^M3AS^^QA@}LtfTGuaSGRzSvJ;z+1Dw;M@0^knpip7#_myir zV_Z-WGzPz3Rg26;i-Ket0x$p{nNDHZq9*wdQzPAxpmtxCn35bO6qX+{c9`@ zSq~~@L$|=ov<$%@_oNF)!tpTM&br7j?{Ecn`xRt(NEHjPe%kC7CkBhy6<&Gtd1;C=fA`HRp{C^E`6^wcyVN= S1P^~LSQ@H2DwWEJcmD(3qHSjY literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/fancybox/jquery.fancybox.css b/novel-admin/src/main/resources/static/js/plugins/fancybox/jquery.fancybox.css new file mode 100644 index 0000000..eaad494 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/fancybox/jquery.fancybox.css @@ -0,0 +1,274 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +.fancybox-wrap, +.fancybox-skin, +.fancybox-outer, +.fancybox-inner, +.fancybox-image, +.fancybox-wrap iframe, +.fancybox-wrap object, +.fancybox-nav, +.fancybox-nav span, +.fancybox-tmp +{ + padding: 0; + margin: 0; + border: 0; + outline: none; + vertical-align: top; +} + +.fancybox-wrap { + position: absolute; + top: 0; + left: 0; + z-index: 8020; +} + +.fancybox-skin { + position: relative; + background: #f9f9f9; + color: #444; + text-shadow: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.fancybox-opened { + z-index: 8030; +} + +.fancybox-opened .fancybox-skin { + -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); +} + +.fancybox-outer, .fancybox-inner { + position: relative; +} + +.fancybox-inner { + overflow: hidden; +} + +.fancybox-type-iframe .fancybox-inner { + -webkit-overflow-scrolling: touch; +} + +.fancybox-error { + color: #444; + font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + margin: 0; + padding: 15px; + white-space: nowrap; +} + +.fancybox-image, .fancybox-iframe { + display: block; + width: 100%; + height: 100%; +} + +.fancybox-image { + max-width: 100%; + max-height: 100%; +} + +#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite.png'); +} + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + margin-top: -22px; + margin-left: -22px; + background-position: 0 -108px; + opacity: 0.8; + cursor: pointer; + z-index: 8060; +} + +#fancybox-loading div { + width: 44px; + height: 44px; + background: url('fancybox_loading.gif') center center no-repeat; +} + +.fancybox-close { + position: absolute; + top: -18px; + right: -18px; + width: 36px; + height: 36px; + cursor: pointer; + z-index: 8040; +} + +.fancybox-nav { + position: absolute; + top: 0; + width: 40%; + height: 100%; + cursor: pointer; + text-decoration: none; + background: transparent url('blank.gif'); /* helps IE */ + -webkit-tap-highlight-color: rgba(0,0,0,0); + z-index: 8040; +} + +.fancybox-prev { + left: 0; +} + +.fancybox-next { + right: 0; +} + +.fancybox-nav span { + position: absolute; + top: 50%; + width: 36px; + height: 34px; + margin-top: -18px; + cursor: pointer; + z-index: 8040; + visibility: hidden; +} + +.fancybox-prev span { + left: 10px; + background-position: 0 -36px; +} + +.fancybox-next span { + right: 10px; + background-position: 0 -72px; +} + +.fancybox-nav:hover span { + visibility: visible; +} + +.fancybox-tmp { + position: absolute; + top: -99999px; + left: -99999px; + visibility: hidden; + max-width: 99999px; + max-height: 99999px; + overflow: visible !important; +} + +/* Overlay helper */ + +.fancybox-lock { + overflow: hidden !important; + width: auto; +} + +.fancybox-lock body { + overflow: hidden !important; +} + +.fancybox-lock-test { + overflow-y: hidden !important; +} + +.fancybox-overlay { + position: absolute; + top: 0; + left: 0; + overflow: hidden; + display: none; + z-index: 8010; + background: url('fancybox_overlay.png'); +} + +.fancybox-overlay-fixed { + position: fixed; + bottom: 0; + right: 0; +} + +.fancybox-lock .fancybox-overlay { + overflow: auto; + overflow-y: scroll; +} + +/* Title helper */ + +.fancybox-title { + visibility: hidden; + font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + position: relative; + text-shadow: none; + z-index: 8050; +} + +.fancybox-opened .fancybox-title { + visibility: visible; +} + +.fancybox-title-float-wrap { + position: absolute; + bottom: 0; + right: 50%; + margin-bottom: -35px; + z-index: 8050; + text-align: center; +} + +.fancybox-title-float-wrap .child { + display: inline-block; + margin-right: -100%; + padding: 2px 20px; + background: transparent; /* Fallback for web browsers that doesn't support RGBa */ + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; + text-shadow: 0 1px 2px #222; + color: #FFF; + font-weight: bold; + line-height: 24px; + white-space: nowrap; +} + +.fancybox-title-outside-wrap { + position: relative; + margin-top: 10px; + color: #fff; +} + +.fancybox-title-inside-wrap { + padding-top: 10px; +} + +.fancybox-title-over-wrap { + position: absolute; + bottom: 0; + left: 0; + color: #fff; + padding: 10px; + background: #000; + background: rgba(0, 0, 0, .8); +} + +/*Retina graphics!*/ +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), + only screen and (min--moz-device-pixel-ratio: 1.5), + only screen and (min-device-pixel-ratio: 1.5){ + + #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite@2x.png'); + background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ + } + + #fancybox-loading div { + background-image: url('fancybox_loading@2x.gif'); + background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ + } +} diff --git a/novel-admin/src/main/resources/static/js/plugins/fancybox/jquery.fancybox.js b/novel-admin/src/main/resources/static/js/plugins/fancybox/jquery.fancybox.js new file mode 100644 index 0000000..a71cae0 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/fancybox/jquery.fancybox.js @@ -0,0 +1,2020 @@ +/*! + * fancyBox - jQuery Plugin + * version: 2.1.5 (Fri, 14 Jun 2013) + * @requires jQuery v1.6 or later + * + * Examples at http://fancyapps.com/fancybox/ + * License: www.fancyapps.com/fancybox/#license + * + * Copyright 2012 Janis Skarnelis - janis@fancyapps.com + * + */ + +(function (window, document, $, undefined) { + "use strict"; + + var H = $("html"), + W = $(window), + D = $(document), + F = $.fancybox = function () { + F.open.apply( this, arguments ); + }, + IE = navigator.userAgent.match(/msie/i), + didUpdate = null, + isTouch = document.createTouch !== undefined, + + isQuery = function(obj) { + return obj && obj.hasOwnProperty && obj instanceof $; + }, + isString = function(str) { + return str && $.type(str) === "string"; + }, + isPercentage = function(str) { + return isString(str) && str.indexOf('%') > 0; + }, + isScrollable = function(el) { + return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight))); + }, + getScalar = function(orig, dim) { + var value = parseInt(orig, 10) || 0; + + if (dim && isPercentage(orig)) { + value = F.getViewport()[ dim ] / 100 * value; + } + + return Math.ceil(value); + }, + getValue = function(value, dim) { + return getScalar(value, dim) + 'px'; + }; + + $.extend(F, { + // The current version of fancyBox + version: '2.1.5', + + defaults: { + padding : 15, + margin : 20, + + width : 800, + height : 600, + minWidth : 100, + minHeight : 100, + maxWidth : 9999, + maxHeight : 9999, + pixelRatio: 1, // Set to 2 for retina display support + + autoSize : true, + autoHeight : false, + autoWidth : false, + + autoResize : true, + autoCenter : !isTouch, + fitToView : true, + aspectRatio : false, + topRatio : 0.5, + leftRatio : 0.5, + + scrolling : 'auto', // 'auto', 'yes' or 'no' + wrapCSS : '', + + arrows : true, + closeBtn : true, + closeClick : false, + nextClick : false, + mouseWheel : true, + autoPlay : false, + playSpeed : 3000, + preload : 3, + modal : false, + loop : true, + + ajax : { + dataType : 'html', + headers : { 'X-fancyBox': true } + }, + iframe : { + scrolling : 'auto', + preload : true + }, + swf : { + wmode: 'transparent', + allowfullscreen : 'true', + allowscriptaccess : 'always' + }, + + keys : { + next : { + 13 : 'left', // enter + 34 : 'up', // page down + 39 : 'left', // right arrow + 40 : 'up' // down arrow + }, + prev : { + 8 : 'right', // backspace + 33 : 'down', // page up + 37 : 'right', // left arrow + 38 : 'down' // up arrow + }, + close : [27], // escape key + play : [32], // space - start/stop slideshow + toggle : [70] // letter "f" - toggle fullscreen + }, + + direction : { + next : 'left', + prev : 'right' + }, + + scrollOutside : true, + + // Override some properties + index : 0, + type : null, + href : null, + content : null, + title : null, + + // HTML templates + tpl: { + wrap : '

                              ', + image : '', + iframe : '', + error : '

                              The requested content cannot be loaded.
                              Please try again later.

                              ', + closeBtn : '', + next : '', + prev : '' + }, + + // Properties for each animation type + // Opening fancyBox + openEffect : 'fade', // 'elastic', 'fade' or 'none' + openSpeed : 250, + openEasing : 'swing', + openOpacity : true, + openMethod : 'zoomIn', + + // Closing fancyBox + closeEffect : 'fade', // 'elastic', 'fade' or 'none' + closeSpeed : 250, + closeEasing : 'swing', + closeOpacity : true, + closeMethod : 'zoomOut', + + // Changing next gallery item + nextEffect : 'elastic', // 'elastic', 'fade' or 'none' + nextSpeed : 250, + nextEasing : 'swing', + nextMethod : 'changeIn', + + // Changing previous gallery item + prevEffect : 'elastic', // 'elastic', 'fade' or 'none' + prevSpeed : 250, + prevEasing : 'swing', + prevMethod : 'changeOut', + + // Enable default helpers + helpers : { + overlay : true, + title : true + }, + + // Callbacks + onCancel : $.noop, // If canceling + beforeLoad : $.noop, // Before loading + afterLoad : $.noop, // After loading + beforeShow : $.noop, // Before changing in current item + afterShow : $.noop, // After opening + beforeChange : $.noop, // Before changing gallery item + beforeClose : $.noop, // Before closing + afterClose : $.noop // After closing + }, + + //Current state + group : {}, // Selected group + opts : {}, // Group options + previous : null, // Previous element + coming : null, // Element being loaded + current : null, // Currently loaded element + isActive : false, // Is activated + isOpen : false, // Is currently open + isOpened : false, // Have been fully opened at least once + + wrap : null, + skin : null, + outer : null, + inner : null, + + player : { + timer : null, + isActive : false + }, + + // Loaders + ajaxLoad : null, + imgPreload : null, + + // Some collections + transitions : {}, + helpers : {}, + + /* + * Static methods + */ + + open: function (group, opts) { + if (!group) { + return; + } + + if (!$.isPlainObject(opts)) { + opts = {}; + } + + // Close if already active + if (false === F.close(true)) { + return; + } + + // Normalize group + if (!$.isArray(group)) { + group = isQuery(group) ? $(group).get() : [group]; + } + + // Recheck if the type of each element is `object` and set content type (image, ajax, etc) + $.each(group, function(i, element) { + var obj = {}, + href, + title, + content, + type, + rez, + hrefParts, + selector; + + if ($.type(element) === "object") { + // Check if is DOM element + if (element.nodeType) { + element = $(element); + } + + if (isQuery(element)) { + obj = { + href : element.data('fancybox-href') || element.attr('href'), + title : element.data('fancybox-title') || element.attr('title'), + isDom : true, + element : element + }; + + if ($.metadata) { + $.extend(true, obj, element.metadata()); + } + + } else { + obj = element; + } + } + + href = opts.href || obj.href || (isString(element) ? element : null); + title = opts.title !== undefined ? opts.title : obj.title || ''; + + content = opts.content || obj.content; + type = content ? 'html' : (opts.type || obj.type); + + if (!type && obj.isDom) { + type = element.data('fancybox-type'); + + if (!type) { + rez = element.prop('class').match(/fancybox\.(\w+)/); + type = rez ? rez[1] : null; + } + } + + if (isString(href)) { + // Try to guess the content type + if (!type) { + if (F.isImage(href)) { + type = 'image'; + + } else if (F.isSWF(href)) { + type = 'swf'; + + } else if (href.charAt(0) === '#') { + type = 'inline'; + + } else if (isString(element)) { + type = 'html'; + content = element; + } + } + + // Split url into two pieces with source url and content selector, e.g, + // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id" + if (type === 'ajax') { + hrefParts = href.split(/\s+/, 2); + href = hrefParts.shift(); + selector = hrefParts.shift(); + } + } + + if (!content) { + if (type === 'inline') { + if (href) { + content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7 + + } else if (obj.isDom) { + content = element; + } + + } else if (type === 'html') { + content = href; + + } else if (!type && !href && obj.isDom) { + type = 'inline'; + content = element; + } + } + + $.extend(obj, { + href : href, + type : type, + content : content, + title : title, + selector : selector + }); + + group[ i ] = obj; + }); + + // Extend the defaults + F.opts = $.extend(true, {}, F.defaults, opts); + + // All options are merged recursive except keys + if (opts.keys !== undefined) { + F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false; + } + + F.group = group; + + return F._start(F.opts.index); + }, + + // Cancel image loading or abort ajax request + cancel: function () { + var coming = F.coming; + + if (!coming || false === F.trigger('onCancel')) { + return; + } + + F.hideLoading(); + + if (F.ajaxLoad) { + F.ajaxLoad.abort(); + } + + F.ajaxLoad = null; + + if (F.imgPreload) { + F.imgPreload.onload = F.imgPreload.onerror = null; + } + + if (coming.wrap) { + coming.wrap.stop(true, true).trigger('onReset').remove(); + } + + F.coming = null; + + // If the first item has been canceled, then clear everything + if (!F.current) { + F._afterZoomOut( coming ); + } + }, + + // Start closing animation if is open; remove immediately if opening/closing + close: function (event) { + F.cancel(); + + if (false === F.trigger('beforeClose')) { + return; + } + + F.unbindEvents(); + + if (!F.isActive) { + return; + } + + if (!F.isOpen || event === true) { + $('.fancybox-wrap').stop(true).trigger('onReset').remove(); + + F._afterZoomOut(); + + } else { + F.isOpen = F.isOpened = false; + F.isClosing = true; + + $('.fancybox-item, .fancybox-nav').remove(); + + F.wrap.stop(true, true).removeClass('fancybox-opened'); + + F.transitions[ F.current.closeMethod ](); + } + }, + + // Manage slideshow: + // $.fancybox.play(); - toggle slideshow + // $.fancybox.play( true ); - start + // $.fancybox.play( false ); - stop + play: function ( action ) { + var clear = function () { + clearTimeout(F.player.timer); + }, + set = function () { + clear(); + + if (F.current && F.player.isActive) { + F.player.timer = setTimeout(F.next, F.current.playSpeed); + } + }, + stop = function () { + clear(); + + D.unbind('.player'); + + F.player.isActive = false; + + F.trigger('onPlayEnd'); + }, + start = function () { + if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { + F.player.isActive = true; + + D.bind({ + 'onCancel.player beforeClose.player' : stop, + 'onUpdate.player' : set, + 'beforeLoad.player' : clear + }); + + set(); + + F.trigger('onPlayStart'); + } + }; + + if (action === true || (!F.player.isActive && action !== false)) { + start(); + } else { + stop(); + } + }, + + // Navigate to next gallery item + next: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.next; + } + + F.jumpto(current.index + 1, direction, 'next'); + } + }, + + // Navigate to previous gallery item + prev: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.prev; + } + + F.jumpto(current.index - 1, direction, 'prev'); + } + }, + + // Navigate to gallery item by index + jumpto: function ( index, direction, router ) { + var current = F.current; + + if (!current) { + return; + } + + index = getScalar(index); + + F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ]; + F.router = router || 'jumpto'; + + if (current.loop) { + if (index < 0) { + index = current.group.length + (index % current.group.length); + } + + index = index % current.group.length; + } + + if (current.group[ index ] !== undefined) { + F.cancel(); + + F._start(index); + } + }, + + // Center inside viewport and toggle position type to fixed or absolute if needed + reposition: function (e, onlyAbsolute) { + var current = F.current, + wrap = current ? current.wrap : null, + pos; + + if (wrap) { + pos = F._getPosition(onlyAbsolute); + + if (e && e.type === 'scroll') { + delete pos.position; + + wrap.stop(true, true).animate(pos, 200); + + } else { + wrap.css(pos); + + current.pos = $.extend({}, current.dim, pos); + } + } + }, + + update: function (e) { + var type = (e && e.type), + anyway = !type || type === 'orientationchange'; + + if (anyway) { + clearTimeout(didUpdate); + + didUpdate = null; + } + + if (!F.isOpen || didUpdate) { + return; + } + + didUpdate = setTimeout(function() { + var current = F.current; + + if (!current || F.isClosing) { + return; + } + + F.wrap.removeClass('fancybox-tmp'); + + if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) { + F._setDimension(); + } + + if (!(type === 'scroll' && current.canShrink)) { + F.reposition(e); + } + + F.trigger('onUpdate'); + + didUpdate = null; + + }, (anyway && !isTouch ? 0 : 300)); + }, + + // Shrink content to fit inside viewport or restore if resized + toggle: function ( action ) { + if (F.isOpen) { + F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView; + + // Help browser to restore document dimensions + if (isTouch) { + F.wrap.removeAttr('style').addClass('fancybox-tmp'); + + F.trigger('onUpdate'); + } + + F.update(); + } + }, + + hideLoading: function () { + D.unbind('.loading'); + + $('#fancybox-loading').remove(); + }, + + showLoading: function () { + var el, viewport; + + F.hideLoading(); + + el = $('
                              ').click(F.cancel).appendTo('body'); + + // If user will press the escape-button, the request will be canceled + D.bind('keydown.loading', function(e) { + if ((e.which || e.keyCode) === 27) { + e.preventDefault(); + + F.cancel(); + } + }); + + if (!F.defaults.fixed) { + viewport = F.getViewport(); + + el.css({ + position : 'absolute', + top : (viewport.h * 0.5) + viewport.y, + left : (viewport.w * 0.5) + viewport.x + }); + } + }, + + getViewport: function () { + var locked = (F.current && F.current.locked) || false, + rez = { + x: W.scrollLeft(), + y: W.scrollTop() + }; + + if (locked) { + rez.w = locked[0].clientWidth; + rez.h = locked[0].clientHeight; + + } else { + // See http://bugs.jquery.com/ticket/6724 + rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width(); + rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height(); + } + + return rez; + }, + + // Unbind the keyboard / clicking actions + unbindEvents: function () { + if (F.wrap && isQuery(F.wrap)) { + F.wrap.unbind('.fb'); + } + + D.unbind('.fb'); + W.unbind('.fb'); + }, + + bindEvents: function () { + var current = F.current, + keys; + + if (!current) { + return; + } + + // Changing document height on iOS devices triggers a 'resize' event, + // that can change document height... repeating infinitely + W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update); + + keys = current.keys; + + if (keys) { + D.bind('keydown.fb', function (e) { + var code = e.which || e.keyCode, + target = e.target || e.srcElement; + + // Skip esc key if loading, because showLoading will cancel preloading + if (code === 27 && F.coming) { + return false; + } + + // Ignore key combinations and key events within form elements + if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) { + $.each(keys, function(i, val) { + if (current.group.length > 1 && val[ code ] !== undefined) { + F[ i ]( val[ code ] ); + + e.preventDefault(); + return false; + } + + if ($.inArray(code, val) > -1) { + F[ i ] (); + + e.preventDefault(); + return false; + } + }); + } + }); + } + + if ($.fn.mousewheel && current.mouseWheel) { + F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) { + var target = e.target || null, + parent = $(target), + canScroll = false; + + while (parent.length) { + if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) { + break; + } + + canScroll = isScrollable( parent[0] ); + parent = $(parent).parent(); + } + + if (delta !== 0 && !canScroll) { + if (F.group.length > 1 && !current.canShrink) { + if (deltaY > 0 || deltaX > 0) { + F.prev( deltaY > 0 ? 'down' : 'left' ); + + } else if (deltaY < 0 || deltaX < 0) { + F.next( deltaY < 0 ? 'up' : 'right' ); + } + + e.preventDefault(); + } + } + }); + } + }, + + trigger: function (event, o) { + var ret, obj = o || F.coming || F.current; + + if (!obj) { + return; + } + + if ($.isFunction( obj[event] )) { + ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); + } + + if (ret === false) { + return false; + } + + if (obj.helpers) { + $.each(obj.helpers, function (helper, opts) { + if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { + F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); + } + }); + } + + D.trigger(event); + }, + + isImage: function (str) { + return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); + }, + + isSWF: function (str) { + return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i); + }, + + _start: function (index) { + var coming = {}, + obj, + href, + type, + margin, + padding; + + index = getScalar( index ); + obj = F.group[ index ] || null; + + if (!obj) { + return false; + } + + coming = $.extend(true, {}, F.opts, obj); + + // Convert margin and padding properties to array - top, right, bottom, left + margin = coming.margin; + padding = coming.padding; + + if ($.type(margin) === 'number') { + coming.margin = [margin, margin, margin, margin]; + } + + if ($.type(padding) === 'number') { + coming.padding = [padding, padding, padding, padding]; + } + + // 'modal' propery is just a shortcut + if (coming.modal) { + $.extend(true, coming, { + closeBtn : false, + closeClick : false, + nextClick : false, + arrows : false, + mouseWheel : false, + keys : null, + helpers: { + overlay : { + closeClick : false + } + } + }); + } + + // 'autoSize' property is a shortcut, too + if (coming.autoSize) { + coming.autoWidth = coming.autoHeight = true; + } + + if (coming.width === 'auto') { + coming.autoWidth = true; + } + + if (coming.height === 'auto') { + coming.autoHeight = true; + } + + /* + * Add reference to the group, so it`s possible to access from callbacks, example: + * afterLoad : function() { + * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); + * } + */ + + coming.group = F.group; + coming.index = index; + + // Give a chance for callback or helpers to update coming item (type, title, etc) + F.coming = coming; + + if (false === F.trigger('beforeLoad')) { + F.coming = null; + + return; + } + + type = coming.type; + href = coming.href; + + if (!type) { + F.coming = null; + + //If we can not determine content type then drop silently or display next/prev item if looping through gallery + if (F.current && F.router && F.router !== 'jumpto') { + F.current.index = index; + + return F[ F.router ]( F.direction ); + } + + return false; + } + + F.isActive = true; + + if (type === 'image' || type === 'swf') { + coming.autoHeight = coming.autoWidth = false; + coming.scrolling = 'visible'; + } + + if (type === 'image') { + coming.aspectRatio = true; + } + + if (type === 'iframe' && isTouch) { + coming.scrolling = 'scroll'; + } + + // Build the neccessary markup + coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' ); + + $.extend(coming, { + skin : $('.fancybox-skin', coming.wrap), + outer : $('.fancybox-outer', coming.wrap), + inner : $('.fancybox-inner', coming.wrap) + }); + + $.each(["Top", "Right", "Bottom", "Left"], function(i, v) { + coming.skin.css('padding' + v, getValue(coming.padding[ i ])); + }); + + F.trigger('onReady'); + + // Check before try to load; 'inline' and 'html' types need content, others - href + if (type === 'inline' || type === 'html') { + if (!coming.content || !coming.content.length) { + return F._error( 'content' ); + } + + } else if (!href) { + return F._error( 'href' ); + } + + if (type === 'image') { + F._loadImage(); + + } else if (type === 'ajax') { + F._loadAjax(); + + } else if (type === 'iframe') { + F._loadIframe(); + + } else { + F._afterLoad(); + } + }, + + _error: function ( type ) { + $.extend(F.coming, { + type : 'html', + autoWidth : true, + autoHeight : true, + minWidth : 0, + minHeight : 0, + scrolling : 'no', + hasError : type, + content : F.coming.tpl.error + }); + + F._afterLoad(); + }, + + _loadImage: function () { + // Reset preload image so it is later possible to check "complete" property + var img = F.imgPreload = new Image(); + + img.onload = function () { + this.onload = this.onerror = null; + + F.coming.width = this.width / F.opts.pixelRatio; + F.coming.height = this.height / F.opts.pixelRatio; + + F._afterLoad(); + }; + + img.onerror = function () { + this.onload = this.onerror = null; + + F._error( 'image' ); + }; + + img.src = F.coming.href; + + if (img.complete !== true) { + F.showLoading(); + } + }, + + _loadAjax: function () { + var coming = F.coming; + + F.showLoading(); + + F.ajaxLoad = $.ajax($.extend({}, coming.ajax, { + url: coming.href, + error: function (jqXHR, textStatus) { + if (F.coming && textStatus !== 'abort') { + F._error( 'ajax', jqXHR ); + + } else { + F.hideLoading(); + } + }, + success: function (data, textStatus) { + if (textStatus === 'success') { + coming.content = data; + + F._afterLoad(); + } + } + })); + }, + + _loadIframe: function() { + var coming = F.coming, + iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())) + .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling) + .attr('src', coming.href); + + // This helps IE + $(coming.wrap).bind('onReset', function () { + try { + $(this).find('iframe').hide().attr('src', '//about:blank').end().empty(); + } catch (e) {} + }); + + if (coming.iframe.preload) { + F.showLoading(); + + iframe.one('load', function() { + $(this).data('ready', 1); + + // iOS will lose scrolling if we resize + if (!isTouch) { + $(this).bind('load.fb', F.update); + } + + // Without this trick: + // - iframe won't scroll on iOS devices + // - IE7 sometimes displays empty iframe + $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show(); + + F._afterLoad(); + }); + } + + coming.content = iframe.appendTo( coming.inner ); + + if (!coming.iframe.preload) { + F._afterLoad(); + } + }, + + _preloadImages: function() { + var group = F.group, + current = F.current, + len = group.length, + cnt = current.preload ? Math.min(current.preload, len - 1) : 0, + item, + i; + + for (i = 1; i <= cnt; i += 1) { + item = group[ (current.index + i ) % len ]; + + if (item.type === 'image' && item.href) { + new Image().src = item.href; + } + } + }, + + _afterLoad: function () { + var coming = F.coming, + previous = F.current, + placeholder = 'fancybox-placeholder', + current, + content, + type, + scrolling, + href, + embed; + + F.hideLoading(); + + if (!coming || F.isActive === false) { + return; + } + + if (false === F.trigger('afterLoad', coming, previous)) { + coming.wrap.stop(true).trigger('onReset').remove(); + + F.coming = null; + + return; + } + + if (previous) { + F.trigger('beforeChange', previous); + + previous.wrap.stop(true).removeClass('fancybox-opened') + .find('.fancybox-item, .fancybox-nav') + .remove(); + } + + F.unbindEvents(); + + current = coming; + content = coming.content; + type = coming.type; + scrolling = coming.scrolling; + + $.extend(F, { + wrap : current.wrap, + skin : current.skin, + outer : current.outer, + inner : current.inner, + current : current, + previous : previous + }); + + href = current.href; + + switch (type) { + case 'inline': + case 'ajax': + case 'html': + if (current.selector) { + content = $('
                              ').html(content).find(current.selector); + + } else if (isQuery(content)) { + if (!content.data(placeholder)) { + content.data(placeholder, $('
                              ').insertAfter( content ).hide() ); + } + + content = content.show().detach(); + + current.wrap.bind('onReset', function () { + if ($(this).find(content).length) { + content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false); + } + }); + } + break; + + case 'image': + content = current.tpl.image.replace('{href}', href); + break; + + case 'swf': + content = ''; + embed = ''; + + $.each(current.swf, function(name, val) { + content += ''; + embed += ' ' + name + '="' + val + '"'; + }); + + content += ''; + break; + } + + if (!(isQuery(content) && content.parent().is(current.inner))) { + current.inner.append( content ); + } + + // Give a chance for helpers or callbacks to update elements + F.trigger('beforeShow'); + + // Set scrolling before calculating dimensions + current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling)); + + // Set initial dimensions and start position + F._setDimension(); + + F.reposition(); + + F.isOpen = false; + F.coming = null; + + F.bindEvents(); + + if (!F.isOpened) { + $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove(); + + } else if (previous.prevMethod) { + F.transitions[ previous.prevMethod ](); + } + + F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ](); + + F._preloadImages(); + }, + + _setDimension: function () { + var viewport = F.getViewport(), + steps = 0, + canShrink = false, + canExpand = false, + wrap = F.wrap, + skin = F.skin, + inner = F.inner, + current = F.current, + width = current.width, + height = current.height, + minWidth = current.minWidth, + minHeight = current.minHeight, + maxWidth = current.maxWidth, + maxHeight = current.maxHeight, + scrolling = current.scrolling, + scrollOut = current.scrollOutside ? current.scrollbarWidth : 0, + margin = current.margin, + wMargin = getScalar(margin[1] + margin[3]), + hMargin = getScalar(margin[0] + margin[2]), + wPadding, + hPadding, + wSpace, + hSpace, + origWidth, + origHeight, + origMaxWidth, + origMaxHeight, + ratio, + width_, + height_, + maxWidth_, + maxHeight_, + iframe, + body; + + // Reset dimensions so we could re-check actual size + wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp'); + + wPadding = getScalar(skin.outerWidth(true) - skin.width()); + hPadding = getScalar(skin.outerHeight(true) - skin.height()); + + // Any space between content and viewport (margin, padding, border, title) + wSpace = wMargin + wPadding; + hSpace = hMargin + hPadding; + + origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width; + origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height; + + if (current.type === 'iframe') { + iframe = current.content; + + if (current.autoHeight && iframe.data('ready') === 1) { + try { + if (iframe[0].contentWindow.document.location) { + inner.width( origWidth ).height(9999); + + body = iframe.contents().find('body'); + + if (scrollOut) { + body.css('overflow-x', 'hidden'); + } + + origHeight = body.outerHeight(true); + } + + } catch (e) {} + } + + } else if (current.autoWidth || current.autoHeight) { + inner.addClass( 'fancybox-tmp' ); + + // Set width or height in case we need to calculate only one dimension + if (!current.autoWidth) { + inner.width( origWidth ); + } + + if (!current.autoHeight) { + inner.height( origHeight ); + } + + if (current.autoWidth) { + origWidth = inner.width(); + } + + if (current.autoHeight) { + origHeight = inner.height(); + } + + inner.removeClass( 'fancybox-tmp' ); + } + + width = getScalar( origWidth ); + height = getScalar( origHeight ); + + ratio = origWidth / origHeight; + + // Calculations for the content + minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth); + maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth); + + minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight); + maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); + + // These will be used to determine if wrap can fit in the viewport + origMaxWidth = maxWidth; + origMaxHeight = maxHeight; + + if (current.fitToView) { + maxWidth = Math.min(viewport.w - wSpace, maxWidth); + maxHeight = Math.min(viewport.h - hSpace, maxHeight); + } + + maxWidth_ = viewport.w - wMargin; + maxHeight_ = viewport.h - hMargin; + + if (current.aspectRatio) { + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + if (height > maxHeight) { + height = maxHeight; + width = getScalar(height * ratio); + } + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (height < minHeight) { + height = minHeight; + width = getScalar(height * ratio); + } + + } else { + width = Math.max(minWidth, Math.min(width, maxWidth)); + + if (current.autoHeight && current.type !== 'iframe') { + inner.width( width ); + + height = inner.height(); + } + + height = Math.max(minHeight, Math.min(height, maxHeight)); + } + + // Try to fit inside viewport (including the title) + if (current.fitToView) { + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + // Real wrap dimensions + width_ = wrap.width(); + height_ = wrap.height(); + + if (current.aspectRatio) { + while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) { + if (steps++ > 19) { + break; + } + + height = Math.max(minHeight, Math.min(maxHeight, height - 10)); + width = getScalar(height * ratio); + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + } + + } else { + width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_))); + height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_))); + } + } + + if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) { + width += scrollOut; + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + + canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight; + canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight)); + + $.extend(current, { + dim : { + width : getValue( width_ ), + height : getValue( height_ ) + }, + origWidth : origWidth, + origHeight : origHeight, + canShrink : canShrink, + canExpand : canExpand, + wPadding : wPadding, + hPadding : hPadding, + wrapSpace : height_ - skin.outerHeight(true), + skinSpace : skin.height() - height + }); + + if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) { + inner.height('auto'); + } + }, + + _getPosition: function (onlyAbsolute) { + var current = F.current, + viewport = F.getViewport(), + margin = current.margin, + width = F.wrap.width() + margin[1] + margin[3], + height = F.wrap.height() + margin[0] + margin[2], + rez = { + position: 'absolute', + top : margin[0], + left : margin[3] + }; + + if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) { + rez.position = 'fixed'; + + } else if (!current.locked) { + rez.top += viewport.y; + rez.left += viewport.x; + } + + rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))); + rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio))); + + return rez; + }, + + _afterZoomIn: function () { + var current = F.current; + + if (!current) { + return; + } + + F.isOpen = F.isOpened = true; + + F.wrap.css('overflow', 'visible').addClass('fancybox-opened'); + + F.update(); + + // Assign a click event + if ( current.closeClick || (current.nextClick && F.group.length > 1) ) { + F.inner.css('cursor', 'pointer').bind('click.fb', function(e) { + if (!$(e.target).is('a') && !$(e.target).parent().is('a')) { + e.preventDefault(); + + F[ current.closeClick ? 'close' : 'next' ](); + } + }); + } + + // Create a close button + if (current.closeBtn) { + $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) { + e.preventDefault(); + + F.close(); + }); + } + + // Create navigation arrows + if (current.arrows && F.group.length > 1) { + if (current.loop || current.index > 0) { + $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev); + } + + if (current.loop || current.index < F.group.length - 1) { + $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next); + } + } + + F.trigger('afterShow'); + + // Stop the slideshow if this is the last item + if (!current.loop && current.index === current.group.length - 1) { + F.play( false ); + + } else if (F.opts.autoPlay && !F.player.isActive) { + F.opts.autoPlay = false; + + F.play(); + } + }, + + _afterZoomOut: function ( obj ) { + obj = obj || F.current; + + $('.fancybox-wrap').trigger('onReset').remove(); + + $.extend(F, { + group : {}, + opts : {}, + router : false, + current : null, + isActive : false, + isOpened : false, + isOpen : false, + isClosing : false, + wrap : null, + skin : null, + outer : null, + inner : null + }); + + F.trigger('afterClose', obj); + } + }); + + /* + * Default transitions + */ + + F.transitions = { + getOrigPosition: function () { + var current = F.current, + element = current.element, + orig = current.orig, + pos = {}, + width = 50, + height = 50, + hPadding = current.hPadding, + wPadding = current.wPadding, + viewport = F.getViewport(); + + if (!orig && current.isDom && element.is(':visible')) { + orig = element.find('img:first'); + + if (!orig.length) { + orig = element; + } + } + + if (isQuery(orig)) { + pos = orig.offset(); + + if (orig.is('img')) { + width = orig.outerWidth(); + height = orig.outerHeight(); + } + + } else { + pos.top = viewport.y + (viewport.h - height) * current.topRatio; + pos.left = viewport.x + (viewport.w - width) * current.leftRatio; + } + + if (F.wrap.css('position') === 'fixed' || current.locked) { + pos.top -= viewport.y; + pos.left -= viewport.x; + } + + pos = { + top : getValue(pos.top - hPadding * current.topRatio), + left : getValue(pos.left - wPadding * current.leftRatio), + width : getValue(width + wPadding), + height : getValue(height + hPadding) + }; + + return pos; + }, + + step: function (now, fx) { + var ratio, + padding, + value, + prop = fx.prop, + current = F.current, + wrapSpace = current.wrapSpace, + skinSpace = current.skinSpace; + + if (prop === 'width' || prop === 'height') { + ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start); + + if (F.isClosing) { + ratio = 1 - ratio; + } + + padding = prop === 'width' ? current.wPadding : current.hPadding; + value = now - padding; + + F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) ); + F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) ); + } + }, + + zoomIn: function () { + var current = F.current, + startPos = current.pos, + effect = current.openEffect, + elastic = effect === 'elastic', + endPos = $.extend({opacity : 1}, startPos); + + // Remove "position" property that breaks older IE + delete endPos.position; + + if (elastic) { + startPos = this.getOrigPosition(); + + if (current.openOpacity) { + startPos.opacity = 0.1; + } + + } else if (effect === 'fade') { + startPos.opacity = 0.1; + } + + F.wrap.css(startPos).animate(endPos, { + duration : effect === 'none' ? 0 : current.openSpeed, + easing : current.openEasing, + step : elastic ? this.step : null, + complete : F._afterZoomIn + }); + }, + + zoomOut: function () { + var current = F.current, + effect = current.closeEffect, + elastic = effect === 'elastic', + endPos = {opacity : 0.1}; + + if (elastic) { + endPos = this.getOrigPosition(); + + if (current.closeOpacity) { + endPos.opacity = 0.1; + } + } + + F.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : current.closeSpeed, + easing : current.closeEasing, + step : elastic ? this.step : null, + complete : F._afterZoomOut + }); + }, + + changeIn: function () { + var current = F.current, + effect = current.nextEffect, + startPos = current.pos, + endPos = { opacity : 1 }, + direction = F.direction, + distance = 200, + field; + + startPos.opacity = 0.1; + + if (effect === 'elastic') { + field = direction === 'down' || direction === 'up' ? 'top' : 'left'; + + if (direction === 'down' || direction === 'right') { + startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance); + endPos[ field ] = '+=' + distance + 'px'; + + } else { + startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance); + endPos[ field ] = '-=' + distance + 'px'; + } + } + + // Workaround for http://bugs.jquery.com/ticket/12273 + if (effect === 'none') { + F._afterZoomIn(); + + } else { + F.wrap.css(startPos).animate(endPos, { + duration : current.nextSpeed, + easing : current.nextEasing, + complete : F._afterZoomIn + }); + } + }, + + changeOut: function () { + var previous = F.previous, + effect = previous.prevEffect, + endPos = { opacity : 0.1 }, + direction = F.direction, + distance = 200; + + if (effect === 'elastic') { + endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px'; + } + + previous.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : previous.prevSpeed, + easing : previous.prevEasing, + complete : function () { + $(this).trigger('onReset').remove(); + } + }); + } + }; + + /* + * Overlay helper + */ + + F.helpers.overlay = { + defaults : { + closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay + speedOut : 200, // duration of fadeOut animation + showEarly : true, // indicates if should be opened immediately or wait until the content is ready + css : {}, // custom CSS properties + locked : !isTouch, // if true, the content will be locked into overlay + fixed : true // if false, the overlay CSS position property will not be set to "fixed" + }, + + overlay : null, // current handle + fixed : false, // indicates if the overlay has position "fixed" + el : $('html'), // element that contains "the lock" + + // Public methods + create : function(opts) { + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.close(); + } + + this.overlay = $('
                              ').appendTo( F.coming ? F.coming.parent : opts.parent ); + this.fixed = false; + + if (opts.fixed && F.defaults.fixed) { + this.overlay.addClass('fancybox-overlay-fixed'); + + this.fixed = true; + } + }, + + open : function(opts) { + var that = this; + + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.overlay.unbind('.overlay').width('auto').height('auto'); + + } else { + this.create(opts); + } + + if (!this.fixed) { + W.bind('resize.overlay', $.proxy( this.update, this) ); + + this.update(); + } + + if (opts.closeClick) { + this.overlay.bind('click.overlay', function(e) { + if ($(e.target).hasClass('fancybox-overlay')) { + if (F.isActive) { + F.close(); + } else { + that.close(); + } + + return false; + } + }); + } + + this.overlay.css( opts.css ).show(); + }, + + close : function() { + var scrollV, scrollH; + + W.unbind('resize.overlay'); + + if (this.el.hasClass('fancybox-lock')) { + $('.fancybox-margin').removeClass('fancybox-margin'); + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.removeClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + $('.fancybox-overlay').remove().hide(); + + $.extend(this, { + overlay : null, + fixed : false + }); + }, + + // Private, callbacks + + update : function () { + var width = '100%', offsetWidth; + + // Reset width/height so it will not mess + this.overlay.width(width).height('100%'); + + // jQuery does not return reliable result for IE + if (IE) { + offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); + + if (D.width() > offsetWidth) { + width = D.width(); + } + + } else if (D.width() > W.width()) { + width = D.width(); + } + + this.overlay.width(width).height(D.height()); + }, + + // This is where we can manipulate DOM, because later it would cause iframes to reload + onReady : function (opts, obj) { + var overlay = this.overlay; + + $('.fancybox-overlay').stop(true, true); + + if (!overlay) { + this.create(opts); + } + + if (opts.locked && this.fixed && obj.fixed) { + if (!overlay) { + this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false; + } + + obj.locked = this.overlay.append( obj.wrap ); + obj.fixed = false; + } + + if (opts.showEarly === true) { + this.beforeShow.apply(this, arguments); + } + }, + + beforeShow : function(opts, obj) { + var scrollV, scrollH; + + if (obj.locked) { + if (this.margin !== false) { + $('*').filter(function(){ + return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") ); + }).addClass('fancybox-margin'); + + this.el.addClass('fancybox-margin'); + } + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.addClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + this.open(opts); + }, + + onUpdate : function() { + if (!this.fixed) { + this.update(); + } + }, + + afterClose: function (opts) { + // Remove overlay if exists and fancyBox is not opening + // (e.g., it is not being open using afterClose callback) + //if (this.overlay && !F.isActive) { + if (this.overlay && !F.coming) { + this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); + } + } + }; + + /* + * Title helper + */ + + F.helpers.title = { + defaults : { + type : 'float', // 'float', 'inside', 'outside' or 'over', + position : 'bottom' // 'top' or 'bottom' + }, + + beforeShow: function (opts) { + var current = F.current, + text = current.title, + type = opts.type, + title, + target; + + if ($.isFunction(text)) { + text = text.call(current.element, current); + } + + if (!isString(text) || $.trim(text) === '') { + return; + } + + title = $('
                              ' + text + '
                              '); + + switch (type) { + case 'inside': + target = F.skin; + break; + + case 'outside': + target = F.wrap; + break; + + case 'over': + target = F.inner; + break; + + default: // 'float' + target = F.skin; + + title.appendTo('body'); + + if (IE) { + title.width( title.width() ); + } + + title.wrapInner(''); + + //Increase bottom margin so this title will also fit into viewport + F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) ); + break; + } + + title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target); + } + }; + + // jQuery plugin initialization + $.fn.fancybox = function (options) { + var index, + that = $(this), + selector = this.selector || '', + run = function(e) { + var what = $(this).blur(), idx = index, relType, relVal; + + if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) { + relType = options.groupAttr || 'data-fancybox-group'; + relVal = what.attr(relType); + + if (!relVal) { + relType = 'rel'; + relVal = what.get(0)[ relType ]; + } + + if (relVal && relVal !== '' && relVal !== 'nofollow') { + what = selector.length ? $(selector) : that; + what = what.filter('[' + relType + '="' + relVal + '"]'); + idx = what.index(this); + } + + options.index = idx; + + // Stop an event from bubbling if everything is fine + if (F.open(what, options) !== false) { + e.preventDefault(); + } + } + }; + + options = options || {}; + index = options.index || 0; + + if (!selector || options.live === false) { + that.unbind('click.fb-start').bind('click.fb-start', run); + + } else { + D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run); + } + + this.filter('[data-fancybox-start=1]').trigger('click'); + + return this; + }; + + // Tests that need a body at doc ready + D.ready(function() { + var w1, w2; + + if ( $.scrollbarWidth === undefined ) { + // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth + $.scrollbarWidth = function() { + var parent = $('
                              ').appendTo('body'), + child = parent.children(), + width = child.innerWidth() - child.height( 99 ).innerWidth(); + + parent.remove(); + + return width; + }; + } + + if ( $.support.fixedPosition === undefined ) { + $.support.fixedPosition = (function() { + var elem = $('
                              ').appendTo('body'), + fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 ); + + elem.remove(); + + return fixed; + }()); + } + + $.extend(F.defaults, { + scrollbarWidth : $.scrollbarWidth(), + fixed : $.support.fixedPosition, + parent : $('body') + }); + + //Get real width of page scroll-bar + w1 = $(window).width(); + + H.addClass('fancybox-lock-test'); + + w2 = $(window).width(); + + H.removeClass('fancybox-lock-test'); + + $("").appendTo("head"); + }); + +}(window, document, jQuery)); diff --git a/novel-admin/src/main/resources/static/js/plugins/flot/curvedLines.js b/novel-admin/src/main/resources/static/js/plugins/flot/curvedLines.js new file mode 100644 index 0000000..12c1ad6 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/flot/curvedLines.js @@ -0,0 +1,315 @@ +/* The MIT License + + Copyright (c) 2011 by Michael Zinsmaier and nergal.dev + Copyright (c) 2012 by Thomas Ritou + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + */ + +/* + + ____________________________________________________ + + what it is: + ____________________________________________________ + + curvedLines is a plugin for flot, that tries to display lines in a smoother way. + The plugin is based on nergal.dev's work https://code.google.com/p/flot/issues/detail?id=226 + and further extended with a mode that forces the min/max points of the curves to be on the + points. Both modes are achieved through adding of more data points + => 1) with large data sets you may get trouble + => 2) if you want to display the points too, you have to plot them as 2nd data series over the lines + + && 3) consecutive x data points are not allowed to have the same value + + This is version 0.5 of curvedLines so it will probably not work in every case. However + the basic form of use descirbed next works (: + + Feel free to further improve the code + + ____________________________________________________ + + how to use it: + ____________________________________________________ + + var d1 = [[5,5],[7,3],[9,12]]; + + var options = { series: { curvedLines: { active: true }}}; + + $.plot($("#placeholder"), [{data = d1, lines: { show: true}, curvedLines: {apply: true}}], options); + + _____________________________________________________ + + options: + _____________________________________________________ + + active: bool true => plugin can be used + apply: bool true => series will be drawn as curved line + fit: bool true => forces the max,mins of the curve to be on the datapoints + curvePointFactor int defines how many "virtual" points are used per "real" data point to + emulate the curvedLines (points total = real points * curvePointFactor) + fitPointDist: int defines the x axis distance of the additional two points that are used + to enforce the min max condition. + + + line options (since v0.5 curved lines use flots line implementation for drawing + => line options like fill, show ... are supported out of the box) + + */ + +/* + * v0.1 initial commit + * v0.15 negative values should work now (outcommented a negative -> 0 hook hope it does no harm) + * v0.2 added fill option (thanks to monemihir) and multi axis support (thanks to soewono effendi) + * v0.3 improved saddle handling and added basic handling of Dates + * v0.4 rewritten fill option (thomas ritou) mostly from original flot code (now fill between points rather than to graph bottom), corrected fill Opacity bug + * v0.5 rewritten instead of implementing a own draw function CurvedLines is now based on the processDatapoints flot hook (credits go to thomas ritou). + * This change breakes existing code however CurvedLines are now just many tiny straight lines to flot and therefore all flot lines options (like gradient fill, + * shadow) are now supported out of the box + * v0.6 flot 0.8 compatibility and some bug fixes + */ + +(function($) { + + var options = { + series : { + curvedLines : { + active : false, + apply: false, + fit : false, + curvePointFactor : 20, + fitPointDist : undefined + } + } + }; + + function init(plot) { + + plot.hooks.processOptions.push(processOptions); + + //if the plugin is active register processDatapoints method + function processOptions(plot, options) { + if (options.series.curvedLines.active) { + plot.hooks.processDatapoints.unshift(processDatapoints); + } + } + + //only if the plugin is active + function processDatapoints(plot, series, datapoints) { + var nrPoints = datapoints.points.length / datapoints.pointsize; + var EPSILON = 0.5; //pretty large epsilon but save + + if (series.curvedLines.apply == true && series.originSeries === undefined && nrPoints > (1 + EPSILON)) { + if (series.lines.fill) { + + var pointsTop = calculateCurvePoints(datapoints, series.curvedLines, 1) + ,pointsBottom = calculateCurvePoints(datapoints, series.curvedLines, 2); //flot makes sure for us that we've got a second y point if fill is true ! + + //Merge top and bottom curve + datapoints.pointsize = 3; + datapoints.points = []; + var j = 0; + var k = 0; + var i = 0; + var ps = 2; + while (i < pointsTop.length || j < pointsBottom.length) { + if (pointsTop[i] == pointsBottom[j]) { + datapoints.points[k] = pointsTop[i]; + datapoints.points[k + 1] = pointsTop[i + 1]; + datapoints.points[k + 2] = pointsBottom[j + 1]; + j += ps; + i += ps; + + } else if (pointsTop[i] < pointsBottom[j]) { + datapoints.points[k] = pointsTop[i]; + datapoints.points[k + 1] = pointsTop[i + 1]; + datapoints.points[k + 2] = k > 0 ? datapoints.points[k-1] : null; + i += ps; + } else { + datapoints.points[k] = pointsBottom[j]; + datapoints.points[k + 1] = k > 1 ? datapoints.points[k-2] : null; + datapoints.points[k + 2] = pointsBottom[j + 1]; + j += ps; + } + k += 3; + } + } else if (series.lines.lineWidth > 0) { + datapoints.points = calculateCurvePoints(datapoints, series.curvedLines, 1); + datapoints.pointsize = 2; + } + } + } + + //no real idea whats going on here code mainly from https://code.google.com/p/flot/issues/detail?id=226 + //if fit option is selected additional datapoints get inserted before the curve calculations in nergal.dev s code. + function calculateCurvePoints(datapoints, curvedLinesOptions, yPos) { + + var points = datapoints.points, ps = datapoints.pointsize; + var num = curvedLinesOptions.curvePointFactor * (points.length / ps); + + var xdata = new Array; + var ydata = new Array; + + var curX = -1; + var curY = -1; + var j = 0; + + if (curvedLinesOptions.fit) { + //insert a point before and after the "real" data point to force the line + //to have a max,min at the data point. + + var fpDist; + if(typeof curvedLinesOptions.fitPointDist == 'undefined') { + //estimate it + var minX = points[0]; + var maxX = points[points.length-ps]; + fpDist = (maxX - minX) / (500 * 100); //x range / (estimated pixel length of placeholder * factor) + } else { + //use user defined value + fpDist = curvedLinesOptions.fitPointDist; + } + + for (var i = 0; i < points.length; i += ps) { + + var frontX; + var backX; + curX = i; + curY = i + yPos; + + //add point X s + frontX = points[curX] - fpDist; + backX = points[curX] + fpDist; + + var factor = 2; + while (frontX == points[curX] || backX == points[curX]) { + //inside the ulp + frontX = points[curX] - (fpDist * factor); + backX = points[curX] + (fpDist * factor); + factor++; + } + + //add curve points + xdata[j] = frontX; + ydata[j] = points[curY]; + j++; + + xdata[j] = points[curX]; + ydata[j] = points[curY]; + j++; + + xdata[j] = backX; + ydata[j] = points[curY]; + j++; + } + } else { + //just use the datapoints + for (var i = 0; i < points.length; i += ps) { + curX = i; + curY = i + yPos; + + xdata[j] = points[curX]; + ydata[j] = points[curY]; + j++; + } + } + + var n = xdata.length; + + var y2 = new Array(); + var delta = new Array(); + y2[0] = 0; + y2[n - 1] = 0; + delta[0] = 0; + + for (var i = 1; i < n - 1; ++i) { + var d = (xdata[i + 1] - xdata[i - 1]); + if (d == 0) { + //point before current point and after current point need some space in between + return []; + } + + var s = (xdata[i] - xdata[i - 1]) / d; + var p = s * y2[i - 1] + 2; + y2[i] = (s - 1) / p; + delta[i] = (ydata[i + 1] - ydata[i]) / (xdata[i + 1] - xdata[i]) - (ydata[i] - ydata[i - 1]) / (xdata[i] - xdata[i - 1]); + delta[i] = (6 * delta[i] / (xdata[i + 1] - xdata[i - 1]) - s * delta[i - 1]) / p; + } + + for (var j = n - 2; j >= 0; --j) { + y2[j] = y2[j] * y2[j + 1] + delta[j]; + } + + // xmax - xmin / #points + var step = (xdata[n - 1] - xdata[0]) / (num - 1); + + var xnew = new Array; + var ynew = new Array; + var result = new Array; + + xnew[0] = xdata[0]; + ynew[0] = ydata[0]; + + result.push(xnew[0]); + result.push(ynew[0]); + + for ( j = 1; j < num; ++j) { + //new x point (sampling point for the created curve) + xnew[j] = xnew[0] + j * step; + + var max = n - 1; + var min = 0; + + while (max - min > 1) { + var k = Math.round((max + min) / 2); + if (xdata[k] > xnew[j]) { + max = k; + } else { + min = k; + } + } + + //found point one to the left and one to the right of generated new point + var h = (xdata[max] - xdata[min]); + + if (h == 0) { + //similar to above two points from original x data need some space between them + return []; + } + + var a = (xdata[max] - xnew[j]) / h; + var b = (xnew[j] - xdata[min]) / h; + + ynew[j] = a * ydata[min] + b * ydata[max] + ((a * a * a - a) * y2[min] + (b * b * b - b) * y2[max]) * (h * h) / 6; + + result.push(xnew[j]); + result.push(ynew[j]); + } + + return result; + } + + }//end init + + $.plot.plugins.push({ + init : init, + options : options, + name : 'curvedLines', + version : '0.5' + }); + +})(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.js b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.js new file mode 100644 index 0000000..e02ba64 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.js @@ -0,0 +1,2599 @@ +/*! Javascript plotting library for jQuery, v. 0.7. + * + * Released under the MIT license by IOLA, December 2007. + * + */ + +// first an inline dependency, jquery.colorhelpers.js, we inline it here +// for convenience + +/* Plugin for jQuery for working with colors. + * + * Version 1.1. + * + * Inspiration from jQuery color animation plugin by John Resig. + * + * Released under the MIT license by Ole Laursen, October 2009. + * + * Examples: + * + * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString() + * var c = $.color.extract($("#mydiv"), 'background-color'); + * console.log(c.r, c.g, c.b, c.a); + * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)" + * + * Note that .scale() and .add() return the same modified object + * instead of making a new one. + * + * V. 1.1: Fix error handling so e.g. parsing an empty string does + * produce a color rather than just crashing. + */ +(function(B){B.color={};B.color.make=function(F,E,C,D){var G={};G.r=F||0;G.g=E||0;G.b=C||0;G.a=D!=null?D:1;G.add=function(J,I){for(var H=0;H=1){return"rgb("+[G.r,G.g,G.b].join(",")+")"}else{return"rgba("+[G.r,G.g,G.b,G.a].join(",")+")"}};G.normalize=function(){function H(J,K,I){return KI?I:K)}G.r=H(0,parseInt(G.r),255);G.g=H(0,parseInt(G.g),255);G.b=H(0,parseInt(G.b),255);G.a=H(0,G.a,1);return G};G.clone=function(){return B.color.make(G.r,G.b,G.g,G.a)};return G.normalize()};B.color.extract=function(D,C){var E;do{E=D.css(C).toLowerCase();if(E!=""&&E!="transparent"){break}D=D.parent()}while(!B.nodeName(D.get(0),"body"));if(E=="rgba(0, 0, 0, 0)"){E="transparent"}return B.color.parse(E)};B.color.parse=function(F){var E,C=B.color.make;if(E=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10))}if(E=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10),parseFloat(E[4]))}if(E=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55)}if(E=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55,parseFloat(E[4]))}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return C(parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16))}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return C(parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16))}var D=B.trim(F).toLowerCase();if(D=="transparent"){return C(255,255,255,0)}else{E=A[D]||[0,0,0];return C(E[0],E[1],E[2])}};var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery); + +// the actual Flot code +(function($) { + function Plot(placeholder, data_, options_, plugins) { + // data is on the form: + // [ series1, series2 ... ] + // where series is either just the data as [ [x1, y1], [x2, y2], ... ] + // or { data: [ [x1, y1], [x2, y2], ... ], label: "some label", ... } + + var series = [], + options = { + // the color theme used for graphs + colors: ["#edc240", "#afd8f8", "#cb4b4b", "#4da74d", "#9440ed"], + legend: { + show: true, + noColumns: 1, // number of colums in legend table + labelFormatter: null, // fn: string -> string + labelBoxBorderColor: "#ccc", // border color for the little label boxes + container: null, // container (as jQuery object) to put legend in, null means default on top of graph + position: "ne", // position of default legend container within plot + margin: 5, // distance from grid edge to default legend container within plot + backgroundColor: null, // null means auto-detect + backgroundOpacity: 0.85 // set to 0 to avoid background + }, + xaxis: { + show: null, // null = auto-detect, true = always, false = never + position: "bottom", // or "top" + mode: null, // null or "time" + color: null, // base color, labels, ticks + tickColor: null, // possibly different color of ticks, e.g. "rgba(0,0,0,0.15)" + transform: null, // null or f: number -> number to transform axis + inverseTransform: null, // if transform is set, this should be the inverse function + min: null, // min. value to show, null means set automatically + max: null, // max. value to show, null means set automatically + autoscaleMargin: null, // margin in % to add if auto-setting min/max + ticks: null, // either [1, 3] or [[1, "a"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks + tickFormatter: null, // fn: number -> string + labelWidth: null, // size of tick labels in pixels + labelHeight: null, + reserveSpace: null, // whether to reserve space even if axis isn't shown + tickLength: null, // size in pixels of ticks, or "full" for whole line + alignTicksWithAxis: null, // axis number or null for no sync + + // mode specific options + tickDecimals: null, // no. of decimals, null means auto + tickSize: null, // number or [number, "unit"] + minTickSize: null, // number or [number, "unit"] + monthNames: null, // list of names of months + timeformat: null, // format string to use + twelveHourClock: false // 12 or 24 time in time mode + }, + yaxis: { + autoscaleMargin: 0.02, + position: "left" // or "right" + }, + xaxes: [], + yaxes: [], + series: { + points: { + show: false, + radius: 3, + lineWidth: 2, // in pixels + fill: true, + fillColor: "#ffffff", + symbol: "circle" // or callback + }, + lines: { + // we don't put in show: false so we can see + // whether lines were actively disabled + lineWidth: 2, // in pixels + fill: false, + fillColor: null, + steps: false + }, + bars: { + show: false, + lineWidth: 2, // in pixels + barWidth: 1, // in units of the x axis + fill: true, + fillColor: null, + align: "left", // or "center" + horizontal: false + }, + shadowSize: 3 + }, + grid: { + show: true, + aboveData: false, + color: "#545454", // primary color used for outline and labels + backgroundColor: null, // null for transparent, else color + borderColor: null, // set if different from the grid color + tickColor: null, // color for the ticks, e.g. "rgba(0,0,0,0.15)" + labelMargin: 5, // in pixels + axisMargin: 8, // in pixels + borderWidth: 2, // in pixels + minBorderMargin: null, // in pixels, null means taken from points radius + markings: null, // array of ranges or fn: axes -> array of ranges + markingsColor: "#f4f4f4", + markingsLineWidth: 2, + // interactive stuff + clickable: false, + hoverable: false, + autoHighlight: true, // highlight in case mouse is near + mouseActiveRadius: 10 // how far the mouse can be away to activate an item + }, + hooks: {} + }, + canvas = null, // the canvas for the plot itself + overlay = null, // canvas for interactive stuff on top of plot + eventHolder = null, // jQuery object that events should be bound to + ctx = null, octx = null, + xaxes = [], yaxes = [], + plotOffset = { left: 0, right: 0, top: 0, bottom: 0}, + canvasWidth = 0, canvasHeight = 0, + plotWidth = 0, plotHeight = 0, + hooks = { + processOptions: [], + processRawData: [], + processDatapoints: [], + drawSeries: [], + draw: [], + bindEvents: [], + drawOverlay: [], + shutdown: [] + }, + plot = this; + + // public functions + plot.setData = setData; + plot.setupGrid = setupGrid; + plot.draw = draw; + plot.getPlaceholder = function() { return placeholder; }; + plot.getCanvas = function() { return canvas; }; + plot.getPlotOffset = function() { return plotOffset; }; + plot.width = function () { return plotWidth; }; + plot.height = function () { return plotHeight; }; + plot.offset = function () { + var o = eventHolder.offset(); + o.left += plotOffset.left; + o.top += plotOffset.top; + return o; + }; + plot.getData = function () { return series; }; + plot.getAxes = function () { + var res = {}, i; + $.each(xaxes.concat(yaxes), function (_, axis) { + if (axis) + res[axis.direction + (axis.n != 1 ? axis.n : "") + "axis"] = axis; + }); + return res; + }; + plot.getXAxes = function () { return xaxes; }; + plot.getYAxes = function () { return yaxes; }; + plot.c2p = canvasToAxisCoords; + plot.p2c = axisToCanvasCoords; + plot.getOptions = function () { return options; }; + plot.highlight = highlight; + plot.unhighlight = unhighlight; + plot.triggerRedrawOverlay = triggerRedrawOverlay; + plot.pointOffset = function(point) { + return { + left: parseInt(xaxes[axisNumber(point, "x") - 1].p2c(+point.x) + plotOffset.left), + top: parseInt(yaxes[axisNumber(point, "y") - 1].p2c(+point.y) + plotOffset.top) + }; + }; + plot.shutdown = shutdown; + plot.resize = function () { + getCanvasDimensions(); + resizeCanvas(canvas); + resizeCanvas(overlay); + }; + + // public attributes + plot.hooks = hooks; + + // initialize + initPlugins(plot); + parseOptions(options_); + setupCanvases(); + setData(data_); + setupGrid(); + draw(); + bindEvents(); + + + function executeHooks(hook, args) { + args = [plot].concat(args); + for (var i = 0; i < hook.length; ++i) + hook[i].apply(this, args); + } + + function initPlugins() { + for (var i = 0; i < plugins.length; ++i) { + var p = plugins[i]; + p.init(plot); + if (p.options) + $.extend(true, options, p.options); + } + } + + function parseOptions(opts) { + var i; + + $.extend(true, options, opts); + + if (options.xaxis.color == null) + options.xaxis.color = options.grid.color; + if (options.yaxis.color == null) + options.yaxis.color = options.grid.color; + + if (options.xaxis.tickColor == null) // backwards-compatibility + options.xaxis.tickColor = options.grid.tickColor; + if (options.yaxis.tickColor == null) // backwards-compatibility + options.yaxis.tickColor = options.grid.tickColor; + + if (options.grid.borderColor == null) + options.grid.borderColor = options.grid.color; + if (options.grid.tickColor == null) + options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString(); + + // fill in defaults in axes, copy at least always the + // first as the rest of the code assumes it'll be there + for (i = 0; i < Math.max(1, options.xaxes.length); ++i) + options.xaxes[i] = $.extend(true, {}, options.xaxis, options.xaxes[i]); + for (i = 0; i < Math.max(1, options.yaxes.length); ++i) + options.yaxes[i] = $.extend(true, {}, options.yaxis, options.yaxes[i]); + + // backwards compatibility, to be removed in future + if (options.xaxis.noTicks && options.xaxis.ticks == null) + options.xaxis.ticks = options.xaxis.noTicks; + if (options.yaxis.noTicks && options.yaxis.ticks == null) + options.yaxis.ticks = options.yaxis.noTicks; + if (options.x2axis) { + options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis); + options.xaxes[1].position = "top"; + } + if (options.y2axis) { + options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis); + options.yaxes[1].position = "right"; + } + if (options.grid.coloredAreas) + options.grid.markings = options.grid.coloredAreas; + if (options.grid.coloredAreasColor) + options.grid.markingsColor = options.grid.coloredAreasColor; + if (options.lines) + $.extend(true, options.series.lines, options.lines); + if (options.points) + $.extend(true, options.series.points, options.points); + if (options.bars) + $.extend(true, options.series.bars, options.bars); + if (options.shadowSize != null) + options.series.shadowSize = options.shadowSize; + + // save options on axes for future reference + for (i = 0; i < options.xaxes.length; ++i) + getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i]; + for (i = 0; i < options.yaxes.length; ++i) + getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i]; + + // add hooks from options + for (var n in hooks) + if (options.hooks[n] && options.hooks[n].length) + hooks[n] = hooks[n].concat(options.hooks[n]); + + executeHooks(hooks.processOptions, [options]); + } + + function setData(d) { + series = parseData(d); + fillInSeriesOptions(); + processData(); + } + + function parseData(d) { + var res = []; + for (var i = 0; i < d.length; ++i) { + var s = $.extend(true, {}, options.series); + + if (d[i].data != null) { + s.data = d[i].data; // move the data instead of deep-copy + delete d[i].data; + + $.extend(true, s, d[i]); + + d[i].data = s.data; + } + else + s.data = d[i]; + res.push(s); + } + + return res; + } + + function axisNumber(obj, coord) { + var a = obj[coord + "axis"]; + if (typeof a == "object") // if we got a real axis, extract number + a = a.n; + if (typeof a != "number") + a = 1; // default to first axis + return a; + } + + function allAxes() { + // return flat array without annoying null entries + return $.grep(xaxes.concat(yaxes), function (a) { return a; }); + } + + function canvasToAxisCoords(pos) { + // return an object with x/y corresponding to all used axes + var res = {}, i, axis; + for (i = 0; i < xaxes.length; ++i) { + axis = xaxes[i]; + if (axis && axis.used) + res["x" + axis.n] = axis.c2p(pos.left); + } + + for (i = 0; i < yaxes.length; ++i) { + axis = yaxes[i]; + if (axis && axis.used) + res["y" + axis.n] = axis.c2p(pos.top); + } + + if (res.x1 !== undefined) + res.x = res.x1; + if (res.y1 !== undefined) + res.y = res.y1; + + return res; + } + + function axisToCanvasCoords(pos) { + // get canvas coords from the first pair of x/y found in pos + var res = {}, i, axis, key; + + for (i = 0; i < xaxes.length; ++i) { + axis = xaxes[i]; + if (axis && axis.used) { + key = "x" + axis.n; + if (pos[key] == null && axis.n == 1) + key = "x"; + + if (pos[key] != null) { + res.left = axis.p2c(pos[key]); + break; + } + } + } + + for (i = 0; i < yaxes.length; ++i) { + axis = yaxes[i]; + if (axis && axis.used) { + key = "y" + axis.n; + if (pos[key] == null && axis.n == 1) + key = "y"; + + if (pos[key] != null) { + res.top = axis.p2c(pos[key]); + break; + } + } + } + + return res; + } + + function getOrCreateAxis(axes, number) { + if (!axes[number - 1]) + axes[number - 1] = { + n: number, // save the number for future reference + direction: axes == xaxes ? "x" : "y", + options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis) + }; + + return axes[number - 1]; + } + + function fillInSeriesOptions() { + var i; + + // collect what we already got of colors + var neededColors = series.length, + usedColors = [], + assignedColors = []; + for (i = 0; i < series.length; ++i) { + var sc = series[i].color; + if (sc != null) { + --neededColors; + if (typeof sc == "number") + assignedColors.push(sc); + else + usedColors.push($.color.parse(series[i].color)); + } + } + + // we might need to generate more colors if higher indices + // are assigned + for (i = 0; i < assignedColors.length; ++i) { + neededColors = Math.max(neededColors, assignedColors[i] + 1); + } + + // produce colors as needed + var colors = [], variation = 0; + i = 0; + while (colors.length < neededColors) { + var c; + if (options.colors.length == i) // check degenerate case + c = $.color.make(100, 100, 100); + else + c = $.color.parse(options.colors[i]); + + // vary color if needed + var sign = variation % 2 == 1 ? -1 : 1; + c.scale('rgb', 1 + sign * Math.ceil(variation / 2) * 0.2) + + // FIXME: if we're getting to close to something else, + // we should probably skip this one + colors.push(c); + + ++i; + if (i >= options.colors.length) { + i = 0; + ++variation; + } + } + + // fill in the options + var colori = 0, s; + for (i = 0; i < series.length; ++i) { + s = series[i]; + + // assign colors + if (s.color == null) { + s.color = colors[colori].toString(); + ++colori; + } + else if (typeof s.color == "number") + s.color = colors[s.color].toString(); + + // turn on lines automatically in case nothing is set + if (s.lines.show == null) { + var v, show = true; + for (v in s) + if (s[v] && s[v].show) { + show = false; + break; + } + if (show) + s.lines.show = true; + } + + // setup axes + s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, "x")); + s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, "y")); + } + } + + function processData() { + var topSentry = Number.POSITIVE_INFINITY, + bottomSentry = Number.NEGATIVE_INFINITY, + fakeInfinity = Number.MAX_VALUE, + i, j, k, m, length, + s, points, ps, x, y, axis, val, f, p; + + function updateAxis(axis, min, max) { + if (min < axis.datamin && min != -fakeInfinity) + axis.datamin = min; + if (max > axis.datamax && max != fakeInfinity) + axis.datamax = max; + } + + $.each(allAxes(), function (_, axis) { + // init axis + axis.datamin = topSentry; + axis.datamax = bottomSentry; + axis.used = false; + }); + + for (i = 0; i < series.length; ++i) { + s = series[i]; + s.datapoints = { points: [] }; + + executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]); + } + + // first pass: clean and copy data + for (i = 0; i < series.length; ++i) { + s = series[i]; + + var data = s.data, format = s.datapoints.format; + + if (!format) { + format = []; + // find out how to copy + format.push({ x: true, number: true, required: true }); + format.push({ y: true, number: true, required: true }); + + if (s.bars.show || (s.lines.show && s.lines.fill)) { + format.push({ y: true, number: true, required: false, defaultValue: 0 }); + if (s.bars.horizontal) { + delete format[format.length - 1].y; + format[format.length - 1].x = true; + } + } + + s.datapoints.format = format; + } + + if (s.datapoints.pointsize != null) + continue; // already filled in + + s.datapoints.pointsize = format.length; + + ps = s.datapoints.pointsize; + points = s.datapoints.points; + + insertSteps = s.lines.show && s.lines.steps; + s.xaxis.used = s.yaxis.used = true; + + for (j = k = 0; j < data.length; ++j, k += ps) { + p = data[j]; + + var nullify = p == null; + if (!nullify) { + for (m = 0; m < ps; ++m) { + val = p[m]; + f = format[m]; + + if (f) { + if (f.number && val != null) { + val = +val; // convert to number + if (isNaN(val)) + val = null; + else if (val == Infinity) + val = fakeInfinity; + else if (val == -Infinity) + val = -fakeInfinity; + } + + if (val == null) { + if (f.required) + nullify = true; + + if (f.defaultValue != null) + val = f.defaultValue; + } + } + + points[k + m] = val; + } + } + + if (nullify) { + for (m = 0; m < ps; ++m) { + val = points[k + m]; + if (val != null) { + f = format[m]; + // extract min/max info + if (f.x) + updateAxis(s.xaxis, val, val); + if (f.y) + updateAxis(s.yaxis, val, val); + } + points[k + m] = null; + } + } + else { + // a little bit of line specific stuff that + // perhaps shouldn't be here, but lacking + // better means... + if (insertSteps && k > 0 + && points[k - ps] != null + && points[k - ps] != points[k] + && points[k - ps + 1] != points[k + 1]) { + // copy the point to make room for a middle point + for (m = 0; m < ps; ++m) + points[k + ps + m] = points[k + m]; + + // middle point has same y + points[k + 1] = points[k - ps + 1]; + + // we've added a point, better reflect that + k += ps; + } + } + } + } + + // give the hooks a chance to run + for (i = 0; i < series.length; ++i) { + s = series[i]; + + executeHooks(hooks.processDatapoints, [ s, s.datapoints]); + } + + // second pass: find datamax/datamin for auto-scaling + for (i = 0; i < series.length; ++i) { + s = series[i]; + points = s.datapoints.points, + ps = s.datapoints.pointsize; + + var xmin = topSentry, ymin = topSentry, + xmax = bottomSentry, ymax = bottomSentry; + + for (j = 0; j < points.length; j += ps) { + if (points[j] == null) + continue; + + for (m = 0; m < ps; ++m) { + val = points[j + m]; + f = format[m]; + if (!f || val == fakeInfinity || val == -fakeInfinity) + continue; + + if (f.x) { + if (val < xmin) + xmin = val; + if (val > xmax) + xmax = val; + } + if (f.y) { + if (val < ymin) + ymin = val; + if (val > ymax) + ymax = val; + } + } + } + + if (s.bars.show) { + // make sure we got room for the bar on the dancing floor + var delta = s.bars.align == "left" ? 0 : -s.bars.barWidth/2; + if (s.bars.horizontal) { + ymin += delta; + ymax += delta + s.bars.barWidth; + } + else { + xmin += delta; + xmax += delta + s.bars.barWidth; + } + } + + updateAxis(s.xaxis, xmin, xmax); + updateAxis(s.yaxis, ymin, ymax); + } + + $.each(allAxes(), function (_, axis) { + if (axis.datamin == topSentry) + axis.datamin = null; + if (axis.datamax == bottomSentry) + axis.datamax = null; + }); + } + + function makeCanvas(skipPositioning, cls) { + var c = document.createElement('canvas'); + c.className = cls; + c.width = canvasWidth; + c.height = canvasHeight; + + if (!skipPositioning) + $(c).css({ position: 'absolute', left: 0, top: 0 }); + + $(c).appendTo(placeholder); + + if (!c.getContext) // excanvas hack + c = window.G_vmlCanvasManager.initElement(c); + + // used for resetting in case we get replotted + c.getContext("2d").save(); + + return c; + } + + function getCanvasDimensions() { + canvasWidth = placeholder.width(); + canvasHeight = placeholder.height(); + + if (canvasWidth <= 0 || canvasHeight <= 0) + throw "Invalid dimensions for plot, width = " + canvasWidth + ", height = " + canvasHeight; + } + + function resizeCanvas(c) { + // resizing should reset the state (excanvas seems to be + // buggy though) + if (c.width != canvasWidth) + c.width = canvasWidth; + + if (c.height != canvasHeight) + c.height = canvasHeight; + + // so try to get back to the initial state (even if it's + // gone now, this should be safe according to the spec) + var cctx = c.getContext("2d"); + cctx.restore(); + + // and save again + cctx.save(); + } + + function setupCanvases() { + var reused, + existingCanvas = placeholder.children("canvas.base"), + existingOverlay = placeholder.children("canvas.overlay"); + + if (existingCanvas.length == 0 || existingOverlay == 0) { + // init everything + + placeholder.html(""); // make sure placeholder is clear + + placeholder.css({ padding: 0 }); // padding messes up the positioning + + if (placeholder.css("position") == 'static') + placeholder.css("position", "relative"); // for positioning labels and overlay + + getCanvasDimensions(); + + canvas = makeCanvas(true, "base"); + overlay = makeCanvas(false, "overlay"); // overlay canvas for interactive features + + reused = false; + } + else { + // reuse existing elements + + canvas = existingCanvas.get(0); + overlay = existingOverlay.get(0); + + reused = true; + } + + ctx = canvas.getContext("2d"); + octx = overlay.getContext("2d"); + + // we include the canvas in the event holder too, because IE 7 + // sometimes has trouble with the stacking order + eventHolder = $([overlay, canvas]); + + if (reused) { + // run shutdown in the old plot object + placeholder.data("plot").shutdown(); + + // reset reused canvases + plot.resize(); + + // make sure overlay pixels are cleared (canvas is cleared when we redraw) + octx.clearRect(0, 0, canvasWidth, canvasHeight); + + // then whack any remaining obvious garbage left + eventHolder.unbind(); + placeholder.children().not([canvas, overlay]).remove(); + } + + // save in case we get replotted + placeholder.data("plot", plot); + } + + function bindEvents() { + // bind events + if (options.grid.hoverable) { + eventHolder.mousemove(onMouseMove); + eventHolder.mouseleave(onMouseLeave); + } + + if (options.grid.clickable) + eventHolder.click(onClick); + + executeHooks(hooks.bindEvents, [eventHolder]); + } + + function shutdown() { + if (redrawTimeout) + clearTimeout(redrawTimeout); + + eventHolder.unbind("mousemove", onMouseMove); + eventHolder.unbind("mouseleave", onMouseLeave); + eventHolder.unbind("click", onClick); + + executeHooks(hooks.shutdown, [eventHolder]); + } + + function setTransformationHelpers(axis) { + // set helper functions on the axis, assumes plot area + // has been computed already + + function identity(x) { return x; } + + var s, m, t = axis.options.transform || identity, + it = axis.options.inverseTransform; + + // precompute how much the axis is scaling a point + // in canvas space + if (axis.direction == "x") { + s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min)); + m = Math.min(t(axis.max), t(axis.min)); + } + else { + s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min)); + s = -s; + m = Math.max(t(axis.max), t(axis.min)); + } + + // data point to canvas coordinate + if (t == identity) // slight optimization + axis.p2c = function (p) { return (p - m) * s; }; + else + axis.p2c = function (p) { return (t(p) - m) * s; }; + // canvas coordinate to data point + if (!it) + axis.c2p = function (c) { return m + c / s; }; + else + axis.c2p = function (c) { return it(m + c / s); }; + } + + function measureTickLabels(axis) { + var opts = axis.options, i, ticks = axis.ticks || [], labels = [], + l, w = opts.labelWidth, h = opts.labelHeight, dummyDiv; + + function makeDummyDiv(labels, width) { + return $('
                              ' + + '
                              ' + + labels.join("") + '
                              ') + .appendTo(placeholder); + } + + if (axis.direction == "x") { + // to avoid measuring the widths of the labels (it's slow), we + // construct fixed-size boxes and put the labels inside + // them, we don't need the exact figures and the + // fixed-size box content is easy to center + if (w == null) + w = Math.floor(canvasWidth / (ticks.length > 0 ? ticks.length : 1)); + + // measure x label heights + if (h == null) { + labels = []; + for (i = 0; i < ticks.length; ++i) { + l = ticks[i].label; + if (l) + labels.push('
                              ' + l + '
                              '); + } + + if (labels.length > 0) { + // stick them all in the same div and measure + // collective height + labels.push('
                              '); + dummyDiv = makeDummyDiv(labels, "width:10000px;"); + h = dummyDiv.height(); + dummyDiv.remove(); + } + } + } + else if (w == null || h == null) { + // calculate y label dimensions + for (i = 0; i < ticks.length; ++i) { + l = ticks[i].label; + if (l) + labels.push('
                              ' + l + '
                              '); + } + + if (labels.length > 0) { + dummyDiv = makeDummyDiv(labels, ""); + if (w == null) + w = dummyDiv.children().width(); + if (h == null) + h = dummyDiv.find("div.tickLabel").height(); + dummyDiv.remove(); + } + } + + if (w == null) + w = 0; + if (h == null) + h = 0; + + axis.labelWidth = w; + axis.labelHeight = h; + } + + function allocateAxisBoxFirstPhase(axis) { + // find the bounding box of the axis by looking at label + // widths/heights and ticks, make room by diminishing the + // plotOffset + + var lw = axis.labelWidth, + lh = axis.labelHeight, + pos = axis.options.position, + tickLength = axis.options.tickLength, + axismargin = options.grid.axisMargin, + padding = options.grid.labelMargin, + all = axis.direction == "x" ? xaxes : yaxes, + index; + + // determine axis margin + var samePosition = $.grep(all, function (a) { + return a && a.options.position == pos && a.reserveSpace; + }); + if ($.inArray(axis, samePosition) == samePosition.length - 1) + axismargin = 0; // outermost + + // determine tick length - if we're innermost, we can use "full" + if (tickLength == null) + tickLength = "full"; + + var sameDirection = $.grep(all, function (a) { + return a && a.reserveSpace; + }); + + var innermost = $.inArray(axis, sameDirection) == 0; + if (!innermost && tickLength == "full") + tickLength = 5; + + if (!isNaN(+tickLength)) + padding += +tickLength; + + // compute box + if (axis.direction == "x") { + lh += padding; + + if (pos == "bottom") { + plotOffset.bottom += lh + axismargin; + axis.box = { top: canvasHeight - plotOffset.bottom, height: lh }; + } + else { + axis.box = { top: plotOffset.top + axismargin, height: lh }; + plotOffset.top += lh + axismargin; + } + } + else { + lw += padding; + + if (pos == "left") { + axis.box = { left: plotOffset.left + axismargin, width: lw }; + plotOffset.left += lw + axismargin; + } + else { + plotOffset.right += lw + axismargin; + axis.box = { left: canvasWidth - plotOffset.right, width: lw }; + } + } + + // save for future reference + axis.position = pos; + axis.tickLength = tickLength; + axis.box.padding = padding; + axis.innermost = innermost; + } + + function allocateAxisBoxSecondPhase(axis) { + // set remaining bounding box coordinates + if (axis.direction == "x") { + axis.box.left = plotOffset.left; + axis.box.width = plotWidth; + } + else { + axis.box.top = plotOffset.top; + axis.box.height = plotHeight; + } + } + + function setupGrid() { + var i, axes = allAxes(); + + // first calculate the plot and axis box dimensions + + $.each(axes, function (_, axis) { + axis.show = axis.options.show; + if (axis.show == null) + axis.show = axis.used; // by default an axis is visible if it's got data + + axis.reserveSpace = axis.show || axis.options.reserveSpace; + + setRange(axis); + }); + + allocatedAxes = $.grep(axes, function (axis) { return axis.reserveSpace; }); + + plotOffset.left = plotOffset.right = plotOffset.top = plotOffset.bottom = 0; + if (options.grid.show) { + $.each(allocatedAxes, function (_, axis) { + // make the ticks + setupTickGeneration(axis); + setTicks(axis); + snapRangeToTicks(axis, axis.ticks); + + // find labelWidth/Height for axis + measureTickLabels(axis); + }); + + // with all dimensions in house, we can compute the + // axis boxes, start from the outside (reverse order) + for (i = allocatedAxes.length - 1; i >= 0; --i) + allocateAxisBoxFirstPhase(allocatedAxes[i]); + + // make sure we've got enough space for things that + // might stick out + var minMargin = options.grid.minBorderMargin; + if (minMargin == null) { + minMargin = 0; + for (i = 0; i < series.length; ++i) + minMargin = Math.max(minMargin, series[i].points.radius + series[i].points.lineWidth/2); + } + + for (var a in plotOffset) { + plotOffset[a] += options.grid.borderWidth; + plotOffset[a] = Math.max(minMargin, plotOffset[a]); + } + } + + plotWidth = canvasWidth - plotOffset.left - plotOffset.right; + plotHeight = canvasHeight - plotOffset.bottom - plotOffset.top; + + // now we got the proper plotWidth/Height, we can compute the scaling + $.each(axes, function (_, axis) { + setTransformationHelpers(axis); + }); + + if (options.grid.show) { + $.each(allocatedAxes, function (_, axis) { + allocateAxisBoxSecondPhase(axis); + }); + + insertAxisLabels(); + } + + insertLegend(); + } + + function setRange(axis) { + var opts = axis.options, + min = +(opts.min != null ? opts.min : axis.datamin), + max = +(opts.max != null ? opts.max : axis.datamax), + delta = max - min; + + if (delta == 0.0) { + // degenerate case + var widen = max == 0 ? 1 : 0.01; + + if (opts.min == null) + min -= widen; + // always widen max if we couldn't widen min to ensure we + // don't fall into min == max which doesn't work + if (opts.max == null || opts.min != null) + max += widen; + } + else { + // consider autoscaling + var margin = opts.autoscaleMargin; + if (margin != null) { + if (opts.min == null) { + min -= delta * margin; + // make sure we don't go below zero if all values + // are positive + if (min < 0 && axis.datamin != null && axis.datamin >= 0) + min = 0; + } + if (opts.max == null) { + max += delta * margin; + if (max > 0 && axis.datamax != null && axis.datamax <= 0) + max = 0; + } + } + } + axis.min = min; + axis.max = max; + } + + function setupTickGeneration(axis) { + var opts = axis.options; + + // estimate number of ticks + var noTicks; + if (typeof opts.ticks == "number" && opts.ticks > 0) + noTicks = opts.ticks; + else + // heuristic based on the model a*sqrt(x) fitted to + // some data points that seemed reasonable + noTicks = 0.3 * Math.sqrt(axis.direction == "x" ? canvasWidth : canvasHeight); + + var delta = (axis.max - axis.min) / noTicks, + size, generator, unit, formatter, i, magn, norm; + + if (opts.mode == "time") { + // pretty handling of time + + // map of app. size of time units in milliseconds + var timeUnitSize = { + "second": 1000, + "minute": 60 * 1000, + "hour": 60 * 60 * 1000, + "day": 24 * 60 * 60 * 1000, + "month": 30 * 24 * 60 * 60 * 1000, + "year": 365.2425 * 24 * 60 * 60 * 1000 + }; + + + // the allowed tick sizes, after 1 year we use + // an integer algorithm + var spec = [ + [1, "second"], [2, "second"], [5, "second"], [10, "second"], + [30, "second"], + [1, "minute"], [2, "minute"], [5, "minute"], [10, "minute"], + [30, "minute"], + [1, "hour"], [2, "hour"], [4, "hour"], + [8, "hour"], [12, "hour"], + [1, "day"], [2, "day"], [3, "day"], + [0.25, "month"], [0.5, "month"], [1, "month"], + [2, "month"], [3, "month"], [6, "month"], + [1, "year"] + ]; + + var minSize = 0; + if (opts.minTickSize != null) { + if (typeof opts.tickSize == "number") + minSize = opts.tickSize; + else + minSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]]; + } + + for (var i = 0; i < spec.length - 1; ++i) + if (delta < (spec[i][0] * timeUnitSize[spec[i][1]] + + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2 + && spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) + break; + size = spec[i][0]; + unit = spec[i][1]; + + // special-case the possibility of several years + if (unit == "year") { + magn = Math.pow(10, Math.floor(Math.log(delta / timeUnitSize.year) / Math.LN10)); + norm = (delta / timeUnitSize.year) / magn; + if (norm < 1.5) + size = 1; + else if (norm < 3) + size = 2; + else if (norm < 7.5) + size = 5; + else + size = 10; + + size *= magn; + } + + axis.tickSize = opts.tickSize || [size, unit]; + + generator = function(axis) { + var ticks = [], + tickSize = axis.tickSize[0], unit = axis.tickSize[1], + d = new Date(axis.min); + + var step = tickSize * timeUnitSize[unit]; + + if (unit == "second") + d.setUTCSeconds(floorInBase(d.getUTCSeconds(), tickSize)); + if (unit == "minute") + d.setUTCMinutes(floorInBase(d.getUTCMinutes(), tickSize)); + if (unit == "hour") + d.setUTCHours(floorInBase(d.getUTCHours(), tickSize)); + if (unit == "month") + d.setUTCMonth(floorInBase(d.getUTCMonth(), tickSize)); + if (unit == "year") + d.setUTCFullYear(floorInBase(d.getUTCFullYear(), tickSize)); + + // reset smaller components + d.setUTCMilliseconds(0); + if (step >= timeUnitSize.minute) + d.setUTCSeconds(0); + if (step >= timeUnitSize.hour) + d.setUTCMinutes(0); + if (step >= timeUnitSize.day) + d.setUTCHours(0); + if (step >= timeUnitSize.day * 4) + d.setUTCDate(1); + if (step >= timeUnitSize.year) + d.setUTCMonth(0); + + + var carry = 0, v = Number.NaN, prev; + do { + prev = v; + v = d.getTime(); + ticks.push(v); + if (unit == "month") { + if (tickSize < 1) { + // a bit complicated - we'll divide the month + // up but we need to take care of fractions + // so we don't end up in the middle of a day + d.setUTCDate(1); + var start = d.getTime(); + d.setUTCMonth(d.getUTCMonth() + 1); + var end = d.getTime(); + d.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize); + carry = d.getUTCHours(); + d.setUTCHours(0); + } + else + d.setUTCMonth(d.getUTCMonth() + tickSize); + } + else if (unit == "year") { + d.setUTCFullYear(d.getUTCFullYear() + tickSize); + } + else + d.setTime(v + step); + } while (v < axis.max && v != prev); + + return ticks; + }; + + formatter = function (v, axis) { + var d = new Date(v); + + // first check global format + if (opts.timeformat != null) + return $.plot.formatDate(d, opts.timeformat, opts.monthNames); + + var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]]; + var span = axis.max - axis.min; + var suffix = (opts.twelveHourClock) ? " %p" : ""; + + if (t < timeUnitSize.minute) + fmt = "%h:%M:%S" + suffix; + else if (t < timeUnitSize.day) { + if (span < 2 * timeUnitSize.day) + fmt = "%h:%M" + suffix; + else + fmt = "%b %d %h:%M" + suffix; + } + else if (t < timeUnitSize.month) + fmt = "%b %d"; + else if (t < timeUnitSize.year) { + if (span < timeUnitSize.year) + fmt = "%b"; + else + fmt = "%b %y"; + } + else + fmt = "%y"; + + return $.plot.formatDate(d, fmt, opts.monthNames); + }; + } + else { + // pretty rounding of base-10 numbers + var maxDec = opts.tickDecimals; + var dec = -Math.floor(Math.log(delta) / Math.LN10); + if (maxDec != null && dec > maxDec) + dec = maxDec; + + magn = Math.pow(10, -dec); + norm = delta / magn; // norm is between 1.0 and 10.0 + + if (norm < 1.5) + size = 1; + else if (norm < 3) { + size = 2; + // special case for 2.5, requires an extra decimal + if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) { + size = 2.5; + ++dec; + } + } + else if (norm < 7.5) + size = 5; + else + size = 10; + + size *= magn; + + if (opts.minTickSize != null && size < opts.minTickSize) + size = opts.minTickSize; + + axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec); + axis.tickSize = opts.tickSize || size; + + generator = function (axis) { + var ticks = []; + + // spew out all possible ticks + var start = floorInBase(axis.min, axis.tickSize), + i = 0, v = Number.NaN, prev; + do { + prev = v; + v = start + i * axis.tickSize; + ticks.push(v); + ++i; + } while (v < axis.max && v != prev); + return ticks; + }; + + formatter = function (v, axis) { + return v.toFixed(axis.tickDecimals); + }; + } + + if (opts.alignTicksWithAxis != null) { + var otherAxis = (axis.direction == "x" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1]; + if (otherAxis && otherAxis.used && otherAxis != axis) { + // consider snapping min/max to outermost nice ticks + var niceTicks = generator(axis); + if (niceTicks.length > 0) { + if (opts.min == null) + axis.min = Math.min(axis.min, niceTicks[0]); + if (opts.max == null && niceTicks.length > 1) + axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]); + } + + generator = function (axis) { + // copy ticks, scaled to this axis + var ticks = [], v, i; + for (i = 0; i < otherAxis.ticks.length; ++i) { + v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min); + v = axis.min + v * (axis.max - axis.min); + ticks.push(v); + } + return ticks; + }; + + // we might need an extra decimal since forced + // ticks don't necessarily fit naturally + if (axis.mode != "time" && opts.tickDecimals == null) { + var extraDec = Math.max(0, -Math.floor(Math.log(delta) / Math.LN10) + 1), + ts = generator(axis); + + // only proceed if the tick interval rounded + // with an extra decimal doesn't give us a + // zero at end + if (!(ts.length > 1 && /\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec)))) + axis.tickDecimals = extraDec; + } + } + } + + axis.tickGenerator = generator; + if ($.isFunction(opts.tickFormatter)) + axis.tickFormatter = function (v, axis) { return "" + opts.tickFormatter(v, axis); }; + else + axis.tickFormatter = formatter; + } + + function setTicks(axis) { + var oticks = axis.options.ticks, ticks = []; + if (oticks == null || (typeof oticks == "number" && oticks > 0)) + ticks = axis.tickGenerator(axis); + else if (oticks) { + if ($.isFunction(oticks)) + // generate the ticks + ticks = oticks({ min: axis.min, max: axis.max }); + else + ticks = oticks; + } + + // clean up/labelify the supplied ticks, copy them over + var i, v; + axis.ticks = []; + for (i = 0; i < ticks.length; ++i) { + var label = null; + var t = ticks[i]; + if (typeof t == "object") { + v = +t[0]; + if (t.length > 1) + label = t[1]; + } + else + v = +t; + if (label == null) + label = axis.tickFormatter(v, axis); + if (!isNaN(v)) + axis.ticks.push({ v: v, label: label }); + } + } + + function snapRangeToTicks(axis, ticks) { + if (axis.options.autoscaleMargin && ticks.length > 0) { + // snap to ticks + if (axis.options.min == null) + axis.min = Math.min(axis.min, ticks[0].v); + if (axis.options.max == null && ticks.length > 1) + axis.max = Math.max(axis.max, ticks[ticks.length - 1].v); + } + } + + function draw() { + ctx.clearRect(0, 0, canvasWidth, canvasHeight); + + var grid = options.grid; + + // draw background, if any + if (grid.show && grid.backgroundColor) + drawBackground(); + + if (grid.show && !grid.aboveData) + drawGrid(); + + for (var i = 0; i < series.length; ++i) { + executeHooks(hooks.drawSeries, [ctx, series[i]]); + drawSeries(series[i]); + } + + executeHooks(hooks.draw, [ctx]); + + if (grid.show && grid.aboveData) + drawGrid(); + } + + function extractRange(ranges, coord) { + var axis, from, to, key, axes = allAxes(); + + for (i = 0; i < axes.length; ++i) { + axis = axes[i]; + if (axis.direction == coord) { + key = coord + axis.n + "axis"; + if (!ranges[key] && axis.n == 1) + key = coord + "axis"; // support x1axis as xaxis + if (ranges[key]) { + from = ranges[key].from; + to = ranges[key].to; + break; + } + } + } + + // backwards-compat stuff - to be removed in future + if (!ranges[key]) { + axis = coord == "x" ? xaxes[0] : yaxes[0]; + from = ranges[coord + "1"]; + to = ranges[coord + "2"]; + } + + // auto-reverse as an added bonus + if (from != null && to != null && from > to) { + var tmp = from; + from = to; + to = tmp; + } + + return { from: from, to: to, axis: axis }; + } + + function drawBackground() { + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, "rgba(255, 255, 255, 0)"); + ctx.fillRect(0, 0, plotWidth, plotHeight); + ctx.restore(); + } + + function drawGrid() { + var i; + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + // draw markings + var markings = options.grid.markings; + if (markings) { + if ($.isFunction(markings)) { + var axes = plot.getAxes(); + // xmin etc. is backwards compatibility, to be + // removed in the future + axes.xmin = axes.xaxis.min; + axes.xmax = axes.xaxis.max; + axes.ymin = axes.yaxis.min; + axes.ymax = axes.yaxis.max; + + markings = markings(axes); + } + + for (i = 0; i < markings.length; ++i) { + var m = markings[i], + xrange = extractRange(m, "x"), + yrange = extractRange(m, "y"); + + // fill in missing + if (xrange.from == null) + xrange.from = xrange.axis.min; + if (xrange.to == null) + xrange.to = xrange.axis.max; + if (yrange.from == null) + yrange.from = yrange.axis.min; + if (yrange.to == null) + yrange.to = yrange.axis.max; + + // clip + if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max || + yrange.to < yrange.axis.min || yrange.from > yrange.axis.max) + continue; + + xrange.from = Math.max(xrange.from, xrange.axis.min); + xrange.to = Math.min(xrange.to, xrange.axis.max); + yrange.from = Math.max(yrange.from, yrange.axis.min); + yrange.to = Math.min(yrange.to, yrange.axis.max); + + if (xrange.from == xrange.to && yrange.from == yrange.to) + continue; + + // then draw + xrange.from = xrange.axis.p2c(xrange.from); + xrange.to = xrange.axis.p2c(xrange.to); + yrange.from = yrange.axis.p2c(yrange.from); + yrange.to = yrange.axis.p2c(yrange.to); + + if (xrange.from == xrange.to || yrange.from == yrange.to) { + // draw line + ctx.beginPath(); + ctx.strokeStyle = m.color || options.grid.markingsColor; + ctx.lineWidth = m.lineWidth || options.grid.markingsLineWidth; + ctx.moveTo(xrange.from, yrange.from); + ctx.lineTo(xrange.to, yrange.to); + ctx.stroke(); + } + else { + // fill area + ctx.fillStyle = m.color || options.grid.markingsColor; + ctx.fillRect(xrange.from, yrange.to, + xrange.to - xrange.from, + yrange.from - yrange.to); + } + } + } + + // draw the ticks + var axes = allAxes(), bw = options.grid.borderWidth; + + for (var j = 0; j < axes.length; ++j) { + var axis = axes[j], box = axis.box, + t = axis.tickLength, x, y, xoff, yoff; + if (!axis.show || axis.ticks.length == 0) + continue + + ctx.strokeStyle = axis.options.tickColor || $.color.parse(axis.options.color).scale('a', 0.22).toString(); + ctx.lineWidth = 1; + + // find the edges + if (axis.direction == "x") { + x = 0; + if (t == "full") + y = (axis.position == "top" ? 0 : plotHeight); + else + y = box.top - plotOffset.top + (axis.position == "top" ? box.height : 0); + } + else { + y = 0; + if (t == "full") + x = (axis.position == "left" ? 0 : plotWidth); + else + x = box.left - plotOffset.left + (axis.position == "left" ? box.width : 0); + } + + // draw tick bar + if (!axis.innermost) { + ctx.beginPath(); + xoff = yoff = 0; + if (axis.direction == "x") + xoff = plotWidth; + else + yoff = plotHeight; + + if (ctx.lineWidth == 1) { + x = Math.floor(x) + 0.5; + y = Math.floor(y) + 0.5; + } + + ctx.moveTo(x, y); + ctx.lineTo(x + xoff, y + yoff); + ctx.stroke(); + } + + // draw ticks + ctx.beginPath(); + for (i = 0; i < axis.ticks.length; ++i) { + var v = axis.ticks[i].v; + + xoff = yoff = 0; + + if (v < axis.min || v > axis.max + // skip those lying on the axes if we got a border + || (t == "full" && bw > 0 + && (v == axis.min || v == axis.max))) + continue; + + if (axis.direction == "x") { + x = axis.p2c(v); + yoff = t == "full" ? -plotHeight : t; + + if (axis.position == "top") + yoff = -yoff; + } + else { + y = axis.p2c(v); + xoff = t == "full" ? -plotWidth : t; + + if (axis.position == "left") + xoff = -xoff; + } + + if (ctx.lineWidth == 1) { + if (axis.direction == "x") + x = Math.floor(x) + 0.5; + else + y = Math.floor(y) + 0.5; + } + + ctx.moveTo(x, y); + ctx.lineTo(x + xoff, y + yoff); + } + + ctx.stroke(); + } + + + // draw border + if (bw) { + ctx.lineWidth = bw; + ctx.strokeStyle = options.grid.borderColor; + ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw); + } + + ctx.restore(); + } + + function insertAxisLabels() { + placeholder.find(".tickLabels").remove(); + + var html = ['
                              ']; + + var axes = allAxes(); + for (var j = 0; j < axes.length; ++j) { + var axis = axes[j], box = axis.box; + if (!axis.show) + continue; + //debug: html.push('
                              ') + html.push('
                              '); + for (var i = 0; i < axis.ticks.length; ++i) { + var tick = axis.ticks[i]; + if (!tick.label || tick.v < axis.min || tick.v > axis.max) + continue; + + var pos = {}, align; + + if (axis.direction == "x") { + align = "center"; + pos.left = Math.round(plotOffset.left + axis.p2c(tick.v) - axis.labelWidth/2); + if (axis.position == "bottom") + pos.top = box.top + box.padding; + else + pos.bottom = canvasHeight - (box.top + box.height - box.padding); + } + else { + pos.top = Math.round(plotOffset.top + axis.p2c(tick.v) - axis.labelHeight/2); + if (axis.position == "left") { + pos.right = canvasWidth - (box.left + box.width - box.padding) + align = "right"; + } + else { + pos.left = box.left + box.padding; + align = "left"; + } + } + + pos.width = axis.labelWidth; + + var style = ["position:absolute", "text-align:" + align ]; + for (var a in pos) + style.push(a + ":" + pos[a] + "px") + + html.push('
                              ' + tick.label + '
                              '); + } + html.push('
                              '); + } + + html.push('
                              '); + + placeholder.append(html.join("")); + } + + function drawSeries(series) { + if (series.lines.show) + drawSeriesLines(series); + if (series.bars.show) + drawSeriesBars(series); + if (series.points.show) + drawSeriesPoints(series); + } + + function drawSeriesLines(series) { + function plotLine(datapoints, xoffset, yoffset, axisx, axisy) { + var points = datapoints.points, + ps = datapoints.pointsize, + prevx = null, prevy = null; + + ctx.beginPath(); + for (var i = ps; i < points.length; i += ps) { + var x1 = points[i - ps], y1 = points[i - ps + 1], + x2 = points[i], y2 = points[i + 1]; + + if (x1 == null || x2 == null) + continue; + + // clip with ymin + if (y1 <= y2 && y1 < axisy.min) { + if (y2 < axisy.min) + continue; // line segment is outside + // compute new intersection point + x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.min; + } + else if (y2 <= y1 && y2 < axisy.min) { + if (y1 < axisy.min) + continue; + x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.min; + } + + // clip with ymax + if (y1 >= y2 && y1 > axisy.max) { + if (y2 > axisy.max) + continue; + x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.max; + } + else if (y2 >= y1 && y2 > axisy.max) { + if (y1 > axisy.max) + continue; + x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.max; + } + + // clip with xmin + if (x1 <= x2 && x1 < axisx.min) { + if (x2 < axisx.min) + continue; + y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.min; + } + else if (x2 <= x1 && x2 < axisx.min) { + if (x1 < axisx.min) + continue; + y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.min; + } + + // clip with xmax + if (x1 >= x2 && x1 > axisx.max) { + if (x2 > axisx.max) + continue; + y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.max; + } + else if (x2 >= x1 && x2 > axisx.max) { + if (x1 > axisx.max) + continue; + y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.max; + } + + if (x1 != prevx || y1 != prevy) + ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset); + + prevx = x2; + prevy = y2; + ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset); + } + ctx.stroke(); + } + + function plotLineArea(datapoints, axisx, axisy) { + var points = datapoints.points, + ps = datapoints.pointsize, + bottom = Math.min(Math.max(0, axisy.min), axisy.max), + i = 0, top, areaOpen = false, + ypos = 1, segmentStart = 0, segmentEnd = 0; + + // we process each segment in two turns, first forward + // direction to sketch out top, then once we hit the + // end we go backwards to sketch the bottom + while (true) { + if (ps > 0 && i > points.length + ps) + break; + + i += ps; // ps is negative if going backwards + + var x1 = points[i - ps], + y1 = points[i - ps + ypos], + x2 = points[i], y2 = points[i + ypos]; + + if (areaOpen) { + if (ps > 0 && x1 != null && x2 == null) { + // at turning point + segmentEnd = i; + ps = -ps; + ypos = 2; + continue; + } + + if (ps < 0 && i == segmentStart + ps) { + // done with the reverse sweep + ctx.fill(); + areaOpen = false; + ps = -ps; + ypos = 1; + i = segmentStart = segmentEnd + ps; + continue; + } + } + + if (x1 == null || x2 == null) + continue; + + // clip x values + + // clip with xmin + if (x1 <= x2 && x1 < axisx.min) { + if (x2 < axisx.min) + continue; + y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.min; + } + else if (x2 <= x1 && x2 < axisx.min) { + if (x1 < axisx.min) + continue; + y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.min; + } + + // clip with xmax + if (x1 >= x2 && x1 > axisx.max) { + if (x2 > axisx.max) + continue; + y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.max; + } + else if (x2 >= x1 && x2 > axisx.max) { + if (x1 > axisx.max) + continue; + y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.max; + } + + if (!areaOpen) { + // open area + ctx.beginPath(); + ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom)); + areaOpen = true; + } + + // now first check the case where both is outside + if (y1 >= axisy.max && y2 >= axisy.max) { + ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max)); + continue; + } + else if (y1 <= axisy.min && y2 <= axisy.min) { + ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min)); + continue; + } + + // else it's a bit more complicated, there might + // be a flat maxed out rectangle first, then a + // triangular cutout or reverse; to find these + // keep track of the current x values + var x1old = x1, x2old = x2; + + // clip the y values, without shortcutting, we + // go through all cases in turn + + // clip with ymin + if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) { + x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.min; + } + else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) { + x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.min; + } + + // clip with ymax + if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) { + x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.max; + } + else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) { + x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.max; + } + + // if the x value was changed we got a rectangle + // to fill + if (x1 != x1old) { + ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1)); + // it goes to (x1, y1), but we fill that below + } + + // fill triangular section, this sometimes result + // in redundant points if (x1, y1) hasn't changed + // from previous line to, but we just ignore that + ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); + + // fill the other rectangle if it's there + if (x2 != x2old) { + ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); + ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2)); + } + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + ctx.lineJoin = "round"; + + var lw = series.lines.lineWidth, + sw = series.shadowSize; + // FIXME: consider another form of shadow when filling is turned on + if (lw > 0 && sw > 0) { + // draw shadow as a thick and thin line with transparency + ctx.lineWidth = sw; + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + // position shadow at angle from the mid of line + var angle = Math.PI/18; + plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis); + ctx.lineWidth = sw/2; + plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis); + } + + ctx.lineWidth = lw; + ctx.strokeStyle = series.color; + var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight); + if (fillStyle) { + ctx.fillStyle = fillStyle; + plotLineArea(series.datapoints, series.xaxis, series.yaxis); + } + + if (lw > 0) + plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis); + ctx.restore(); + } + + function drawSeriesPoints(series) { + function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) { + var points = datapoints.points, ps = datapoints.pointsize; + + for (var i = 0; i < points.length; i += ps) { + var x = points[i], y = points[i + 1]; + if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) + continue; + + ctx.beginPath(); + x = axisx.p2c(x); + y = axisy.p2c(y) + offset; + if (symbol == "circle") + ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false); + else + symbol(ctx, x, y, radius, shadow); + ctx.closePath(); + + if (fillStyle) { + ctx.fillStyle = fillStyle; + ctx.fill(); + } + ctx.stroke(); + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + var lw = series.points.lineWidth, + sw = series.shadowSize, + radius = series.points.radius, + symbol = series.points.symbol; + if (lw > 0 && sw > 0) { + // draw shadow in two steps + var w = sw / 2; + ctx.lineWidth = w; + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + plotPoints(series.datapoints, radius, null, w + w/2, true, + series.xaxis, series.yaxis, symbol); + + ctx.strokeStyle = "rgba(0,0,0,0.2)"; + plotPoints(series.datapoints, radius, null, w/2, true, + series.xaxis, series.yaxis, symbol); + } + + ctx.lineWidth = lw; + ctx.strokeStyle = series.color; + plotPoints(series.datapoints, radius, + getFillStyle(series.points, series.color), 0, false, + series.xaxis, series.yaxis, symbol); + ctx.restore(); + } + + function drawBar(x, y, b, barLeft, barRight, offset, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) { + var left, right, bottom, top, + drawLeft, drawRight, drawTop, drawBottom, + tmp; + + // in horizontal mode, we start the bar from the left + // instead of from the bottom so it appears to be + // horizontal rather than vertical + if (horizontal) { + drawBottom = drawRight = drawTop = true; + drawLeft = false; + left = b; + right = x; + top = y + barLeft; + bottom = y + barRight; + + // account for negative bars + if (right < left) { + tmp = right; + right = left; + left = tmp; + drawLeft = true; + drawRight = false; + } + } + else { + drawLeft = drawRight = drawTop = true; + drawBottom = false; + left = x + barLeft; + right = x + barRight; + bottom = b; + top = y; + + // account for negative bars + if (top < bottom) { + tmp = top; + top = bottom; + bottom = tmp; + drawBottom = true; + drawTop = false; + } + } + + // clip + if (right < axisx.min || left > axisx.max || + top < axisy.min || bottom > axisy.max) + return; + + if (left < axisx.min) { + left = axisx.min; + drawLeft = false; + } + + if (right > axisx.max) { + right = axisx.max; + drawRight = false; + } + + if (bottom < axisy.min) { + bottom = axisy.min; + drawBottom = false; + } + + if (top > axisy.max) { + top = axisy.max; + drawTop = false; + } + + left = axisx.p2c(left); + bottom = axisy.p2c(bottom); + right = axisx.p2c(right); + top = axisy.p2c(top); + + // fill the bar + if (fillStyleCallback) { + c.beginPath(); + c.moveTo(left, bottom); + c.lineTo(left, top); + c.lineTo(right, top); + c.lineTo(right, bottom); + c.fillStyle = fillStyleCallback(bottom, top); + c.fill(); + } + + // draw outline + if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) { + c.beginPath(); + + // FIXME: inline moveTo is buggy with excanvas + c.moveTo(left, bottom + offset); + if (drawLeft) + c.lineTo(left, top + offset); + else + c.moveTo(left, top + offset); + if (drawTop) + c.lineTo(right, top + offset); + else + c.moveTo(right, top + offset); + if (drawRight) + c.lineTo(right, bottom + offset); + else + c.moveTo(right, bottom + offset); + if (drawBottom) + c.lineTo(left, bottom + offset); + else + c.moveTo(left, bottom + offset); + c.stroke(); + } + } + + function drawSeriesBars(series) { + function plotBars(datapoints, barLeft, barRight, offset, fillStyleCallback, axisx, axisy) { + var points = datapoints.points, ps = datapoints.pointsize; + + for (var i = 0; i < points.length; i += ps) { + if (points[i] == null) + continue; + drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, offset, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth); + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + // FIXME: figure out a way to add shadows (for instance along the right edge) + ctx.lineWidth = series.bars.lineWidth; + ctx.strokeStyle = series.color; + var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2; + var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null; + plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, 0, fillStyleCallback, series.xaxis, series.yaxis); + ctx.restore(); + } + + function getFillStyle(filloptions, seriesColor, bottom, top) { + var fill = filloptions.fill; + if (!fill) + return null; + + if (filloptions.fillColor) + return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor); + + var c = $.color.parse(seriesColor); + c.a = typeof fill == "number" ? fill : 0.4; + c.normalize(); + return c.toString(); + } + + function insertLegend() { + placeholder.find(".legend").remove(); + + if (!options.legend.show) + return; + + var fragments = [], rowStarted = false, + lf = options.legend.labelFormatter, s, label; + for (var i = 0; i < series.length; ++i) { + s = series[i]; + label = s.label; + if (!label) + continue; + + if (i % options.legend.noColumns == 0) { + if (rowStarted) + fragments.push('
                              '); + fragments.push(''); + rowStarted = true; + } + + if (lf) + label = lf(label, s); + + fragments.push( + '' + + ''); + } + if (rowStarted) + fragments.push(''); + + if (fragments.length == 0) + return; + + var table = '
                              + -
                              ' + label + '
                              ' + fragments.join("") + '
                              '; + if (options.legend.container != null) + $(options.legend.container).html(table); + else { + var pos = "", + p = options.legend.position, + m = options.legend.margin; + if (m[0] == null) + m = [m, m]; + if (p.charAt(0) == "n") + pos += 'top:' + (m[1] + plotOffset.top) + 'px;'; + else if (p.charAt(0) == "s") + pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;'; + if (p.charAt(1) == "e") + pos += 'right:' + (m[0] + plotOffset.right) + 'px;'; + else if (p.charAt(1) == "w") + pos += 'left:' + (m[0] + plotOffset.left) + 'px;'; + var legend = $('
                              ' + table.replace('style="', 'style="position:absolute;' + pos +';') + '
                              ').appendTo(placeholder); + if (options.legend.backgroundOpacity != 0.0) { + // put in the transparent background + // separately to avoid blended labels and + // label boxes + var c = options.legend.backgroundColor; + if (c == null) { + c = options.grid.backgroundColor; + if (c && typeof c == "string") + c = $.color.parse(c); + else + c = $.color.extract(legend, 'background-color'); + c.a = 1; + c = c.toString(); + } + var div = legend.children(); + $('
                              ').prependTo(legend).css('opacity', options.legend.backgroundOpacity); + } + } + } + + + // interactive features + + var highlights = [], + redrawTimeout = null; + + // returns the data item the mouse is over, or null if none is found + function findNearbyItem(mouseX, mouseY, seriesFilter) { + var maxDistance = options.grid.mouseActiveRadius, + smallestDistance = maxDistance * maxDistance + 1, + item = null, foundPoint = false, i, j; + + for (i = series.length - 1; i >= 0; --i) { + if (!seriesFilter(series[i])) + continue; + + var s = series[i], + axisx = s.xaxis, + axisy = s.yaxis, + points = s.datapoints.points, + ps = s.datapoints.pointsize, + mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster + my = axisy.c2p(mouseY), + maxx = maxDistance / axisx.scale, + maxy = maxDistance / axisy.scale; + + // with inverse transforms, we can't use the maxx/maxy + // optimization, sadly + if (axisx.options.inverseTransform) + maxx = Number.MAX_VALUE; + if (axisy.options.inverseTransform) + maxy = Number.MAX_VALUE; + + if (s.lines.show || s.points.show) { + for (j = 0; j < points.length; j += ps) { + var x = points[j], y = points[j + 1]; + if (x == null) + continue; + + // For points and lines, the cursor must be within a + // certain distance to the data point + if (x - mx > maxx || x - mx < -maxx || + y - my > maxy || y - my < -maxy) + continue; + + // We have to calculate distances in pixels, not in + // data units, because the scales of the axes may be different + var dx = Math.abs(axisx.p2c(x) - mouseX), + dy = Math.abs(axisy.p2c(y) - mouseY), + dist = dx * dx + dy * dy; // we save the sqrt + + // use <= to ensure last point takes precedence + // (last generally means on top of) + if (dist < smallestDistance) { + smallestDistance = dist; + item = [i, j / ps]; + } + } + } + + if (s.bars.show && !item) { // no other point can be nearby + var barLeft = s.bars.align == "left" ? 0 : -s.bars.barWidth/2, + barRight = barLeft + s.bars.barWidth; + + for (j = 0; j < points.length; j += ps) { + var x = points[j], y = points[j + 1], b = points[j + 2]; + if (x == null) + continue; + + // for a bar graph, the cursor must be inside the bar + if (series[i].bars.horizontal ? + (mx <= Math.max(b, x) && mx >= Math.min(b, x) && + my >= y + barLeft && my <= y + barRight) : + (mx >= x + barLeft && mx <= x + barRight && + my >= Math.min(b, y) && my <= Math.max(b, y))) + item = [i, j / ps]; + } + } + } + + if (item) { + i = item[0]; + j = item[1]; + ps = series[i].datapoints.pointsize; + + return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps), + dataIndex: j, + series: series[i], + seriesIndex: i }; + } + + return null; + } + + function onMouseMove(e) { + if (options.grid.hoverable) + triggerClickHoverEvent("plothover", e, + function (s) { return s["hoverable"] != false; }); + } + + function onMouseLeave(e) { + if (options.grid.hoverable) + triggerClickHoverEvent("plothover", e, + function (s) { return false; }); + } + + function onClick(e) { + triggerClickHoverEvent("plotclick", e, + function (s) { return s["clickable"] != false; }); + } + + // trigger click or hover event (they send the same parameters + // so we share their code) + function triggerClickHoverEvent(eventname, event, seriesFilter) { + var offset = eventHolder.offset(), + canvasX = event.pageX - offset.left - plotOffset.left, + canvasY = event.pageY - offset.top - plotOffset.top, + pos = canvasToAxisCoords({ left: canvasX, top: canvasY }); + + pos.pageX = event.pageX; + pos.pageY = event.pageY; + + var item = findNearbyItem(canvasX, canvasY, seriesFilter); + + if (item) { + // fill in mouse pos for any listeners out there + item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left); + item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top); + } + + if (options.grid.autoHighlight) { + // clear auto-highlights + for (var i = 0; i < highlights.length; ++i) { + var h = highlights[i]; + if (h.auto == eventname && + !(item && h.series == item.series && + h.point[0] == item.datapoint[0] && + h.point[1] == item.datapoint[1])) + unhighlight(h.series, h.point); + } + + if (item) + highlight(item.series, item.datapoint, eventname); + } + + placeholder.trigger(eventname, [ pos, item ]); + } + + function triggerRedrawOverlay() { + if (!redrawTimeout) + redrawTimeout = setTimeout(drawOverlay, 30); + } + + function drawOverlay() { + redrawTimeout = null; + + // draw highlights + octx.save(); + octx.clearRect(0, 0, canvasWidth, canvasHeight); + octx.translate(plotOffset.left, plotOffset.top); + + var i, hi; + for (i = 0; i < highlights.length; ++i) { + hi = highlights[i]; + + if (hi.series.bars.show) + drawBarHighlight(hi.series, hi.point); + else + drawPointHighlight(hi.series, hi.point); + } + octx.restore(); + + executeHooks(hooks.drawOverlay, [octx]); + } + + function highlight(s, point, auto) { + if (typeof s == "number") + s = series[s]; + + if (typeof point == "number") { + var ps = s.datapoints.pointsize; + point = s.datapoints.points.slice(ps * point, ps * (point + 1)); + } + + var i = indexOfHighlight(s, point); + if (i == -1) { + highlights.push({ series: s, point: point, auto: auto }); + + triggerRedrawOverlay(); + } + else if (!auto) + highlights[i].auto = false; + } + + function unhighlight(s, point) { + if (s == null && point == null) { + highlights = []; + triggerRedrawOverlay(); + } + + if (typeof s == "number") + s = series[s]; + + if (typeof point == "number") + point = s.data[point]; + + var i = indexOfHighlight(s, point); + if (i != -1) { + highlights.splice(i, 1); + + triggerRedrawOverlay(); + } + } + + function indexOfHighlight(s, p) { + for (var i = 0; i < highlights.length; ++i) { + var h = highlights[i]; + if (h.series == s && h.point[0] == p[0] + && h.point[1] == p[1]) + return i; + } + return -1; + } + + function drawPointHighlight(series, point) { + var x = point[0], y = point[1], + axisx = series.xaxis, axisy = series.yaxis; + + if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) + return; + + var pointRadius = series.points.radius + series.points.lineWidth / 2; + octx.lineWidth = pointRadius; + octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString(); + var radius = 1.5 * pointRadius, + x = axisx.p2c(x), + y = axisy.p2c(y); + + octx.beginPath(); + if (series.points.symbol == "circle") + octx.arc(x, y, radius, 0, 2 * Math.PI, false); + else + series.points.symbol(octx, x, y, radius, false); + octx.closePath(); + octx.stroke(); + } + + function drawBarHighlight(series, point) { + octx.lineWidth = series.bars.lineWidth; + octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString(); + var fillStyle = $.color.parse(series.color).scale('a', 0.5).toString(); + var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2; + drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth, + 0, function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth); + } + + function getColorOrGradient(spec, bottom, top, defaultColor) { + if (typeof spec == "string") + return spec; + else { + // assume this is a gradient spec; IE currently only + // supports a simple vertical gradient properly, so that's + // what we support too + var gradient = ctx.createLinearGradient(0, top, 0, bottom); + + for (var i = 0, l = spec.colors.length; i < l; ++i) { + var c = spec.colors[i]; + if (typeof c != "string") { + var co = $.color.parse(defaultColor); + if (c.brightness != null) + co = co.scale('rgb', c.brightness) + if (c.opacity != null) + co.a *= c.opacity; + c = co.toString(); + } + gradient.addColorStop(i / (l - 1), c); + } + + return gradient; + } + } + } + + $.plot = function(placeholder, data, options) { + //var t0 = new Date(); + var plot = new Plot($(placeholder), data, options, $.plot.plugins); + //(window.console ? console.log : alert)("time used (msecs): " + ((new Date()).getTime() - t0.getTime())); + return plot; + }; + + $.plot.version = "0.7"; + + $.plot.plugins = []; + + // returns a string with the date d formatted according to fmt + $.plot.formatDate = function(d, fmt, monthNames) { + var leftPad = function(n) { + n = "" + n; + return n.length == 1 ? "0" + n : n; + }; + + var r = []; + var escape = false, padNext = false; + var hours = d.getUTCHours(); + var isAM = hours < 12; + if (monthNames == null) + monthNames = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]; + + if (fmt.search(/%p|%P/) != -1) { + if (hours > 12) { + hours = hours - 12; + } else if (hours == 0) { + hours = 12; + } + } + for (var i = 0; i < fmt.length; ++i) { + var c = fmt.charAt(i); + + if (escape) { + switch (c) { + case 'h': c = "" + hours; break; + case 'H': c = leftPad(hours); break; + case 'M': c = leftPad(d.getUTCMinutes()); break; + case 'S': c = leftPad(d.getUTCSeconds()); break; + case 'd': c = "" + d.getUTCDate(); break; + case 'm': c = "" + (d.getUTCMonth() + 1); break; + case 'y': c = "" + d.getUTCFullYear(); break; + case 'b': c = "" + monthNames[d.getUTCMonth()]; break; + case 'p': c = (isAM) ? ("" + "am") : ("" + "pm"); break; + case 'P': c = (isAM) ? ("" + "AM") : ("" + "PM"); break; + case '0': c = ""; padNext = true; break; + } + if (c && padNext) { + c = leftPad(c); + padNext = false; + } + r.push(c); + if (!padNext) + escape = false; + } + else { + if (c == "%") + escape = true; + else + r.push(c); + } + } + return r.join(""); + }; + + // round to nearby lower multiple of base + function floorInBase(n, base) { + return base * Math.floor(n / base); + } + +})(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.pie.js b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.pie.js new file mode 100644 index 0000000..d7b603d --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.pie.js @@ -0,0 +1,750 @@ +/* +Flot plugin for rendering pie charts. The plugin assumes the data is +coming is as a single data value for each series, and each of those +values is a positive value or zero (negative numbers don't make +any sense and will cause strange effects). The data values do +NOT need to be passed in as percentage values because it +internally calculates the total and percentages. + +* Created by Brian Medendorp, June 2009 +* Updated November 2009 with contributions from: btburnett3, Anthony Aragues and Xavi Ivars + +* Changes: + 2009-10-22: lineJoin set to round + 2009-10-23: IE full circle fix, donut + 2009-11-11: Added basic hover from btburnett3 - does not work in IE, and center is off in Chrome and Opera + 2009-11-17: Added IE hover capability submitted by Anthony Aragues + 2009-11-18: Added bug fix submitted by Xavi Ivars (issues with arrays when other JS libraries are included as well) + + +Available options are: +series: { + pie: { + show: true/false + radius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto' + innerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect + startAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result + tilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show) + offset: { + top: integer value to move the pie up or down + left: integer value to move the pie left or right, or 'auto' + }, + stroke: { + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF') + width: integer pixel width of the stroke + }, + label: { + show: true/false, or 'auto' + formatter: a user-defined function that modifies the text/style of the label text + radius: 0-1 for percentage of fullsize, or a specified pixel length + background: { + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000') + opacity: 0-1 + }, + threshold: 0-1 for the percentage value at which to hide labels (if they're too small) + }, + combine: { + threshold: 0-1 for the percentage value at which to combine slices (if they're too small) + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined + label: any text value of what the combined slice should be labeled + } + highlight: { + opacity: 0-1 + } + } +} + +More detail and specific examples can be found in the included HTML file. + +*/ + +(function ($) +{ + function init(plot) // this is the "body" of the plugin + { + var canvas = null; + var target = null; + var maxRadius = null; + var centerLeft = null; + var centerTop = null; + var total = 0; + var redraw = true; + var redrawAttempts = 10; + var shrink = 0.95; + var legendWidth = 0; + var processed = false; + var raw = false; + + // interactive variables + var highlights = []; + + // add hook to determine if pie plugin in enabled, and then perform necessary operations + plot.hooks.processOptions.push(checkPieEnabled); + plot.hooks.bindEvents.push(bindEvents); + + // check to see if the pie plugin is enabled + function checkPieEnabled(plot, options) + { + if (options.series.pie.show) + { + //disable grid + options.grid.show = false; + + // set labels.show + if (options.series.pie.label.show=='auto') + if (options.legend.show) + options.series.pie.label.show = false; + else + options.series.pie.label.show = true; + + // set radius + if (options.series.pie.radius=='auto') + if (options.series.pie.label.show) + options.series.pie.radius = 3/4; + else + options.series.pie.radius = 1; + + // ensure sane tilt + if (options.series.pie.tilt>1) + options.series.pie.tilt=1; + if (options.series.pie.tilt<0) + options.series.pie.tilt=0; + + // add processData hook to do transformations on the data + plot.hooks.processDatapoints.push(processDatapoints); + plot.hooks.drawOverlay.push(drawOverlay); + + // add draw hook + plot.hooks.draw.push(draw); + } + } + + // bind hoverable events + function bindEvents(plot, eventHolder) + { + var options = plot.getOptions(); + + if (options.series.pie.show && options.grid.hoverable) + eventHolder.unbind('mousemove').mousemove(onMouseMove); + + if (options.series.pie.show && options.grid.clickable) + eventHolder.unbind('click').click(onClick); + } + + + // debugging function that prints out an object + function alertObject(obj) + { + var msg = ''; + function traverse(obj, depth) + { + if (!depth) + depth = 0; + for (var i = 0; i < obj.length; ++i) + { + for (var j=0; jcanvas.width-maxRadius) + centerLeft = canvas.width-maxRadius; + } + + function fixData(data) + { + for (var i = 0; i < data.length; ++i) + { + if (typeof(data[i].data)=='number') + data[i].data = [[1,data[i].data]]; + else if (typeof(data[i].data)=='undefined' || typeof(data[i].data[0])=='undefined') + { + if (typeof(data[i].data)!='undefined' && typeof(data[i].data.label)!='undefined') + data[i].label = data[i].data.label; // fix weirdness coming from flot + data[i].data = [[1,0]]; + + } + } + return data; + } + + function combine(data) + { + data = fixData(data); + calcTotal(data); + var combined = 0; + var numCombined = 0; + var color = options.series.pie.combine.color; + + var newdata = []; + for (var i = 0; i < data.length; ++i) + { + // make sure its a number + data[i].data[0][1] = parseFloat(data[i].data[0][1]); + if (!data[i].data[0][1]) + data[i].data[0][1] = 0; + + if (data[i].data[0][1]/total<=options.series.pie.combine.threshold) + { + combined += data[i].data[0][1]; + numCombined++; + if (!color) + color = data[i].color; + } + else + { + newdata.push({ + data: [[1,data[i].data[0][1]]], + color: data[i].color, + label: data[i].label, + angle: (data[i].data[0][1]*(Math.PI*2))/total, + percent: (data[i].data[0][1]/total*100) + }); + } + } + if (numCombined>0) + newdata.push({ + data: [[1,combined]], + color: color, + label: options.series.pie.combine.label, + angle: (combined*(Math.PI*2))/total, + percent: (combined/total*100) + }); + return newdata; + } + + function draw(plot, newCtx) + { + if (!target) return; // if no series were passed + ctx = newCtx; + + setupPie(); + var slices = plot.getData(); + + var attempts = 0; + while (redraw && attempts0) + maxRadius *= shrink; + attempts += 1; + clear(); + if (options.series.pie.tilt<=0.8) + drawShadow(); + drawPie(); + } + if (attempts >= redrawAttempts) { + clear(); + target.prepend('
                              Could not draw pie with labels contained inside canvas
                              '); + } + + if ( plot.setSeries && plot.insertLegend ) + { + plot.setSeries(slices); + plot.insertLegend(); + } + + // we're actually done at this point, just defining internal functions at this point + + function clear() + { + ctx.clearRect(0,0,canvas.width,canvas.height); + target.children().filter('.pieLabel, .pieLabelBackground').remove(); + } + + function drawShadow() + { + var shadowLeft = 5; + var shadowTop = 15; + var edge = 10; + var alpha = 0.02; + + // set radius + if (options.series.pie.radius>1) + var radius = options.series.pie.radius; + else + var radius = maxRadius * options.series.pie.radius; + + if (radius>=(canvas.width/2)-shadowLeft || radius*options.series.pie.tilt>=(canvas.height/2)-shadowTop || radius<=edge) + return; // shadow would be outside canvas, so don't draw it + + ctx.save(); + ctx.translate(shadowLeft,shadowTop); + ctx.globalAlpha = alpha; + ctx.fillStyle = '#000'; + + // center and rotate to starting position + ctx.translate(centerLeft,centerTop); + ctx.scale(1, options.series.pie.tilt); + + //radius -= edge; + for (var i=1; i<=edge; i++) + { + ctx.beginPath(); + ctx.arc(0,0,radius,0,Math.PI*2,false); + ctx.fill(); + radius -= i; + } + + ctx.restore(); + } + + function drawPie() + { + startAngle = Math.PI*options.series.pie.startAngle; + + // set radius + if (options.series.pie.radius>1) + var radius = options.series.pie.radius; + else + var radius = maxRadius * options.series.pie.radius; + + // center and rotate to starting position + ctx.save(); + ctx.translate(centerLeft,centerTop); + ctx.scale(1, options.series.pie.tilt); + //ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera + + // draw slices + ctx.save(); + var currentAngle = startAngle; + for (var i = 0; i < slices.length; ++i) + { + slices[i].startAngle = currentAngle; + drawSlice(slices[i].angle, slices[i].color, true); + } + ctx.restore(); + + // draw slice outlines + ctx.save(); + ctx.lineWidth = options.series.pie.stroke.width; + currentAngle = startAngle; + for (var i = 0; i < slices.length; ++i) + drawSlice(slices[i].angle, options.series.pie.stroke.color, false); + ctx.restore(); + + // draw donut hole + drawDonutHole(ctx); + + // draw labels + if (options.series.pie.label.show) + drawLabels(); + + // restore to original state + ctx.restore(); + + function drawSlice(angle, color, fill) + { + if (angle<=0) + return; + + if (fill) + ctx.fillStyle = color; + else + { + ctx.strokeStyle = color; + ctx.lineJoin = 'round'; + } + + ctx.beginPath(); + if (Math.abs(angle - Math.PI*2) > 0.000000001) + ctx.moveTo(0,0); // Center of the pie + else if ($.browser.msie) + angle -= 0.0001; + //ctx.arc(0,0,radius,0,angle,false); // This doesn't work properly in Opera + ctx.arc(0,0,radius,currentAngle,currentAngle+angle,false); + ctx.closePath(); + //ctx.rotate(angle); // This doesn't work properly in Opera + currentAngle += angle; + + if (fill) + ctx.fill(); + else + ctx.stroke(); + } + + function drawLabels() + { + var currentAngle = startAngle; + + // set radius + if (options.series.pie.label.radius>1) + var radius = options.series.pie.label.radius; + else + var radius = maxRadius * options.series.pie.label.radius; + + for (var i = 0; i < slices.length; ++i) + { + if (slices[i].percent >= options.series.pie.label.threshold*100) + drawLabel(slices[i], currentAngle, i); + currentAngle += slices[i].angle; + } + + function drawLabel(slice, startAngle, index) + { + if (slice.data[0][1]==0) + return; + + // format label text + var lf = options.legend.labelFormatter, text, plf = options.series.pie.label.formatter; + if (lf) + text = lf(slice.label, slice); + else + text = slice.label; + if (plf) + text = plf(text, slice); + + var halfAngle = ((startAngle+slice.angle) + startAngle)/2; + var x = centerLeft + Math.round(Math.cos(halfAngle) * radius); + var y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt; + + var html = '' + text + ""; + target.append(html); + var label = target.children('#pieLabel'+index); + var labelTop = (y - label.height()/2); + var labelLeft = (x - label.width()/2); + label.css('top', labelTop); + label.css('left', labelLeft); + + // check to make sure that the label is not outside the canvas + if (0-labelTop>0 || 0-labelLeft>0 || canvas.height-(labelTop+label.height())<0 || canvas.width-(labelLeft+label.width())<0) + redraw = true; + + if (options.series.pie.label.background.opacity != 0) { + // put in the transparent background separately to avoid blended labels and label boxes + var c = options.series.pie.label.background.color; + if (c == null) { + c = slice.color; + } + var pos = 'top:'+labelTop+'px;left:'+labelLeft+'px;'; + $('
                              ').insertBefore(label).css('opacity', options.series.pie.label.background.opacity); + } + } // end individual label function + } // end drawLabels function + } // end drawPie function + } // end draw function + + // Placed here because it needs to be accessed from multiple locations + function drawDonutHole(layer) + { + // draw donut hole + if(options.series.pie.innerRadius > 0) + { + // subtract the center + layer.save(); + innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius; + layer.globalCompositeOperation = 'destination-out'; // this does not work with excanvas, but it will fall back to using the stroke color + layer.beginPath(); + layer.fillStyle = options.series.pie.stroke.color; + layer.arc(0,0,innerRadius,0,Math.PI*2,false); + layer.fill(); + layer.closePath(); + layer.restore(); + + // add inner stroke + layer.save(); + layer.beginPath(); + layer.strokeStyle = options.series.pie.stroke.color; + layer.arc(0,0,innerRadius,0,Math.PI*2,false); + layer.stroke(); + layer.closePath(); + layer.restore(); + // TODO: add extra shadow inside hole (with a mask) if the pie is tilted. + } + } + + //-- Additional Interactive related functions -- + + function isPointInPoly(poly, pt) + { + for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) + ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1]< poly[i][1])) + && (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) + && (c = !c); + return c; + } + + function findNearbySlice(mouseX, mouseY) + { + var slices = plot.getData(), + options = plot.getOptions(), + radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + for (var i = 0; i < slices.length; ++i) + { + var s = slices[i]; + + if(s.pie.show) + { + ctx.save(); + ctx.beginPath(); + ctx.moveTo(0,0); // Center of the pie + //ctx.scale(1, options.series.pie.tilt); // this actually seems to break everything when here. + ctx.arc(0,0,radius,s.startAngle,s.startAngle+s.angle,false); + ctx.closePath(); + x = mouseX-centerLeft; + y = mouseY-centerTop; + if(ctx.isPointInPath) + { + if (ctx.isPointInPath(mouseX-centerLeft, mouseY-centerTop)) + { + //alert('found slice!'); + ctx.restore(); + return {datapoint: [s.percent, s.data], dataIndex: 0, series: s, seriesIndex: i}; + } + } + else + { + // excanvas for IE doesn;t support isPointInPath, this is a workaround. + p1X = (radius * Math.cos(s.startAngle)); + p1Y = (radius * Math.sin(s.startAngle)); + p2X = (radius * Math.cos(s.startAngle+(s.angle/4))); + p2Y = (radius * Math.sin(s.startAngle+(s.angle/4))); + p3X = (radius * Math.cos(s.startAngle+(s.angle/2))); + p3Y = (radius * Math.sin(s.startAngle+(s.angle/2))); + p4X = (radius * Math.cos(s.startAngle+(s.angle/1.5))); + p4Y = (radius * Math.sin(s.startAngle+(s.angle/1.5))); + p5X = (radius * Math.cos(s.startAngle+s.angle)); + p5Y = (radius * Math.sin(s.startAngle+s.angle)); + arrPoly = [[0,0],[p1X,p1Y],[p2X,p2Y],[p3X,p3Y],[p4X,p4Y],[p5X,p5Y]]; + arrPoint = [x,y]; + // TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt? + if(isPointInPoly(arrPoly, arrPoint)) + { + ctx.restore(); + return {datapoint: [s.percent, s.data], dataIndex: 0, series: s, seriesIndex: i}; + } + } + ctx.restore(); + } + } + + return null; + } + + function onMouseMove(e) + { + triggerClickHoverEvent('plothover', e); + } + + function onClick(e) + { + triggerClickHoverEvent('plotclick', e); + } + + // trigger click or hover event (they send the same parameters so we share their code) + function triggerClickHoverEvent(eventname, e) + { + var offset = plot.offset(), + canvasX = parseInt(e.pageX - offset.left), + canvasY = parseInt(e.pageY - offset.top), + item = findNearbySlice(canvasX, canvasY); + + if (options.grid.autoHighlight) + { + // clear auto-highlights + for (var i = 0; i < highlights.length; ++i) + { + var h = highlights[i]; + if (h.auto == eventname && !(item && h.series == item.series)) + unhighlight(h.series); + } + } + + // highlight the slice + if (item) + highlight(item.series, eventname); + + // trigger any hover bind events + var pos = { pageX: e.pageX, pageY: e.pageY }; + target.trigger(eventname, [ pos, item ]); + } + + function highlight(s, auto) + { + if (typeof s == "number") + s = series[s]; + + var i = indexOfHighlight(s); + if (i == -1) + { + highlights.push({ series: s, auto: auto }); + plot.triggerRedrawOverlay(); + } + else if (!auto) + highlights[i].auto = false; + } + + function unhighlight(s) + { + if (s == null) + { + highlights = []; + plot.triggerRedrawOverlay(); + } + + if (typeof s == "number") + s = series[s]; + + var i = indexOfHighlight(s); + if (i != -1) + { + highlights.splice(i, 1); + plot.triggerRedrawOverlay(); + } + } + + function indexOfHighlight(s) + { + for (var i = 0; i < highlights.length; ++i) + { + var h = highlights[i]; + if (h.series == s) + return i; + } + return -1; + } + + function drawOverlay(plot, octx) + { + //alert(options.series.pie.radius); + var options = plot.getOptions(); + //alert(options.series.pie.radius); + + var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + octx.save(); + octx.translate(centerLeft, centerTop); + octx.scale(1, options.series.pie.tilt); + + for (i = 0; i < highlights.length; ++i) + drawHighlight(highlights[i].series); + + drawDonutHole(octx); + + octx.restore(); + + function drawHighlight(series) + { + if (series.angle < 0) return; + + //octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString(); + octx.fillStyle = "rgba(255, 255, 255, "+options.series.pie.highlight.opacity+")"; // this is temporary until we have access to parseColor + + octx.beginPath(); + if (Math.abs(series.angle - Math.PI*2) > 0.000000001) + octx.moveTo(0,0); // Center of the pie + octx.arc(0,0,radius,series.startAngle,series.startAngle+series.angle,false); + octx.closePath(); + octx.fill(); + } + + } + + } // end init (plugin body) + + // define pie specific options and their default values + var options = { + series: { + pie: { + show: false, + radius: 'auto', // actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value) + innerRadius:0, /* for donut */ + startAngle: 3/2, + tilt: 1, + offset: { + top: 0, + left: 'auto' + }, + stroke: { + color: '#FFF', + width: 1 + }, + label: { + show: 'auto', + formatter: function(label, slice){ + return '
                              '+label+'
                              '+Math.round(slice.percent)+'%
                              '; + }, // formatter function + radius: 1, // radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value) + background: { + color: null, + opacity: 0 + }, + threshold: 0 // percentage at which to hide the label (i.e. the slice is too narrow) + }, + combine: { + threshold: -1, // percentage at which to combine little slices into one larger slice + color: null, // color to give the new slice (auto-generated if null) + label: 'Other' // label to give the new slice + }, + highlight: { + //color: '#FFF', // will add this functionality once parseColor is available + opacity: 0.5 + } + } + } + }; + + $.plot.plugins.push({ + init: init, + options: options, + name: "pie", + version: "1.0" + }); +})(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.resize.js b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.resize.js new file mode 100644 index 0000000..3276243 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.resize.js @@ -0,0 +1,60 @@ +/* Flot plugin for automatically redrawing plots as the placeholder resizes. + +Copyright (c) 2007-2013 IOLA and Ole Laursen. +Licensed under the MIT license. + +It works by listening for changes on the placeholder div (through the jQuery +resize event plugin) - if the size changes, it will redraw the plot. + +There are no options. If you need to disable the plugin for some plots, you +can just fix the size of their placeholders. + +*/ + +/* Inline dependency: + * jQuery resize event - v1.1 - 3/14/2010 + * http://benalman.com/projects/jquery-resize-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ + +(function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this); + +(function ($) { + var options = { }; // no options + + function init(plot) { + function onResize() { + var placeholder = plot.getPlaceholder(); + + // somebody might have hidden us and we can't plot + // when we don't have the dimensions + if (placeholder.width() == 0 || placeholder.height() == 0) + return; + + plot.resize(); + plot.setupGrid(); + plot.draw(); + } + + function bindEvents(plot, eventHolder) { + plot.getPlaceholder().resize(onResize); + } + + function shutdown(plot, eventHolder) { + plot.getPlaceholder().unbind("resize", onResize); + } + + plot.hooks.bindEvents.push(bindEvents); + plot.hooks.shutdown.push(shutdown); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'resize', + version: '1.0' + }); +})(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.spline.js b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.spline.js new file mode 100644 index 0000000..bc16f48 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.spline.js @@ -0,0 +1,212 @@ +/** + * Flot plugin that provides spline interpolation for line graphs + * author: Alex Bardas < alex.bardas@gmail.com > + * modified by: Avi Kohn https://github.com/AMKohn + * based on the spline interpolation described at: + * http://scaledinnovation.com/analytics/splines/aboutSplines.html + * + * Example usage: (add in plot options series object) + * for linespline: + * series: { + * ... + * lines: { + * show: false + * }, + * splines: { + * show: true, + * tension: x, (float between 0 and 1, defaults to 0.5), + * lineWidth: y (number, defaults to 2), + * fill: z (float between 0 .. 1 or false, as in flot documentation) + * }, + * ... + * } + * areaspline: + * series: { + * ... + * lines: { + * show: true, + * lineWidth: 0, (line drawing will not execute) + * fill: x, (float between 0 .. 1, as in flot documentation) + * ... + * }, + * splines: { + * show: true, + * tension: 0.5 (float between 0 and 1) + * }, + * ... + * } + * + */ + +(function($) { + 'use strict' + + /** + * @param {Number} x0, y0, x1, y1: coordinates of the end (knot) points of the segment + * @param {Number} x2, y2: the next knot (not connected, but needed to calculate p2) + * @param {Number} tension: control how far the control points spread + * @return {Array}: p1 -> control point, from x1 back toward x0 + * p2 -> the next control point, returned to become the next segment's p1 + * + * @api private + */ + function getControlPoints(x0, y0, x1, y1, x2, y2, tension) { + + var pow = Math.pow, + sqrt = Math.sqrt, + d01, d12, fa, fb, p1x, p1y, p2x, p2y; + + // Scaling factors: distances from this knot to the previous and following knots. + d01 = sqrt(pow(x1 - x0, 2) + pow(y1 - y0, 2)); + d12 = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2)); + + fa = tension * d01 / (d01 + d12); + fb = tension - fa; + + p1x = x1 + fa * (x0 - x2); + p1y = y1 + fa * (y0 - y2); + + p2x = x1 - fb * (x0 - x2); + p2y = y1 - fb * (y0 - y2); + + return [p1x, p1y, p2x, p2y]; + } + + var line = []; + + function drawLine(points, ctx, height, fill, seriesColor) { + var c = $.color.parse(seriesColor); + + c.a = typeof fill == "number" ? fill : .3; + c.normalize(); + c = c.toString(); + + ctx.beginPath(); + ctx.moveTo(points[0][0], points[0][1]); + + var plength = points.length; + + for (var i = 0; i < plength; i++) { + ctx[points[i][3]].apply(ctx, points[i][2]); + } + + ctx.stroke(); + + ctx.lineWidth = 0; + ctx.lineTo(points[plength - 1][0], height); + ctx.lineTo(points[0][0], height); + + ctx.closePath(); + + if (fill !== false) { + ctx.fillStyle = c; + ctx.fill(); + } + } + + /** + * @param {Object} ctx: canvas context + * @param {String} type: accepted strings: 'bezier' or 'quadratic' (defaults to quadratic) + * @param {Array} points: 2 points for which to draw the interpolation + * @param {Array} cpoints: control points for those segment points + * + * @api private + */ + function queue(ctx, type, points, cpoints) { + if (type === void 0 || (type !== 'bezier' && type !== 'quadratic')) { + type = 'quadratic'; + } + type = type + 'CurveTo'; + + if (line.length == 0) line.push([points[0], points[1], cpoints.concat(points.slice(2)), type]); + else if (type == "quadraticCurveTo" && points.length == 2) { + cpoints = cpoints.slice(0, 2).concat(points); + + line.push([points[0], points[1], cpoints, type]); + } + else line.push([points[2], points[3], cpoints.concat(points.slice(2)), type]); + } + + /** + * @param {Object} plot + * @param {Object} ctx: canvas context + * @param {Object} series + * + * @api private + */ + + function drawSpline(plot, ctx, series) { + // Not interested if spline is not requested + if (series.splines.show !== true) { + return; + } + + var cp = [], + // array of control points + tension = series.splines.tension || 0.5, + idx, x, y, points = series.datapoints.points, + ps = series.datapoints.pointsize, + plotOffset = plot.getPlotOffset(), + len = points.length, + pts = []; + + line = []; + + // Cannot display a linespline/areaspline if there are less than 3 points + if (len / ps < 4) { + $.extend(series.lines, series.splines); + return; + } + + for (idx = 0; idx < len; idx += ps) { + x = points[idx]; + y = points[idx + 1]; + if (x == null || x < series.xaxis.min || x > series.xaxis.max || y < series.yaxis.min || y > series.yaxis.max) { + continue; + } + + pts.push(series.xaxis.p2c(x) + plotOffset.left, series.yaxis.p2c(y) + plotOffset.top); + } + + len = pts.length; + + // Draw an open curve, not connected at the ends + for (idx = 0; idx < len - 2; idx += 2) { + cp = cp.concat(getControlPoints.apply(this, pts.slice(idx, idx + 6).concat([tension]))); + } + + ctx.save(); + ctx.strokeStyle = series.color; + ctx.lineWidth = series.splines.lineWidth; + + queue(ctx, 'quadratic', pts.slice(0, 4), cp.slice(0, 2)); + + for (idx = 2; idx < len - 3; idx += 2) { + queue(ctx, 'bezier', pts.slice(idx, idx + 4), cp.slice(2 * idx - 2, 2 * idx + 2)); + } + + queue(ctx, 'quadratic', pts.slice(len - 2, len), [cp[2 * len - 10], cp[2 * len - 9], pts[len - 4], pts[len - 3]]); + + drawLine(line, ctx, plot.height() + 10, series.splines.fill, series.color); + + ctx.restore(); + } + + $.plot.plugins.push({ + init: function(plot) { + plot.hooks.drawSeries.push(drawSpline); + }, + options: { + series: { + splines: { + show: false, + lineWidth: 2, + tension: 0.5, + fill: false + } + } + }, + name: 'spline', + version: '0.8.2' + }); +})(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.symbol.js b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.symbol.js new file mode 100644 index 0000000..f2464ec --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.symbol.js @@ -0,0 +1,71 @@ +/* Flot plugin that adds some extra symbols for plotting points. + + Copyright (c) 2007-2014 IOLA and Ole Laursen. + Licensed under the MIT license. + + The symbols are accessed as strings through the standard symbol options: + + series: { + points: { + symbol: "square" // or "diamond", "triangle", "cross" + } + } + + */ + +(function ($) { + function processRawData(plot, series, datapoints) { + // we normalize the area of each symbol so it is approximately the + // same as a circle of the given radius + + var handlers = { + square: function (ctx, x, y, radius, shadow) { + // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 + var size = radius * Math.sqrt(Math.PI) / 2; + ctx.rect(x - size, y - size, size + size, size + size); + }, + diamond: function (ctx, x, y, radius, shadow) { + // pi * r^2 = 2s^2 => s = r * sqrt(pi/2) + var size = radius * Math.sqrt(Math.PI / 2); + ctx.moveTo(x - size, y); + ctx.lineTo(x, y - size); + ctx.lineTo(x + size, y); + ctx.lineTo(x, y + size); + ctx.lineTo(x - size, y); + }, + triangle: function (ctx, x, y, radius, shadow) { + // pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3)) + var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3)); + var height = size * Math.sin(Math.PI / 3); + ctx.moveTo(x - size/2, y + height/2); + ctx.lineTo(x + size/2, y + height/2); + if (!shadow) { + ctx.lineTo(x, y - height/2); + ctx.lineTo(x - size/2, y + height/2); + } + }, + cross: function (ctx, x, y, radius, shadow) { + // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 + var size = radius * Math.sqrt(Math.PI) / 2; + ctx.moveTo(x - size, y - size); + ctx.lineTo(x + size, y + size); + ctx.moveTo(x - size, y + size); + ctx.lineTo(x + size, y - size); + } + }; + + var s = series.points.symbol; + if (handlers[s]) + series.points.symbol = handlers[s]; + } + + function init(plot) { + plot.hooks.processDatapoints.push(processRawData); + } + + $.plot.plugins.push({ + init: init, + name: 'symbols', + version: '1.0' + }); +})(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.tooltip.min.js b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.tooltip.min.js new file mode 100644 index 0000000..57d9667 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/flot/jquery.flot.tooltip.min.js @@ -0,0 +1,12 @@ +/* + * jquery.flot.tooltip + * + * description: easy-to-use tooltips for Flot charts + * version: 0.6.2 + * author: Krzysztof Urbas @krzysu [myviews.pl] + * website: https://github.com/krzysu/flot.tooltip + * + * build on 2013-09-30 + * released under MIT License, 2012 +*/ +(function(t){var o={tooltip:!1,tooltipOpts:{content:"%s | X: %x | Y: %y",xDateFormat:null,yDateFormat:null,shifts:{x:10,y:20},defaultTheme:!0,onHover:function(){}}},i=function(t){this.tipPosition={x:0,y:0},this.init(t)};i.prototype.init=function(o){function i(t){var o={};o.x=t.pageX,o.y=t.pageY,s.updateTooltipPosition(o)}function e(t,o,i){var e=s.getDomElement();if(i){var n;n=s.stringFormat(s.tooltipOptions.content,i),e.html(n),s.updateTooltipPosition({x:o.pageX,y:o.pageY}),e.css({left:s.tipPosition.x+s.tooltipOptions.shifts.x,top:s.tipPosition.y+s.tooltipOptions.shifts.y}).show(),"function"==typeof s.tooltipOptions.onHover&&s.tooltipOptions.onHover(i,e)}else e.hide().html("")}var s=this;o.hooks.bindEvents.push(function(o,n){s.plotOptions=o.getOptions(),s.plotOptions.tooltip!==!1&&void 0!==s.plotOptions.tooltip&&(s.tooltipOptions=s.plotOptions.tooltipOpts,s.getDomElement(),t(o.getPlaceholder()).bind("plothover",e),t(n).bind("mousemove",i))}),o.hooks.shutdown.push(function(o,s){t(o.getPlaceholder()).unbind("plothover",e),t(s).unbind("mousemove",i)})},i.prototype.getDomElement=function(){var o;return t("#flotTip").length>0?o=t("#flotTip"):(o=t("
                              ").attr("id","flotTip"),o.appendTo("body").hide().css({position:"absolute"}),this.tooltipOptions.defaultTheme&&o.css({background:"#fff","z-index":"100",padding:"0.4em 0.6em","border-radius":"0.5em","font-size":"0.8em",border:"1px solid #111",display:"none","white-space":"nowrap"})),o},i.prototype.updateTooltipPosition=function(o){var i=t("#flotTip").outerWidth()+this.tooltipOptions.shifts.x,e=t("#flotTip").outerHeight()+this.tooltipOptions.shifts.y;o.x-t(window).scrollLeft()>t(window).innerWidth()-i&&(o.x-=i),o.y-t(window).scrollTop()>t(window).innerHeight()-e&&(o.y-=e),this.tipPosition.x=o.x,this.tipPosition.y=o.y},i.prototype.stringFormat=function(t,o){var i=/%p\.{0,1}(\d{0,})/,e=/%s/,s=/%x\.{0,1}(?:\d{0,})/,n=/%y\.{0,1}(?:\d{0,})/;return"function"==typeof t&&(t=t(o.series.label,o.series.data[o.dataIndex][0],o.series.data[o.dataIndex][1],o)),o.series.percent!==void 0&&(t=this.adjustValPrecision(i,t,o.series.percent)),o.series.label!==void 0&&(t=t.replace(e,o.series.label)),this.isTimeMode("xaxis",o)&&this.isXDateFormat(o)&&(t=t.replace(s,this.timestampToDate(o.series.data[o.dataIndex][0],this.tooltipOptions.xDateFormat))),this.isTimeMode("yaxis",o)&&this.isYDateFormat(o)&&(t=t.replace(n,this.timestampToDate(o.series.data[o.dataIndex][1],this.tooltipOptions.yDateFormat))),"number"==typeof o.series.data[o.dataIndex][0]&&(t=this.adjustValPrecision(s,t,o.series.data[o.dataIndex][0])),"number"==typeof o.series.data[o.dataIndex][1]&&(t=this.adjustValPrecision(n,t,o.series.data[o.dataIndex][1])),o.series.xaxis.tickFormatter!==void 0&&(t=t.replace(s,o.series.xaxis.tickFormatter(o.series.data[o.dataIndex][0],o.series.xaxis))),o.series.yaxis.tickFormatter!==void 0&&(t=t.replace(n,o.series.yaxis.tickFormatter(o.series.data[o.dataIndex][1],o.series.yaxis))),t},i.prototype.isTimeMode=function(t,o){return o.series[t].options.mode!==void 0&&"time"===o.series[t].options.mode},i.prototype.isXDateFormat=function(){return this.tooltipOptions.xDateFormat!==void 0&&null!==this.tooltipOptions.xDateFormat},i.prototype.isYDateFormat=function(){return this.tooltipOptions.yDateFormat!==void 0&&null!==this.tooltipOptions.yDateFormat},i.prototype.timestampToDate=function(o,i){var e=new Date(o);return t.plot.formatDate(e,i)},i.prototype.adjustValPrecision=function(t,o,i){var e,s=o.match(t);return null!==s&&""!==RegExp.$1&&(e=RegExp.$1,i=i.toFixed(e),o=o.replace(t,i)),o};var e=function(t){new i(t)};t.plot.plugins.push({init:e,options:o,name:"tooltip",version:"0.6.1"})})(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/footable/footable.all.min.js b/novel-admin/src/main/resources/static/js/plugins/footable/footable.all.min.js new file mode 100644 index 0000000..06cc7f4 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/footable/footable.all.min.js @@ -0,0 +1,14 @@ +/*! + * FooTable - Awesome Responsive Tables + * Version : 2.0.3 + * http://fooplugins.com/plugins/footable-jquery/ + * + * Requires jQuery - http://jquery.com/ + * + * Copyright 2014 Steven Usher & Brad Vincent + * Released under the MIT license + * You are free to use FooTable in commercial projects as long as this copyright header is left intact. + * + * Date: 11 Nov 2014 + */ +(function(e,t){function a(){var e=this;e.id=null,e.busy=!1,e.start=function(t,a){e.busy||(e.stop(),e.id=setTimeout(function(){t(),e.id=null,e.busy=!1},a),e.busy=!0)},e.stop=function(){null!==e.id&&(clearTimeout(e.id),e.id=null,e.busy=!1)}}function i(i,o,n){var r=this;r.id=n,r.table=i,r.options=o,r.breakpoints=[],r.breakpointNames="",r.columns={},r.plugins=t.footable.plugins.load(r);var l=r.options,d=l.classes,s=l.events,u=l.triggers,f=0;return r.timers={resize:new a,register:function(e){return r.timers[e]=new a,r.timers[e]}},r.init=function(){var a=e(t),i=e(r.table);if(t.footable.plugins.init(r),i.hasClass(d.loaded))return r.raise(s.alreadyInitialized),undefined;r.raise(s.initializing),i.addClass(d.loading),i.find(l.columnDataSelector).each(function(){var e=r.getColumnData(this);r.columns[e.index]=e});for(var o in l.breakpoints)r.breakpoints.push({name:o,width:l.breakpoints[o]}),r.breakpointNames+=o+" ";r.breakpoints.sort(function(e,t){return e.width-t.width}),i.unbind(u.initialize).bind(u.initialize,function(){i.removeData("footable_info"),i.data("breakpoint",""),i.trigger(u.resize),i.removeClass(d.loading),i.addClass(d.loaded).addClass(d.main),r.raise(s.initialized)}).unbind(u.redraw).bind(u.redraw,function(){r.redraw()}).unbind(u.resize).bind(u.resize,function(){r.resize()}).unbind(u.expandFirstRow).bind(u.expandFirstRow,function(){i.find(l.toggleSelector).first().not("."+d.detailShow).trigger(u.toggleRow)}).unbind(u.expandAll).bind(u.expandAll,function(){i.find(l.toggleSelector).not("."+d.detailShow).trigger(u.toggleRow)}).unbind(u.collapseAll).bind(u.collapseAll,function(){i.find("."+d.detailShow).trigger(u.toggleRow)}),i.trigger(u.initialize),a.bind("resize.footable",function(){r.timers.resize.stop(),r.timers.resize.start(function(){r.raise(u.resize)},l.delay)})},r.addRowToggle=function(){if(l.addRowToggle){var t=e(r.table),a=!1;t.find("span."+d.toggle).remove();for(var i in r.columns){var o=r.columns[i];if(o.toggle){a=!0;var n="> tbody > tr:not(."+d.detail+",."+d.disabled+") > td:nth-child("+(parseInt(o.index,10)+1)+"),"+"> tbody > tr:not(."+d.detail+",."+d.disabled+") > th:nth-child("+(parseInt(o.index,10)+1)+")";return t.find(n).not("."+d.detailCell).prepend(e(l.toggleHTMLElement).addClass(d.toggle)),undefined}}a||t.find("> tbody > tr:not(."+d.detail+",."+d.disabled+") > td:first-child").add("> tbody > tr:not(."+d.detail+",."+d.disabled+") > th:first-child").not("."+d.detailCell).prepend(e(l.toggleHTMLElement).addClass(d.toggle))}},r.setColumnClasses=function(){var t=e(r.table);for(var a in r.columns){var i=r.columns[a];if(null!==i.className){var o="",n=!0;e.each(i.matches,function(e,t){n||(o+=", "),o+="> tbody > tr:not(."+d.detail+") > td:nth-child("+(parseInt(t,10)+1)+")",n=!1}),t.find(o).not("."+d.detailCell).addClass(i.className)}}},r.bindToggleSelectors=function(){var t=e(r.table);r.hasAnyBreakpointColumn()&&(t.find(l.toggleSelector).unbind(u.toggleRow).bind(u.toggleRow,function(){var t=e(this).is("tr")?e(this):e(this).parents("tr:first");r.toggleDetail(t)}),t.find(l.toggleSelector).unbind("click.footable").bind("click.footable",function(a){t.is(".breakpoint")&&e(a.target).is("td,th,."+d.toggle)&&e(this).trigger(u.toggleRow)}))},r.parse=function(e,t){var a=l.parsers[t.type]||l.parsers.alpha;return a(e)},r.getColumnData=function(t){var a=e(t),i=a.data("hide"),o=a.index();i=i||"",i=jQuery.map(i.split(","),function(e){return jQuery.trim(e)});var n={index:o,hide:{},type:a.data("type")||"alpha",name:a.data("name")||e.trim(a.text()),ignore:a.data("ignore")||!1,toggle:a.data("toggle")||!1,className:a.data("class")||null,matches:[],names:{},group:a.data("group")||null,groupName:null,isEditable:a.data("editable")};if(null!==n.group){var d=e(r.table).find('> thead > tr.footable-group-row > th[data-group="'+n.group+'"], > thead > tr.footable-group-row > td[data-group="'+n.group+'"]').first();n.groupName=r.parse(d,{type:"alpha"})}var u=parseInt(a.prev().attr("colspan")||0,10);f+=u>1?u-1:0;var p=parseInt(a.attr("colspan")||0,10),c=n.index+f;if(p>1){var b=a.data("names");b=b||"",b=b.split(",");for(var g=0;p>g;g++)n.matches.push(g+c),b.length>g&&(n.names[g+c]=b[g])}else n.matches.push(c);n.hide["default"]="all"===a.data("hide")||e.inArray("default",i)>=0;var h=!1;for(var m in l.breakpoints)n.hide[m]="all"===a.data("hide")||e.inArray(m,i)>=0,h=h||n.hide[m];n.hasBreakpoint=h;var v=r.raise(s.columnData,{column:{data:n,th:t}});return v.column.data},r.getViewportWidth=function(){return window.innerWidth||(document.body?document.body.offsetWidth:0)},r.calculateWidth=function(e,t){return jQuery.isFunction(l.calculateWidthOverride)?l.calculateWidthOverride(e,t):(t.viewportWidthl;l++)if(o=r.breakpoints[l],o&&o.width&&a.width<=o.width){n=o;break}var d=null===n?"default":n.name,f=r.hasBreakpointColumn(d),p=t.data("breakpoint");t.data("breakpoint",d).removeClass("default breakpoint").removeClass(r.breakpointNames).addClass(d+(f?" breakpoint":"")),d!==p&&(t.trigger(u.redraw),r.raise(s.breakpoint,{breakpoint:d,info:a}))}r.raise(s.resized,{old:i,info:a})}},r.redraw=function(){r.addRowToggle(),r.bindToggleSelectors(),r.setColumnClasses();var t=e(r.table),a=t.data("breakpoint"),i=r.hasBreakpointColumn(a);t.find("> tbody > tr:not(."+d.detail+")").data("detail_created",!1).end().find("> thead > tr:last-child > th").each(function(){var i=r.columns[e(this).index()],o="",n=!0;e.each(i.matches,function(e,t){n||(o+=", ");var a=t+1;o+="> tbody > tr:not(."+d.detail+") > td:nth-child("+a+")",o+=", > tfoot > tr:not(."+d.detail+") > td:nth-child("+a+")",o+=", > colgroup > col:nth-child("+a+")",n=!1}),o+=', > thead > tr[data-group-row="true"] > th[data-group="'+i.group+'"]';var l=t.find(o).add(this);if(""!==a&&(i.hide[a]===!1?l.addClass("footable-visible").show():l.removeClass("footable-visible").hide()),1===t.find("> thead > tr.footable-group-row").length){var s=t.find('> thead > tr:last-child > th[data-group="'+i.group+'"]:visible, > thead > tr:last-child > th[data-group="'+i.group+'"]:visible'),u=t.find('> thead > tr.footable-group-row > th[data-group="'+i.group+'"], > thead > tr.footable-group-row > td[data-group="'+i.group+'"]'),f=0;e.each(s,function(){f+=parseInt(e(this).attr("colspan")||1,10)}),f>0?u.attr("colspan",f).show():u.hide()}}).end().find("> tbody > tr."+d.detailShow).each(function(){r.createOrUpdateDetailRow(this)}),t.find("[data-bind-name]").each(function(){r.toggleInput(this)}),t.find("> tbody > tr."+d.detailShow+":visible").each(function(){var t=e(this).next();t.hasClass(d.detail)&&(i?t.show():t.hide())}),t.find("> thead > tr > th.footable-last-column, > tbody > tr > td.footable-last-column").removeClass("footable-last-column"),t.find("> thead > tr > th.footable-first-column, > tbody > tr > td.footable-first-column").removeClass("footable-first-column"),t.find("> thead > tr, > tbody > tr").find("> th.footable-visible:last, > td.footable-visible:last").addClass("footable-last-column").end().find("> th.footable-visible:first, > td.footable-visible:first").addClass("footable-first-column"),r.raise(s.redrawn)},r.toggleDetail=function(t){var a=t.jquery?t:e(t),i=a.next();a.hasClass(d.detailShow)?(a.removeClass(d.detailShow),i.hasClass(d.detail)&&i.hide(),r.raise(s.rowCollapsed,{row:a[0]})):(r.createOrUpdateDetailRow(a[0]),a.addClass(d.detailShow).next().show(),r.raise(s.rowExpanded,{row:a[0]}))},r.removeRow=function(t){var a=t.jquery?t:e(t);a.hasClass(d.detail)&&(a=a.prev());var i=a.next();a.data("detail_created")===!0&&i.remove(),a.remove(),r.raise(s.rowRemoved)},r.appendRow=function(t){var a=t.jquery?t:e(t);e(r.table).find("tbody").append(a),r.redraw()},r.getColumnFromTdIndex=function(t){var a=null;for(var i in r.columns)if(e.inArray(t,r.columns[i].matches)>=0){a=r.columns[i];break}return a},r.createOrUpdateDetailRow=function(t){var a,i=e(t),o=i.next(),n=[];if(i.data("detail_created")===!0)return!0;if(i.is(":hidden"))return!1;if(r.raise(s.rowDetailUpdating,{row:i,detail:o}),i.find("> td:hidden").each(function(){var t=e(this).index(),a=r.getColumnFromTdIndex(t),i=a.name;if(a.ignore===!0)return!0;t in a.names&&(i=a.names[t]);var o=e(this).attr("data-bind-name");if(null!=o&&e(this).is(":empty")){var l=e("."+d.detailInnerValue+"["+'data-bind-value="'+o+'"]');e(this).html(e(l).contents().detach())}var s;return a.isEditable!==!1&&(a.isEditable||e(this).find(":input").length>0)&&(null==o&&(o="bind-"+e.now()+"-"+t,e(this).attr("data-bind-name",o)),s=e(this).contents().detach()),s||(s=e(this).contents().clone(!0,!0)),n.push({name:i,value:r.parse(this,a),display:s,group:a.group,groupName:a.groupName,bindName:o}),!0}),0===n.length)return!1;var u=i.find("> td:visible").length,f=o.hasClass(d.detail);return f||(o=e('
                              '),i.after(o)),o.find("> td:first").attr("colspan",u),a=o.find("."+d.detailInner).empty(),l.createDetail(a,n,l.createGroupedDetail,l.detailSeparator,d),i.data("detail_created",!0),r.raise(s.rowDetailUpdated,{row:i,detail:o}),!f},r.raise=function(t,a){r.options.debug===!0&&e.isFunction(r.options.log)&&r.options.log(t,"event"),a=a||{};var i={ft:r};e.extend(!0,i,a);var o=e.Event(t,i);return o.ft||e.extend(!0,o,i),e(r.table).trigger(o),o},r.reset=function(){var t=e(r.table);t.removeData("footable_info").data("breakpoint","").removeClass(d.loading).removeClass(d.loaded),t.find(l.toggleSelector).unbind(u.toggleRow).unbind("click.footable"),t.find("> tbody > tr").removeClass(d.detailShow),t.find("> tbody > tr."+d.detail).remove(),r.raise(s.reset)},r.toggleInput=function(t){var a=e(t).attr("data-bind-name");if(null!=a){var i=e("."+d.detailInnerValue+"["+'data-bind-value="'+a+'"]');null!=i&&(e(t).is(":visible")?e(i).is(":empty")||e(t).html(e(i).contents().detach()):e(t).is(":empty")||e(i).html(e(t).contents().detach()))}},r.init(),r}t.footable={options:{delay:100,breakpoints:{phone:480,tablet:1024},parsers:{alpha:function(t){return e(t).data("value")||e.trim(e(t).text())},numeric:function(t){var a=e(t).data("value")||e(t).text().replace(/[^0-9.\-]/g,"");return a=parseFloat(a),isNaN(a)&&(a=0),a}},addRowToggle:!0,calculateWidthOverride:null,toggleSelector:" > tbody > tr:not(.footable-row-detail)",columnDataSelector:"> thead > tr:last-child > th, > thead > tr:last-child > td",detailSeparator:":",toggleHTMLElement:"",createGroupedDetail:function(e){for(var t={_none:{name:null,data:[]}},a=0;e.length>a;a++){var i=e[a].group;null!==i?(i in t||(t[i]={name:e[a].groupName||e[a].group,data:[]}),t[i].data.push(e[a])):t._none.data.push(e[a])}return t},createDetail:function(t,a,i,o,n){var r=i(a);for(var l in r)if(0!==r[l].data.length){"_none"!==l&&t.append('
                              '+r[l].name+"
                              ");for(var d=0;r[l].data.length>d;d++){var s=r[l].data[d].name?o:"";t.append(e("
                              ").addClass(n.detailInnerRow).append(e("
                              ").addClass(n.detailInnerName).append(r[l].data[d].name+s)).append(e("
                              ").addClass(n.detailInnerValue).attr("data-bind-value",r[l].data[d].bindName).append(r[l].data[d].display)))}}},classes:{main:"footable",loading:"footable-loading",loaded:"footable-loaded",toggle:"footable-toggle",disabled:"footable-disabled",detail:"footable-row-detail",detailCell:"footable-row-detail-cell",detailInner:"footable-row-detail-inner",detailInnerRow:"footable-row-detail-row",detailInnerGroup:"footable-row-detail-group",detailInnerName:"footable-row-detail-name",detailInnerValue:"footable-row-detail-value",detailShow:"footable-detail-show"},triggers:{initialize:"footable_initialize",resize:"footable_resize",redraw:"footable_redraw",toggleRow:"footable_toggle_row",expandFirstRow:"footable_expand_first_row",expandAll:"footable_expand_all",collapseAll:"footable_collapse_all"},events:{alreadyInitialized:"footable_already_initialized",initializing:"footable_initializing",initialized:"footable_initialized",resizing:"footable_resizing",resized:"footable_resized",redrawn:"footable_redrawn",breakpoint:"footable_breakpoint",columnData:"footable_column_data",rowDetailUpdating:"footable_row_detail_updating",rowDetailUpdated:"footable_row_detail_updated",rowCollapsed:"footable_row_collapsed",rowExpanded:"footable_row_expanded",rowRemoved:"footable_row_removed",reset:"footable_reset"},debug:!1,log:null},version:{major:0,minor:5,toString:function(){return t.footable.version.major+"."+t.footable.version.minor},parse:function(e){var t=/(\d+)\.?(\d+)?\.?(\d+)?/.exec(e);return{major:parseInt(t[1],10)||0,minor:parseInt(t[2],10)||0,patch:parseInt(t[3],10)||0}}},plugins:{_validate:function(a){if(!e.isFunction(a))return t.footable.options.debug===!0&&console.error('Validation failed, expected type "function", received type "{0}".',typeof a),!1;var i=new a;return"string"!=typeof i.name?(t.footable.options.debug===!0&&console.error('Validation failed, plugin does not implement a string property called "name".',i),!1):e.isFunction(i.init)?(t.footable.options.debug===!0&&console.log('Validation succeeded for plugin "'+i.name+'".',i),!0):(t.footable.options.debug===!0&&console.error('Validation failed, plugin "'+i.name+'" does not implement a function called "init".',i),!1)},registered:[],register:function(a,i){t.footable.plugins._validate(a)&&(t.footable.plugins.registered.push(a),"object"==typeof i&&e.extend(!0,t.footable.options,i))},load:function(e){var a,i,o=[];for(i=0;t.footable.plugins.registered.length>i;i++)try{a=t.footable.plugins.registered[i],o.push(new a(e))}catch(n){t.footable.options.debug===!0&&console.error(n)}return o},init:function(e){for(var a=0;e.plugins.length>a;a++)try{e.plugins[a].init(e)}catch(i){t.footable.options.debug===!0&&console.error(i)}}}};var o=0;e.fn.footable=function(a){a=a||{};var n=e.extend(!0,{},t.footable.options,a);return this.each(function(){o++;var t=new i(this,n,o);e(this).data("footable",t)})}})(jQuery,window);;(function(e,t,undefined){function a(t){var a=e(""+t.title+"");return e.isPlainObject(t.data)&&a.data(t.data),e.isPlainObject(t.style)&&a.css(t.style),t.className&&a.addClass(t.className),a}function o(t,o){var i=t.find("thead");0===i.size()&&(i=e("").appendTo(t));for(var n=e("").appendTo(i),r=0,l=o.cols.length;l>r;r++)n.append(a(o.cols[r]))}function i(t){var a=t.find("tbody");0===a.size()&&(a=e("").appendTo(t))}function n(t,a,o){if(o){t.attr("data-page-size",o["page-size"]);var i=t.find("tfoot");0===i.size()&&(i=e('').appendTo(t)),i.append("");var n=e("
                              ").appendTo(i.find("tr:last-child td"));n.addClass(o["pagination-class"])}}function r(t){for(var a=t[0],o=0,i=t.length;i>o;o++){var n=t[o];if(n.data&&(n.data.toggle===!0||"true"===n.data.toggle))return}a.data=e.extend(a.data,{toggle:!0})}function l(e,t,a){0===e.find("tr.emptyInfo").size()&&e.find("tbody").append(''+a+"")}function d(t,a,o,i){t.find("tr:not(."+o+")").each(function(){var t=e(this),o=a.data("index"),n=parseInt(t.data("index"),0),r=n+i;n>=o&&this!==a.get(0)&&t.attr("data-index",r).data("index",r)})}function s(){function t(t,a,o){var i=e("");return t.formatter?i.html(t.formatter(a,i,o)):i.html(a||""),i}var a=this;a.name="Footable Grid",a.init=function(t){var d=t.options.classes.toggle,s=t.options.classes.detail,f=t.options.grid;if(f.cols){a.footable=t;var u=e(t.table);u.data("grid",a),e.isPlainObject(f.data)&&u.data(f.data),a._items=[],r(f.cols),f.showCheckbox&&(f.multiSelect=!0,f.cols.unshift({title:f.checkboxFormatter(!0),name:"",data:{"sort-ignore":!0},formatter:f.checkboxFormatter})),f.showIndex&&f.cols.unshift({title:"#",name:"index",data:{"sort-ignore":!0},formatter:f.indexFormatter}),o(u,f),i(u),n(u,f.cols,f.pagination),u.off(".grid").on({"footable_initialized.grid":function(){f.url||f.ajax?e.ajax(f.ajax||{url:f.url}).then(function(e){a.newItem(e),t.raise(f.events.loaded)},function(){throw"load data from "+(f.url||f.ajax.url)+" fail"}):(a.newItem(f.items||[]),t.raise(f.events.loaded))},"footable_sorted.grid footable_grid_created.grid footable_grid_removed.grid":function(){f.showIndex&&a.getItem().length>0&&u.find("tbody tr:not(."+s+")").each(function(t){var a=e(this).find("td:first");a.html(f.indexFormatter(null,a,t))})},"footable_redrawn.grid footable_row_removed.grid":function(){0===a.getItem().length&&f.showEmptyInfo&&l(u,f.cols,f.emptyInfo)}}).on({"click.grid":function(a){if(e(a.target).closest("td").find(">."+d).size()>0)return!0;var o=e(a.currentTarget);return o.hasClass(s)?!0:(f.multiSelect||o.hasClass(f.activeClass)||u.find("tbody tr."+f.activeClass).removeClass(f.activeClass),o.toggleClass(f.activeClass),f.showCheckbox&&o.find("input:checkbox.check").prop("checked",function(e,t){return a.target===this?t:!t}),t.toggleDetail(o),undefined)}},"tbody tr").on("click.grid","thead input:checkbox.checkAll",function(e){var t=!!e.currentTarget.checked;t?u.find("tbody tr").addClass(f.activeClass):u.find("tbody tr").removeClass(f.activeClass),u.find("tbody input:checkbox.check").prop("checked",t)})}},a.getSelected=function(){var t=a.footable.options.grid,o=e(a.footable.table).find("tbody>tr."+t.activeClass);return o.map(function(){return e(this).data("index")})},a.getItem=function(t){return t!==undefined?e.isArray(t)?e.map(t,function(e){return a._items[e]}):a._items[t]:a._items},a._makeRow=function(o,i){var n,r=a.footable.options.grid;if(e.isFunction(r.template))n=e(r.template(e.extend({},{__index:i},o)));else{n=e("");for(var l=0,d=r.cols.length;d>l;l++){var s=r.cols[l];n.append(t(s,o[s.name]||"",i))}}return n.attr("data-index",i),n},a.newItem=function(t,o,i){var n=e(a.footable.table).find("tbody"),r=a.footable.options.classes.detail;if(n.find("tr.emptyInfo").remove(),e.isArray(t)){for(var l;l=t.pop();)a.newItem(l,o,!0);return a.footable.redraw(),a.footable.raise(a.footable.options.grid.events.created,{item:t,index:o}),undefined}if(e.isPlainObject(t)){var s,f=a._items.length;if(o===undefined||0>o||o>f)s=a._makeRow(t,f++),a._items.push(t),n.append(s);else{if(s=a._makeRow(t,o),0===o)a._items.unshift(t),n.prepend(s);else{var u=n.find("tr[data-index="+(o-1)+"]");a._items.splice(o,0,t),u.data("detail_created")===!0&&(u=u.next()),u.after(s)}d(n,s,r,1)}i||(a.footable.redraw(),a.footable.raise(a.footable.options.grid.events.created,{item:t,index:o}))}},a.setItem=function(t,o){if(e.isPlainObject(t)){var i=e(a.footable.table).find("tbody"),n=a._makeRow(t,o);e.extend(a._items[o],t);var r=i.find("tr").eq(o);r.html(n.html()),a.footable.redraw(),a.footable.raise(a.footable.options.grid.events.updated,{item:t,index:o})}},a.removeItem=function(t){var o=e(a.footable.table).find("tbody"),i=a.footable.options.classes.detail,n=[];if(e.isArray(t)){for(var r;r=t.pop();)n.push(a.removeItem(r));return a.footable.raise(a.footable.options.grid.events.removed,{item:n,index:t}),n}if(t===undefined)o.find("tr").each(function(){n.push(a._items.shift()),a.footable.removeRow(this)});else{var l=o.find("tr[data-index="+t+"]");n=a._items.splice(t,1)[0],a.footable.removeRow(l),d(o,l,i,-1)}return a.footable.raise(a.footable.options.grid.events.removed,{item:n,index:t}),n}}if(t.footable===undefined||null===t.foobox)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var f={grid:{enabled:!0,data:null,template:null,cols:null,items:null,url:null,ajax:null,activeClass:"active",multiSelect:!1,showIndex:!1,showCheckbox:!1,showEmptyInfo:!1,emptyInfo:'

                              No Data

                              ',pagination:{"page-size":20,"pagination-class":"pagination pagination-centered"},indexFormatter:function(e,t,a){return a+1},checkboxFormatter:function(e){return''},events:{loaded:"footable_grid_loaded",created:"footable_grid_created",removed:"footable_grid_removed",updated:"footable_grid_updated"}}};t.footable.plugins.register(s,f)})(jQuery,window);;(function(t,e,undefined){function a(){var e=this;e.name="Footable Filter",e.init=function(a){if(e.footable=a,a.options.filter.enabled===!0){if(t(a.table).data("filter")===!1)return;a.timers.register("filter"),t(a.table).unbind(".filtering").bind({"footable_initialized.filtering":function(){var i=t(a.table),o={input:i.data("filter")||a.options.filter.input,timeout:i.data("filter-timeout")||a.options.filter.timeout,minimum:i.data("filter-minimum")||a.options.filter.minimum,disableEnter:i.data("filter-disable-enter")||a.options.filter.disableEnter};o.disableEnter&&t(o.input).keypress(function(t){return window.event?13!==window.event.keyCode:13!==t.which}),i.bind("footable_clear_filter",function(){t(o.input).val(""),e.clearFilter()}),i.bind("footable_filter",function(t,a){e.filter(a.filter)}),t(o.input).keyup(function(i){a.timers.filter.stop(),27===i.which&&t(o.input).val(""),a.timers.filter.start(function(){var a=t(o.input).val()||"";e.filter(a)},o.timeout)})},"footable_redrawn.filtering":function(){var i=t(a.table),o=i.data("filter-string");o&&e.filter(o)}}).data("footable-filter",e)}},e.filter=function(a){var i=e.footable,o=t(i.table),n=o.data("filter-minimum")||i.options.filter.minimum,r=!a,l=i.raise("footable_filtering",{filter:a,clear:r});if(!(l&&l.result===!1||l.filter&&n>l.filter.length))if(l.clear)e.clearFilter();else{var d=l.filter.split(" ");o.find("> tbody > tr").hide().addClass("footable-filtered");var s=o.find("> tbody > tr:not(.footable-row-detail)");t.each(d,function(t,e){e&&e.length>0&&(o.data("current-filter",e),s=s.filter(i.options.filter.filterFunction))}),s.each(function(){e.showRow(this,i),t(this).removeClass("footable-filtered")}),o.data("filter-string",l.filter),i.raise("footable_filtered",{filter:l.filter,clear:!1})}},e.clearFilter=function(){var a=e.footable,i=t(a.table);i.find("> tbody > tr:not(.footable-row-detail)").removeClass("footable-filtered").each(function(){e.showRow(this,a)}),i.removeData("filter-string"),a.raise("footable_filtered",{clear:!0})},e.showRow=function(e,a){var i=t(e),o=i.next(),n=t(a.table);i.is(":visible")||(n.hasClass("breakpoint")&&i.hasClass("footable-detail-show")&&o.hasClass("footable-row-detail")?(i.add(o).show(),a.createOrUpdateDetailRow(e)):i.show())}}if(e.footable===undefined||null===e.footable)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var i={filter:{enabled:!0,input:".footable-filter",timeout:300,minimum:2,disableEnter:!1,filterFunction:function(){var e=t(this),a=e.parents("table:first"),i=a.data("current-filter").toUpperCase(),o=e.find("td").text();return a.data("filter-text-only")||e.find("td[data-value]").each(function(){o+=t(this).data("value")}),o.toUpperCase().indexOf(i)>=0}}};e.footable.plugins.register(a,i)})(jQuery,window);;(function(e,t,undefined){function a(t){var a=e(t.table),i=a.data();this.pageNavigation=i.pageNavigation||t.options.pageNavigation,this.pageSize=i.pageSize||t.options.pageSize,this.firstText=i.firstText||t.options.firstText,this.previousText=i.previousText||t.options.previousText,this.nextText=i.nextText||t.options.nextText,this.lastText=i.lastText||t.options.lastText,this.limitNavigation=parseInt(i.limitNavigation||t.options.limitNavigation||o.limitNavigation,10),this.limitPreviousText=i.limitPreviousText||t.options.limitPreviousText,this.limitNextText=i.limitNextText||t.options.limitNextText,this.limit=this.limitNavigation>0,this.currentPage=i.currentPage||0,this.pages=[],this.control=!1}function i(){var t=this;t.name="Footable Paginate",t.init=function(a){if(a.options.paginate===!0){if(e(a.table).data("page")===!1)return;t.footable=a,e(a.table).unbind(".paging").bind({"footable_initialized.paging footable_row_removed.paging footable_redrawn.paging footable_sorted.paging footable_filtered.paging":function(){t.setupPaging()}}).data("footable-paging",t)}},t.setupPaging=function(){var i=t.footable,o=e(i.table).find("> tbody");i.pageInfo=new a(i),t.createPages(i,o),t.createNavigation(i,o),t.fillPage(i,o,i.pageInfo.currentPage)},t.createPages=function(t,a){var i=1,o=t.pageInfo,n=i*o.pageSize,r=[],l=[];o.pages=[];var d=a.find("> tr:not(.footable-filtered,.footable-row-detail)");d.each(function(e,t){r.push(t),e===n-1?(o.pages.push(r),i++,n=i*o.pageSize,r=[]):e>=d.length-d.length%o.pageSize&&l.push(t)}),l.length>0&&o.pages.push(l),o.currentPage>=o.pages.length&&(o.currentPage=o.pages.length-1),0>o.currentPage&&(o.currentPage=0),1===o.pages.length?e(t.table).addClass("no-paging"):e(t.table).removeClass("no-paging")},t.createNavigation=function(a){var i=e(a.table).find(a.pageInfo.pageNavigation);if(0===i.length){if(i=e(a.pageInfo.pageNavigation),i.parents("table:first").length>0&&i.parents("table:first")!==e(a.table))return;i.length>1&&a.options.debug===!0&&console.error("More than one pagination control was found!")}if(0!==i.length){i.is("ul")||(0===i.find("ul:first").length&&i.append("
                                "),i=i.find("ul")),i.find("li").remove();var o=a.pageInfo;o.control=i,o.pages.length>0&&(i.append('
                              • '+a.pageInfo.firstText+""),i.append('
                              • '+a.pageInfo.previousText+"
                              • "),o.limit&&i.append('
                              • '+a.pageInfo.limitPreviousText+"
                              • "),o.limit||e.each(o.pages,function(e,t){t.length>0&&i.append('
                              • '+(e+1)+"
                              • ")}),o.limit&&(i.append('
                              • '+a.pageInfo.limitNextText+"
                              • "),t.createLimited(i,o,0)),i.append('
                              • '+a.pageInfo.nextText+"
                              • "),i.append('
                              • '+a.pageInfo.lastText+"
                              • ")),i.off("click","a[data-page]").on("click","a[data-page]",function(n){n.preventDefault();var r=e(this).data("page"),l=o.currentPage;if("first"===r)l=0;else if("prev"===r)l>0&&l--;else if("next"===r)o.pages.length-1>l&&l++;else if("last"===r)l=o.pages.length-1;else if("limit-prev"===r){l=-1;var d=i.find(".footable-page:first a").data("page");t.createLimited(i,o,d-o.limitNavigation),t.setPagingClasses(i,o.currentPage,o.pages.length)}else if("limit-next"===r){l=-1;var s=i.find(".footable-page:last a").data("page");t.createLimited(i,o,s+1),t.setPagingClasses(i,o.currentPage,o.pages.length)}else l=r;if(l>=0){if(o.limit&&o.currentPage!=l){for(var f=l;0!==f%o.limitNavigation;)f-=1;t.createLimited(i,o,f)}t.paginate(a,l)}}),t.setPagingClasses(i,o.currentPage,o.pages.length)}},t.createLimited=function(e,t,a){a=a||0,e.find("li.footable-page").remove();var i,o,n=e.find('li.footable-page-arrow > a[data-page="limit-prev"]').parent(),r=e.find('li.footable-page-arrow > a[data-page="limit-next"]').parent();for(i=t.pages.length-1;i>=0;i--)o=t.pages[i],i>=a&&a+t.limitNavigation>i&&o.length>0&&n.after('
                              • '+(i+1)+"
                              • ");0===a?n.hide():n.show(),a+t.limitNavigation>=t.pages.length?r.hide():r.show()},t.paginate=function(a,i){var o=a.pageInfo;if(o.currentPage!==i){var n=e(a.table).find("> tbody"),r=a.raise("footable_paging",{page:i,size:o.pageSize});if(r&&r.result===!1)return;t.fillPage(a,n,i),o.control.find("li").removeClass("active disabled"),t.setPagingClasses(o.control,o.currentPage,o.pages.length)}},t.setPagingClasses=function(e,t,a){e.find("li.footable-page > a[data-page="+t+"]").parent().addClass("active"),t>=a-1&&(e.find('li.footable-page-arrow > a[data-page="next"]').parent().addClass("disabled"),e.find('li.footable-page-arrow > a[data-page="last"]').parent().addClass("disabled")),1>t&&(e.find('li.footable-page-arrow > a[data-page="first"]').parent().addClass("disabled"),e.find('li.footable-page-arrow > a[data-page="prev"]').parent().addClass("disabled"))},t.fillPage=function(a,i,o){a.pageInfo.currentPage=o,e(a.table).data("currentPage",o),i.find("> tr").hide(),e(a.pageInfo.pages[o]).each(function(){t.showRow(this,a)}),a.raise("footable_page_filled")},t.showRow=function(t,a){var i=e(t),o=i.next(),n=e(a.table);n.hasClass("breakpoint")&&i.hasClass("footable-detail-show")&&o.hasClass("footable-row-detail")?(i.add(o).show(),a.createOrUpdateDetailRow(t)):i.show()}}if(t.footable===undefined||null===t.footable)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var o={paginate:!0,pageSize:10,pageNavigation:".pagination",firstText:"«",previousText:"‹",nextText:"›",lastText:"»",limitNavigation:0,limitPreviousText:"...",limitNextText:"..."};t.footable.plugins.register(i,o)})(jQuery,window);;(function(t,e,undefined){function a(){var e=this;e.name="Footable Sortable",e.init=function(a){e.footable=a,a.options.sort===!0&&t(a.table).unbind(".sorting").bind({"footable_initialized.sorting":function(){var i,o,n=t(a.table),r=(n.find("> tbody"),a.options.classes.sort);if(n.data("sort")!==!1){n.find("> thead > tr:last-child > th, > thead > tr:last-child > td").each(function(){var e=t(this),i=a.columns[e.index()];i.sort.ignore===!0||e.hasClass(r.sortable)||(e.addClass(r.sortable),t("").addClass(r.indicator).appendTo(e))}),n.find("> thead > tr:last-child > th."+r.sortable+", > thead > tr:last-child > td."+r.sortable).unbind("click.footable").bind("click.footable",function(a){a.preventDefault(),o=t(this);var i=!o.hasClass(r.sorted);return e.doSort(o.index(),i),!1});var l=!1;for(var s in a.columns)if(i=a.columns[s],i.sort.initial){var d="descending"!==i.sort.initial;e.doSort(i.index,d);break}l&&a.bindToggleSelectors()}},"footable_redrawn.sorting":function(){var i=t(a.table),o=a.options.classes.sort;i.data("sorted")>=0&&i.find("> thead > tr:last-child > th").each(function(a){var i=t(this);return i.hasClass(o.sorted)||i.hasClass(o.descending)?(e.doSort(a),undefined):undefined})},"footable_column_data.sorting":function(e){var a=t(e.column.th);e.column.data.sort=e.column.data.sort||{},e.column.data.sort.initial=a.data("sort-initial")||!1,e.column.data.sort.ignore=a.data("sort-ignore")||!1,e.column.data.sort.selector=a.data("sort-selector")||null;var i=a.data("sort-match")||0;i>=e.column.data.matches.length&&(i=0),e.column.data.sort.match=e.column.data.matches[i]}}).data("footable-sort",e)},e.doSort=function(a,i){var o=e.footable;if(t(o.table).data("sort")!==!1){var n=t(o.table),r=n.find("> tbody"),l=o.columns[a],s=n.find("> thead > tr:last-child > th:eq("+a+")"),d=o.options.classes.sort,f=o.options.events.sort;if(i=i===undefined?s.hasClass(d.sorted):"toggle"===i?!s.hasClass(d.sorted):i,l.sort.ignore===!0)return!0;var u=o.raise(f.sorting,{column:l,direction:i?"ASC":"DESC"});u&&u.result===!1||(n.data("sorted",l.index),n.find("> thead > tr:last-child > th, > thead > tr:last-child > td").not(s).removeClass(d.sorted+" "+d.descending),i===undefined&&(i=s.hasClass(d.sorted)),i?s.removeClass(d.descending).addClass(d.sorted):s.removeClass(d.sorted).addClass(d.descending),e.sort(o,r,l,i),o.bindToggleSelectors(),o.raise(f.sorted,{column:l,direction:i?"ASC":"DESC"}))}},e.rows=function(e,a,i){var o=[];return a.find("> tr").each(function(){var a=t(this),n=null;if(a.hasClass(e.options.classes.detail))return!0;a.next().hasClass(e.options.classes.detail)&&(n=a.next().get(0));var r={row:a,detail:n};return i!==undefined&&(r.value=e.parse(this.cells[i.sort.match],i)),o.push(r),!0}).detach(),o},e.sort=function(t,a,i,o){var n=e.rows(t,a,i),r=t.options.sorters[i.type]||t.options.sorters.alpha;n.sort(function(t,e){return o?r(t.value,e.value):r(e.value,t.value)});for(var l=0;n.length>l;l++)a.append(n[l].row),null!==n[l].detail&&a.append(n[l].detail)}}if(e.footable===undefined||null===e.footable)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var i={sort:!0,sorters:{alpha:function(t,e){return"string"==typeof t&&(t=t.toLowerCase()),"string"==typeof e&&(e=e.toLowerCase()),t===e?0:e>t?-1:1},numeric:function(t,e){return t-e}},classes:{sort:{sortable:"footable-sortable",sorted:"footable-sorted",descending:"footable-sorted-desc",indicator:"footable-sort-indicator"}},events:{sort:{sorting:"footable_sorting",sorted:"footable_sorted"}}};e.footable.plugins.register(a,i)})(jQuery,window);;(function(t,e,undefined){function a(){var e=this;e.name="Footable Striping",e.init=function(a){e.footable=a,t(a.table).unbind("striping").bind({"footable_initialized.striping footable_row_removed.striping footable_redrawn.striping footable_sorted.striping footable_filtered.striping":function(){t(this).data("striping")!==!1&&e.setupStriping(a)}})},e.setupStriping=function(e){var a=0;t(e.table).find("> tbody > tr:not(.footable-row-detail)").each(function(){var i=t(this);i.removeClass(e.options.classes.striping.even).removeClass(e.options.classes.striping.odd),0===a%2?i.addClass(e.options.classes.striping.even):i.addClass(e.options.classes.striping.odd),a++})}}if(e.footable===undefined||null===e.foobox)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var i={striping:{enabled:!0},classes:{striping:{odd:"footable-odd",even:"footable-even"}}};e.footable.plugins.register(a,i)})(jQuery,window);;(function(t,e,undefined){function a(t,e){e=e?e:location.hash;var a=RegExp("&"+t+"(?:=([^&]*))?(?=&|$)","i");return(e=e.replace(/^\#/,"&").match(a))?e[1]===undefined?"":decodeURIComponent(e[1]):undefined}function i(e,a){var i=t(e.table).find("tbody").find("tr:not(.footable-row-detail, .footable-filtered)").length;t(e.table).data("status_num_total",i);var o=t(e.table).find("tbody").find("tr:not(.footable-row-detail)").filter(":visible").length;t(e.table).data("status_num_shown",o);var n=t(e.table).data("sorted"),r=t(e.table).find("th")[n],l=t(r).hasClass("footable-sorted-desc");if(t(e.table).data("status_descending",l),e.pageInfo){var s=e.pageInfo.currentPage;t(e.table).data("status_pagenum",s)}var d="",f=t(e.table).data("filter");t(f).length&&(d=t(f).val()),t(e.table).data("status_filter_val",d);var u,p,c;if("footable_row_expanded"==a.type&&(u=a.row,u&&(p=t(e.table).data("expanded_rows"),c=[],p&&(c=p.split(",")),c.push(u.rowIndex),t(e.table).data("expanded_rows",c.join(",")))),"footable_row_collapsed"==a.type&&(u=a.row)){p=t(e.table).data("expanded_rows"),c=[],p&&(c=p.split(","));var g=[];for(var b in c)if(c[b]==u.rowIndex){g=c.splice(b,1);break}t(e.table).data("expanded_rows",g.join(","))}}function o(){var e=this;e.name="Footable LucidBookmarkable",e.init=function(e){e.options.bookmarkable.enabled&&t(e.table).bind({footable_initialized:function(){var i=e.table.id,o=a(i+"_f"),n=a(i+"_p"),r=a(i+"_s"),l=a(i+"_d"),s=a(i+"_e");if(o){var d=t(e.table).data("filter");t(d).val(o),t(e.table).trigger("footable_filter",{filter:o})}if(n&&t(e.table).data("currentPage",n),r!==undefined){var f=t(e.table).data("footable-sort"),u=!0;"true"==l&&(u=!1),f.doSort(r,u)}else t(e.table).trigger("footable_setup_paging");if(s){var p=s.split(",");for(var c in p){var g=t(e.table.rows[p[c]]);g.find("> td:first").trigger("footable_toggle_row")}}e.lucid_bookmark_read=!0},"footable_page_filled footable_redrawn footable_filtered footable_sorted footable_row_expanded footable_row_collapsed":function(a){if(i(e,a),e.lucid_bookmark_read){var o=e.table.id,n=o+"_f",r=o+"_p",l=o+"_s",s=o+"_d",d=o+"_e",f=location.hash.replace(/^\#/,"&"),u=[n,r,l,s,d];for(var p in u){var c=RegExp("&"+u[p]+"=([^&]*)","g");f=f.replace(c,"")}var g={};g[n]=t(e.table).data("status_filter_val"),g[r]=t(e.table).data("status_pagenum"),g[l]=t(e.table).data("sorted"),g[s]=t(e.table).data("status_descending"),g[d]=t(e.table).data("expanded_rows");var b=[];for(var h in g)g[h]!==undefined&&b.push(h+"="+encodeURIComponent(g[h]));f.length&&b.push(f),location.hash=b.join("&")}}})}}if(e.footable===undefined||null===e.foobox)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var n={bookmarkable:{enabled:!1}};e.footable.plugins.register(o,n)})(jQuery,window); diff --git a/novel-admin/src/main/resources/static/js/plugins/fullcalendar/fullcalendar.min.js b/novel-admin/src/main/resources/static/js/plugins/fullcalendar/fullcalendar.min.js new file mode 100644 index 0000000..395c2db --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/fullcalendar/fullcalendar.min.js @@ -0,0 +1,7 @@ +/*! + * FullCalendar v1.6.4 + * Docs & License: http://arshaw.com/fullcalendar/ + * (c) 2013 Adam Shaw + */ +(function(t,e){function n(e){t.extend(!0,Ce,e)}function r(n,r,c){function u(t){ae?p()&&(S(),M(t)):f()}function f(){oe=r.theme?"ui":"fc",n.addClass("fc"),r.isRTL?n.addClass("fc-rtl"):n.addClass("fc-ltr"),r.theme&&n.addClass("ui-widget"),ae=t("
                                ").prependTo(n),ne=new a(ee,r),re=ne.render(),re&&n.prepend(re),y(r.defaultView),r.handleWindowResize&&t(window).resize(x),m()||v()}function v(){setTimeout(function(){!ie.start&&m()&&C()},0)}function h(){ie&&(te("viewDestroy",ie,ie,ie.element),ie.triggerEventDestroy()),t(window).unbind("resize",x),ne.destroy(),ae.remove(),n.removeClass("fc fc-rtl ui-widget")}function p(){return n.is(":visible")}function m(){return t("body").is(":visible")}function y(t){ie&&t==ie.name||D(t)}function D(e){he++,ie&&(te("viewDestroy",ie,ie,ie.element),Y(),ie.triggerEventDestroy(),G(),ie.element.remove(),ne.deactivateButton(ie.name)),ne.activateButton(e),ie=new Se[e](t("
                                ").appendTo(ae),ee),C(),$(),he--}function C(t){(!ie.start||t||ie.start>ge||ge>=ie.end)&&p()&&M(t)}function M(t){he++,ie.start&&(te("viewDestroy",ie,ie,ie.element),Y(),N()),G(),ie.render(ge,t||0),T(),$(),(ie.afterRender||A)(),_(),P(),te("viewRender",ie,ie,ie.element),ie.trigger("viewDisplay",de),he--,z()}function E(){p()&&(Y(),N(),S(),T(),F())}function S(){le=r.contentHeight?r.contentHeight:r.height?r.height-(re?re.height():0)-R(ae):Math.round(ae.width()/Math.max(r.aspectRatio,.5))}function T(){le===e&&S(),he++,ie.setHeight(le),ie.setWidth(ae.width()),he--,se=n.outerWidth()}function x(){if(!he)if(ie.start){var t=++ve;setTimeout(function(){t==ve&&!he&&p()&&se!=(se=n.outerWidth())&&(he++,E(),ie.trigger("windowResize",de),he--)},200)}else v()}function k(){N(),W()}function H(t){N(),F(t)}function F(t){p()&&(ie.setEventData(pe),ie.renderEvents(pe,t),ie.trigger("eventAfterAllRender"))}function N(){ie.triggerEventDestroy(),ie.clearEvents(),ie.clearEventData()}function z(){!r.lazyFetching||ue(ie.visStart,ie.visEnd)?W():F()}function W(){fe(ie.visStart,ie.visEnd)}function O(t){pe=t,F()}function L(t){H(t)}function _(){ne.updateTitle(ie.title)}function P(){var t=new Date;t>=ie.start&&ie.end>t?ne.disableButton("today"):ne.enableButton("today")}function q(t,n,r){ie.select(t,n,r===e?!0:r)}function Y(){ie&&ie.unselect()}function B(){C(-1)}function j(){C(1)}function I(){i(ge,-1),C()}function X(){i(ge,1),C()}function J(){ge=new Date,C()}function V(t,e,n){t instanceof Date?ge=d(t):g(ge,t,e,n),C()}function U(t,n,r){t!==e&&i(ge,t),n!==e&&s(ge,n),r!==e&&l(ge,r),C()}function Z(){return d(ge)}function G(){ae.css({width:"100%",height:ae.height(),overflow:"hidden"})}function $(){ae.css({width:"",height:"",overflow:""})}function Q(){return ie}function K(t,n){return n===e?r[t]:(("height"==t||"contentHeight"==t||"aspectRatio"==t)&&(r[t]=n,E()),e)}function te(t,n){return r[t]?r[t].apply(n||de,Array.prototype.slice.call(arguments,2)):e}var ee=this;ee.options=r,ee.render=u,ee.destroy=h,ee.refetchEvents=k,ee.reportEvents=O,ee.reportEventChange=L,ee.rerenderEvents=H,ee.changeView=y,ee.select=q,ee.unselect=Y,ee.prev=B,ee.next=j,ee.prevYear=I,ee.nextYear=X,ee.today=J,ee.gotoDate=V,ee.incrementDate=U,ee.formatDate=function(t,e){return w(t,e,r)},ee.formatDates=function(t,e,n){return b(t,e,n,r)},ee.getDate=Z,ee.getView=Q,ee.option=K,ee.trigger=te,o.call(ee,r,c);var ne,re,ae,oe,ie,se,le,ce,ue=ee.isFetchNeeded,fe=ee.fetchEvents,de=n[0],ve=0,he=0,ge=new Date,pe=[];g(ge,r.year,r.month,r.date),r.droppable&&t(document).bind("dragstart",function(e,n){var a=e.target,o=t(a);if(!o.parents(".fc").length){var i=r.dropAccept;(t.isFunction(i)?i.call(a,o):o.is(i))&&(ce=a,ie.dragStart(ce,e,n))}}).bind("dragstop",function(t,e){ce&&(ie.dragStop(ce,t,e),ce=null)})}function a(n,r){function a(){v=r.theme?"ui":"fc";var n=r.header;return n?h=t("").append(t("").append(i("left")).append(i("center")).append(i("right"))):e}function o(){h.remove()}function i(e){var a=t("",ue&&(r+=""),t=0;ne>t;t++)e=Ee(0,t),r+="";return r+=""}function v(){var t,e,n,r=le+"-widget-content",a="";for(a+="",t=0;ee>t;t++){for(a+="",ue&&(n=Ee(t,0),a+=""),e=0;ne>e;e++)n=Ee(t,e),a+=h(n);a+=""}return a+=""}function h(t){var e=le+"-widget-content",n=O.start.getMonth(),r=f(new Date),a="",o=["fc-day","fc-"+ke[t.getDay()],e];return t.getMonth()!=n&&o.push("fc-other-month"),+t==+r?o.push("fc-today",le+"-state-highlight"):r>t?o.push("fc-past"):o.push("fc-future"),a+=""}function g(e){Q=e;var n,r,a,o=Q-_.height();"variable"==he("weekMode")?n=r=Math.floor(o/(1==ee?2:6)):(n=Math.floor(o/ee),r=o-n*(ee-1)),J.each(function(e,o){ee>e&&(a=t(o),a.find("> div").css("min-height",(e==ee-1?r:n)-R(a)))})}function p(t){$=t,ie.clear(),se.clear(),te=0,ue&&(te=_.find("th.fc-week-number").outerWidth()),K=Math.floor(($-te)/ne),S(P.slice(0,-1),K)}function y(t){t.click(w).mousedown(Me)}function w(e){if(!he("selectable")){var n=m(t(this).data("date"));ge("dayClick",this,n,!0,e)}}function b(t,e,n){n&&ae.build();for(var r=Te(t,e),a=0;r.length>a;a++){var o=r[a];y(D(o.row,o.leftCol,o.row,o.rightCol))}}function D(t,n,r,a){var o=ae.rect(t,n,r,a,e);return be(o,e)}function C(t){return d(t)}function M(t,e){b(t,l(d(e),1),!0)}function E(){Ce()}function T(t,e,n){var r=Se(t),a=X[r.row*ne+r.col];ge("dayClick",a,t,e,n)}function x(t,e){oe.start(function(t){Ce(),t&&D(t.row,t.col,t.row,t.col)},e)}function k(t,e,n){var r=oe.stop();if(Ce(),r){var a=Ee(r);ge("drop",t,a,!0,e,n)}}function H(t){return d(t.start)}function F(t){return ie.left(t)}function N(t){return ie.right(t)}function z(t){return se.left(t)}function W(t){return se.right(t)}function A(t){return I.eq(t)}var O=this;O.renderBasic=a,O.setHeight=g,O.setWidth=p,O.renderDayOverlay=b,O.defaultSelectionEnd=C,O.renderSelection=M,O.clearSelection=E,O.reportDayClick=T,O.dragStart=x,O.dragStop=k,O.defaultEventEnd=H,O.getHoverListener=function(){return oe},O.colLeft=F,O.colRight=N,O.colContentLeft=z,O.colContentRight=W,O.getIsCellAllDay=function(){return!0},O.allDayRow=A,O.getRowCnt=function(){return ee},O.getColCnt=function(){return ne},O.getColWidth=function(){return K},O.getDaySegmentContainer=function(){return Z},fe.call(O,e,n,r),me.call(O),pe.call(O),G.call(O);var L,_,P,j,I,X,J,V,U,Z,$,Q,K,te,ee,ne,re,ae,oe,ie,se,le,ce,ue,de,ve,he=O.opt,ge=O.trigger,be=O.renderOverlay,Ce=O.clearOverlays,Me=O.daySelectionMousedown,Ee=O.cellToDate,Se=O.dateToCell,Te=O.rangeToSegments,xe=n.formatDate;Y(e.addClass("fc-grid")),ae=new ye(function(e,n){var r,a,o;P.each(function(e,i){r=t(i),a=r.offset().left,e&&(o[1]=a),o=[a],n[e]=o}),o[1]=a+r.outerWidth(),I.each(function(n,i){ee>n&&(r=t(i),a=r.offset().top,n&&(o[1]=a),o=[a],e[n]=o)}),o[1]=a+r.outerHeight()}),oe=new we(ae),ie=new De(function(t){return V.eq(t)}),se=new De(function(t){return U.eq(t)})}function G(){function t(t,e){n.renderDayEvents(t,e)}function e(){n.getDaySegmentContainer().empty()}var n=this;n.renderEvents=t,n.clearEvents=e,de.call(n)}function $(t,e){function n(t,e){e&&l(t,7*e);var n=l(d(t),-((t.getDay()-a("firstDay")+7)%7)),u=l(d(n),7),f=d(n);i(f);var v=d(u);i(v,-1,!0);var h=s();r.title=c(f,l(d(v),-1),a("titleFormat")),r.start=n,r.end=u,r.visStart=f,r.visEnd=v,o(h)}var r=this;r.render=n,K.call(r,t,e,"agendaWeek");var a=r.opt,o=r.renderAgenda,i=r.skipHiddenDays,s=r.getCellsPerWeek,c=e.formatDates}function Q(t,e){function n(t,e){e&&l(t,e),i(t,0>e?-1:1);var n=d(t,!0),c=l(d(n),1);r.title=s(t,a("titleFormat")),r.start=r.visStart=n,r.end=r.visEnd=c,o(1)}var r=this;r.render=n,K.call(r,t,e,"agendaDay");var a=r.opt,o=r.renderAgenda,i=r.skipHiddenDays,s=e.formatDate}function K(n,r,a){function o(t){We=t,i(),K?c():s()}function i(){qe=Ue("theme")?"ui":"fc",Ye=Ue("isRTL"),Be=y(Ue("minTime")),je=y(Ue("maxTime")),Ie=Ue("columnFormat"),Xe=Ue("weekNumbers"),Je=Ue("weekNumberTitle"),Ve="iso"!=Ue("weekNumberCalculation")?"w":"W",Re=Ue("snapMinutes")||Ue("slotMinutes")}function s(){var e,r,a,o,i,s=qe+"-widget-header",l=qe+"-widget-content",f=0==Ue("slotMinutes")%15;for(c(),ce=t("
                                ").appendTo(n),Ue("allDaySlot")?(ue=t("
                                ").appendTo(ce),e="
                                "),o=r.header[e];return o&&t.each(o.split(" "),function(e){e>0&&a.append("");var o;t.each(this.split(","),function(e,i){if("title"==i)a.append("

                                 

                                "),o&&o.addClass(v+"-corner-right"),o=null;else{var s;if(n[i]?s=n[i]:Se[i]&&(s=function(){u.removeClass(v+"-state-hover"),n.changeView(i)}),s){var l=r.theme?P(r.buttonIcons,i):null,c=P(r.buttonText,i),u=t(""+(l?""+"":c)+"").click(function(){u.hasClass(v+"-state-disabled")||s()}).mousedown(function(){u.not("."+v+"-state-active").not("."+v+"-state-disabled").addClass(v+"-state-down")}).mouseup(function(){u.removeClass(v+"-state-down")}).hover(function(){u.not("."+v+"-state-active").not("."+v+"-state-disabled").addClass(v+"-state-hover")},function(){u.removeClass(v+"-state-hover").removeClass(v+"-state-down")}).appendTo(a);Y(u),o||u.addClass(v+"-corner-left"),o=u}}}),o&&o.addClass(v+"-corner-right")}),a}function s(t){h.find("h2").html(t)}function l(t){h.find("span.fc-button-"+t).addClass(v+"-state-active")}function c(t){h.find("span.fc-button-"+t).removeClass(v+"-state-active")}function u(t){h.find("span.fc-button-"+t).addClass(v+"-state-disabled")}function f(t){h.find("span.fc-button-"+t).removeClass(v+"-state-disabled")}var d=this;d.render=a,d.destroy=o,d.updateTitle=s,d.activateButton=l,d.deactivateButton=c,d.disableButton=u,d.enableButton=f;var v,h=t([])}function o(n,r){function a(t,e){return!E||E>t||e>S}function o(t,e){E=t,S=e,W=[];var n=++R,r=F.length;N=r;for(var a=0;r>a;a++)i(F[a],n)}function i(e,r){s(e,function(a){if(r==R){if(a){n.eventDataTransform&&(a=t.map(a,n.eventDataTransform)),e.eventDataTransform&&(a=t.map(a,e.eventDataTransform));for(var o=0;a.length>o;o++)a[o].source=e,w(a[o]);W=W.concat(a)}N--,N||k(W)}})}function s(r,a){var o,i,l=Ee.sourceFetchers;for(o=0;l.length>o;o++){if(i=l[o](r,E,S,a),i===!0)return;if("object"==typeof i)return s(i,a),e}var c=r.events;if(c)t.isFunction(c)?(m(),c(d(E),d(S),function(t){a(t),y()})):t.isArray(c)?a(c):a();else{var u=r.url;if(u){var f,v=r.success,h=r.error,g=r.complete;f=t.isFunction(r.data)?r.data():r.data;var p=t.extend({},f||{}),w=X(r.startParam,n.startParam),b=X(r.endParam,n.endParam);w&&(p[w]=Math.round(+E/1e3)),b&&(p[b]=Math.round(+S/1e3)),m(),t.ajax(t.extend({},Te,r,{data:p,success:function(e){e=e||[];var n=I(v,this,arguments);t.isArray(n)&&(e=n),a(e)},error:function(){I(h,this,arguments),a()},complete:function(){I(g,this,arguments),y()}}))}else a()}}function l(t){t=c(t),t&&(N++,i(t,R))}function c(n){return t.isFunction(n)||t.isArray(n)?n={events:n}:"string"==typeof n&&(n={url:n}),"object"==typeof n?(b(n),F.push(n),n):e}function u(e){F=t.grep(F,function(t){return!D(t,e)}),W=t.grep(W,function(t){return!D(t.source,e)}),k(W)}function f(t){var e,n,r=W.length,a=x().defaultEventEnd,o=t.start-t._start,i=t.end?t.end-(t._end||a(t)):0;for(e=0;r>e;e++)n=W[e],n._id==t._id&&n!=t&&(n.start=new Date(+n.start+o),n.end=t.end?n.end?new Date(+n.end+i):new Date(+a(n)+i):null,n.title=t.title,n.url=t.url,n.allDay=t.allDay,n.className=t.className,n.editable=t.editable,n.color=t.color,n.backgroundColor=t.backgroundColor,n.borderColor=t.borderColor,n.textColor=t.textColor,w(n));w(t),k(W)}function v(t,e){w(t),t.source||(e&&(H.events.push(t),t.source=H),W.push(t)),k(W)}function h(e){if(e){if(!t.isFunction(e)){var n=e+"";e=function(t){return t._id==n}}W=t.grep(W,e,!0);for(var r=0;F.length>r;r++)t.isArray(F[r].events)&&(F[r].events=t.grep(F[r].events,e,!0))}else{W=[];for(var r=0;F.length>r;r++)t.isArray(F[r].events)&&(F[r].events=[])}k(W)}function g(e){return t.isFunction(e)?t.grep(W,e):e?(e+="",t.grep(W,function(t){return t._id==e})):W}function m(){z++||T("loading",null,!0,x())}function y(){--z||T("loading",null,!1,x())}function w(t){var r=t.source||{},a=X(r.ignoreTimezone,n.ignoreTimezone);t._id=t._id||(t.id===e?"_fc"+xe++:t.id+""),t.date&&(t.start||(t.start=t.date),delete t.date),t._start=d(t.start=p(t.start,a)),t.end=p(t.end,a),t.end&&t.end<=t.start&&(t.end=null),t._end=t.end?d(t.end):null,t.allDay===e&&(t.allDay=X(r.allDayDefault,n.allDayDefault)),t.className?"string"==typeof t.className&&(t.className=t.className.split(/\s+/)):t.className=[]}function b(t){t.className?"string"==typeof t.className&&(t.className=t.className.split(/\s+/)):t.className=[];for(var e=Ee.sourceNormalizers,n=0;e.length>n;n++)e[n](t)}function D(t,e){return t&&e&&C(t)==C(e)}function C(t){return("object"==typeof t?t.events||t.url:"")||t}var M=this;M.isFetchNeeded=a,M.fetchEvents=o,M.addEventSource=l,M.removeEventSource=u,M.updateEvent=f,M.renderEvent=v,M.removeEvents=h,M.clientEvents=g,M.normalizeEvent=w;for(var E,S,T=M.trigger,x=M.getView,k=M.reportEvents,H={events:[]},F=[H],R=0,N=0,z=0,W=[],A=0;r.length>A;A++)c(r[A])}function i(t,e,n){return t.setFullYear(t.getFullYear()+e),n||f(t),t}function s(t,e,n){if(+t){var r=t.getMonth()+e,a=d(t);for(a.setDate(1),a.setMonth(r),t.setMonth(r),n||f(t);t.getMonth()!=a.getMonth();)t.setDate(t.getDate()+(a>t?1:-1))}return t}function l(t,e,n){if(+t){var r=t.getDate()+e,a=d(t);a.setHours(9),a.setDate(r),t.setDate(r),n||f(t),c(t,a)}return t}function c(t,e){if(+t)for(;t.getDate()!=e.getDate();)t.setTime(+t+(e>t?1:-1)*Fe)}function u(t,e){return t.setMinutes(t.getMinutes()+e),t}function f(t){return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),t}function d(t,e){return e?f(new Date(+t)):new Date(+t)}function v(){var t,e=0;do t=new Date(1970,e++,1);while(t.getHours());return t}function h(t,e){return Math.round((d(t,!0)-d(e,!0))/He)}function g(t,n,r,a){n!==e&&n!=t.getFullYear()&&(t.setDate(1),t.setMonth(0),t.setFullYear(n)),r!==e&&r!=t.getMonth()&&(t.setDate(1),t.setMonth(r)),a!==e&&t.setDate(a)}function p(t,n){return"object"==typeof t?t:"number"==typeof t?new Date(1e3*t):"string"==typeof t?t.match(/^\d+(\.\d+)?$/)?new Date(1e3*parseFloat(t)):(n===e&&(n=!0),m(t,n)||(t?new Date(t):null)):null}function m(t,e){var n=t.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/);if(!n)return null;var r=new Date(n[1],0,1);if(e||!n[13]){var a=new Date(n[1],0,1,9,0);n[3]&&(r.setMonth(n[3]-1),a.setMonth(n[3]-1)),n[5]&&(r.setDate(n[5]),a.setDate(n[5])),c(r,a),n[7]&&r.setHours(n[7]),n[8]&&r.setMinutes(n[8]),n[10]&&r.setSeconds(n[10]),n[12]&&r.setMilliseconds(1e3*Number("0."+n[12])),c(r,a)}else if(r.setUTCFullYear(n[1],n[3]?n[3]-1:0,n[5]||1),r.setUTCHours(n[7]||0,n[8]||0,n[10]||0,n[12]?1e3*Number("0."+n[12]):0),n[14]){var o=60*Number(n[16])+(n[18]?Number(n[18]):0);o*="-"==n[15]?1:-1,r=new Date(+r+1e3*60*o)}return r}function y(t){if("number"==typeof t)return 60*t;if("object"==typeof t)return 60*t.getHours()+t.getMinutes();var e=t.match(/(\d+)(?::(\d+))?\s*(\w+)?/);if(e){var n=parseInt(e[1],10);return e[3]&&(n%=12,"p"==e[3].toLowerCase().charAt(0)&&(n+=12)),60*n+(e[2]?parseInt(e[2],10):0)}}function w(t,e,n){return b(t,null,e,n)}function b(t,e,n,r){r=r||Ce;var a,o,i,s,l=t,c=e,u=n.length,f="";for(a=0;u>a;a++)if(o=n.charAt(a),"'"==o){for(i=a+1;u>i;i++)if("'"==n.charAt(i)){l&&(f+=i==a+1?"'":n.substring(a+1,i),a=i);break}}else if("("==o){for(i=a+1;u>i;i++)if(")"==n.charAt(i)){var d=w(l,n.substring(a+1,i),r);parseInt(d.replace(/\D/,""),10)&&(f+=d),a=i;break}}else if("["==o){for(i=a+1;u>i;i++)if("]"==n.charAt(i)){var v=n.substring(a+1,i),d=w(l,v,r);d!=w(c,v,r)&&(f+=d),a=i;break}}else if("{"==o)l=e,c=t;else if("}"==o)l=t,c=e;else{for(i=u;i>a;i--)if(s=Ne[n.substring(a,i)]){l&&(f+=s(l,r)),a=i-1;break}i==a&&l&&(f+=o)}return f}function D(t){var e,n=new Date(t.getTime());return n.setDate(n.getDate()+4-(n.getDay()||7)),e=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((e-n)/864e5)/7)+1}function C(t){return t.end?M(t.end,t.allDay):l(d(t.start),1)}function M(t,e){return t=d(t),e||t.getHours()||t.getMinutes()?l(t,1):f(t)}function E(n,r,a){n.unbind("mouseover").mouseover(function(n){for(var o,i,s,l=n.target;l!=this;)o=l,l=l.parentNode;(i=o._fci)!==e&&(o._fci=e,s=r[i],a(s.event,s.element,s),t(n.target).trigger(n)),n.stopPropagation()})}function S(e,n,r){for(var a,o=0;e.length>o;o++)a=t(e[o]),a.width(Math.max(0,n-x(a,r)))}function T(e,n,r){for(var a,o=0;e.length>o;o++)a=t(e[o]),a.height(Math.max(0,n-R(a,r)))}function x(t,e){return k(t)+F(t)+(e?H(t):0)}function k(e){return(parseFloat(t.css(e[0],"paddingLeft",!0))||0)+(parseFloat(t.css(e[0],"paddingRight",!0))||0)}function H(e){return(parseFloat(t.css(e[0],"marginLeft",!0))||0)+(parseFloat(t.css(e[0],"marginRight",!0))||0)}function F(e){return(parseFloat(t.css(e[0],"borderLeftWidth",!0))||0)+(parseFloat(t.css(e[0],"borderRightWidth",!0))||0)}function R(t,e){return N(t)+W(t)+(e?z(t):0)}function N(e){return(parseFloat(t.css(e[0],"paddingTop",!0))||0)+(parseFloat(t.css(e[0],"paddingBottom",!0))||0)}function z(e){return(parseFloat(t.css(e[0],"marginTop",!0))||0)+(parseFloat(t.css(e[0],"marginBottom",!0))||0)}function W(e){return(parseFloat(t.css(e[0],"borderTopWidth",!0))||0)+(parseFloat(t.css(e[0],"borderBottomWidth",!0))||0)}function A(){}function O(t,e){return t-e}function L(t){return Math.max.apply(Math,t)}function _(t){return(10>t?"0":"")+t}function P(t,n){if(t[n]!==e)return t[n];for(var r,a=n.split(/(?=[A-Z])/),o=a.length-1;o>=0;o--)if(r=t[a[o].toLowerCase()],r!==e)return r;return t[""]}function q(t){return t.replace(/&/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
                                ")}function Y(t){t.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return!1})}function B(t){t.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}function j(t,e){var n=t.source||{},r=t.color,a=n.color,o=e("eventColor"),i=t.backgroundColor||r||n.backgroundColor||a||e("eventBackgroundColor")||o,s=t.borderColor||r||n.borderColor||a||e("eventBorderColor")||o,l=t.textColor||n.textColor||e("eventTextColor"),c=[];return i&&c.push("background-color:"+i),s&&c.push("border-color:"+s),l&&c.push("color:"+l),c.join(";")}function I(e,n,r){if(t.isFunction(e)&&(e=[e]),e){var a,o;for(a=0;e.length>a;a++)o=e[a].apply(n,r)||o;return o}}function X(){for(var t=0;arguments.length>t;t++)if(arguments[t]!==e)return arguments[t]}function J(t,e){function n(t,e){e&&(s(t,e),t.setDate(1));var n=a("firstDay"),f=d(t,!0);f.setDate(1);var v=s(d(f),1),g=d(f);l(g,-((g.getDay()-n+7)%7)),i(g);var p=d(v);l(p,(7-p.getDay()+n)%7),i(p,-1,!0);var m=c(),y=Math.round(h(p,g)/7);"fixed"==a("weekMode")&&(l(p,7*(6-y)),y=6),r.title=u(f,a("titleFormat")),r.start=f,r.end=v,r.visStart=g,r.visEnd=p,o(y,m,!0)}var r=this;r.render=n,Z.call(r,t,e,"month");var a=r.opt,o=r.renderBasic,i=r.skipHiddenDays,c=r.getCellsPerWeek,u=e.formatDate}function V(t,e){function n(t,e){e&&l(t,7*e);var n=l(d(t),-((t.getDay()-a("firstDay")+7)%7)),u=l(d(n),7),f=d(n);i(f);var v=d(u);i(v,-1,!0);var h=s();r.start=n,r.end=u,r.visStart=f,r.visEnd=v,r.title=c(f,l(d(v),-1),a("titleFormat")),o(1,h,!1)}var r=this;r.render=n,Z.call(r,t,e,"basicWeek");var a=r.opt,o=r.renderBasic,i=r.skipHiddenDays,s=r.getCellsPerWeek,c=e.formatDates}function U(t,e){function n(t,e){e&&l(t,e),i(t,0>e?-1:1);var n=d(t,!0),c=l(d(n),1);r.title=s(t,a("titleFormat")),r.start=r.visStart=n,r.end=r.visEnd=c,o(1,1,!1)}var r=this;r.render=n,Z.call(r,t,e,"basicDay");var a=r.opt,o=r.renderBasic,i=r.skipHiddenDays,s=e.formatDate}function Z(e,n,r){function a(t,e,n){ee=t,ne=e,re=n,o(),j||i(),s()}function o(){le=he("theme")?"ui":"fc",ce=he("columnFormat"),ue=he("weekNumbers"),de=he("weekNumberTitle"),ve="iso"!=he("weekNumberCalculation")?"w":"W"}function i(){Z=t("
                                ").appendTo(e)}function s(){var n=c();L&&L.remove(),L=t(n).appendTo(e),_=L.find("thead"),P=_.find(".fc-day-header"),j=L.find("tbody"),I=j.find("tr"),X=j.find(".fc-day"),J=I.find("td:first-child"),V=I.eq(0).find(".fc-day > div"),U=I.eq(0).find(".fc-day-content > div"),B(_.add(_.find("tr"))),B(I),I.eq(0).addClass("fc-first"),I.filter(":last").addClass("fc-last"),X.each(function(e,n){var r=Ee(Math.floor(e/ne),e%ne);ge("dayRender",O,r,t(n))}),y(X)}function c(){var t=""+u()+v()+"
                                ";return t}function u(){var t,e,n=le+"-widget-header",r="";for(r+="
                                "+q(de)+""+q(xe(e,ce))+"
                                "+"
                                "+q(xe(n,ve))+"
                                "+"
                                "+"
                                ",re&&(a+="
                                "+t.getDate()+"
                                "),a+="
                                 
                                "+""+""+""+"
                                "+Ue("allDayText")+""+"
                                "+"
                                 
                                ",de=t(e).appendTo(ce),ve=de.find("tr"),C(ve.find("td")),ce.append("
                                "+"
                                "+"
                                ")):ue=t([]),he=t("
                                ").appendTo(ce),ge=t("
                                ").appendTo(he),be=t("
                                ").appendTo(ge),e="",r=v(),o=u(d(r),je),u(r,Be),Ae=0,a=0;o>r;a++)i=r.getMinutes(),e+=""+""+""+"",u(r,Ue("slotMinutes")),Ae++;e+="
                                "+(f&&i?" ":on(r,Ue("axisFormat")))+""+"
                                 
                                "+"
                                ",Ce=t(e).appendTo(ge),M(Ce.find("td"))}function c(){var e=h();K&&K.remove(),K=t(e).appendTo(n),ee=K.find("thead"),ne=ee.find("th").slice(1,-1),re=K.find("tbody"),ae=re.find("td").slice(0,-1),oe=ae.find("> div"),ie=ae.find(".fc-day-content > div"),se=ae.eq(0),le=oe.eq(0),B(ee.add(ee.find("tr"))),B(re.add(re.find("tr")))}function h(){var t=""+g()+p()+"
                                ";return t}function g(){var t,e,n,r=qe+"-widget-header",a="";for(a+="",Xe?(t=nn(0,0),e=on(t,Ve),Ye?e+=Je:e=Je+e,a+=""+q(e)+""):a+=" ",n=0;We>n;n++)t=nn(0,n),a+=""+q(on(t,Ie))+"";return a+=" "+""+""}function p(){var t,e,n,r,a,o=qe+"-widget-header",i=qe+"-widget-content",s=f(new Date),l="";for(l+=" ",n="",e=0;We>e;e++)t=nn(0,e),a=["fc-col"+e,"fc-"+ke[t.getDay()],i],+t==+s?a.push(qe+"-state-highlight","fc-today"):s>t?a.push("fc-past"):a.push("fc-future"),r=""+"
                                "+"
                                "+"
                                 
                                "+"
                                "+"
                                "+"",n+=r;return l+=n,l+=" "+""+""}function m(t){t===e&&(t=Se),Se=t,sn={};var n=re.position().top,r=he.position().top,a=Math.min(t-n,Ce.height()+r+1);le.height(a-R(se)),ce.css("top",n),he.height(a-r-1),Fe=Ce.find("tr:first").height()+1,Ne=Ue("slotMinutes")/Re,ze=Fe/Ne}function w(e){Ee=e,_e.clear(),Pe.clear();var n=ee.find("th:first");de&&(n=n.add(de.find("th:first"))),n=n.add(Ce.find("th:first")),Te=0,S(n.width("").each(function(e,n){Te=Math.max(Te,t(n).outerWidth())}),Te);var r=K.find(".fc-agenda-gutter");de&&(r=r.add(de.find("th.fc-agenda-gutter")));var a=he[0].clientWidth;He=he.width()-a,He?(S(r,He),r.show().prev().removeClass("fc-last")):r.hide().prev().addClass("fc-last"),xe=Math.floor((a-Te)/We),S(ne.slice(0,-1),xe)}function b(){function t(){he.scrollTop(r)}var e=v(),n=d(e);n.setHours(Ue("firstHour"));var r=_(e,n)+1;t(),setTimeout(t,0)}function D(){b()}function C(t){t.click(E).mousedown(tn)}function M(t){t.click(E).mousedown(U)}function E(t){if(!Ue("selectable")){var e=Math.min(We-1,Math.floor((t.pageX-K.offset().left-Te)/xe)),n=nn(0,e),r=this.parentNode.className.match(/fc-slot(\d+)/);if(r){var a=parseInt(r[1])*Ue("slotMinutes"),o=Math.floor(a/60);n.setHours(o),n.setMinutes(a%60+Be),Ze("dayClick",ae[e],n,!1,t)}else Ze("dayClick",ae[e],n,!0,t)}}function x(t,e,n){n&&Oe.build();for(var r=an(t,e),a=0;r.length>a;a++){var o=r[a];C(k(o.row,o.leftCol,o.row,o.rightCol))}}function k(t,e,n,r){var a=Oe.rect(t,e,n,r,ce);return Ge(a,ce)}function H(t,e){for(var n=0;We>n;n++){var r=nn(0,n),a=l(d(r),1),o=new Date(Math.max(r,t)),i=new Date(Math.min(a,e));if(i>o){var s=Oe.rect(0,n,0,n,ge),c=_(r,o),u=_(r,i);s.top=c,s.height=u-c,M(Ge(s,ge))}}}function F(t){return _e.left(t)}function N(t){return Pe.left(t)}function z(t){return _e.right(t)}function W(t){return Pe.right(t)}function A(t){return Ue("allDaySlot")&&!t.row}function L(t){var e=nn(0,t.col),n=t.row;return Ue("allDaySlot")&&n--,n>=0&&u(e,Be+n*Re),e}function _(t,n){if(t=d(t,!0),u(d(t),Be)>n)return 0;if(n>=u(d(t),je))return Ce.height();var r=Ue("slotMinutes"),a=60*n.getHours()+n.getMinutes()-Be,o=Math.floor(a/r),i=sn[o];return i===e&&(i=sn[o]=Ce.find("tr").eq(o).find("td div")[0].offsetTop),Math.max(0,Math.round(i-1+Fe*(a%r/r)))}function P(){return ve}function j(t){var e=d(t.start);return t.allDay?e:u(e,Ue("defaultEventMinutes"))}function I(t,e){return e?d(t):u(d(t),Ue("slotMinutes"))}function X(t,e,n){n?Ue("allDaySlot")&&x(t,l(d(e),1),!0):J(t,e)}function J(e,n){var r=Ue("selectHelper");if(Oe.build(),r){var a=rn(e).col;if(a>=0&&We>a){var o=Oe.rect(0,a,0,a,ge),i=_(e,e),s=_(e,n);if(s>i){if(o.top=i,o.height=s-i,o.left+=2,o.width-=5,t.isFunction(r)){var l=r(e,n);l&&(o.position="absolute",Me=t(l).css(o).appendTo(ge))}else o.isStart=!0,o.isEnd=!0,Me=t(en({title:"",start:e,end:n,className:["fc-select-helper"],editable:!1},o)),Me.css("opacity",Ue("dragOpacity"));Me&&(M(Me),ge.append(Me),S(Me,o.width,!0),T(Me,o.height,!0))}}}else H(e,n)}function V(){$e(),Me&&(Me.remove(),Me=null)}function U(e){if(1==e.which&&Ue("selectable")){Ke(e);var n;Le.start(function(t,e){if(V(),t&&t.col==e.col&&!A(t)){var r=L(e),a=L(t);n=[r,u(d(r),Re),a,u(d(a),Re)].sort(O),J(n[0],n[3])}else n=null},e),t(document).one("mouseup",function(t){Le.stop(),n&&(+n[0]==+n[1]&&Z(n[0],!1,t),Qe(n[0],n[3],!1,t))})}}function Z(t,e,n){Ze("dayClick",ae[rn(t).col],t,e,n)}function G(t,e){Le.start(function(t){if($e(),t)if(A(t))k(t.row,t.col,t.row,t.col);else{var e=L(t),n=u(d(e),Ue("defaultEventMinutes"));H(e,n)}},e)}function $(t,e,n){var r=Le.stop();$e(),r&&Ze("drop",t,L(r),A(r),e,n)}var Q=this;Q.renderAgenda=o,Q.setWidth=w,Q.setHeight=m,Q.afterRender=D,Q.defaultEventEnd=j,Q.timePosition=_,Q.getIsCellAllDay=A,Q.allDayRow=P,Q.getCoordinateGrid=function(){return Oe},Q.getHoverListener=function(){return Le},Q.colLeft=F,Q.colRight=z,Q.colContentLeft=N,Q.colContentRight=W,Q.getDaySegmentContainer=function(){return ue},Q.getSlotSegmentContainer=function(){return be},Q.getMinMinute=function(){return Be},Q.getMaxMinute=function(){return je},Q.getSlotContainer=function(){return ge},Q.getRowCnt=function(){return 1},Q.getColCnt=function(){return We},Q.getColWidth=function(){return xe},Q.getSnapHeight=function(){return ze},Q.getSnapMinutes=function(){return Re},Q.defaultSelectionEnd=I,Q.renderDayOverlay=x,Q.renderSelection=X,Q.clearSelection=V,Q.reportDayClick=Z,Q.dragStart=G,Q.dragStop=$,fe.call(Q,n,r,a),me.call(Q),pe.call(Q),te.call(Q);var K,ee,ne,re,ae,oe,ie,se,le,ce,ue,de,ve,he,ge,be,Ce,Me,Ee,Se,Te,xe,He,Fe,Re,Ne,ze,We,Ae,Oe,Le,_e,Pe,qe,Ye,Be,je,Ie,Xe,Je,Ve,Ue=Q.opt,Ze=Q.trigger,Ge=Q.renderOverlay,$e=Q.clearOverlays,Qe=Q.reportSelection,Ke=Q.unselect,tn=Q.daySelectionMousedown,en=Q.slotSegHtml,nn=Q.cellToDate,rn=Q.dateToCell,an=Q.rangeToSegments,on=r.formatDate,sn={};Y(n.addClass("fc-agenda")),Oe=new ye(function(e,n){function r(t){return Math.max(l,Math.min(c,t))}var a,o,i;ne.each(function(e,r){a=t(r),o=a.offset().left,e&&(i[1]=o),i=[o],n[e]=i}),i[1]=o+a.outerWidth(),Ue("allDaySlot")&&(a=ve,o=a.offset().top,e[0]=[o,o+a.outerHeight()]);for(var s=ge.offset().top,l=he.offset().top,c=l+he.outerHeight(),u=0;Ae*Ne>u;u++)e.push([r(s+ze*u),r(s+ze*(u+1))])}),Le=new we(Oe),_e=new De(function(t){return oe.eq(t)}),Pe=new De(function(t){return ie.eq(t)})}function te(){function n(t,e){var n,r=t.length,o=[],i=[];for(n=0;r>n;n++)t[n].allDay?o.push(t[n]):i.push(t[n]);y("allDaySlot")&&(te(o,e),k()),s(a(i),e)}function r(){H().empty(),F().empty()}function a(e){var n,r,a,s,l,c=Y(),f=W(),v=z(),h=t.map(e,i),g=[];for(r=0;c>r;r++)for(n=P(0,r),u(n,f),l=o(e,h,n,u(d(n),v-f)),l=ee(l),a=0;l.length>a;a++)s=l[a],s.col=r,g.push(s);return g}function o(t,e,n,r){var a,o,i,s,l,c,u,f,v=[],h=t.length;for(a=0;h>a;a++)o=t[a],i=o.start,s=e[a],s>n&&r>i&&(n>i?(l=d(n),u=!1):(l=i,u=!0),s>r?(c=d(r),f=!1):(c=s,f=!0),v.push({event:o,start:l,end:c,isStart:u,isEnd:f}));return v.sort(ue)}function i(t){return t.end?d(t.end):u(d(t.start),y("defaultEventMinutes"))}function s(n,r){var a,o,i,s,l,u,d,v,h,g,p,m,b,D,C,M,S=n.length,T="",k=F(),H=y("isRTL");for(a=0;S>a;a++)o=n[a],i=o.event,s=A(o.start,o.start),l=A(o.start,o.end),u=L(o.col),d=_(o.col),v=d-u,d-=.025*v,v=d-u,h=v*(o.forwardCoord-o.backwardCoord),y("slotEventOverlap")&&(h=Math.max(2*(h-10),h)),H?(p=d-o.backwardCoord*v,g=p-h):(g=u+o.backwardCoord*v,p=g+h),g=Math.max(g,u),p=Math.min(p,d),h=p-g,o.top=s,o.left=g,o.outerWidth=h,o.outerHeight=l-s,T+=c(i,o);for(k[0].innerHTML=T,m=k.children(),a=0;S>a;a++)o=n[a],i=o.event,b=t(m[a]),D=w("eventRender",i,i,b),D===!1?b.remove():(D&&D!==!0&&(b.remove(),b=t(D).css({position:"absolute",top:o.top,left:o.left}).appendTo(k)),o.element=b,i._id===r?f(i,b,o):b[0]._fci=a,V(i,b));for(E(k,n,f),a=0;S>a;a++)o=n[a],(b=o.element)&&(o.vsides=R(b,!0),o.hsides=x(b,!0),C=b.find(".fc-event-title"),C.length&&(o.contentTop=C[0].offsetTop));for(a=0;S>a;a++)o=n[a],(b=o.element)&&(b[0].style.width=Math.max(0,o.outerWidth-o.hsides)+"px",M=Math.max(0,o.outerHeight-o.vsides),b[0].style.height=M+"px",i=o.event,o.contentTop!==e&&10>M-o.contentTop&&(b.find("div.fc-event-time").text(re(i.start,y("timeFormat"))+" - "+i.title),b.find("div.fc-event-title").remove()),w("eventAfterRender",i,i,b))}function c(t,e){var n="<",r=t.url,a=j(t,y),o=["fc-event","fc-event-vert"];return b(t)&&o.push("fc-event-draggable"),e.isStart&&o.push("fc-event-start"),e.isEnd&&o.push("fc-event-end"),o=o.concat(t.className),t.source&&(o=o.concat(t.source.className||[])),n+=r?"a href='"+q(t.url)+"'":"div",n+=" class='"+o.join(" ")+"'"+" style="+"'"+"position:absolute;"+"top:"+e.top+"px;"+"left:"+e.left+"px;"+a+"'"+">"+"
                                "+"
                                "+q(ae(t.start,t.end,y("timeFormat")))+"
                                "+"
                                "+q(t.title||"")+"
                                "+"
                                "+"
                                ",e.isEnd&&D(t)&&(n+="
                                =
                                "),n+=""}function f(t,e,n){var r=e.find("div.fc-event-time");b(t)&&g(t,e,r),n.isEnd&&D(t)&&p(t,e,r),S(t,e)}function v(t,e,n){function r(){c||(e.width(a).height("").draggable("option","grid",null),c=!0)}var a,o,i,s=n.isStart,c=!0,u=N(),f=B(),v=I(),g=X(),p=W();e.draggable({opacity:y("dragOpacity","month"),revertDuration:y("dragRevertDuration"),start:function(n,p){w("eventDragStart",e,t,n,p),Z(t,e),a=e.width(),u.start(function(n,a){if(K(),n){o=!1;var u=P(0,a.col),p=P(0,n.col);i=h(p,u),n.row?s?c&&(e.width(f-10),T(e,v*Math.round((t.end?(t.end-t.start)/Re:y("defaultEventMinutes"))/g)),e.draggable("option","grid",[f,1]),c=!1):o=!0:(Q(l(d(t.start),i),l(C(t),i)),r()),o=o||c&&!i +}else r(),o=!0;e.draggable("option","revert",o)},n,"drag")},stop:function(n,a){if(u.stop(),K(),w("eventDragStop",e,t,n,a),o)r(),e.css("filter",""),U(t,e);else{var s=0;c||(s=Math.round((e.offset().top-J().offset().top)/v)*g+p-(60*t.start.getHours()+t.start.getMinutes())),G(this,t,i,s,c,n,a)}}})}function g(t,e,n){function r(){K(),s&&(f?(n.hide(),e.draggable("option","grid",null),Q(l(d(t.start),b),l(C(t),b))):(a(D),n.css("display",""),e.draggable("option","grid",[T,x])))}function a(e){var r,a=u(d(t.start),e);t.end&&(r=u(d(t.end),e)),n.text(ae(a,r,y("timeFormat")))}var o,i,s,c,f,v,g,p,b,D,M,E=m.getCoordinateGrid(),S=Y(),T=B(),x=I(),k=X();e.draggable({scroll:!1,grid:[T,x],axis:1==S?"y":!1,opacity:y("dragOpacity"),revertDuration:y("dragRevertDuration"),start:function(n,r){w("eventDragStart",e,t,n,r),Z(t,e),E.build(),o=e.position(),i=E.cell(n.pageX,n.pageY),s=c=!0,f=v=O(i),g=p=0,b=0,D=M=0},drag:function(t,n){var a=E.cell(t.pageX,t.pageY);if(s=!!a){if(f=O(a),g=Math.round((n.position.left-o.left)/T),g!=p){var l=P(0,i.col),u=i.col+g;u=Math.max(0,u),u=Math.min(S-1,u);var d=P(0,u);b=h(d,l)}f||(D=Math.round((n.position.top-o.top)/x)*k)}(s!=c||f!=v||g!=p||D!=M)&&(r(),c=s,v=f,p=g,M=D),e.draggable("option","revert",!s)},stop:function(n,a){K(),w("eventDragStop",e,t,n,a),s&&(f||b||D)?G(this,t,b,f?0:D,f,n,a):(s=!0,f=!1,g=0,b=0,D=0,r(),e.css("filter",""),e.css(o),U(t,e))}})}function p(t,e,n){var r,a,o=I(),i=X();e.resizable({handles:{s:".ui-resizable-handle"},grid:o,start:function(n,o){r=a=0,Z(t,e),w("eventResizeStart",this,t,n,o)},resize:function(s,l){r=Math.round((Math.max(o,e.height())-l.originalSize.height)/o),r!=a&&(n.text(ae(t.start,r||t.end?u(M(t),i*r):null,y("timeFormat"))),a=r)},stop:function(n,a){w("eventResizeStop",this,t,n,a),r?$(this,t,0,i*r,n,a):U(t,e)}})}var m=this;m.renderEvents=n,m.clearEvents=r,m.slotSegHtml=c,de.call(m);var y=m.opt,w=m.trigger,b=m.isEventDraggable,D=m.isEventResizable,M=m.eventEnd,S=m.eventElementHandlers,k=m.setHeight,H=m.getDaySegmentContainer,F=m.getSlotSegmentContainer,N=m.getHoverListener,z=m.getMaxMinute,W=m.getMinMinute,A=m.timePosition,O=m.getIsCellAllDay,L=m.colContentLeft,_=m.colContentRight,P=m.cellToDate,Y=m.getColCnt,B=m.getColWidth,I=m.getSnapHeight,X=m.getSnapMinutes,J=m.getSlotContainer,V=m.reportEventElement,U=m.showEvents,Z=m.hideEvents,G=m.eventDrop,$=m.eventResize,Q=m.renderDayOverlay,K=m.clearOverlays,te=m.renderDayEvents,ne=m.calendar,re=ne.formatDate,ae=ne.formatDates;m.draggableDayEvent=v}function ee(t){var e,n=ne(t),r=n[0];if(re(n),r){for(e=0;r.length>e;e++)ae(r[e]);for(e=0;r.length>e;e++)oe(r[e],0,0)}return ie(n)}function ne(t){var e,n,r,a=[];for(e=0;t.length>e;e++){for(n=t[e],r=0;a.length>r&&se(n,a[r]).length;r++);(a[r]||(a[r]=[])).push(n)}return a}function re(t){var e,n,r,a,o;for(e=0;t.length>e;e++)for(n=t[e],r=0;n.length>r;r++)for(a=n[r],a.forwardSegs=[],o=e+1;t.length>o;o++)se(a,t[o],a.forwardSegs)}function ae(t){var n,r,a=t.forwardSegs,o=0;if(t.forwardPressure===e){for(n=0;a.length>n;n++)r=a[n],ae(r),o=Math.max(o,1+r.forwardPressure);t.forwardPressure=o}}function oe(t,n,r){var a,o=t.forwardSegs;if(t.forwardCoord===e)for(o.length?(o.sort(ce),oe(o[0],n+1,r),t.forwardCoord=o[0].backwardCoord):t.forwardCoord=1,t.backwardCoord=t.forwardCoord-(t.forwardCoord-r)/(n+1),a=0;o.length>a;a++)oe(o[a],0,t.forwardCoord)}function ie(t){var e,n,r,a=[];for(e=0;t.length>e;e++)for(n=t[e],r=0;n.length>r;r++)a.push(n[r]);return a}function se(t,e,n){n=n||[];for(var r=0;e.length>r;r++)le(t,e[r])&&n.push(e[r]);return n}function le(t,e){return t.end>e.start&&t.starte;e++)n=t[e],j[n._id]?j[n._id].push(n):j[n._id]=[n]}function v(){j={},I={},J=[]}function g(t){return t.end?d(t.end):q(t)}function p(t,e){J.push({event:t,element:e}),I[t._id]?I[t._id].push(e):I[t._id]=[e]}function m(){t.each(J,function(t,e){_.trigger("eventDestroy",e.event,e.event,e.element)})}function y(t,n){n.click(function(r){return n.hasClass("ui-draggable-dragging")||n.hasClass("ui-resizable-resizing")?e:i("eventClick",this,t,r)}).hover(function(e){i("eventMouseover",this,t,e)},function(e){i("eventMouseout",this,t,e)})}function w(t,e){D(t,e,"show")}function b(t,e){D(t,e,"hide")}function D(t,e,n){var r,a=I[t._id],o=a.length;for(r=0;o>r;r++)e&&a[r][0]==e[0]||a[r][n]()}function C(t,e,n,r,a,o,s){var l=e.allDay,c=e._id;E(j[c],n,r,a),i("eventDrop",t,e,n,r,a,function(){E(j[c],-n,-r,l),B(c)},o,s),B(c)}function M(t,e,n,r,a,o){var s=e._id;S(j[s],n,r),i("eventResize",t,e,n,r,function(){S(j[s],-n,-r),B(s)},a,o),B(s)}function E(t,n,r,a){r=r||0;for(var o,i=t.length,s=0;i>s;s++)o=t[s],a!==e&&(o.allDay=a),u(l(o.start,n,!0),r),o.end&&(o.end=u(l(o.end,n,!0),r)),Y(o,V)}function S(t,e,n){n=n||0;for(var r,a=t.length,o=0;a>o;o++)r=t[o],r.end=u(l(g(r),e,!0),n),Y(r,V)}function T(t){return"object"==typeof t&&(t=t.getDay()),G[t]}function x(){return U}function k(t,e,n){for(e=e||1;G[(t.getDay()+(n?e:0)+7)%7];)l(t,e)}function H(){var t=F.apply(null,arguments),e=R(t),n=N(e);return n}function F(t,e){var n=_.getColCnt(),r=K?-1:1,a=K?n-1:0;"object"==typeof t&&(e=t.col,t=t.row);var o=t*n+(e*r+a);return o}function R(t){var e=_.visStart.getDay();return t+=$[e],7*Math.floor(t/U)+Q[(t%U+U)%U]-e}function N(t){var e=d(_.visStart);return l(e,t),e}function z(t){var e=W(t),n=A(e),r=O(n);return r}function W(t){return h(t,_.visStart)}function A(t){var e=_.visStart.getDay();return t+=e,Math.floor(t/7)*U+$[(t%7+7)%7]-$[e]}function O(t){var e=_.getColCnt(),n=K?-1:1,r=K?e-1:0,a=Math.floor(t/e),o=(t%e+e)%e*n+r;return{row:a,col:o}}function L(t,e){for(var n=_.getRowCnt(),r=_.getColCnt(),a=[],o=W(t),i=W(e),s=A(o),l=A(i)-1,c=0;n>c;c++){var u=c*r,f=u+r-1,d=Math.max(s,u),v=Math.min(l,f);if(v>=d){var h=O(d),g=O(v),p=[h.col,g.col].sort(),m=R(d)==o,y=R(v)+1==i;a.push({row:c,leftCol:p[0],rightCol:p[1],isStart:m,isEnd:y})}}return a}var _=this;_.element=n,_.calendar=r,_.name=a,_.opt=o,_.trigger=i,_.isEventDraggable=s,_.isEventResizable=c,_.setEventData=f,_.clearEventData=v,_.eventEnd=g,_.reportEventElement=p,_.triggerEventDestroy=m,_.eventElementHandlers=y,_.showEvents=w,_.hideEvents=b,_.eventDrop=C,_.eventResize=M;var q=_.defaultEventEnd,Y=r.normalizeEvent,B=r.reportEventChange,j={},I={},J=[],V=r.options;_.isHiddenDay=T,_.skipHiddenDays=k,_.getCellsPerWeek=x,_.dateToCell=z,_.dateToDayOffset=W,_.dayOffsetToCellOffset=A,_.cellOffsetToCell=O,_.cellToDate=H,_.cellToCellOffset=F,_.cellOffsetToDayOffset=R,_.dayOffsetToDate=N,_.rangeToSegments=L;var U,Z=o("hiddenDays")||[],G=[],$=[],Q=[],K=o("isRTL");(function(){o("weekends")===!1&&Z.push(0,6);for(var e=0,n=0;7>e;e++)$[e]=n,G[e]=-1!=t.inArray(e,Z),G[e]||(Q[n]=e,n++);if(U=n,!U)throw"invalid hiddenDays"})()}function de(){function e(t,e){var n=r(t,!1,!0);he(n,function(t,e){N(t.event,e)}),w(n,e),he(n,function(t,e){k("eventAfterRender",t.event,t.event,e)})}function n(t,e,n){var a=r([t],!0,!1),o=[];return he(a,function(t,r){t.row===e&&r.css("top",n),o.push(r[0])}),o}function r(e,n,r){var o,l,c=Z(),d=n?t("
                                "):c,v=a(e);return i(v),o=s(v),d[0].innerHTML=o,l=d.children(),n&&c.append(l),u(v,l),he(v,function(t,e){t.hsides=x(e,!0)}),he(v,function(t,e){e.width(Math.max(0,t.outerWidth-t.hsides))}),he(v,function(t,e){t.outerHeight=e.outerHeight(!0)}),f(v,r),v}function a(t){for(var e=[],n=0;t.length>n;n++){var r=o(t[n]);e.push.apply(e,r)}return e}function o(t){for(var e=t.start,n=C(t),r=ee(e,n),a=0;r.length>a;a++)r[a].event=t;return r}function i(t){for(var e=T("isRTL"),n=0;t.length>n;n++){var r=t[n],a=(e?r.isEnd:r.isStart)?V:X,o=(e?r.isStart:r.isEnd)?U:J,i=a(r.leftCol),s=o(r.rightCol);r.left=i,r.outerWidth=s-i}}function s(t){for(var e="",n=0;t.length>n;n++)e+=c(t[n]);return e}function c(t){var e="",n=T("isRTL"),r=t.event,a=r.url,o=["fc-event","fc-event-hori"];H(r)&&o.push("fc-event-draggable"),t.isStart&&o.push("fc-event-start"),t.isEnd&&o.push("fc-event-end"),o=o.concat(r.className),r.source&&(o=o.concat(r.source.className||[]));var i=j(r,T);return e+=a?""+"
                                ",!r.allDay&&t.isStart&&(e+=""+q(G(r.start,r.end,T("timeFormat")))+""),e+=""+q(r.title||"")+""+"
                                ",t.isEnd&&F(r)&&(e+="
                                "+"   "+"
                                "),e+=""}function u(e,n){for(var r=0;e.length>r;r++){var a=e[r],o=a.event,i=n.eq(r),s=k("eventRender",o,o,i);s===!1?i.remove():(s&&s!==!0&&(s=t(s).css({position:"absolute",left:a.left}),i.replaceWith(s),i=s),a.element=i)}}function f(t,e){var n=v(t),r=y(),a=[];if(e)for(var o=0;r.length>o;o++)r[o].height(n[o]);for(var o=0;r.length>o;o++)a.push(r[o].position().top);he(t,function(t,e){e.css("top",a[t.row]+t.top)})}function v(t){for(var e=P(),n=B(),r=[],a=g(t),o=0;e>o;o++){for(var i=a[o],s=[],l=0;n>l;l++)s.push(0);for(var c=0;i.length>c;c++){var u=i[c];u.top=L(s.slice(u.leftCol,u.rightCol+1));for(var l=u.leftCol;u.rightCol>=l;l++)s[l]=u.top+u.outerHeight}r.push(L(s))}return r}function g(t){var e,n,r,a=P(),o=[];for(e=0;t.length>e;e++)n=t[e],r=n.row,n.element&&(o[r]?o[r].push(n):o[r]=[n]);for(r=0;a>r;r++)o[r]=p(o[r]||[]);return o}function p(t){for(var e=[],n=m(t),r=0;n.length>r;r++)e.push.apply(e,n[r]);return e}function m(t){t.sort(ge);for(var e=[],n=0;t.length>n;n++){for(var r=t[n],a=0;e.length>a&&ve(r,e[a]);a++);e[a]?e[a].push(r):e[a]=[r]}return e}function y(){var t,e=P(),n=[];for(t=0;e>t;t++)n[t]=I(t).find("div.fc-day-content > div");return n}function w(t,e){var n=Z();he(t,function(t,n,r){var a=t.event;a._id===e?b(a,n,t):n[0]._fci=r}),E(n,t,b)}function b(t,e,n){H(t)&&S.draggableDayEvent(t,e,n),n.isEnd&&F(t)&&S.resizableDayEvent(t,e,n),z(t,e)}function D(t,e){var n,r=te();e.draggable({delay:50,opacity:T("dragOpacity"),revertDuration:T("dragRevertDuration"),start:function(a,o){k("eventDragStart",e,t,a,o),A(t,e),r.start(function(r,a,o,i){if(e.draggable("option","revert",!r||!o&&!i),Q(),r){var s=ne(a),c=ne(r);n=h(c,s),$(l(d(t.start),n),l(C(t),n))}else n=0},a,"drag")},stop:function(a,o){r.stop(),Q(),k("eventDragStop",e,t,a,o),n?O(this,t,n,0,t.allDay,a,o):(e.css("filter",""),W(t,e))}})}function M(e,r,a){var o=T("isRTL"),i=o?"w":"e",s=r.find(".ui-resizable-"+i),c=!1;Y(r),r.mousedown(function(t){t.preventDefault()}).click(function(t){c&&(t.preventDefault(),t.stopImmediatePropagation())}),s.mousedown(function(o){function s(n){k("eventResizeStop",this,e,n),t("body").css("cursor",""),u.stop(),Q(),f&&_(this,e,f,0,n),setTimeout(function(){c=!1},0)}if(1==o.which){c=!0;var u=te();P(),B();var f,d,v=r.css("top"),h=t.extend({},e),g=ie(oe(e.start));K(),t("body").css("cursor",i+"-resize").one("mouseup",s),k("eventResizeStart",this,e,o),u.start(function(r,o){if(r){var s=re(o),c=re(r);if(c=Math.max(c,g),f=ae(c)-ae(s)){h.end=l(R(e),f,!0);var u=d;d=n(h,a.row,v),d=t(d),d.find("*").css("cursor",i+"-resize"),u&&u.remove(),A(e)}else d&&(W(e),d.remove(),d=null);Q(),$(e.start,l(C(e),f))}},o)}})}var S=this;S.renderDayEvents=e,S.draggableDayEvent=D,S.resizableDayEvent=M;var T=S.opt,k=S.trigger,H=S.isEventDraggable,F=S.isEventResizable,R=S.eventEnd,N=S.reportEventElement,z=S.eventElementHandlers,W=S.showEvents,A=S.hideEvents,O=S.eventDrop,_=S.eventResize,P=S.getRowCnt,B=S.getColCnt;S.getColWidth;var I=S.allDayRow,X=S.colLeft,J=S.colRight,V=S.colContentLeft,U=S.colContentRight;S.dateToCell;var Z=S.getDaySegmentContainer,G=S.calendar.formatDates,$=S.renderDayOverlay,Q=S.clearOverlays,K=S.clearSelection,te=S.getHoverListener,ee=S.rangeToSegments,ne=S.cellToDate,re=S.cellToCellOffset,ae=S.cellOffsetToDayOffset,oe=S.dateToDayOffset,ie=S.dayOffsetToCellOffset}function ve(t,e){for(var n=0;e.length>n;n++){var r=e[n];if(r.leftCol<=t.rightCol&&r.rightCol>=t.leftCol)return!0}return!1}function he(t,e){for(var n=0;t.length>n;n++){var r=t[n],a=r.element;a&&e(r,a,n)}}function ge(t,e){return e.rightCol-e.leftCol-(t.rightCol-t.leftCol)||e.event.allDay-t.event.allDay||t.event.start-e.event.start||(t.event.title||"").localeCompare(e.event.title)}function pe(){function e(t,e,a){n(),e||(e=l(t,a)),c(t,e,a),r(t,e,a)}function n(t){f&&(f=!1,u(),s("unselect",null,t))}function r(t,e,n,r){f=!0,s("select",null,t,e,n,r)}function a(e){var a=o.cellToDate,s=o.getIsCellAllDay,l=o.getHoverListener(),f=o.reportDayClick;if(1==e.which&&i("selectable")){n(e);var d;l.start(function(t,e){u(),t&&s(t)?(d=[a(e),a(t)].sort(O),c(d[0],d[1],!0)):d=null},e),t(document).one("mouseup",function(t){l.stop(),d&&(+d[0]==+d[1]&&f(d[0],!0,t),r(d[0],d[1],!0,t))})}}var o=this;o.select=e,o.unselect=n,o.reportSelection=r,o.daySelectionMousedown=a;var i=o.opt,s=o.trigger,l=o.defaultSelectionEnd,c=o.renderSelection,u=o.clearSelection,f=!1;i("selectable")&&i("unselectAuto")&&t(document).mousedown(function(e){var r=i("unselectCancel");r&&t(e.target).parents(r).length||n(e)})}function me(){function e(e,n){var r=o.shift();return r||(r=t("
                                ")),r[0].parentNode!=n[0]&&r.appendTo(n),a.push(r.css(e).show()),r}function n(){for(var t;t=a.shift();)o.push(t.hide().unbind())}var r=this;r.renderOverlay=e,r.clearOverlays=n;var a=[],o=[]}function ye(t){var e,n,r=this;r.build=function(){e=[],n=[],t(e,n)},r.cell=function(t,r){var a,o=e.length,i=n.length,s=-1,l=-1;for(a=0;o>a;a++)if(r>=e[a][0]&&e[a][1]>r){s=a;break}for(a=0;i>a;a++)if(t>=n[a][0]&&n[a][1]>t){l=a;break}return s>=0&&l>=0?{row:s,col:l}:null},r.rect=function(t,r,a,o,i){var s=i.offset();return{top:e[t][0]-s.top,left:n[r][0]-s.left,width:n[o][1]-n[r][0],height:e[a][1]-e[t][0]}}}function we(e){function n(t){be(t);var n=e.cell(t.pageX,t.pageY);(!n!=!i||n&&(n.row!=i.row||n.col!=i.col))&&(n?(o||(o=n),a(n,o,n.row-o.row,n.col-o.col)):a(n,o),i=n)}var r,a,o,i,s=this;s.start=function(s,l,c){a=s,o=i=null,e.build(),n(l),r=c||"mousemove",t(document).bind(r,n)},s.stop=function(){return t(document).unbind(r,n),i}}function be(t){t.pageX===e&&(t.pageX=t.originalEvent.pageX,t.pageY=t.originalEvent.pageY)}function De(t){function n(e){return a[e]=a[e]||t(e)}var r=this,a={},o={},i={};r.left=function(t){return o[t]=o[t]===e?n(t).position().left:o[t]},r.right=function(t){return i[t]=i[t]===e?r.left(t)+n(t).width():i[t]},r.clear=function(){a={},o={},i={}}}var Ce={defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"iso",weekNumberTitle:"W",allDayDefault:!0,ignoreTimezone:!0,lazyFetching:!0,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '—'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:!1,firstDay:0,monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十月","十二月"],monthNamesShort:["一","二","三","四","五","六","七","八","九","十","十一","十二"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["日","一","二","三","四","五","六"],buttonText:{prev:"",next:"",prevYear:"«",nextYear:"»",today:"今天",month:"月",week:"周",day:"天"},theme:!1,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:!0,dropAccept:"*",handleWindowResize:!0},Me={header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"",next:"",prevYear:"»",nextYear:"«"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},Ee=t.fullCalendar={version:"1.6.4"},Se=Ee.views={};t.fn.fullCalendar=function(n){if("string"==typeof n){var a,o=Array.prototype.slice.call(arguments,1);return this.each(function(){var r=t.data(this,"fullCalendar");if(r&&t.isFunction(r[n])){var i=r[n].apply(r,o);a===e&&(a=i),"destroy"==n&&t.removeData(this,"fullCalendar")}}),a!==e?a:this}n=n||{};var i=n.eventSources||[];return delete n.eventSources,n.events&&(i.push(n.events),delete n.events),n=t.extend(!0,{},Ce,n.isRTL||n.isRTL===e&&Ce.isRTL?Me:{},n),this.each(function(e,a){var o=t(a),s=new r(o,n,i);o.data("fullCalendar",s),s.render()}),this},Ee.sourceNormalizers=[],Ee.sourceFetchers=[];var Te={dataType:"json",cache:!1},xe=1;Ee.addDays=l,Ee.cloneDate=d,Ee.parseDate=p,Ee.parseISO8601=m,Ee.parseTime=y,Ee.formatDate=w,Ee.formatDates=b;var ke=["日","一","二","三","四","五","六"],He=864e5,Fe=36e5,Re=6e4,Ne={s:function(t){return t.getSeconds()},ss:function(t){return _(t.getSeconds())},m:function(t){return t.getMinutes()},mm:function(t){return _(t.getMinutes())},h:function(t){return t.getHours()%12||12},hh:function(t){return _(t.getHours()%12||12)},H:function(t){return t.getHours()},HH:function(t){return _(t.getHours())},d:function(t){return t.getDate()},dd:function(t){return _(t.getDate())},ddd:function(t,e){return e.dayNamesShort[t.getDay()]},dddd:function(t,e){return e.dayNames[t.getDay()]},M:function(t){return t.getMonth()+1},MM:function(t){return _(t.getMonth()+1)},MMM:function(t,e){return e.monthNamesShort[t.getMonth()]},MMMM:function(t,e){return e.monthNames[t.getMonth()]},yy:function(t){return(t.getFullYear()+"").substring(2)},yyyy:function(t){return t.getFullYear()},t:function(t){return 12>t.getHours()?"a":"p"},tt:function(t){return 12>t.getHours()?"上午":"下午"},T:function(t){return 12>t.getHours()?"A":"P"},TT:function(t){return 12>t.getHours()?"上午":"下午"},u:function(t){return w(t,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(t){var e=t.getDate();return e>10&&20>e?"th":["st","nd","rd"][e%10-1]||"th"},w:function(t,e){return e.weekNumberCalculation(t)},W:function(t){return D(t)}};Ee.dateFormatters=Ne,Ee.applyAll=I,Se.month=J,Se.basicWeek=V,Se.basicDay=U,n({weekMode:"fixed"}),Se.agendaWeek=$,Se.agendaDay=Q,n({allDaySlot:!0,allDayText:"全天",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:.5},minTime:0,maxTime:24,slotEventOverlap:!0})})(jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/fullcalendar/moment.min.js b/novel-admin/src/main/resources/static/js/plugins/fullcalendar/moment.min.js new file mode 100644 index 0000000..c7f6dcd --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/fullcalendar/moment.min.js @@ -0,0 +1,7 @@ +//! moment.js +//! version : 2.9.0 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com +(function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(a,b){return Bb.call(a,b)}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function e(a){vb.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function f(a,b){var c=!0;return o(function(){return c&&(e(a),c=!1),b.apply(this,arguments)},b)}function g(a,b){sc[a]||(e(b),sc[a]=!0)}function h(a,b){return function(c){return r(a.call(this,c),b)}}function i(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function j(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return 0>b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function k(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function l(){}function m(a,b){b!==!1&&H(a),p(this,a),this._d=new Date(+a._d),uc===!1&&(uc=!0,vb.updateOffset(this),uc=!1)}function n(a){var b=A(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=vb.localeData(),this._bubble()}function o(a,b){for(var d in b)c(b,d)&&(a[d]=b[d]);return c(b,"toString")&&(a.toString=b.toString),c(b,"valueOf")&&(a.valueOf=b.valueOf),a}function p(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Kb.length>0)for(c in Kb)d=Kb[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function q(a){return 0>a?Math.ceil(a):Math.floor(a)}function r(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.lengthd;d++)(c&&a[d]!==b[d]||!c&&C(a[d])!==C(b[d]))&&g++;return g+f}function z(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=lc[a]||mc[b]||b}return a}function A(a){var b,d,e={};for(d in a)c(a,d)&&(b=z(d),b&&(e[b]=a[d]));return e}function B(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}vb[b]=function(e,f){var g,h,i=vb._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=vb().utc().set(d,a);return i.call(vb._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function C(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function D(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function E(a,b,c){return jb(vb([a,11,31+b-c]),b,c).week}function F(a){return G(a)?366:365}function G(a){return a%4===0&&a%100!==0||a%400===0}function H(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[Db]<0||a._a[Db]>11?Db:a._a[Eb]<1||a._a[Eb]>D(a._a[Cb],a._a[Db])?Eb:a._a[Fb]<0||a._a[Fb]>24||24===a._a[Fb]&&(0!==a._a[Gb]||0!==a._a[Hb]||0!==a._a[Ib])?Fb:a._a[Gb]<0||a._a[Gb]>59?Gb:a._a[Hb]<0||a._a[Hb]>59?Hb:a._a[Ib]<0||a._a[Ib]>999?Ib:-1,a._pf._overflowDayOfYear&&(Cb>b||b>Eb)&&(b=Eb),a._pf.overflow=b)}function I(b){return null==b._isValid&&(b._isValid=!isNaN(b._d.getTime())&&b._pf.overflow<0&&!b._pf.empty&&!b._pf.invalidMonth&&!b._pf.nullInput&&!b._pf.invalidFormat&&!b._pf.userInvalidated,b._strict&&(b._isValid=b._isValid&&0===b._pf.charsLeftOver&&0===b._pf.unusedTokens.length&&b._pf.bigHour===a)),b._isValid}function J(a){return a?a.toLowerCase().replace("_","-"):a}function K(a){for(var b,c,d,e,f=0;f0;){if(d=L(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&y(e,c,!0)>=b-1)break;b--}f++}return null}function L(a){var b=null;if(!Jb[a]&&Lb)try{b=vb.locale(),require("./locale/"+a),vb.locale(b)}catch(c){}return Jb[a]}function M(a,b){var c,d;return b._isUTC?(c=b.clone(),d=(vb.isMoment(a)||x(a)?+a:+vb(a))-+c,c._d.setTime(+c._d+d),vb.updateOffset(c,!1),c):vb(a).local()}function N(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function O(a){var b,c,d=a.match(Pb);for(b=0,c=d.length;c>b;b++)d[b]=rc[d[b]]?rc[d[b]]:N(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function P(a,b){return a.isValid()?(b=Q(b,a.localeData()),nc[b]||(nc[b]=O(b)),nc[b](a)):a.localeData().invalidDate()}function Q(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Qb.lastIndex=0;d>=0&&Qb.test(a);)a=a.replace(Qb,c),Qb.lastIndex=0,d-=1;return a}function R(a,b){var c,d=b._strict;switch(a){case"Q":return _b;case"DDDD":return bc;case"YYYY":case"GGGG":case"gggg":return d?cc:Tb;case"Y":case"G":case"g":return ec;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?dc:Ub;case"S":if(d)return _b;case"SS":if(d)return ac;case"SSS":if(d)return bc;case"DDD":return Sb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Wb;case"a":case"A":return b._locale._meridiemParse;case"x":return Zb;case"X":return $b;case"Z":case"ZZ":return Xb;case"T":return Yb;case"SSSS":return Vb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?ac:Rb;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Rb;case"Do":return d?b._locale._ordinalParse:b._locale._ordinalParseLenient;default:return c=new RegExp($(Z(a.replace("\\","")),"i"))}}function S(a){a=a||"";var b=a.match(Xb)||[],c=b[b.length-1]||[],d=(c+"").match(jc)||["-",0,0],e=+(60*d[1])+C(d[2]);return"+"===d[0]?e:-e}function T(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[Db]=3*(C(b)-1));break;case"M":case"MM":null!=b&&(e[Db]=C(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b,a,c._strict),null!=d?e[Db]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[Eb]=C(b));break;case"Do":null!=b&&(e[Eb]=C(parseInt(b.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=C(b));break;case"YY":e[Cb]=vb.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[Cb]=C(b);break;case"a":case"A":c._meridiem=b;break;case"h":case"hh":c._pf.bigHour=!0;case"H":case"HH":e[Fb]=C(b);break;case"m":case"mm":e[Gb]=C(b);break;case"s":case"ss":e[Hb]=C(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Ib]=C(1e3*("0."+b));break;case"x":c._d=new Date(C(b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=S(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=C(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=vb.parseTwoDigitYear(b)}}function U(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[Cb],jb(vb(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[Cb],jb(vb(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=kb(d,e,f,h,g),a._a[Cb]=i.year,a._dayOfYear=i.dayOfYear}function V(a){var c,d,e,f,g=[];if(!a._d){for(e=X(a),a._w&&null==a._a[Eb]&&null==a._a[Db]&&U(a),a._dayOfYear&&(f=b(a._a[Cb],e[Cb]),a._dayOfYear>F(f)&&(a._pf._overflowDayOfYear=!0),d=fb(f,0,a._dayOfYear),a._a[Db]=d.getUTCMonth(),a._a[Eb]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];24===a._a[Fb]&&0===a._a[Gb]&&0===a._a[Hb]&&0===a._a[Ib]&&(a._nextDay=!0,a._a[Fb]=0),a._d=(a._useUTC?fb:eb).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[Fb]=24)}}function W(a){var b;a._d||(b=A(a._i),a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],V(a))}function X(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function Y(b){if(b._f===vb.ISO_8601)return void ab(b);b._a=[],b._pf.empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=Q(b._f,b._locale).match(Pb)||[],c=0;c0&&b._pf.unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),rc[f]?(d?b._pf.empty=!1:b._pf.unusedTokens.push(f),T(f,d,b)):b._strict&&!d&&b._pf.unusedTokens.push(f);b._pf.charsLeftOver=i-j,h.length>0&&b._pf.unusedInput.push(h),b._pf.bigHour===!0&&b._a[Fb]<=12&&(b._pf.bigHour=a),b._a[Fb]=k(b._locale,b._a[Fb],b._meridiem),V(b),H(b)}function Z(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function $(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function _(a){var b,c,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(0/0));for(f=0;fg)&&(e=g,c=b));o(a,c||b)}function ab(a){var b,c,d=a._i,e=fc.exec(d);if(e){for(a._pf.iso=!0,b=0,c=hc.length;c>b;b++)if(hc[b][1].exec(d)){a._f=hc[b][0]+(e[6]||" ");break}for(b=0,c=ic.length;c>b;b++)if(ic[b][1].exec(d)){a._f+=ic[b][0];break}d.match(Xb)&&(a._f+="Z"),Y(a)}else a._isValid=!1}function bb(a){ab(a),a._isValid===!1&&(delete a._isValid,vb.createFromInputFallback(a))}function cb(a,b){var c,d=[];for(c=0;ca&&h.setFullYear(a),h}function fb(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function gb(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function hb(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function ib(a,b,c){var d=vb.duration(a).abs(),e=Ab(d.as("s")),f=Ab(d.as("m")),g=Ab(d.as("h")),h=Ab(d.as("d")),i=Ab(d.as("M")),j=Ab(d.as("y")),k=e0,k[4]=c,hb.apply({},k)}function jb(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=vb(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function kb(a,b,c,d,e){var f,g,h=fb(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:F(a-1)+g}}function lb(b){var c,d=b._i,e=b._f;return b._locale=b._locale||vb.localeData(b._l),null===d||e===a&&""===d?vb.invalid({nullInput:!0}):("string"==typeof d&&(b._i=d=b._locale.preparse(d)),vb.isMoment(d)?new m(d,!0):(e?w(e)?_(b):Y(b):db(b),c=new m(b),c._nextDay&&(c.add(1,"d"),c._nextDay=a),c))}function mb(a,b){var c,d;if(1===b.length&&w(b[0])&&(b=b[0]),!b.length)return vb();for(c=b[0],d=1;d=0?"+":"-";return b+r(Math.abs(a),6)},gg:function(){return r(this.weekYear()%100,2)},gggg:function(){return r(this.weekYear(),4)},ggggg:function(){return r(this.weekYear(),5)},GG:function(){return r(this.isoWeekYear()%100,2)},GGGG:function(){return r(this.isoWeekYear(),4)},GGGGG:function(){return r(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return C(this.milliseconds()/100)},SS:function(){return r(C(this.milliseconds()/10),2)},SSS:function(){return r(this.milliseconds(),3)},SSSS:function(){return r(this.milliseconds(),3)},Z:function(){var a=this.utcOffset(),b="+";return 0>a&&(a=-a,b="-"),b+r(C(a/60),2)+":"+r(C(a)%60,2)},ZZ:function(){var a=this.utcOffset(),b="+";return 0>a&&(a=-a,b="-"),b+r(C(a/60),2)+r(C(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},sc={},tc=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],uc=!1;pc.length;)xb=pc.pop(),rc[xb+"o"]=i(rc[xb],xb);for(;qc.length;)xb=qc.pop(),rc[xb+xb]=h(rc[xb],2);rc.DDDD=h(rc.DDD,3),o(l.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a,b,c){var d,e,f;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){if(e=vb.utc([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=vb([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.apply(b,[c]):d},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(a){return a},postformat:function(a){return a},week:function(a){return jb(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),vb=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=c,g._l=e,g._strict=f,g._isUTC=!1,g._pf=d(),lb(g)},vb.suppressDeprecationWarnings=!1,vb.createFromInputFallback=f("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),vb.min=function(){var a=[].slice.call(arguments,0);return mb("isBefore",a)},vb.max=function(){var a=[].slice.call(arguments,0);return mb("isAfter",a)},vb.utc=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=c,g._strict=f,g._pf=d(),lb(g).utc()},vb.unix=function(a){return vb(1e3*a)},vb.duration=function(a,b){var d,e,f,g,h=a,i=null;return vb.isDuration(a)?h={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(h={},b?h[b]=a:h.milliseconds=a):(i=Nb.exec(a))?(d="-"===i[1]?-1:1,h={y:0,d:C(i[Eb])*d,h:C(i[Fb])*d,m:C(i[Gb])*d,s:C(i[Hb])*d,ms:C(i[Ib])*d}):(i=Ob.exec(a))?(d="-"===i[1]?-1:1,f=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*d},h={y:f(i[2]),M:f(i[3]),d:f(i[4]),h:f(i[5]),m:f(i[6]),s:f(i[7]),w:f(i[8])}):null==h?h={}:"object"==typeof h&&("from"in h||"to"in h)&&(g=t(vb(h.from),vb(h.to)),h={},h.ms=g.milliseconds,h.M=g.months),e=new n(h),vb.isDuration(a)&&c(a,"_locale")&&(e._locale=a._locale),e},vb.version=yb,vb.defaultFormat=gc,vb.ISO_8601=function(){},vb.momentProperties=Kb,vb.updateOffset=function(){},vb.relativeTimeThreshold=function(b,c){return oc[b]===a?!1:c===a?oc[b]:(oc[b]=c,!0)},vb.lang=f("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return vb.locale(a,b)}),vb.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?vb.defineLocale(a,b):vb.localeData(a),c&&(vb.duration._locale=vb._locale=c)),vb._locale._abbr},vb.defineLocale=function(a,b){return null!==b?(b.abbr=a,Jb[a]||(Jb[a]=new l),Jb[a].set(b),vb.locale(a),Jb[a]):(delete Jb[a],null)},vb.langData=f("moment.langData is deprecated. Use moment.localeData instead.",function(a){return vb.localeData(a)}),vb.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return vb._locale;if(!w(a)){if(b=L(a))return b;a=[a]}return K(a)},vb.isMoment=function(a){return a instanceof m||null!=a&&c(a,"_isAMomentObject")},vb.isDuration=function(a){return a instanceof n};for(xb=tc.length-1;xb>=0;--xb)B(tc[xb]);vb.normalizeUnits=function(a){return z(a)},vb.invalid=function(a){var b=vb.utc(0/0);return null!=a?o(b._pf,a):b._pf.userInvalidated=!0,b},vb.parseZone=function(){return vb.apply(null,arguments).parseZone()},vb.parseTwoDigitYear=function(a){return C(a)+(C(a)>68?1900:2e3)},vb.isDate=x,o(vb.fn=m.prototype,{clone:function(){return vb(this)},valueOf:function(){return+this._d-6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=vb(this).utc();return 00:!1},parsingFlags:function(){return o({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.utcOffset(0,a)},local:function(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(this._dateUtcOffset(),"m")),this},format:function(a){var b=P(this,a||vb.defaultFormat);return this.localeData().postformat(b)},add:u(1,"add"),subtract:u(-1,"subtract"),diff:function(a,b,c){var d,e,f=M(a,this),g=6e4*(f.utcOffset()-this.utcOffset());return b=z(b),"year"===b||"month"===b||"quarter"===b?(e=j(this,f),"quarter"===b?e/=3:"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:q(e)},from:function(a,b){return vb.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(vb(),a)},calendar:function(a){var b=a||vb(),c=M(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this,vb(b)))},isLeapYear:function(){return G(this.year())},isDST:function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=gb(a,this.localeData()),this.add(a-b,"d")):b},month:qb("Month",!0),startOf:function(a){switch(a=z(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(b){return b=z(b),b===a||"millisecond"===b?this:this.startOf(b).add(1,"isoWeek"===b?"week":b).subtract(1,"ms")},isAfter:function(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=vb.isMoment(a)?a:vb(a),+this>+a):(c=vb.isMoment(a)?+a:+vb(a),c<+this.clone().startOf(b))},isBefore:function(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=vb.isMoment(a)?a:vb(a),+a>+this):(c=vb.isMoment(a)?+a:+vb(a),+this.clone().endOf(b)a?this:a}),max:f("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=vb.apply(null,arguments),a>this?this:a}),zone:f("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",function(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}),utcOffset:function(a,b){var c,d=this._offset||0;return null!=a?("string"==typeof a&&(a=S(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._dateUtcOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.add(c,"m"),d!==a&&(!b||this._changeInProgress?v(this,vb.duration(a-d,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,vb.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?d:this._dateUtcOffset()},isLocal:function(){return!this._isUTC},isUtcOffset:function(){return this._isUTC},isUtc:function(){return this._isUTC&&0===this._offset},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(S(this._i)),this},hasAlignedHourOffset:function(a){return a=a?vb(a).utcOffset():0,(this.utcOffset()-a)%60===0},daysInMonth:function(){return D(this.year(),this.month())},dayOfYear:function(a){var b=Ab((vb(this).startOf("day")-vb(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=jb(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=jb(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=jb(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return E(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return E(this.year(),a.dow,a.doy)},get:function(a){return a=z(a),this[a]()},set:function(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else a=z(a),"function"==typeof this[a]&&this[a](b);return this},locale:function(b){var c;return b===a?this._locale._abbr:(c=vb.localeData(b),null!=c&&(this._locale=c),this)},lang:f("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(b){return b===a?this.localeData():this.locale(b)}),localeData:function(){return this._locale},_dateUtcOffset:function(){return 15*-Math.round(this._d.getTimezoneOffset()/15)}}),vb.fn.millisecond=vb.fn.milliseconds=qb("Milliseconds",!1),vb.fn.second=vb.fn.seconds=qb("Seconds",!1),vb.fn.minute=vb.fn.minutes=qb("Minutes",!1),vb.fn.hour=vb.fn.hours=qb("Hours",!0),vb.fn.date=qb("Date",!0),vb.fn.dates=f("dates accessor is deprecated. Use date instead.",qb("Date",!0)),vb.fn.year=qb("FullYear",!0),vb.fn.years=f("years accessor is deprecated. Use year instead.",qb("FullYear",!0)),vb.fn.days=vb.fn.day,vb.fn.months=vb.fn.month,vb.fn.weeks=vb.fn.week,vb.fn.isoWeeks=vb.fn.isoWeek,vb.fn.quarters=vb.fn.quarter,vb.fn.toJSON=vb.fn.toISOString,vb.fn.isUTC=vb.fn.isUtc,o(vb.duration.fn=n.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=q(d/1e3),g.seconds=a%60,b=q(a/60),g.minutes=b%60,c=q(b/60),g.hours=c%24,e+=q(c/24),h=q(rb(e)),e-=q(sb(h)),f+=q(e/30),e%=30,h+=q(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return q(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*C(this._months/12) +},humanize:function(a){var b=ib(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=vb.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=vb.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=z(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=z(a),"month"===a||"year"===a)return b=this._days+this._milliseconds/864e5,c=this._months+12*rb(b),"month"===a?c:c/12;switch(b=this._days+Math.round(sb(this._months/12)),a){case"week":return b/7+this._milliseconds/6048e5;case"day":return b+this._milliseconds/864e5;case"hour":return 24*b+this._milliseconds/36e5;case"minute":return 24*b*60+this._milliseconds/6e4;case"second":return 24*b*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*b*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+a)}},lang:vb.fn.lang,locale:vb.fn.locale,toIsoString:f("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale},toJSON:function(){return this.toISOString()}}),vb.duration.fn.toString=vb.duration.fn.toISOString;for(xb in kc)c(kc,xb)&&tb(xb.toLowerCase());vb.duration.fn.asMilliseconds=function(){return this.as("ms")},vb.duration.fn.asSeconds=function(){return this.as("s")},vb.duration.fn.asMinutes=function(){return this.as("m")},vb.duration.fn.asHours=function(){return this.as("h")},vb.duration.fn.asDays=function(){return this.as("d")},vb.duration.fn.asWeeks=function(){return this.as("weeks")},vb.duration.fn.asMonths=function(){return this.as("M")},vb.duration.fn.asYears=function(){return this.as("y")},vb.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===C(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),Lb?module.exports=vb:"function"==typeof define&&define.amd?(define(function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(zb.moment=wb),vb}),ub(!0)):ub()}).call(this); diff --git a/novel-admin/src/main/resources/static/js/plugins/gritter/images/gritter-light.png b/novel-admin/src/main/resources/static/js/plugins/gritter/images/gritter-light.png new file mode 100644 index 0000000000000000000000000000000000000000..410929d5f5c92421f486f2d9d70d2eacd98aef77 GIT binary patch literal 5545 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

                                nhe{~8T0TKSIQ=5F)byL*S*|p!e@h<`Xkn4)SR8fiL9t$16#xTfLyr6m= z7Q81=pS+%Y>U)Hil#|P#W|6v$m�C%hKbuJ>y(;W& zda{DEtoIpQ1>82St|BJ~TS0hn4j)xYJ{9VIVMnMw5XJKrdU7y?uJqoTwyb+5Y-nhx zNA4qB^>{4l=;(-5Dex38mrI{EerfJ_BvrGr+#)#~ z#(UG!b+RVW|6o%_A=_d2qwZLxv&o;0iIfmh8V65L&k;H2%9;2q%^m%ufH*pzm!%Mq z;zp66C$CqKSPUw$0rO=|MZzMv{_Wya^STz2j9x)&M=fbWtJHow<^%L7n)G!o{#YI6 aToTmCCgjHJzVgR=V4$U@r&#h)yUAf^t80Ld^gF}W}@SOWlZ0R#L1 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/js/plugins/gritter/jquery.gritter.css b/novel-admin/src/main/resources/static/js/plugins/gritter/jquery.gritter.css new file mode 100644 index 0000000..f5fb8c7 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/gritter/jquery.gritter.css @@ -0,0 +1,138 @@ +/* the norm */ +#gritter-notice-wrapper { + position:fixed; + top:40px; + right:20px; + width:301px; + z-index:9999; + + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} +@keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(.3); + -ms-transform: scale(.3); + transform: scale(.3); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + -ms-transform: scale(1.05); + transform: scale(1.05); + } + + 70% { + -webkit-transform: scale(.9); + -ms-transform: scale(.9); + transform: scale(.9); + } + + 100% { + opacity: 1; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } +} +#gritter-notice-wrapper.top-left { + left: 20px; + right: auto; +} +#gritter-notice-wrapper.bottom-right { + top: auto; + left: auto; + bottom: 20px; + right: 20px; +} +#gritter-notice-wrapper.bottom-left { + top: auto; + right: auto; + bottom: 20px; + left: 20px; +} +.gritter-item-wrapper { + position:relative; + margin:0 0 10px 0; + background:url('images/ie-spacer.gif'); /* ie7/8 fix */ +} + +.hover .gritter-top { + /*background-position:right -30px;*/ +} +.gritter-bottom { + height:8px; + margin:0; +} + +.gritter-item { + display:block; + background-color: rgba(39,58,75,0.8); + border-radius: 4px; + color:#eee; + padding:10px 11px 10px 11px; + font-size: 11px; + font-family:verdana; +} +.hover .gritter-item { + background-position:right -40px; +} +.gritter-item p { + padding:0; + margin:0; + word-wrap:break-word; +} + +.gritter-item a:hover { + color: #f8ac59; + text-decoration: underline; +} +.gritter-close { + display:none; + position:absolute; + top:5px; + right:3px; + background:url(images/gritter.png) no-repeat left top; + cursor:pointer; + width:30px; + height:30px; + text-indent:-9999em; +} +.gritter-title { + font-size:12px; + font-weight:bold; + padding:0 0 7px 0; + display:block; + text-transform: uppercase; +} +.gritter-image { + width:48px; + height:48px; + float:left; +} +.gritter-with-image, +.gritter-without-image { + padding:0; +} +.gritter-with-image { + width:220px; + float:right; +} +/* for the light (white) version of the gritter notice */ +.gritter-light .gritter-item, +.gritter-light .gritter-bottom, +.gritter-light .gritter-top, +.gritter-light .gritter-close { + background-image: url(images/gritter-light.png); + color: #222; +} +.gritter-light .gritter-title { + text-shadow: none; +} diff --git a/novel-admin/src/main/resources/static/js/plugins/gritter/jquery.gritter.min.js b/novel-admin/src/main/resources/static/js/plugins/gritter/jquery.gritter.min.js new file mode 100644 index 0000000..77a8cf7 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/gritter/jquery.gritter.min.js @@ -0,0 +1 @@ +(function(b){b.gritter={};b.gritter.options={position:"",class_name:"",fade_in_speed:"medium",fade_out_speed:1000,time:6000};b.gritter.add=function(f){try{return a.add(f||{})}catch(d){var c="Gritter Error: "+d;(typeof(console)!="undefined"&&console.error)?console.error(c,f):alert(c)}};b.gritter.remove=function(d,c){a.removeSpecific(d,c||{})};b.gritter.removeAll=function(c){a.stop(c||{})};var a={position:"",fade_in_speed:"",fade_out_speed:"",time:"",_custom_timer:0,_item_count:0,_is_setup:0,_tpl_close:'Close Notification',_tpl_title:'[[title]]',_tpl_item:'

                                ',_tpl_wrap:'
                                ',add:function(g){if(typeof(g)=="string"){g={text:g}}if(g.text===null){throw'You must supply "text" parameter.'}if(!this._is_setup){this._runSetup()}var k=g.title,n=g.text,e=g.image||"",l=g.sticky||false,m=g.class_name||b.gritter.options.class_name,j=b.gritter.options.position,d=g.time||"";this._verifyWrapper();this._item_count++;var f=this._item_count,i=this._tpl_item;b(["before_open","after_open","before_close","after_close"]).each(function(p,q){a["_"+q+"_"+f]=(b.isFunction(g[q]))?g[q]:function(){}});this._custom_timer=0;if(d){this._custom_timer=d}var c=(e!="")?'image':"",h=(e!="")?"gritter-with-image":"gritter-without-image";if(k){k=this._str_replace("[[title]]",k,this._tpl_title)}else{k=""}i=this._str_replace(["[[title]]","[[text]]","[[close]]","[[image]]","[[number]]","[[class_name]]","[[item_class]]"],[k,n,this._tpl_close,c,this._item_count,h,m],i);if(this["_before_open_"+f]()===false){return false}b("#gritter-notice-wrapper").addClass(j).append(i);var o=b("#gritter-item-"+this._item_count);o.fadeIn(this.fade_in_speed,function(){a["_after_open_"+f](b(this))});if(!l){this._setFadeTimer(o,f)}b(o).bind("mouseenter mouseleave",function(p){if(p.type=="mouseenter"){if(!l){a._restoreItemIfFading(b(this),f)}}else{if(!l){a._setFadeTimer(b(this),f)}}a._hoverState(b(this),p.type)});b(o).find(".gritter-close").click(function(){a.removeSpecific(f,{},null,true);return false;});return f},_countRemoveWrapper:function(c,d,f){d.remove();this["_after_close_"+c](d,f);if(b(".gritter-item-wrapper").length==0){b("#gritter-notice-wrapper").remove()}},_fade:function(g,d,j,f){var j=j||{},i=(typeof(j.fade)!="undefined")?j.fade:true,c=j.speed||this.fade_out_speed,h=f;this["_before_close_"+d](g,h);if(f){g.unbind("mouseenter mouseleave")}if(i){g.animate({opacity:0},c,function(){g.animate({height:0},300,function(){a._countRemoveWrapper(d,g,h)})})}else{this._countRemoveWrapper(d,g)}},_hoverState:function(d,c){if(c=="mouseenter"){d.addClass("hover");d.find(".gritter-close").show()}else{d.removeClass("hover");d.find(".gritter-close").hide()}},removeSpecific:function(c,g,f,d){if(!f){var f=b("#gritter-item-"+c)}this._fade(f,c,g||{},d)},_restoreItemIfFading:function(d,c){clearTimeout(this["_int_id_"+c]);d.stop().css({opacity:"",height:""})},_runSetup:function(){for(opt in b.gritter.options){this[opt]=b.gritter.options[opt]}this._is_setup=1},_setFadeTimer:function(f,d){var c=(this._custom_timer)?this._custom_timer:this.time;this["_int_id_"+d]=setTimeout(function(){a._fade(f,d)},c)},stop:function(e){var c=(b.isFunction(e.before_close))?e.before_close:function(){};var f=(b.isFunction(e.after_close))?e.after_close:function(){};var d=b("#gritter-notice-wrapper");c(d);d.fadeOut(function(){b(this).remove();f()})},_str_replace:function(v,e,o,n){var k=0,h=0,t="",m="",g=0,q=0,l=[].concat(v),c=[].concat(e),u=o,d=c instanceof Array,p=u instanceof Array;u=[].concat(u);if(n){this.window[n]=0}for(k=0,g=u.length;kp&&(p=-50);g(this);return c.each(function(){var a=f(this);E(a);var c=this, + b=c.id,g=-p+"%",d=100+2*p+"%",d={position:"absolute",top:g,left:g,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},g=_mobile?{position:"absolute",visibility:"hidden"}:p?d:{position:"absolute",opacity:0},l="checkbox"==c[_type]?e.checkboxClass||"icheckbox":e.radioClass||"i"+r,z=f(_label+'[for="'+b+'"]').add(a.closest(_label)),u=!!e.aria,y=m+"-"+Math.random().toString(36).substr(2,6),h='
                                ")[_callback]("ifCreated").parent().append(e.insert);d=f('').css(d).appendTo(h);a.data(m,{o:e,s:a.attr("style")}).css(g);e.inheritClass&&h[_add](c.className||"");e.inheritID&&b&&h.attr("id",m+"-"+b);"static"==h.css("position")&&h.css("position","relative");A(a,!0,_update);if(z.length)z.on(_click+".i mouseover.i mouseout.i "+_touch,function(b){var d=b[_type],e=f(this);if(!c[n]){if(d==_click){if(f(b.target).is("a"))return; + A(a,!1,!0)}else B&&(/ut|nd/.test(d)?(h[_remove](v),e[_remove](w)):(h[_add](v),e[_add](w)));if(_mobile)b.stopPropagation();else return!1}});a.on(_click+".i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[_type];b=b.keyCode;if(d==_click)return!1;if("keydown"==d&&32==b)return c[_type]==r&&c[k]||(c[k]?q(a,k):x(a,k)),!1;if("keyup"==d&&c[_type]==r)!c[k]&&x(a,k);else if(/us|ur/.test(d))h["blur"==d?_remove:_add](s)});d.on(_click+" mousedown mouseup mouseover mouseout "+_touch,function(b){var d= + b[_type],e=/wn|up/.test(d)?t:v;if(!c[n]){if(d==_click)A(a,!1,!0);else{if(/wn|er|in/.test(d))h[_add](e);else h[_remove](e+" "+t);if(z.length&&B&&e==v)z[/ut|nd/.test(d)?_remove:_add](w)}if(_mobile)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto); diff --git a/novel-admin/src/main/resources/static/js/plugins/ionRangeSlider/ion.rangeSlider.min.js b/novel-admin/src/main/resources/static/js/plugins/ionRangeSlider/ion.rangeSlider.min.js new file mode 100644 index 0000000..1d6c6dc --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/ionRangeSlider/ion.rangeSlider.min.js @@ -0,0 +1,26 @@ +// Ion.RangeSlider | version 1.9.1 | https://github.com/IonDen/ion.rangeSlider +(function(c,ea,$,M){var aa=0,s,S=function(){var c=M.userAgent,a=/msie\s\d+/i;return 0c)?!0:!1}(),X="ontouchstart"in $||0a.max&&(a.from=a.min);a.toa.max&&(a.to=a.max);"double"===a.type&&(a.from>a.to&&(a.from=a.to),a.to';e[0].style.display="none";e.before(g);var p=e.prev(),J=c(ea.body),T=c($),q,C,D,A,B,w,x,m,t,r,H,M,v=!1,y=!1,E=!0,f={},U=0,O=0,P=0,l=0,F=0,G=0,V=0,Q=0,R=0,Y=0,u=0;parseInt(a.step, +10)!==parseFloat(a.step)&&(u=a.step.toString().split(".")[1],u=Math.pow(10,u.length));this.updateData=function(b){E=!0;a=c.extend(a,b);p.find("*").off();T.off("mouseup.irs"+n.pluginCount);J.off("mouseup.irs"+n.pluginCount);J.off("mousemove.irs"+n.pluginCount);p.html("");ba()};this.removeSlider=function(){p.find("*").off();T.off("mouseup.irs"+n.pluginCount);J.off("mouseup.irs"+n.pluginCount);J.off("mousemove.irs"+n.pluginCount);p.html("").remove();e.data("isActive",!1);e.show()};var ba=function(){p.html('01000'); +q=p.find(".irs");C=q.find(".irs-min");D=q.find(".irs-max");A=q.find(".irs-from");B=q.find(".irs-to");w=q.find(".irs-single");M=p.find(".irs-grid");a.hideFromTo&&(A[0].style.visibility="hidden",B[0].style.visibility="hidden",w[0].style.visibility="hidden");a.hideFromTo||(A[0].style.visibility="visible",B[0].style.visibility="visible",w[0].style.visibility="visible");a.hideMinMax&&(C[0].style.visibility="hidden",D[0].style.visibility="hidden",P=O=0);a.hideMinMax||(C[0].style.visibility="visible",D[0].style.visibility= +"visible",a.values?(C.html(a.prefix+a.values[0]+a.postfix),D.html(a.prefix+a.values[a.values.length-1]+a.maxPostfix+a.postfix)):(C.html(a.prefix+z(a.min)+a.postfix),D.html(a.prefix+z(a.max)+a.maxPostfix+a.postfix)),O=C.outerWidth(),P=D.outerWidth());ga()},ga=function(){if("single"===a.type){if(q.append(''),x=q.find(".single"),x.on("mousedown",function(a){a.preventDefault();a.stopPropagation();K(a,c(this),null);y=v=!0;s=n.pluginCount;S&&c("*").prop("unselectable", +!0)}),X)x.on("touchstart",function(a){a.preventDefault();a.stopPropagation();K(a.originalEvent.touches[0],c(this),null);y=v=!0;s=n.pluginCount})}else"double"===a.type&&(q.append(''),m=q.find(".from"),t=q.find(".to"),H=q.find(".irs-diapason"),L(),m.on("mousedown",function(a){a.preventDefault();a.stopPropagation();c(this).addClass("last");t.removeClass("last");K(a,c(this),"from");y=v=!0;s=n.pluginCount; +S&&c("*").prop("unselectable",!0)}),t.on("mousedown",function(a){a.preventDefault();a.stopPropagation();c(this).addClass("last");m.removeClass("last");K(a,c(this),"to");y=v=!0;s=n.pluginCount;S&&c("*").prop("unselectable",!0)}),X&&(m.on("touchstart",function(a){a.preventDefault();a.stopPropagation();c(this).addClass("last");t.removeClass("last");K(a.originalEvent.touches[0],c(this),"from");y=v=!0;s=n.pluginCount}),t.on("touchstart",function(a){a.preventDefault();a.stopPropagation();c(this).addClass("last"); +m.removeClass("last");K(a.originalEvent.touches[0],c(this),"to");y=v=!0;s=n.pluginCount})),a.to===a.max&&m.addClass("last"));J.on("mouseup.irs"+n.pluginCount,function(){s===n.pluginCount&&v&&(v=y=!1,r.removeAttr("id"),r=null,"double"===a.type&&L(),Z(),S&&c("*").prop("unselectable",!1))});J.on("mousemove.irs"+n.pluginCount,function(a){v&&(U=a.pageX,W())});p.on("mousedown",function(){s=n.pluginCount});p.on("mouseup",function(b){if(s===n.pluginCount&&!v&&!a.disable){b=b.pageX;E=!1;b-=p.offset().left; +var d=f.fromX+(f.toX-f.fromX)/2;Q=0;V=q.width()-G;R=q.width()-G;"single"===a.type?(r=x,r.attr("id","irs-active-slider"),W(b)):"double"===a.type&&(r=b<=d?m:t,r.attr("id","irs-active-slider"),W(b),L());r.removeAttr("id");r=null}});X&&(T.on("touchend",function(){v&&(v=y=!1,r.removeAttr("id"),r=null,"double"===a.type&&L(),Z())}),T.on("touchmove",function(a){v&&(U=a.originalEvent.touches[0].pageX,W())}));ca();ha();a.hasGrid&&ia();a.disable?(p.addClass("irs-disabled"),p.append('')): +(p.removeClass("irs-disabled"),p.find(".irs-disable-mask").remove())},ca=function(){l=q.width();G=x?x.width():m.width();F=l-G},K=function(b,d,h){ca();E=!1;r=d;r.attr("id","irs-active-slider");d=r.offset().left;Y=d+(b.pageX-d)-r.position().left;"single"===a.type?V=q.width()-G:"double"===a.type&&("from"===h?(Q=0,R=parseInt(t.css("left"),10)):(Q=parseInt(m.css("left"),10),R=q.width()-G))},L=function(){var a=m.width(),d=c.data(m[0],"x")||parseInt(m[0].style.left,10)||m.position().left,h=(c.data(t[0], +"x")||parseInt(t[0].style.left,10)||t.position().left)-d;H[0].style.left=d+a/2+"px";H[0].style.width=h+"px"},W=function(b){var d=U-Y,d=b?b:U-Y;"single"===a.type?(0>d&&(d=0),d>V&&(d=V)):"double"===a.type&&(dR&&(d=R),L());c.data(r[0],"x",d);Z();b=Math.round(d);r[0].style.left=b+"px"},Z=function(){var b={input:e,slider:p,min:a.min,max:a.max,fromNumber:0,toNumber:0,fromPers:0,toPers:0,fromX:0,fromX_pure:0,toX:0,toX_pure:0},d=a.max-a.min,h;"single"===a.type?(b.fromX=c.data(x[0],"x")||parseInt(x[0].style.left, +10)||x.position().left,b.fromPers=b.fromX/F*100,h=d/100*b.fromPers+a.min,b.fromNumber=Math.round(h/a.step)*a.step,b.fromNumbera.max&&(b.fromNumber=a.max),u&&(b.fromNumber=parseInt(b.fromNumber*u,10)/u),I&&(b.fromValue=a.values[b.fromNumber])):"double"===a.type&&(b.fromX=c.data(m[0],"x")||parseInt(m[0].style.left,10)||m.position().left,b.fromPers=b.fromX/F*100,h=d/100*b.fromPers+a.min,b.fromNumber=Math.round(h/a.step)*a.step,b.fromNumbera.max&&(b.toNumber=a.max),u&&(b.fromNumber=parseInt(b.fromNumber*u,10)/u,b.toNumber=parseInt(b.toNumber*u,10)/u),I&&(b.fromValue=a.values[b.fromNumber],b.toValue=a.values[b.toNumber]));f=b;da()},ha=function(){var b={input:e,slider:p,min:a.min,max:a.max,fromNumber:a.from,toNumber:a.to,fromPers:0,toPers:0,fromX:0,fromX_pure:0,toX:0, +toX_pure:0},d=a.max-a.min;"single"===a.type?(b.fromPers=0!==d?(b.fromNumber-a.min)/d*100:0,b.fromX_pure=F/100*b.fromPers,b.fromX=Math.round(b.fromX_pure),x[0].style.left=b.fromX+"px",c.data(x[0],"x",b.fromX_pure)):"double"===a.type&&(b.fromPers=0!==d?(b.fromNumber-a.min)/d*100:0,b.fromX_pure=F/100*b.fromPers,b.fromX=Math.round(b.fromX_pure),m[0].style.left=b.fromX+"px",c.data(m[0],"x",b.fromX_pure),b.toPers=0!==d?(b.toNumber-a.min)/d*100:1,b.toX_pure=F/100*b.toPers,b.toX=Math.round(b.toX_pure),t[0].style.left= +b.toX+"px",c.data(t[0],"x",b.toX_pure),L());f=b;da()},da=function(){var b,d,h,c,g,k;k=G/2;h="";"single"===a.type?(h=f.fromNumber===a.max?a.maxPostfix:"",A[0].style.display="none",B[0].style.display="none",h=I?a.prefix+a.values[f.fromNumber]+h+a.postfix:a.prefix+z(f.fromNumber)+h+a.postfix,w.html(h),g=w.outerWidth(),k=f.fromX-g/2+k,0>k&&(k=0),k>l-g&&(k=l-g),w[0].style.left=k+"px",a.hideMinMax||a.hideFromTo||(C[0].style.display=kl-P?"none":"block"),e.attr("value", +parseFloat(f.fromNumber))):"double"===a.type&&(h=f.toNumber===a.max?a.maxPostfix:"",I?(b=a.prefix+a.values[f.fromNumber]+a.postfix,d=a.prefix+a.values[f.toNumber]+h+a.postfix,h=f.fromNumber!==f.toNumber?a.prefix+a.values[f.fromNumber]+" \u2014 "+a.prefix+a.values[f.toNumber]+h+a.postfix:a.prefix+a.values[f.fromNumber]+h+a.postfix):(b=a.prefix+z(f.fromNumber)+a.postfix,d=a.prefix+z(f.toNumber)+h+a.postfix,h=f.fromNumber!==f.toNumber?a.prefix+z(f.fromNumber)+" \u2014 "+a.prefix+z(f.toNumber)+h+a.postfix: +a.prefix+z(f.fromNumber)+h+a.postfix),A.html(b),B.html(d),w.html(h),b=A.outerWidth(),d=f.fromX-b/2+k,0>d&&(d=0),d>l-b&&(d=l-b),A[0].style.left=d+"px",h=B.outerWidth(),c=f.toX-h/2+k,0>c&&(c=0),c>l-h&&(c=l-h),B[0].style.left=c+"px",g=w.outerWidth(),k=f.fromX+(f.toX-f.fromX)/2-g/2+k,0>k&&(k=0),k>l-g&&(k=l-g),w[0].style.left=k+"px",d+bl-P||c+h>l-P?"none":"block"),e.attr("value",parseFloat(f.fromNumber)+";"+parseFloat(f.toNumber)));ja()},ja=function(){"function"!==typeof a.onFinish||y||E||a.onFinish.call(this,f);"function"!==typeof a.onChange||E||a.onChange.call(this,f);"function"===typeof a.onLoad&&!y&&E&&(a.onLoad.call(this,f),E=!1)},ia=function(){p.addClass("irs-with-grid");var b,d="",c=0,c=0,e="";for(b=0;20>=b;b+=1)c=Math.floor(l/20*b),c>=l&&(c= +l-1),e+='';for(b=0;4>=b;b+=1)c=Math.floor(l/4*b),c>=l&&(c=l-1),e+='',u?(d=a.min+(a.max-a.min)/4*b,d=d/a.step*a.step,d=parseInt(d*u,10)/u):(d=Math.round(a.min+(a.max-a.min)/4*b),d=Math.round(d/a.step)*a.step,d=z(d)),I&&(a.hideMinMax?(d=Math.round(a.min+(a.max-a.min)/4*b),d=Math.round(d/a.step)*a.step,d=0===b||4===b?a.values[d]:""):d=""),0===b?e+=''+d+"":4===b?(c-=100,e+=''+d+""):(c-=50,e+=''+d+"");M.html(e)};ba()}})},update:function(c){return this.each(function(){this.updateData(c)})},remove:function(){return this.each(function(){this.removeSlider()})}};c.fn.ionRangeSlider=function(s){if(H[s])return H[s].apply(this,Array.prototype.slice.call(arguments,1));if("object"!==typeof s&& +s)c.error("Method "+s+" does not exist for jQuery.ionRangeSlider");else return H.init.apply(this,arguments)}})(jQuery,document,window,navigator); diff --git a/novel-admin/src/main/resources/static/js/plugins/ionRangeSlider/jasny/jasny-bootstrap.min.js b/novel-admin/src/main/resources/static/js/plugins/ionRangeSlider/jasny/jasny-bootstrap.min.js new file mode 100644 index 0000000..c823704 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/ionRangeSlider/jasny/jasny-bootstrap.min.js @@ -0,0 +1,6 @@ +/*! + * Jasny Bootstrap v3.1.2 (http://jasny.github.io/bootstrap) + * Copyright 2012-2014 Arnold Daniels + * Licensed under Apache-2.0 (https://github.com/jasny/bootstrap/blob/master/LICENSE) + */ +if("undefined"==typeof jQuery)throw new Error("Jasny Bootstrap's JavaScript requires 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}void 0===a.support.transition&&(a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,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()}))}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.state=null,this.placement=null,this.options.recalc&&(this.calcClone(),a(window).on("resize",a.proxy(this.recalc,this))),this.options.autohide&&a(document).on("click",a.proxy(this.autohide,this)),this.options.toggle&&this.toggle(),this.options.disablescrolling&&(this.options.disableScrolling=this.options.disablescrolling,delete this.options.disablescrolling)};b.DEFAULTS={toggle:!0,placement:"auto",autohide:!0,recalc:!0,disableScrolling:!0},b.prototype.offset=function(){switch(this.placement){case"left":case"right":return this.$element.outerWidth();case"top":case"bottom":return this.$element.outerHeight()}},b.prototype.calcPlacement=function(){function b(a,b){if("auto"===e.css(b))return a;if("auto"===e.css(a))return b;var c=parseInt(e.css(a),10),d=parseInt(e.css(b),10);return c>d?b:a}if("auto"!==this.options.placement)return void(this.placement=this.options.placement);this.$element.hasClass("in")||this.$element.css("visiblity","hidden !important").addClass("in");var c=a(window).width()/this.$element.width(),d=a(window).height()/this.$element.height(),e=this.$element;this.placement=c>=d?b("left","right"):b("top","bottom"),"hidden !important"===this.$element.css("visibility")&&this.$element.removeClass("in").css("visiblity","")},b.prototype.opposite=function(a){switch(a){case"top":return"bottom";case"left":return"right";case"bottom":return"top";case"right":return"left"}},b.prototype.getCanvasElements=function(){var b=this.options.canvas?a(this.options.canvas):this.$element,c=b.find("*").filter(function(){return"fixed"===a(this).css("position")}).not(this.options.exclude);return b.add(c)},b.prototype.slide=function(b,c,d){if(!a.support.transition){var e={};return e[this.placement]="+="+c,b.animate(e,350,d)}var f=this.placement,g=this.opposite(f);b.each(function(){"auto"!==a(this).css(f)&&a(this).css(f,(parseInt(a(this).css(f),10)||0)+c),"auto"!==a(this).css(g)&&a(this).css(g,(parseInt(a(this).css(g),10)||0)-c)}),this.$element.one(a.support.transition.end,d).emulateTransitionEnd(350)},b.prototype.disableScrolling=function(){var b=a("body").width(),c="padding-"+this.opposite(this.placement);if(void 0===a("body").data("offcanvas-style")&&a("body").data("offcanvas-style",a("body").attr("style")),a("body").css("overflow","hidden"),a("body").width()>b){var d=parseInt(a("body").css(c),10)+a("body").width()-b;setTimeout(function(){a("body").css(c,d)},1)}},b.prototype.show=function(){if(!this.state){var b=a.Event("show.bs.offcanvas");if(this.$element.trigger(b),!b.isDefaultPrevented()){this.state="slide-in",this.calcPlacement();var c=this.getCanvasElements(),d=this.placement,e=this.opposite(d),f=this.offset();-1!==c.index(this.$element)&&(a(this.$element).data("offcanvas-style",a(this.$element).attr("style")||""),this.$element.css(d,-1*f),this.$element.css(d)),c.addClass("canvas-sliding").each(function(){void 0===a(this).data("offcanvas-style")&&a(this).data("offcanvas-style",a(this).attr("style")||""),"static"===a(this).css("position")&&a(this).css("position","relative"),"auto"!==a(this).css(d)&&"0px"!==a(this).css(d)||"auto"!==a(this).css(e)&&"0px"!==a(this).css(e)||a(this).css(d,0)}),this.options.disableScrolling&&this.disableScrolling();var g=function(){"slide-in"==this.state&&(this.state="slid",c.removeClass("canvas-sliding").addClass("canvas-slid"),this.$element.trigger("shown.bs.offcanvas"))};setTimeout(a.proxy(function(){this.$element.addClass("in"),this.slide(c,f,a.proxy(g,this))},this),1)}}},b.prototype.hide=function(){if("slid"===this.state){var b=a.Event("hide.bs.offcanvas");if(this.$element.trigger(b),!b.isDefaultPrevented()){this.state="slide-out";var c=a(".canvas-slid"),d=(this.placement,-1*this.offset()),e=function(){"slide-out"==this.state&&(this.state=null,this.placement=null,this.$element.removeClass("in"),c.removeClass("canvas-sliding"),c.add(this.$element).add("body").each(function(){a(this).attr("style",a(this).data("offcanvas-style")).removeData("offcanvas-style")}),this.$element.trigger("hidden.bs.offcanvas"))};c.removeClass("canvas-slid").addClass("canvas-sliding"),setTimeout(a.proxy(function(){this.slide(c,d,a.proxy(e,this))},this),1)}}},b.prototype.toggle=function(){"slide-in"!==this.state&&"slide-out"!==this.state&&this["slid"===this.state?"hide":"show"]()},b.prototype.calcClone=function(){this.$calcClone=this.$element.clone().html("").addClass("offcanvas-clone").removeClass("in").appendTo(a("body"))},b.prototype.recalc=function(){if("none"!==this.$calcClone.css("display")&&("slid"===this.state||"slide-in"===this.state)){this.state=null,this.placement=null;var b=this.getCanvasElements();this.$element.removeClass("in"),b.removeClass("canvas-slid"),b.add(this.$element).add("body").each(function(){a(this).attr("style",a(this).data("offcanvas-style")).removeData("offcanvas-style")})}},b.prototype.autohide=function(b){0===a(b.target).closest(this.$element).length&&this.hide()};var c=a.fn.offcanvas;a.fn.offcanvas=function(c){return this.each(function(){var d=a(this),e=d.data("bs.offcanvas"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.offcanvas",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.offcanvas.Constructor=b,a.fn.offcanvas.noConflict=function(){return a.fn.offcanvas=c,this},a(document).on("click.bs.offcanvas.data-api","[data-toggle=offcanvas]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.offcanvas"),h=g?"toggle":d.data();b.stopPropagation(),g?g.toggle():f.offcanvas(h)})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.$element.on("click.bs.rowlink","td:not(.rowlink-skip)",a.proxy(this.click,this))};b.DEFAULTS={target:"a"},b.prototype.click=function(b){var c=a(b.currentTarget).closest("tr").find(this.options.target)[0];if(a(b.target)[0]!==c)if(b.preventDefault(),c.click)c.click();else if(document.createEvent){var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),c.dispatchEvent(d)}};var c=a.fn.rowlink;a.fn.rowlink=function(c){return this.each(function(){var d=a(this),e=d.data("rowlink");e||d.data("rowlink",e=new b(this,c))})},a.fn.rowlink.Constructor=b,a.fn.rowlink.noConflict=function(){return a.fn.rowlink=c,this},a(document).on("click.bs.rowlink.data-api",'[data-link="row"]',function(b){if(0===a(b.target).closest(".rowlink-skip").length){var c=a(this);c.data("rowlink")||(c.rowlink(c.data()),a(b.target).trigger("click.bs.rowlink"))}})}(window.jQuery),+function(a){"use strict";var b=void 0!==window.orientation,c=navigator.userAgent.toLowerCase().indexOf("android")>-1,d="Microsoft Internet Explorer"==window.navigator.appName,e=function(b,d){c||(this.$element=a(b),this.options=a.extend({},e.DEFAULTS,d),this.mask=String(this.options.mask),this.init(),this.listen(),this.checkVal())};e.DEFAULTS={mask:"",placeholder:"_",definitions:{9:"[0-9]",a:"[A-Za-z]","?":"[A-Za-z0-9]","*":"."}},e.prototype.init=function(){var b=this.options.definitions,c=this.mask.length;this.tests=[],this.partialPosition=this.mask.length,this.firstNonMaskPos=null,a.each(this.mask.split(""),a.proxy(function(a,d){"?"==d?(c--,this.partialPosition=a):b[d]?(this.tests.push(new RegExp(b[d])),null===this.firstNonMaskPos&&(this.firstNonMaskPos=this.tests.length-1)):this.tests.push(null)},this)),this.buffer=a.map(this.mask.split(""),a.proxy(function(a){return"?"!=a?b[a]?this.options.placeholder:a:void 0},this)),this.focusText=this.$element.val(),this.$element.data("rawMaskFn",a.proxy(function(){return a.map(this.buffer,function(a,b){return this.tests[b]&&a!=this.options.placeholder?a:null}).join("")},this))},e.prototype.listen=function(){if(!this.$element.attr("readonly")){var b=(d?"paste":"input")+".mask";this.$element.on("unmask.bs.inputmask",a.proxy(this.unmask,this)).on("focus.bs.inputmask",a.proxy(this.focusEvent,this)).on("blur.bs.inputmask",a.proxy(this.blurEvent,this)).on("keydown.bs.inputmask",a.proxy(this.keydownEvent,this)).on("keypress.bs.inputmask",a.proxy(this.keypressEvent,this)).on(b,a.proxy(this.pasteEvent,this))}},e.prototype.caret=function(a,b){if(0!==this.$element.length){if("number"==typeof a)return b="number"==typeof b?b:a,this.$element.each(function(){if(this.setSelectionRange)this.setSelectionRange(a,b);else if(this.createTextRange){var c=this.createTextRange();c.collapse(!0),c.moveEnd("character",b),c.moveStart("character",a),c.select()}});if(this.$element[0].setSelectionRange)a=this.$element[0].selectionStart,b=this.$element[0].selectionEnd;else if(document.selection&&document.selection.createRange){var c=document.selection.createRange();a=0-c.duplicate().moveStart("character",-1e5),b=a+c.text.length}return{begin:a,end:b}}},e.prototype.seekNext=function(a){for(var b=this.mask.length;++a<=b&&!this.tests[a];);return a},e.prototype.seekPrev=function(a){for(;--a>=0&&!this.tests[a];);return a},e.prototype.shiftL=function(a,b){var c=this.mask.length;if(!(0>a)){for(var d=a,e=this.seekNext(b);c>d;d++)if(this.tests[d]){if(!(c>e&&this.tests[d].test(this.buffer[e])))break;this.buffer[d]=this.buffer[e],this.buffer[e]=this.options.placeholder,e=this.seekNext(e)}this.writeBuffer(),this.caret(Math.max(this.firstNonMaskPos,a))}},e.prototype.shiftR=function(a){for(var b=this.mask.length,c=a,d=this.options.placeholder;b>c;c++)if(this.tests[c]){var e=this.seekNext(c),f=this.buffer[c];if(this.buffer[c]=d,!(b>e&&this.tests[e].test(f)))break;d=f}},e.prototype.unmask=function(){this.$element.unbind(".mask").removeData("inputmask")},e.prototype.focusEvent=function(){this.focusText=this.$element.val();var a=this.mask.length,b=this.checkVal();this.writeBuffer();var c=this,d=function(){b==a?c.caret(0,b):c.caret(b)};d(),setTimeout(d,50)},e.prototype.blurEvent=function(){this.checkVal(),this.$element.val()!==this.focusText&&this.$element.trigger("change")},e.prototype.keydownEvent=function(a){var c=a.which;if(8==c||46==c||b&&127==c){var d=this.caret(),e=d.begin,f=d.end;return f-e===0&&(e=46!=c?this.seekPrev(e):f=this.seekNext(e-1),f=46==c?this.seekNext(f):f),this.clearBuffer(e,f),this.shiftL(e,f-1),!1}return 27==c?(this.$element.val(this.focusText),this.caret(0,this.checkVal()),!1):void 0},e.prototype.keypressEvent=function(a){var b=this.mask.length,c=a.which,d=this.caret();if(a.ctrlKey||a.altKey||a.metaKey||32>c)return!0;if(c){d.end-d.begin!==0&&(this.clearBuffer(d.begin,d.end),this.shiftL(d.begin,d.end-1));var e=this.seekNext(d.begin-1);if(b>e){var f=String.fromCharCode(c);if(this.tests[e].test(f)){this.shiftR(e),this.buffer[e]=f,this.writeBuffer();var g=this.seekNext(e);this.caret(g)}}return!1}},e.prototype.pasteEvent=function(){var a=this;setTimeout(function(){a.caret(a.checkVal(!0))},0)},e.prototype.clearBuffer=function(a,b){for(var c=this.mask.length,d=a;b>d&&c>d;d++)this.tests[d]&&(this.buffer[d]=this.options.placeholder)},e.prototype.writeBuffer=function(){return this.$element.val(this.buffer.join("")).val()},e.prototype.checkVal=function(a){for(var b=this.mask.length,c=this.$element.val(),d=-1,e=0,f=0;b>e;e++)if(this.tests[e]){for(this.buffer[e]=this.options.placeholder;f++c.length)break}else this.buffer[e]==c.charAt(f)&&e!=this.partialPosition&&(f++,d=e);return!a&&d+1=this.partialPosition)&&(this.writeBuffer(),a||this.$element.val(this.$element.val().substring(0,d+1))),this.partialPosition?e:this.firstNonMaskPos};var f=a.fn.inputmask;a.fn.inputmask=function(b){return this.each(function(){var c=a(this),d=c.data("inputmask");d||c.data("inputmask",d=new e(this,b))})},a.fn.inputmask.Constructor=e,a.fn.inputmask.noConflict=function(){return a.fn.inputmask=f,this},a(document).on("focus.bs.inputmask.data-api","[data-mask]",function(){var b=a(this);b.data("inputmask")||b.inputmask(b.data())})}(window.jQuery),+function(a){"use strict";var b="Microsoft Internet Explorer"==window.navigator.appName,c=function(b,c){if(this.$element=a(b),this.$input=this.$element.find(":file"),0!==this.$input.length){this.name=this.$input.attr("name")||c.name,this.$hidden=this.$element.find('input[type=hidden][name="'+this.name+'"]'),0===this.$hidden.length&&(this.$hidden=a('').insertBefore(this.$input)),this.$preview=this.$element.find(".fileinput-preview");var d=this.$preview.css("height");"inline"!==this.$preview.css("display")&&"0px"!==d&&"none"!==d&&this.$preview.css("line-height",d),this.original={exists:this.$element.hasClass("fileinput-exists"),preview:this.$preview.html(),hiddenVal:this.$hidden.val()},this.listen()}};c.prototype.listen=function(){this.$input.on("change.bs.fileinput",a.proxy(this.change,this)),a(this.$input[0].form).on("reset.bs.fileinput",a.proxy(this.reset,this)),this.$element.find('[data-trigger="fileinput"]').on("click.bs.fileinput",a.proxy(this.trigger,this)),this.$element.find('[data-dismiss="fileinput"]').on("click.bs.fileinput",a.proxy(this.clear,this))},c.prototype.change=function(b){var c=void 0===b.target.files?b.target&&b.target.value?[{name:b.target.value.replace(/^.+\\/,"")}]:[]:b.target.files;if(b.stopPropagation(),0===c.length)return void this.clear();this.$hidden.val(""),this.$hidden.attr("name",""),this.$input.attr("name",this.name);var d=c[0];if(this.$preview.length>0&&("undefined"!=typeof d.type?d.type.match(/^image\/(gif|png|jpeg)$/):d.name.match(/\.(gif|png|jpe?g)$/i))&&"undefined"!=typeof FileReader){var e=new FileReader,f=this.$preview,g=this.$element;e.onload=function(b){var e=a("");e[0].src=b.target.result,c[0].result=b.target.result,g.find(".fileinput-filename").text(d.name),"none"!=f.css("max-height")&&e.css("max-height",parseInt(f.css("max-height"),10)-parseInt(f.css("padding-top"),10)-parseInt(f.css("padding-bottom"),10)-parseInt(f.css("border-top"),10)-parseInt(f.css("border-bottom"),10)),f.html(e),g.addClass("fileinput-exists").removeClass("fileinput-new"),g.trigger("change.bs.fileinput",c)},e.readAsDataURL(d)}else this.$element.find(".fileinput-filename").text(d.name),this.$preview.text(d.name),this.$element.addClass("fileinput-exists").removeClass("fileinput-new"),this.$element.trigger("change.bs.fileinput")},c.prototype.clear=function(a){if(a&&a.preventDefault(),this.$hidden.val(""),this.$hidden.attr("name",this.name),this.$input.attr("name",""),b){var c=this.$input.clone(!0);this.$input.after(c),this.$input.remove(),this.$input=c}else this.$input.val("");this.$preview.html(""),this.$element.find(".fileinput-filename").text(""),this.$element.addClass("fileinput-new").removeClass("fileinput-exists"),void 0!==a&&(this.$input.trigger("change"),this.$element.trigger("clear.bs.fileinput"))},c.prototype.reset=function(){this.clear(),this.$hidden.val(this.original.hiddenVal),this.$preview.html(this.original.preview),this.$element.find(".fileinput-filename").text(""),this.original.exists?this.$element.addClass("fileinput-exists").removeClass("fileinput-new"):this.$element.addClass("fileinput-new").removeClass("fileinput-exists"),this.$element.trigger("reset.bs.fileinput")},c.prototype.trigger=function(a){this.$input.trigger("click"),a.preventDefault()};var d=a.fn.fileinput;a.fn.fileinput=function(b){return this.each(function(){var d=a(this),e=d.data("fileinput");e||d.data("fileinput",e=new c(this,b)),"string"==typeof b&&e[b]()})},a.fn.fileinput.Constructor=c,a.fn.fileinput.noConflict=function(){return a.fn.fileinput=d,this},a(document).on("click.fileinput.data-api",'[data-provides="fileinput"]',function(b){var c=a(this);if(!c.data("fileinput")){c.fileinput(c.data());var d=a(b.target).closest('[data-dismiss="fileinput"],[data-trigger="fileinput"]');d.length>0&&(b.preventDefault(),d.trigger("click.bs.fileinput"))}})}(window.jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/jasny/jasny-bootstrap.min.js b/novel-admin/src/main/resources/static/js/plugins/jasny/jasny-bootstrap.min.js new file mode 100644 index 0000000..c823704 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/jasny/jasny-bootstrap.min.js @@ -0,0 +1,6 @@ +/*! + * Jasny Bootstrap v3.1.2 (http://jasny.github.io/bootstrap) + * Copyright 2012-2014 Arnold Daniels + * Licensed under Apache-2.0 (https://github.com/jasny/bootstrap/blob/master/LICENSE) + */ +if("undefined"==typeof jQuery)throw new Error("Jasny Bootstrap's JavaScript requires 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}void 0===a.support.transition&&(a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,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()}))}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.state=null,this.placement=null,this.options.recalc&&(this.calcClone(),a(window).on("resize",a.proxy(this.recalc,this))),this.options.autohide&&a(document).on("click",a.proxy(this.autohide,this)),this.options.toggle&&this.toggle(),this.options.disablescrolling&&(this.options.disableScrolling=this.options.disablescrolling,delete this.options.disablescrolling)};b.DEFAULTS={toggle:!0,placement:"auto",autohide:!0,recalc:!0,disableScrolling:!0},b.prototype.offset=function(){switch(this.placement){case"left":case"right":return this.$element.outerWidth();case"top":case"bottom":return this.$element.outerHeight()}},b.prototype.calcPlacement=function(){function b(a,b){if("auto"===e.css(b))return a;if("auto"===e.css(a))return b;var c=parseInt(e.css(a),10),d=parseInt(e.css(b),10);return c>d?b:a}if("auto"!==this.options.placement)return void(this.placement=this.options.placement);this.$element.hasClass("in")||this.$element.css("visiblity","hidden !important").addClass("in");var c=a(window).width()/this.$element.width(),d=a(window).height()/this.$element.height(),e=this.$element;this.placement=c>=d?b("left","right"):b("top","bottom"),"hidden !important"===this.$element.css("visibility")&&this.$element.removeClass("in").css("visiblity","")},b.prototype.opposite=function(a){switch(a){case"top":return"bottom";case"left":return"right";case"bottom":return"top";case"right":return"left"}},b.prototype.getCanvasElements=function(){var b=this.options.canvas?a(this.options.canvas):this.$element,c=b.find("*").filter(function(){return"fixed"===a(this).css("position")}).not(this.options.exclude);return b.add(c)},b.prototype.slide=function(b,c,d){if(!a.support.transition){var e={};return e[this.placement]="+="+c,b.animate(e,350,d)}var f=this.placement,g=this.opposite(f);b.each(function(){"auto"!==a(this).css(f)&&a(this).css(f,(parseInt(a(this).css(f),10)||0)+c),"auto"!==a(this).css(g)&&a(this).css(g,(parseInt(a(this).css(g),10)||0)-c)}),this.$element.one(a.support.transition.end,d).emulateTransitionEnd(350)},b.prototype.disableScrolling=function(){var b=a("body").width(),c="padding-"+this.opposite(this.placement);if(void 0===a("body").data("offcanvas-style")&&a("body").data("offcanvas-style",a("body").attr("style")),a("body").css("overflow","hidden"),a("body").width()>b){var d=parseInt(a("body").css(c),10)+a("body").width()-b;setTimeout(function(){a("body").css(c,d)},1)}},b.prototype.show=function(){if(!this.state){var b=a.Event("show.bs.offcanvas");if(this.$element.trigger(b),!b.isDefaultPrevented()){this.state="slide-in",this.calcPlacement();var c=this.getCanvasElements(),d=this.placement,e=this.opposite(d),f=this.offset();-1!==c.index(this.$element)&&(a(this.$element).data("offcanvas-style",a(this.$element).attr("style")||""),this.$element.css(d,-1*f),this.$element.css(d)),c.addClass("canvas-sliding").each(function(){void 0===a(this).data("offcanvas-style")&&a(this).data("offcanvas-style",a(this).attr("style")||""),"static"===a(this).css("position")&&a(this).css("position","relative"),"auto"!==a(this).css(d)&&"0px"!==a(this).css(d)||"auto"!==a(this).css(e)&&"0px"!==a(this).css(e)||a(this).css(d,0)}),this.options.disableScrolling&&this.disableScrolling();var g=function(){"slide-in"==this.state&&(this.state="slid",c.removeClass("canvas-sliding").addClass("canvas-slid"),this.$element.trigger("shown.bs.offcanvas"))};setTimeout(a.proxy(function(){this.$element.addClass("in"),this.slide(c,f,a.proxy(g,this))},this),1)}}},b.prototype.hide=function(){if("slid"===this.state){var b=a.Event("hide.bs.offcanvas");if(this.$element.trigger(b),!b.isDefaultPrevented()){this.state="slide-out";var c=a(".canvas-slid"),d=(this.placement,-1*this.offset()),e=function(){"slide-out"==this.state&&(this.state=null,this.placement=null,this.$element.removeClass("in"),c.removeClass("canvas-sliding"),c.add(this.$element).add("body").each(function(){a(this).attr("style",a(this).data("offcanvas-style")).removeData("offcanvas-style")}),this.$element.trigger("hidden.bs.offcanvas"))};c.removeClass("canvas-slid").addClass("canvas-sliding"),setTimeout(a.proxy(function(){this.slide(c,d,a.proxy(e,this))},this),1)}}},b.prototype.toggle=function(){"slide-in"!==this.state&&"slide-out"!==this.state&&this["slid"===this.state?"hide":"show"]()},b.prototype.calcClone=function(){this.$calcClone=this.$element.clone().html("").addClass("offcanvas-clone").removeClass("in").appendTo(a("body"))},b.prototype.recalc=function(){if("none"!==this.$calcClone.css("display")&&("slid"===this.state||"slide-in"===this.state)){this.state=null,this.placement=null;var b=this.getCanvasElements();this.$element.removeClass("in"),b.removeClass("canvas-slid"),b.add(this.$element).add("body").each(function(){a(this).attr("style",a(this).data("offcanvas-style")).removeData("offcanvas-style")})}},b.prototype.autohide=function(b){0===a(b.target).closest(this.$element).length&&this.hide()};var c=a.fn.offcanvas;a.fn.offcanvas=function(c){return this.each(function(){var d=a(this),e=d.data("bs.offcanvas"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.offcanvas",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.offcanvas.Constructor=b,a.fn.offcanvas.noConflict=function(){return a.fn.offcanvas=c,this},a(document).on("click.bs.offcanvas.data-api","[data-toggle=offcanvas]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.offcanvas"),h=g?"toggle":d.data();b.stopPropagation(),g?g.toggle():f.offcanvas(h)})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.$element.on("click.bs.rowlink","td:not(.rowlink-skip)",a.proxy(this.click,this))};b.DEFAULTS={target:"a"},b.prototype.click=function(b){var c=a(b.currentTarget).closest("tr").find(this.options.target)[0];if(a(b.target)[0]!==c)if(b.preventDefault(),c.click)c.click();else if(document.createEvent){var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),c.dispatchEvent(d)}};var c=a.fn.rowlink;a.fn.rowlink=function(c){return this.each(function(){var d=a(this),e=d.data("rowlink");e||d.data("rowlink",e=new b(this,c))})},a.fn.rowlink.Constructor=b,a.fn.rowlink.noConflict=function(){return a.fn.rowlink=c,this},a(document).on("click.bs.rowlink.data-api",'[data-link="row"]',function(b){if(0===a(b.target).closest(".rowlink-skip").length){var c=a(this);c.data("rowlink")||(c.rowlink(c.data()),a(b.target).trigger("click.bs.rowlink"))}})}(window.jQuery),+function(a){"use strict";var b=void 0!==window.orientation,c=navigator.userAgent.toLowerCase().indexOf("android")>-1,d="Microsoft Internet Explorer"==window.navigator.appName,e=function(b,d){c||(this.$element=a(b),this.options=a.extend({},e.DEFAULTS,d),this.mask=String(this.options.mask),this.init(),this.listen(),this.checkVal())};e.DEFAULTS={mask:"",placeholder:"_",definitions:{9:"[0-9]",a:"[A-Za-z]","?":"[A-Za-z0-9]","*":"."}},e.prototype.init=function(){var b=this.options.definitions,c=this.mask.length;this.tests=[],this.partialPosition=this.mask.length,this.firstNonMaskPos=null,a.each(this.mask.split(""),a.proxy(function(a,d){"?"==d?(c--,this.partialPosition=a):b[d]?(this.tests.push(new RegExp(b[d])),null===this.firstNonMaskPos&&(this.firstNonMaskPos=this.tests.length-1)):this.tests.push(null)},this)),this.buffer=a.map(this.mask.split(""),a.proxy(function(a){return"?"!=a?b[a]?this.options.placeholder:a:void 0},this)),this.focusText=this.$element.val(),this.$element.data("rawMaskFn",a.proxy(function(){return a.map(this.buffer,function(a,b){return this.tests[b]&&a!=this.options.placeholder?a:null}).join("")},this))},e.prototype.listen=function(){if(!this.$element.attr("readonly")){var b=(d?"paste":"input")+".mask";this.$element.on("unmask.bs.inputmask",a.proxy(this.unmask,this)).on("focus.bs.inputmask",a.proxy(this.focusEvent,this)).on("blur.bs.inputmask",a.proxy(this.blurEvent,this)).on("keydown.bs.inputmask",a.proxy(this.keydownEvent,this)).on("keypress.bs.inputmask",a.proxy(this.keypressEvent,this)).on(b,a.proxy(this.pasteEvent,this))}},e.prototype.caret=function(a,b){if(0!==this.$element.length){if("number"==typeof a)return b="number"==typeof b?b:a,this.$element.each(function(){if(this.setSelectionRange)this.setSelectionRange(a,b);else if(this.createTextRange){var c=this.createTextRange();c.collapse(!0),c.moveEnd("character",b),c.moveStart("character",a),c.select()}});if(this.$element[0].setSelectionRange)a=this.$element[0].selectionStart,b=this.$element[0].selectionEnd;else if(document.selection&&document.selection.createRange){var c=document.selection.createRange();a=0-c.duplicate().moveStart("character",-1e5),b=a+c.text.length}return{begin:a,end:b}}},e.prototype.seekNext=function(a){for(var b=this.mask.length;++a<=b&&!this.tests[a];);return a},e.prototype.seekPrev=function(a){for(;--a>=0&&!this.tests[a];);return a},e.prototype.shiftL=function(a,b){var c=this.mask.length;if(!(0>a)){for(var d=a,e=this.seekNext(b);c>d;d++)if(this.tests[d]){if(!(c>e&&this.tests[d].test(this.buffer[e])))break;this.buffer[d]=this.buffer[e],this.buffer[e]=this.options.placeholder,e=this.seekNext(e)}this.writeBuffer(),this.caret(Math.max(this.firstNonMaskPos,a))}},e.prototype.shiftR=function(a){for(var b=this.mask.length,c=a,d=this.options.placeholder;b>c;c++)if(this.tests[c]){var e=this.seekNext(c),f=this.buffer[c];if(this.buffer[c]=d,!(b>e&&this.tests[e].test(f)))break;d=f}},e.prototype.unmask=function(){this.$element.unbind(".mask").removeData("inputmask")},e.prototype.focusEvent=function(){this.focusText=this.$element.val();var a=this.mask.length,b=this.checkVal();this.writeBuffer();var c=this,d=function(){b==a?c.caret(0,b):c.caret(b)};d(),setTimeout(d,50)},e.prototype.blurEvent=function(){this.checkVal(),this.$element.val()!==this.focusText&&this.$element.trigger("change")},e.prototype.keydownEvent=function(a){var c=a.which;if(8==c||46==c||b&&127==c){var d=this.caret(),e=d.begin,f=d.end;return f-e===0&&(e=46!=c?this.seekPrev(e):f=this.seekNext(e-1),f=46==c?this.seekNext(f):f),this.clearBuffer(e,f),this.shiftL(e,f-1),!1}return 27==c?(this.$element.val(this.focusText),this.caret(0,this.checkVal()),!1):void 0},e.prototype.keypressEvent=function(a){var b=this.mask.length,c=a.which,d=this.caret();if(a.ctrlKey||a.altKey||a.metaKey||32>c)return!0;if(c){d.end-d.begin!==0&&(this.clearBuffer(d.begin,d.end),this.shiftL(d.begin,d.end-1));var e=this.seekNext(d.begin-1);if(b>e){var f=String.fromCharCode(c);if(this.tests[e].test(f)){this.shiftR(e),this.buffer[e]=f,this.writeBuffer();var g=this.seekNext(e);this.caret(g)}}return!1}},e.prototype.pasteEvent=function(){var a=this;setTimeout(function(){a.caret(a.checkVal(!0))},0)},e.prototype.clearBuffer=function(a,b){for(var c=this.mask.length,d=a;b>d&&c>d;d++)this.tests[d]&&(this.buffer[d]=this.options.placeholder)},e.prototype.writeBuffer=function(){return this.$element.val(this.buffer.join("")).val()},e.prototype.checkVal=function(a){for(var b=this.mask.length,c=this.$element.val(),d=-1,e=0,f=0;b>e;e++)if(this.tests[e]){for(this.buffer[e]=this.options.placeholder;f++c.length)break}else this.buffer[e]==c.charAt(f)&&e!=this.partialPosition&&(f++,d=e);return!a&&d+1=this.partialPosition)&&(this.writeBuffer(),a||this.$element.val(this.$element.val().substring(0,d+1))),this.partialPosition?e:this.firstNonMaskPos};var f=a.fn.inputmask;a.fn.inputmask=function(b){return this.each(function(){var c=a(this),d=c.data("inputmask");d||c.data("inputmask",d=new e(this,b))})},a.fn.inputmask.Constructor=e,a.fn.inputmask.noConflict=function(){return a.fn.inputmask=f,this},a(document).on("focus.bs.inputmask.data-api","[data-mask]",function(){var b=a(this);b.data("inputmask")||b.inputmask(b.data())})}(window.jQuery),+function(a){"use strict";var b="Microsoft Internet Explorer"==window.navigator.appName,c=function(b,c){if(this.$element=a(b),this.$input=this.$element.find(":file"),0!==this.$input.length){this.name=this.$input.attr("name")||c.name,this.$hidden=this.$element.find('input[type=hidden][name="'+this.name+'"]'),0===this.$hidden.length&&(this.$hidden=a('').insertBefore(this.$input)),this.$preview=this.$element.find(".fileinput-preview");var d=this.$preview.css("height");"inline"!==this.$preview.css("display")&&"0px"!==d&&"none"!==d&&this.$preview.css("line-height",d),this.original={exists:this.$element.hasClass("fileinput-exists"),preview:this.$preview.html(),hiddenVal:this.$hidden.val()},this.listen()}};c.prototype.listen=function(){this.$input.on("change.bs.fileinput",a.proxy(this.change,this)),a(this.$input[0].form).on("reset.bs.fileinput",a.proxy(this.reset,this)),this.$element.find('[data-trigger="fileinput"]').on("click.bs.fileinput",a.proxy(this.trigger,this)),this.$element.find('[data-dismiss="fileinput"]').on("click.bs.fileinput",a.proxy(this.clear,this))},c.prototype.change=function(b){var c=void 0===b.target.files?b.target&&b.target.value?[{name:b.target.value.replace(/^.+\\/,"")}]:[]:b.target.files;if(b.stopPropagation(),0===c.length)return void this.clear();this.$hidden.val(""),this.$hidden.attr("name",""),this.$input.attr("name",this.name);var d=c[0];if(this.$preview.length>0&&("undefined"!=typeof d.type?d.type.match(/^image\/(gif|png|jpeg)$/):d.name.match(/\.(gif|png|jpe?g)$/i))&&"undefined"!=typeof FileReader){var e=new FileReader,f=this.$preview,g=this.$element;e.onload=function(b){var e=a("");e[0].src=b.target.result,c[0].result=b.target.result,g.find(".fileinput-filename").text(d.name),"none"!=f.css("max-height")&&e.css("max-height",parseInt(f.css("max-height"),10)-parseInt(f.css("padding-top"),10)-parseInt(f.css("padding-bottom"),10)-parseInt(f.css("border-top"),10)-parseInt(f.css("border-bottom"),10)),f.html(e),g.addClass("fileinput-exists").removeClass("fileinput-new"),g.trigger("change.bs.fileinput",c)},e.readAsDataURL(d)}else this.$element.find(".fileinput-filename").text(d.name),this.$preview.text(d.name),this.$element.addClass("fileinput-exists").removeClass("fileinput-new"),this.$element.trigger("change.bs.fileinput")},c.prototype.clear=function(a){if(a&&a.preventDefault(),this.$hidden.val(""),this.$hidden.attr("name",this.name),this.$input.attr("name",""),b){var c=this.$input.clone(!0);this.$input.after(c),this.$input.remove(),this.$input=c}else this.$input.val("");this.$preview.html(""),this.$element.find(".fileinput-filename").text(""),this.$element.addClass("fileinput-new").removeClass("fileinput-exists"),void 0!==a&&(this.$input.trigger("change"),this.$element.trigger("clear.bs.fileinput"))},c.prototype.reset=function(){this.clear(),this.$hidden.val(this.original.hiddenVal),this.$preview.html(this.original.preview),this.$element.find(".fileinput-filename").text(""),this.original.exists?this.$element.addClass("fileinput-exists").removeClass("fileinput-new"):this.$element.addClass("fileinput-new").removeClass("fileinput-exists"),this.$element.trigger("reset.bs.fileinput")},c.prototype.trigger=function(a){this.$input.trigger("click"),a.preventDefault()};var d=a.fn.fileinput;a.fn.fileinput=function(b){return this.each(function(){var d=a(this),e=d.data("fileinput");e||d.data("fileinput",e=new c(this,b)),"string"==typeof b&&e[b]()})},a.fn.fileinput.Constructor=c,a.fn.fileinput.noConflict=function(){return a.fn.fileinput=d,this},a(document).on("click.fileinput.data-api",'[data-provides="fileinput"]',function(b){var c=a(this);if(!c.data("fileinput")){c.fileinput(c.data());var d=a(b.target).closest('[data-dismiss="fileinput"],[data-trigger="fileinput"]');d.length>0&&(b.preventDefault(),d.trigger("click.bs.fileinput"))}})}(window.jQuery); diff --git a/novel-admin/src/main/resources/static/js/plugins/jeditable/jquery.jeditable.js b/novel-admin/src/main/resources/static/js/plugins/jeditable/jquery.jeditable.js new file mode 100644 index 0000000..1b6c217 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/jeditable/jquery.jeditable.js @@ -0,0 +1,543 @@ +/* + * Jeditable - jQuery in place edit plugin + * + * Copyright (c) 2006-2009 Mika Tuupola, Dylan Verheul + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/mit-license.php + * + * Project home: + * http://www.appelsiini.net/projects/jeditable + * + * Based on editable by Dylan Verheul : + * http://www.dyve.net/jquery/?editable + * + */ + +/** + * Version 1.7.1 + * + * ** means there is basic unit tests for this parameter. + * + * @name Jeditable + * @type jQuery + * @param String target (POST) URL or function to send edited content to ** + * @param Hash options additional options + * @param String options[method] method to use to send edited content (POST or PUT) ** + * @param Function options[callback] Function to run after submitting edited content ** + * @param String options[name] POST parameter name of edited content + * @param String options[id] POST parameter name of edited div id + * @param Hash options[submitdata] Extra parameters to send when submitting edited content. + * @param String options[type] text, textarea or select (or any 3rd party input type) ** + * @param Integer options[rows] number of rows if using textarea ** + * @param Integer options[cols] number of columns if using textarea ** + * @param Mixed options[height] 'auto', 'none' or height in pixels ** + * @param Mixed options[width] 'auto', 'none' or width in pixels ** + * @param String options[loadurl] URL to fetch input content before editing ** + * @param String options[loadtype] Request type for load url. Should be GET or POST. + * @param String options[loadtext] Text to display while loading external content. + * @param Mixed options[loaddata] Extra parameters to pass when fetching content before editing. + * @param Mixed options[data] Or content given as paramameter. String or function.** + * @param String options[indicator] indicator html to show when saving + * @param String options[tooltip] optional tooltip text via title attribute ** + * @param String options[event] jQuery event such as 'click' of 'dblclick' ** + * @param String options[submit] submit button value, empty means no button ** + * @param String options[cancel] cancel button value, empty means no button ** + * @param String options[cssclass] CSS class to apply to input form. 'inherit' to copy from parent. ** + * @param String options[style] Style to apply to input form 'inherit' to copy from parent. ** + * @param String options[select] true or false, when true text is highlighted ?? + * @param String options[placeholder] Placeholder text or html to insert when element is empty. ** + * @param String options[onblur] 'cancel', 'submit', 'ignore' or function ?? + * + * @param Function options[onsubmit] function(settings, original) { ... } called before submit + * @param Function options[onreset] function(settings, original) { ... } called before reset + * @param Function options[onerror] function(settings, original, xhr) { ... } called on error + * + * @param Hash options[ajaxoptions] jQuery Ajax options. See docs.jquery.com. + * + */ + +(function($) { + + $.fn.editable = function(target, options) { + + if ('disable' == target) { + $(this).data('disabled.editable', true); + return; + } + if ('enable' == target) { + $(this).data('disabled.editable', false); + return; + } + if ('destroy' == target) { + $(this) + .unbind($(this).data('event.editable')) + .removeData('disabled.editable') + .removeData('event.editable'); + return; + } + + var settings = $.extend({}, $.fn.editable.defaults, {target:target}, options); + + /* setup some functions */ + var plugin = $.editable.types[settings.type].plugin || function() { }; + var submit = $.editable.types[settings.type].submit || function() { }; + var buttons = $.editable.types[settings.type].buttons + || $.editable.types['defaults'].buttons; + var content = $.editable.types[settings.type].content + || $.editable.types['defaults'].content; + var element = $.editable.types[settings.type].element + || $.editable.types['defaults'].element; + var reset = $.editable.types[settings.type].reset + || $.editable.types['defaults'].reset; + var callback = settings.callback || function() { }; + var onedit = settings.onedit || function() { }; + var onsubmit = settings.onsubmit || function() { }; + var onreset = settings.onreset || function() { }; + var onerror = settings.onerror || reset; + + /* show tooltip */ + if (settings.tooltip) { + $(this).attr('title', settings.tooltip); + } + + settings.autowidth = 'auto' == settings.width; + settings.autoheight = 'auto' == settings.height; + + return this.each(function() { + + /* save this to self because this changes when scope changes */ + var self = this; + + /* inlined block elements lose their width and height after first edit */ + /* save them for later use as workaround */ + var savedwidth = $(self).width(); + var savedheight = $(self).height(); + + /* save so it can be later used by $.editable('destroy') */ + $(this).data('event.editable', settings.event); + + /* if element is empty add something clickable (if requested) */ + if (!$.trim($(this).html())) { + $(this).html(settings.placeholder); + } + + $(this).bind(settings.event, function(e) { + + /* abort if disabled for this element */ + if (true === $(this).data('disabled.editable')) { + return; + } + + /* prevent throwing an exeption if edit field is clicked again */ + if (self.editing) { + return; + } + + /* abort if onedit hook returns false */ + if (false === onedit.apply(this, [settings, self])) { + return; + } + + /* prevent default action and bubbling */ + e.preventDefault(); + e.stopPropagation(); + + /* remove tooltip */ + if (settings.tooltip) { + $(self).removeAttr('title'); + } + + /* figure out how wide and tall we are, saved width and height */ + /* are workaround for http://dev.jquery.com/ticket/2190 */ + if (0 == $(self).width()) { + //$(self).css('visibility', 'hidden'); + settings.width = savedwidth; + settings.height = savedheight; + } else { + if (settings.width != 'none') { + settings.width = + settings.autowidth ? $(self).width() : settings.width; + } + if (settings.height != 'none') { + settings.height = + settings.autoheight ? $(self).height() : settings.height; + } + } + //$(this).css('visibility', ''); + + /* remove placeholder text, replace is here because of IE */ + if ($(this).html().toLowerCase().replace(/(;|")/g, '') == + settings.placeholder.toLowerCase().replace(/(;|")/g, '')) { + $(this).html(''); + } + + self.editing = true; + self.revert = $(self).html(); + $(self).html(''); + + /* create the form object */ + var form = $('
                                '); + + /* apply css or style or both */ + if (settings.cssclass) { + if ('inherit' == settings.cssclass) { + form.attr('class', $(self).attr('class')); + } else { + form.attr('class', settings.cssclass); + } + } + + if (settings.style) { + if ('inherit' == settings.style) { + form.attr('style', $(self).attr('style')); + /* IE needs the second line or display wont be inherited */ + form.css('display', $(self).css('display')); + } else { + form.attr('style', settings.style); + } + } + + /* add main input element to form and store it in input */ + var input = element.apply(form, [settings, self]); + + /* set input content via POST, GET, given data or existing value */ + var input_content; + + if (settings.loadurl) { + var t = setTimeout(function() { + input.disabled = true; + content.apply(form, [settings.loadtext, settings, self]); + }, 100); + + var loaddata = {}; + loaddata[settings.id] = self.id; + if ($.isFunction(settings.loaddata)) { + $.extend(loaddata, settings.loaddata.apply(self, [self.revert, settings])); + } else { + $.extend(loaddata, settings.loaddata); + } + $.ajax({ + type : settings.loadtype, + url : settings.loadurl, + data : loaddata, + async : false, + success: function(result) { + window.clearTimeout(t); + input_content = result; + input.disabled = false; + } + }); + } else if (settings.data) { + input_content = settings.data; + if ($.isFunction(settings.data)) { + input_content = settings.data.apply(self, [self.revert, settings]); + } + } else { + input_content = self.revert; + } + content.apply(form, [input_content, settings, self]); + + input.attr('name', settings.name); + + /* add buttons to the form */ + buttons.apply(form, [settings, self]); + + /* add created form to self */ + $(self).append(form); + + /* attach 3rd party plugin if requested */ + plugin.apply(form, [settings, self]); + + /* focus to first visible form element */ + $(':input:visible:enabled:first', form).focus(); + + /* highlight input contents when requested */ + if (settings.select) { + input.select(); + } + + /* discard changes if pressing esc */ + input.keydown(function(e) { + if (e.keyCode == 27) { + e.preventDefault(); + //self.reset(); + reset.apply(form, [settings, self]); + } + }); + + /* discard, submit or nothing with changes when clicking outside */ + /* do nothing is usable when navigating with tab */ + var t; + if ('cancel' == settings.onblur) { + input.blur(function(e) { + /* prevent canceling if submit was clicked */ + t = setTimeout(function() { + reset.apply(form, [settings, self]); + }, 500); + }); + } else if ('submit' == settings.onblur) { + input.blur(function(e) { + /* prevent double submit if submit was clicked */ + t = setTimeout(function() { + form.submit(); + }, 200); + }); + } else if ($.isFunction(settings.onblur)) { + input.blur(function(e) { + settings.onblur.apply(self, [input.val(), settings]); + }); + } else { + input.blur(function(e) { + /* TODO: maybe something here */ + }); + } + + form.submit(function(e) { + + if (t) { + clearTimeout(t); + } + + /* do no submit */ + e.preventDefault(); + + /* call before submit hook. */ + /* if it returns false abort submitting */ + if (false !== onsubmit.apply(form, [settings, self])) { + /* custom inputs call before submit hook. */ + /* if it returns false abort submitting */ + if (false !== submit.apply(form, [settings, self])) { + + /* check if given target is function */ + if ($.isFunction(settings.target)) { + var str = settings.target.apply(self, [input.val(), settings]); + $(self).html(str); + self.editing = false; + callback.apply(self, [self.innerHTML, settings]); + /* TODO: this is not dry */ + if (!$.trim($(self).html())) { + $(self).html(settings.placeholder); + } + } else { + /* add edited content and id of edited element to POST */ + var submitdata = {}; + submitdata[settings.name] = input.val(); + submitdata[settings.id] = self.id; + /* add extra data to be POST:ed */ + if ($.isFunction(settings.submitdata)) { + $.extend(submitdata, settings.submitdata.apply(self, [self.revert, settings])); + } else { + $.extend(submitdata, settings.submitdata); + } + + /* quick and dirty PUT support */ + if ('PUT' == settings.method) { + submitdata['_method'] = 'put'; + } + + /* show the saving indicator */ + $(self).html(settings.indicator); + + /* defaults for ajaxoptions */ + var ajaxoptions = { + type : 'POST', + data : submitdata, + dataType: 'html', + url : settings.target, + success : function(result, status) { + if (ajaxoptions.dataType == 'html') { + $(self).html(result); + } + self.editing = false; + callback.apply(self, [result, settings]); + if (!$.trim($(self).html())) { + $(self).html(settings.placeholder); + } + }, + error : function(xhr, status, error) { + onerror.apply(form, [settings, self, xhr]); + } + }; + + /* override with what is given in settings.ajaxoptions */ + $.extend(ajaxoptions, settings.ajaxoptions); + $.ajax(ajaxoptions); + + } + } + } + + /* show tooltip again */ + $(self).attr('title', settings.tooltip); + + return false; + }); + }); + + /* privileged methods */ + this.reset = function(form) { + /* prevent calling reset twice when blurring */ + if (this.editing) { + /* before reset hook, if it returns false abort reseting */ + if (false !== onreset.apply(form, [settings, self])) { + $(self).html(self.revert); + self.editing = false; + if (!$.trim($(self).html())) { + $(self).html(settings.placeholder); + } + /* show tooltip again */ + if (settings.tooltip) { + $(self).attr('title', settings.tooltip); + } + } + } + }; + }); + + }; + + + $.editable = { + types: { + defaults: { + element : function(settings, original) { + var input = $(''); + $(this).append(input); + return(input); + }, + content : function(string, settings, original) { + $(':input:first', this).val(string); + }, + reset : function(settings, original) { + original.reset(this); + }, + buttons : function(settings, original) { + var form = this; + if (settings.submit) { + /* if given html string use that */ + if (settings.submit.match(/>$/)) { + var submit = $(settings.submit).click(function() { + if (submit.attr("type") != "submit") { + form.submit(); + } + }); + /* otherwise use button with given string as text */ + } else { + var submit = $('
                                ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
                                是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window); \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/layer.min.js b/novel-admin/src/main/resources/static/js/plugins/layer/layer.min.js new file mode 100644 index 0000000..56f5ae9 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/layer/layer.min.js @@ -0,0 +1,2 @@ +/*! layer-v2.1 弹层组件 License LGPL http://layer.layui.com/ By 贤心 */ +;!function(a,b){"use strict";var c,d,e={getPath:function(){var a=document.scripts,b=a[a.length-1],c=b.src;if(!b.getAttribute("merge"))return c.substring(0,c.lastIndexOf("/")+1)}(),enter:function(a){13===a.keyCode&&a.preventDefault()},config:{},end:{},btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"]},f={v:"2.1",ie6:!!a.ActiveXObject&&!a.XMLHttpRequest,index:0,path:e.getPath,config:function(a,b){var d=0;return a=a||{},f.cache=e.config=c.extend(e.config,a),f.path=e.config.path||f.path,"string"==typeof a.extend&&(a.extend=[a.extend]),f.use("skin/layer.css",a.extend&&a.extend.length>0?function g(){var c=a.extend;f.use(c[c[d]?d:d-1],d'+(i?f.title[0]:f.title)+"
                                ":"";return f.zIndex=g,b([f.shade?'
                                ':"",'
                                '+(a&&2!=f.type?"":k)+'
                                '+(0==f.type&&-1!==f.icon?'':"")+(1==f.type&&a?"":f.content||"")+'
                                '+function(){var a=j?'':"";return f.closeBtn&&(a+=''),a}()+""+(f.btn?function(){var a="";"string"==typeof f.btn&&(f.btn=[f.btn]);for(var b=0,c=f.btn.length;c>b;b++)a+=''+f.btn[b]+"";return'
                                '+a+"
                                "}():"")+"
                                "],k),c},g.pt.creat=function(){var a=this,b=a.config,g=a.index,i=b.content,j="object"==typeof i;switch("string"==typeof b.area&&(b.area="auto"===b.area?["",""]:[b.area,""]),b.type){case 0:b.btn="btn"in b?b.btn:e.btn[0],f.closeAll("dialog");break;case 2:var i=b.content=j?b.content:[b.content||"http://layer.layui.com","auto"];b.content='';break;case 3:b.title=!1,b.closeBtn=!1,-1===b.icon&&0===b.icon,f.closeAll("loading");break;case 4:j||(b.content=[b.content,"body"]),b.follow=b.content[1],b.content=b.content[0]+'',b.title=!1,b.shade=!1,b.fix=!1,b.tips="object"==typeof b.tips?b.tips:[b.tips,!0],b.tipsMore||f.closeAll("tips")}a.vessel(j,function(d,e){c("body").append(d[0]),j?function(){2==b.type||4==b.type?function(){c("body").append(d[1])}():function(){i.parents("."+h[0])[0]||(i.show().addClass("layui-layer-wrap").wrap(d[1]),c("#"+h[0]+g).find("."+h[5]).before(e))}()}():c("body").append(d[1]),a.layero=c("#"+h[0]+g),b.scrollbar||h.html.css("overflow","hidden").attr("layer-full",g)}).auto(g),2==b.type&&f.ie6&&a.layero.find("iframe").attr("src",i[0]),c(document).off("keydown",e.enter).on("keydown",e.enter),a.layero.on("keydown",function(a){c(document).off("keydown",e.enter)}),4==b.type?a.tips():a.offset(),b.fix&&d.on("resize",function(){a.offset(),(/^\d+%$/.test(b.area[0])||/^\d+%$/.test(b.area[1]))&&a.auto(g),4==b.type&&a.tips()}),b.time<=0||setTimeout(function(){f.close(a.index)},b.time),a.move().callback()},g.pt.auto=function(a){function b(a){a=g.find(a),a.height(i[1]-j-k-2*(0|parseFloat(a.css("padding"))))}var e=this,f=e.config,g=c("#"+h[0]+a);""===f.area[0]&&f.maxWidth>0&&(/MSIE 7/.test(navigator.userAgent)&&f.btn&&g.width(g.innerWidth()),g.outerWidth()>f.maxWidth&&g.width(f.maxWidth));var i=[g.innerWidth(),g.innerHeight()],j=g.find(h[1]).outerHeight()||0,k=g.find("."+h[6]).outerHeight()||0;switch(f.type){case 2:b("iframe");break;default:""===f.area[1]?f.fix&&i[1]>=d.height()&&(i[1]=d.height(),b("."+h[5])):b("."+h[5])}return e},g.pt.offset=function(){var a=this,b=a.config,c=a.layero,e=[c.outerWidth(),c.outerHeight()],f="object"==typeof b.offset;a.offsetTop=(d.height()-e[1])/2,a.offsetLeft=(d.width()-e[0])/2,f?(a.offsetTop=b.offset[0],a.offsetLeft=b.offset[1]||a.offsetLeft):"auto"!==b.offset&&(a.offsetTop=b.offset,"rb"===b.offset&&(a.offsetTop=d.height()-e[1],a.offsetLeft=d.width()-e[0])),b.fix||(a.offsetTop=/%$/.test(a.offsetTop)?d.height()*parseFloat(a.offsetTop)/100:parseFloat(a.offsetTop),a.offsetLeft=/%$/.test(a.offsetLeft)?d.width()*parseFloat(a.offsetLeft)/100:parseFloat(a.offsetLeft),a.offsetTop+=d.scrollTop(),a.offsetLeft+=d.scrollLeft()),c.css({top:a.offsetTop,left:a.offsetLeft})},g.pt.tips=function(){var a=this,b=a.config,e=a.layero,f=[e.outerWidth(),e.outerHeight()],g=c(b.follow);g[0]||(g=c("body"));var i={width:g.outerWidth(),height:g.outerHeight(),top:g.offset().top,left:g.offset().left},j=e.find(".layui-layer-TipsG"),k=b.tips[0];b.tips[1]||j.remove(),i.autoLeft=function(){i.left+f[0]-d.width()>0?(i.tipLeft=i.left+i.width-f[0],j.css({right:12,left:"auto"})):i.tipLeft=i.left},i.where=[function(){i.autoLeft(),i.tipTop=i.top-f[1]-10,j.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left+i.width+10,i.tipTop=i.top,j.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",b.tips[1])},function(){i.autoLeft(),i.tipTop=i.top+i.height+10,j.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left-f[0]-10,i.tipTop=i.top,j.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",b.tips[1])}],i.where[k-1](),1===k?i.top-(d.scrollTop()+f[1]+16)<0&&i.where[2]():2===k?d.width()-(i.left+i.width+f[0]+16)>0||i.where[3]():3===k?i.top-d.scrollTop()+i.height+f[1]+16-d.height()>0&&i.where[0]():4===k&&f[0]+16-i.left>0&&i.where[1](),e.find("."+h[5]).css({"background-color":b.tips[1],"padding-right":b.closeBtn?"30px":""}),e.css({left:i.tipLeft,top:i.tipTop})},g.pt.move=function(){var a=this,b=a.config,e={setY:0,moveLayer:function(){var a=e.layero,b=parseInt(a.css("margin-left")),c=parseInt(e.move.css("left"));0===b||(c-=b),"fixed"!==a.css("position")&&(c-=a.parent().offset().left,e.setY=0),a.css({left:c,top:parseInt(e.move.css("top"))-e.setY})}},f=a.layero.find(b.move);return b.move&&f.attr("move","ok"),f.css({cursor:b.move?"move":"auto"}),c(b.move).on("mousedown",function(a){if(a.preventDefault(),"ok"===c(this).attr("move")){e.ismove=!0,e.layero=c(this).parents("."+h[0]);var f=e.layero.offset().left,g=e.layero.offset().top,i=e.layero.outerWidth()-6,j=e.layero.outerHeight()-6;c("#layui-layer-moves")[0]||c("body").append('
                                '),e.move=c("#layui-layer-moves"),b.moveType&&e.move.css({visibility:"hidden"}),e.moveX=a.pageX-e.move.position().left,e.moveY=a.pageY-e.move.position().top,"fixed"!==e.layero.css("position")||(e.setY=d.scrollTop())}}),c(document).mousemove(function(a){if(e.ismove){var c=a.pageX-e.moveX,f=a.pageY-e.moveY;if(a.preventDefault(),!b.moveOut){e.setY=d.scrollTop();var g=d.width()-e.move.outerWidth(),h=e.setY;0>c&&(c=0),c>g&&(c=g),h>f&&(f=h),f>d.height()-e.move.outerHeight()+e.setY&&(f=d.height()-e.move.outerHeight()+e.setY)}e.move.css({left:c,top:f}),b.moveType&&e.moveLayer(),c=f=g=h=null}}).mouseup(function(){try{e.ismove&&(e.moveLayer(),e.move.remove(),b.moveEnd&&b.moveEnd()),e.ismove=!1}catch(a){e.ismove=!1}}),a},g.pt.callback=function(){function a(){var a=g.cancel&&g.cancel(b.index);a===!1||f.close(b.index)}var b=this,d=b.layero,g=b.config;b.openLayer(),g.success&&(2==g.type?d.find("iframe").on("load",function(){g.success(d,b.index)}):g.success(d,b.index)),f.ie6&&b.IE6(d),d.find("."+h[6]).children("a").on("click",function(){var e=c(this).index();g["btn"+(e+1)]&&g["btn"+(e+1)](b.index,d),0===e?g.yes?g.yes(b.index,d):f.close(b.index):1===e?a():g["btn"+(e+1)]||f.close(b.index)}),d.find("."+h[7]).on("click",a),g.shadeClose&&c("#layui-layer-shade"+b.index).on("click",function(){f.close(b.index)}),d.find(".layui-layer-min").on("click",function(){f.min(b.index,g),g.min&&g.min(d)}),d.find(".layui-layer-max").on("click",function(){c(this).hasClass("layui-layer-maxmin")?(f.restore(b.index),g.restore&&g.restore(d)):(f.full(b.index,g),g.full&&g.full(d))}),g.end&&(e.end[b.index]=g.end)},e.reselect=function(){c.each(c("select"),function(a,b){var d=c(this);d.parents("."+h[0])[0]||1==d.attr("layer")&&c("."+h[0]).length<1&&d.removeAttr("layer").show(),d=null})},g.pt.IE6=function(a){function b(){a.css({top:f+(e.config.fix?d.scrollTop():0)})}var e=this,f=a.offset().top;b(),d.scroll(b),c("select").each(function(a,b){var d=c(this);d.parents("."+h[0])[0]||"none"===d.css("display")||d.attr({layer:"1"}).hide(),d=null})},g.pt.openLayer=function(){var a=this;f.zIndex=a.config.zIndex,f.setTop=function(a){var b=function(){f.zIndex++,a.css("z-index",f.zIndex+1)};return f.zIndex=parseInt(a[0].style.zIndex),a.on("mousedown",b),f.zIndex}},e.record=function(a){var b=[a.outerWidth(),a.outerHeight(),a.position().top,a.position().left+parseFloat(a.css("margin-left"))];a.find(".layui-layer-max").addClass("layui-layer-maxmin"),a.attr({area:b})},e.rescollbar=function(a){h.html.attr("layer-full")==a&&(h.html[0].style.removeProperty?h.html[0].style.removeProperty("overflow"):h.html[0].style.removeAttribute("overflow"),h.html.removeAttr("layer-full"))},a.layer=f,f.getChildFrame=function(a,b){return b=b||c("."+h[4]).attr("times"),c("#"+h[0]+b).find("iframe").contents().find(a)},f.getFrameIndex=function(a){return c("#"+a).parents("."+h[4]).attr("times")},f.iframeAuto=function(a){if(a){var b=f.getChildFrame("html",a).outerHeight(),d=c("#"+h[0]+a),e=d.find(h[1]).outerHeight()||0,g=d.find("."+h[6]).outerHeight()||0;d.css({height:b+e+g}),d.find("iframe").css({height:b})}},f.iframeSrc=function(a,b){c("#"+h[0]+a).find("iframe").attr("src",b)},f.style=function(a,b){var d=c("#"+h[0]+a),f=d.attr("type"),g=d.find(h[1]).outerHeight()||0,i=d.find("."+h[6]).outerHeight()||0;(f===e.type[1]||f===e.type[2])&&(d.css(b),f===e.type[2]&&d.find("iframe").css({height:parseFloat(b.height)-g-i}))},f.min=function(a,b){var d=c("#"+h[0]+a),g=d.find(h[1]).outerHeight()||0;e.record(d),f.style(a,{width:180,height:g,overflow:"hidden"}),d.find(".layui-layer-min").hide(),"page"===d.attr("type")&&d.find(h[4]).hide(),e.rescollbar(a)},f.restore=function(a){var b=c("#"+h[0]+a),d=b.attr("area").split(",");b.attr("type");f.style(a,{width:parseFloat(d[0]),height:parseFloat(d[1]),top:parseFloat(d[2]),left:parseFloat(d[3]),overflow:"visible"}),b.find(".layui-layer-max").removeClass("layui-layer-maxmin"),b.find(".layui-layer-min").show(),"page"===b.attr("type")&&b.find(h[4]).show(),e.rescollbar(a)},f.full=function(a){var b,g=c("#"+h[0]+a);e.record(g),h.html.attr("layer-full")||h.html.css("overflow","hidden").attr("layer-full",a),clearTimeout(b),b=setTimeout(function(){var b="fixed"===g.css("position");f.style(a,{top:b?0:d.scrollTop(),left:b?0:d.scrollLeft(),width:d.width(),height:d.height()}),g.find(".layui-layer-min").hide()},100)},f.title=function(a,b){var d=c("#"+h[0]+(b||f.index)).find(h[1]);d.html(a)},f.close=function(a){var b=c("#"+h[0]+a),d=b.attr("type");if(b[0]){if(d===e.type[1]&&"object"===b.attr("conType")){b.children(":not(."+h[5]+")").remove();for(var g=0;2>g;g++)b.find(".layui-layer-wrap").unwrap().hide()}else{if(d===e.type[2])try{var i=c("#"+h[4]+a)[0];i.contentWindow.document.write(""),i.contentWindow.close(),b.find("."+h[5])[0].removeChild(i)}catch(j){}b[0].innerHTML="",b.remove()}c("#layui-layer-moves, #layui-layer-shade"+a).remove(),f.ie6&&e.reselect(),e.rescollbar(a),c(document).off("keydown",e.enter),"function"==typeof e.end[a]&&e.end[a](),delete e.end[a]}},f.closeAll=function(a){c.each(c("."+h[0]),function(){var b=c(this),d=a?b.attr("type")===a:1;d&&f.close(b.attr("times")),d=null})},e.run=function(){c=jQuery,d=c(a),h.html=c("html"),f.open=function(a){var b=new g(a);return b.index}},"function"==typeof define?define(function(){return e.run(),f}):function(){e.run(),f.use("skin/layer.css")}()}(window); diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/chatlog.json b/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/chatlog.json new file mode 100644 index 0000000..13954d7 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/chatlog.json @@ -0,0 +1,30 @@ +{ + "status": 1, + "msg": "ok", + "data": [ + { + "id": "100001", + "name": "Beaut-zihan", + "time": "10:23", + "face": "img/a1.jpg" + }, + { + "id": "100002", + "name": "慕容晓晓", + "time": "昨天", + "face": "img/a2.jpg" + }, + { + "id": "1000033", + "name": "乔峰", + "time": "2014-4.22", + "face": "img/a3.jpg" + }, + { + "id": "10000333", + "name": "高圆圆", + "time": "2014-4.21", + "face": "img/a4.jpg" + } + ] +} diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/friend.json b/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/friend.json new file mode 100644 index 0000000..13a2b65 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/friend.json @@ -0,0 +1,107 @@ +{ + "status": 1, + "msg": "ok", + "data": [ + { + "name": "销售部", + "nums": 36, + "id": 1, + "item": [ + { + "id": "100001", + "name": "郭敬明", + "face": "img/a5.jpg" + }, + { + "id": "100002", + "name": "作家崔成浩", + "face": "img/a6.jpg" + }, + { + "id": "1000022", + "name": "韩寒", + "face": "img/a7.jpg" + }, + { + "id": "10000222", + "name": "范爷", + "face": "img/a8.jpg" + }, + { + "id": "100002222", + "name": "小马哥", + "face": "img/a9.jpg" + } + ] + }, + { + "name": "大学同窗", + "nums": 16, + "id": 2, + "item": [ + { + "id": "1000033", + "name": "苏醒", + "face": "img/a9.jpg" + }, + { + "id": "10000333", + "name": "马云", + "face": "img/a8.jpg" + }, + { + "id": "100003", + "name": "鬼脚七", + "face": "img/a7.jpg" + }, + { + "id": "100004", + "name": "谢楠", + "face": "img/a6.jpg" + }, + { + "id": "100005", + "name": "徐峥", + "face": "img/a5.jpg" + } + ] + }, + { + "name": "H+后台主题", + "nums": 38, + "id": 3, + "item": [ + { + "id": "100006", + "name": "柏雪近在它香", + "face": "img/a4.jpg" + }, + { + "id": "100007", + "name": "罗昌平", + "face": "img/a3.jpg" + }, + { + "id": "100008", + "name": "Crystal影子", + "face": "img/a2.jpg" + }, + { + "id": "100009", + "name": "艺小想", + "face": "img/a1.jpg" + }, + { + "id": "100010", + "name": "天猫", + "face": "img/a8.jpg" + }, + { + "id": "100011", + "name": "张泉灵", + "face": "img/a7.jpg" + } + ] + } + ] +} diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/group.json b/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/group.json new file mode 100644 index 0000000..3352f65 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/group.json @@ -0,0 +1,57 @@ +{ + "status": 1, + "msg": "ok", + "data": [ + { + "name": "H+交流群", + "nums": 36, + "id": 1, + "item": [ + { + "id": "101", + "name": "H+ Bug反馈", + "face": "http://tp2.sinaimg.cn/2211874245/180/40050524279/0" + }, + { + "id": "102", + "name": "H+ 技术交流", + "face": "http://tp3.sinaimg.cn/1820711170/180/1286855219/1" + } + ] + }, + { + "name": "Bootstrap", + "nums": 16, + "id": 2, + "item": [ + { + "id": "103", + "name": "Bootstrap中文", + "face": "http://tp2.sinaimg.cn/2211874245/180/40050524279/0" + }, + { + "id": "104", + "name": "Bootstrap资源", + "face": "http://tp3.sinaimg.cn/1820711170/180/1286855219/1" + } + ] + }, + { + "name": "WebApp", + "nums": 106, + "id": 3, + "item": [ + { + "id": "105", + "name": "移动开发", + "face": "http://tp2.sinaimg.cn/2211874245/180/40050524279/0" + }, + { + "id": "106", + "name": "H5前言", + "face": "http://tp3.sinaimg.cn/1820711170/180/1286855219/1" + } + ] + } + ] +} diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/groups.json b/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/groups.json new file mode 100644 index 0000000..fd0464a --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/layer/layim/data/groups.json @@ -0,0 +1,56 @@ +{ + "status": 1, + "msg": "ok", + "data": [ + { + "id": "100001", + "name": "無言的蒁説", + "face": "img/a1.jpg" + }, + { + "id": "100002", + "name": "婷宝奢侈品", + "face": "img/a2.jpg" + }, + { + "id": "100003", + "name": "忆恨思爱", + "face": "img/a3.jpg" + }, + { + "id": "100004", + "name": "天涯奥拓慢", + "face": "img/a4.jpg" + }, + { + "id": "100005", + "name": "雨落无声的天空", + "face": "img/a5.jpg" + }, + { + "id": "100006", + "name": "李越LycorisRadiate", + "face": "img/a6.jpg" + }, + { + "id": "100007", + "name": "冯胖妞张直丑", + "face": "img/a7.jpg" + }, + { + "id": "100008", + "name": "陈龙hmmm", + "face": "img/a8.jpg" + }, + { + "id": "100009", + "name": "别闹哥胆儿小", + "face": "img/a9.jpg" + }, + { + "id": "100010", + "name": "锅锅锅锅萌哒哒 ", + "face": "img/a10.jpg" + } + ] +} diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/layim/layim.css b/novel-admin/src/main/resources/static/js/plugins/layer/layim/layim.css new file mode 100644 index 0000000..a568a03 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/layer/layim/layim.css @@ -0,0 +1,158 @@ +/* + + @Name: layim WebIM 1.0.0 + @Author:贤心(子涵修改) + @Date: 2014-04-25 + @Blog: http://sentsin.com + + */ +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,input,button,textarea,p,blockquote,th,td,form{margin:0; padding:0;} +input,button,textarea,select,optgroup,option{font-family:inherit; font-size:inherit; font-style:inherit; font-weight:inherit; outline: 0;} +li{list-style:none;} +.xxim_icon, .xxim_main i, .layim_chatbox i{position:absolute;} +.loading{background:url(loading.gif) no-repeat center center;} +.layim_chatbox a, .layim_chatbox a:hover{color:#343434; text-decoration:none; } +.layim_zero{position:absolute; width:0; height:0; border-style:dashed; border-color:transparent; overflow:hidden;} + +.xxim_main{position:fixed; right:1px; bottom:1px; width:230px; border:1px solid #BEBEBE; background-color:#fff; font-size:12px; box-shadow: 0 0 10px rgba(0,0,0,.2); z-index:99999999} +.layim_chatbox textarea{resize:none;} +.xxim_main em, .xxim_main i, .layim_chatbox em, .layim_chatbox i{font-style:normal; font-weight:400;} +.xxim_main h5{font-size:100%; font-weight:400;} + +/* 搜索栏 */ +.xxim_search{position:relative; padding-left:40px; height:40px; border-bottom:1px solid #DCDCDC; background-color:#fff;} +.xxim_search i{left:10px; top:12px; width:16px; height:16px;font-size: 16px;color:#999;} +.xxim_search input{border:none; background:none; width: 180px; margin-top:10px; line-height:20px;} +.xxim_search span{display:none; position:absolute; right:10px; top:10px; height:18px; line-height:18px;width:18px;text-align: center;background-color:#AFAFAF; color:#fff; cursor:pointer; border-radius:2px; font-size:12px; font-weight:900;} +.xxim_search span:hover{background-color:#FCBE00;} + +/* 主面板tab */ +.xxim_tabs{height:45px; border-bottom:1px solid #DBDBDB; background-color:#F4F4F4; font-size:0;} +.xxim_tabs span{position:relative; display:inline-block; *display:inline; *zoom:1; vertical-align:top; width:76px; height:45px; border-right:1px solid #DBDBDB; cursor:pointer; font-size:12px;} +.xxim_tabs span i{top:12px; left:50%; width:20px; margin-left:-10px; height:20px;font-size:20px;color:#ccc;} +.xxim_tabs .xxim_tabnow{height:46px; background-color:#fff;} +.xxim_tabs .xxim_tabnow i{color:#1ab394;} +.xxim_tabs .xxim_latechat{border-right:none;} +.xxim_tabs .xxim_tabfriend i{width:14px; margin-left:-7px;} + +/* 主面板列表 */ +.xxim_list{display:none; height:350px; padding:5px 0; overflow:hidden;} +.xxim_list:hover{ overflow-y:auto;} +.xxim_list h5{position:relative; padding-left:32px; height:26px; line-height:26px; cursor:pointer; color:#000; font-size:0;} +.xxim_list h5 span{display:inline-block; *display:inline; *zoom:1; vertical-align:top; max-width:140px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap; font-size:12px;} +.xxim_list h5 i{left:15px; top:8px; width:10px; height:10px;font-size:10px;color:#666;} +.xxim_list h5 *{font-size:12px;} +.xxim_list .xxim_chatlist{display:none;} +.xxim_list .xxim_liston h5 i{width:8px; height:7px;} +.xxim_list .xxim_liston .xxim_chatlist{display:block;} +.xxim_chatlist {} +.xxim_chatlist li{position:relative; height:40px; line-height:30px; padding:5px 10px; font-size:0; cursor:pointer;} +.xxim_chatlist li:hover{background-color:#F2F4F8} +.xxim_chatlist li *{display:inline-block; *display:inline; *zoom:1; vertical-align:top; font-size:12px;} +.xxim_chatlist li span{padding-left:10px; max-width:120px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap;} +.xxim_chatlist li img{width:30px; height:30px;} +.xxim_chatlist li .xxim_time{position:absolute; right:10px; color:#999;} +.xxim_list .xxim_errormsg{text-align:center; margin:50px 0; color:#999;} +.xxim_searchmain{position:absolute; width:230px; height:491px; left:0; top:41px; z-index:10; background-color:#fff;} + +/* 主面板底部 */ +.xxim_bottom{height:34px; border-top:1px solid #D0DCF3; background-color:#F2F4F8;} +.xxim_expend{border-left:1px solid #D0DCF3; border-bottom:1px solid #D0DCF3;} +.xxim_bottom li{position:relative; width:50px; height:32px; line-height:32px; float:left; border-right:1px solid #D0DCF3; cursor:pointer;} +.xxim_bottom li i{ top:9px;} +.xxim_bottom .xxim_hide{border-right:none;} +.xxim_bottom .xxim_online{width:72px; padding-left:35px;} +.xxim_online i{left:13px; width:14px; height:14px;font-size:14px;color:#FFA00A;} +.xxim_setonline{display:none; position:absolute; left:-79px; bottom:-1px; border:1px solid #DCDCDC; background-color:#fff;} +.xxim_setonline span{position:relative; display:block; width:32px;width: 77px; padding:0 10px 0 35px;} +.xxim_setonline span:hover{background-color:#F2F4F8;} +.xxim_offline .xxim_nowstate, .xxim_setoffline i{color:#999;} +.xxim_mymsg i{left:18px; width:14px; height:14px;font-size: 14px;} +.xxim_mymsg a{position:absolute; left:0; top:0; width:50px; height:32px;} +.xxim_seter i{left:18px; width:14px; height:14px;font-size: 14px;} +.xxim_hide i{left:18px; width:14px; height:14px;font-size: 14px;} +.xxim_show i{} +.xxim_bottom .xxim_on{position:absolute; left:-17px; top:50%; width:16px;text-align: center;color:#999;line-height: 97px; height:97px; margin-top:-49px;border:solid 1px #BEBEBE;border-right: none; background:#F2F4F8;} +.xxim_bottom .xxim_off{} + +/* 聊天窗口 */ +.layim_chatbox{width:620px; border:1px solid #BEBEBE; background-color:#fff; font-size:12px; box-shadow: 0 0 10px rgba(0,0,0,.2);} +.layim_chatbox h6{position:relative; height:40px; border-bottom:1px solid #D9D9D9; background-color:#FCFDFA} +.layim_move{position:absolute; height:40px; width: 620px; z-index:0;} +.layim_face{position:absolute; bottom:-1px; left:10px; width:64px; height:64px;padding:1px;background: #fff; border:1px solid #ccc;} +.layim_face img{width:60px; height:60px;} +.layim_names{position:absolute; left:90px; max-width:300px; line-height:40px; color:#000; overflow:hidden; text-overflow: ellipsis; white-space:nowrap; font-size:14px;} +.layim_rightbtn{position:absolute; right:15px; top:12px; font-size:20px;} +.layim_rightbtn i{position:relative; width:16px; height:16px; display:inline-block; *display:inline; *zoom:1; vertical-align:top; cursor:pointer; transition: all .3s;text-align: center;line-height: 16px;} +.layim_rightbtn .layim_close{background: #FFA00A;color:#fff;} +.layim_rightbtn .layim_close:hover{-webkit-transform: rotate(180deg); -moz-transform: rotate(180deg);} +.layim_rightbtn .layer_setmin{margin-right:5px;color:#999;font-size:14px;font-weight: 700;} +.layim_chat, .layim_chatmore,.layim_groups{height:450px; overflow:hidden;} +.layim_chatmore{display:none; float:left; width:135px; border-right:1px solid #BEBEBE; background-color:#F2F2F2} +.layim_chatlist li, .layim_groups li{position:relative; height:30px; line-height:30px; padding:0 10px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap; cursor:pointer;} +.layim_chatlist li{padding:0 20px 0 10px;} +.layim_chatlist li:hover{background-color:#E3E3E3;} +.layim_chatlist li span{display:inline-block; *display:inline; *zoom:1; vertical-align:top; width:90px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap;} +.layim_chatlist li em{display:none; position:absolute; top:6px; right:10px; height:18px; line-height:18px;width:18px;text-align: center;font-size:14px;font-weight:900; border-radius:3px;} +.layim_chatlist li em:hover{background-color: #FCBE00; color:#fff;} +.layim_chatlist .layim_chatnow,.layim_chatlist .layim_chatnow:hover{/*border-top:1px solid #D9D9D9; border-bottom:1px solid #D9D9D9;*/ background-color:#fff;} +.layim_chat{} +.layim_chatarea{height:280px;} +.layim_chatview{display:none; height:280px; overflow:hidden;} +.layim_chatmore:hover, .layim_groups:hover, .layim_chatview:hover{overflow-y:auto;} +.layim_chatview li{margin-bottom:10px; clear:both; *zoom:1;} +.layim_chatview li:after{content:'\20'; clear:both; *zoom:1; display:block; height:0;} + +.layim_chatthis{display:block;} +.layim_chatuser{float:left; padding:15px; font-size:0;} +.layim_chatuser *{display:inline-block; *display:inline; *zoom:1; vertical-align:top; line-height:30px; font-size:12px; padding-right:10px;} +.layim_chatuser img{width:30px; height:30px;padding-right: 0;margin-right: 15px;} +.layim_chatuser .layim_chatname{max-width:230px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap;} +.layim_chatuser .layim_chattime{color:#999; padding-left:10px;} +.layim_chatsay{position:relative; float:left; margin:0 15px; padding:10px; line-height:20px; background-color:#F3F3F3; border-radius:3px; clear:both;} +.layim_chatsay .layim_zero{left:5px; top:-8px; border-width:8px; border-right-style:solid; border-right-color:#F3F3F3;} +.layim_chateme .layim_chatuser{float:right;} +.layim_chateme .layim_chatuser *{padding-right:0; padding-left:10px;} +.layim_chateme .layim_chatuser img{margin-left:15px;padding-left: 0;} +.layim_chateme .layim_chatsay .layim_zero{left:auto; right:10px;} +.layim_chateme .layim_chatuser .layim_chattime{padding-left:0; padding-right:10px;} +.layim_chateme .layim_chatsay{float:right; background-color:#EBFBE3} +.layim_chateme .layim_zero{border-right-color:#EBFBE3;} +.layim_groups{display:none; float:right; width:130px; border-left:1px solid #D9D9D9; background-color:#fff;} +.layim_groups ul{display:none;} +.layim_groups ul.layim_groupthis{display:block;} +.layim_groups li *{display:inline-block; *display:inline; *zoom:1; vertical-align:top; margin-right:10px;} +.layim_groups li img{width:20px; height:20px; margin-top:5px;} +.layim_groups li span{max-width:80px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap;} +.layim_groups li:hover{background-color:#F3F3F3;} +.layim_groups .layim_errors{text-align:center; color:#999;} +.layim_tool{position:relative; height:35px; line-height:35px; padding-left:10px; background-color:#F3F3F3;} +.layim_tool i{position:relative; top:10px; display:inline-block; *display:inline; *zoom:1; vertical-align:top; width:16px; height:16px; margin-right:10px; cursor:pointer;font-size:16px;color:#999;font-weight: 700;} +.layim_tool i:hover{color:#FFA00A;} +.layim_tool .layim_seechatlog{position:absolute; right:15px;} +.layim_tool .layim_seechatlog i{} +.layim_write{display:block; border:none; width:98%; height:90px; line-height:20px; margin:5px auto 0;} +.layim_send{position:relative; height:40px; background-color:#F3F3F3;} +.layim_sendbtn{position:absolute; height:26px; line-height:26px; right:10px; top:8px; padding:0 40px 0 20px; background-color:#FFA00A; color:#fff; border-radius:3px; cursor:pointer;} +.layim_enter{position:absolute; right:0; border-left:1px solid #FFB94F; width:24px; height:26px;} +.layim_enter:hover{background-color:#E68A00; border-radius:0 3px 3px 0;} +.layim_enter .layim_zero{left:7px; top:11px; border-width:5px; border-top-style:solid; border-top-color:#FFE0B3;} +.layim_sendtype{display:none; position:absolute; right:10px; bottom:37px; border:1px solid #D9D9D9; background-color:#fff; text-align:left;} +.layim_sendtype span{display:block; line-height:24px; padding:0 10px 0 25px; cursor:pointer;} +.layim_sendtype span:hover{background-color:#F3F3F3;} +.layim_sendtype span i{left:5px;} + +.layim_min{display:none; position:absolute; left:-190px; bottom:-1px; width:160px; height:32px; line-height:32px; padding:0 10px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap; border:1px solid #ccc; box-shadow: 0 0 5px rgba(0,0,75,.2); background-color:#FCFDFA; cursor:pointer;} + + + + + + + + + + + + + diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/layim/layim.js b/novel-admin/src/main/resources/static/js/plugins/layer/layim/layim.js new file mode 100644 index 0000000..52f0083 --- /dev/null +++ b/novel-admin/src/main/resources/static/js/plugins/layer/layim/layim.js @@ -0,0 +1,630 @@ +/* + + @Name: layui WebIM 1.0.0 + @Author:贤心 + @Date: 2014-04-25 + @Blog: http://sentsin.com + + */ + +;!function(win, undefined){ + +var config = { + msgurl: 'mailbox.html?msg=', + chatlogurl: 'mailbox.html?user=', + aniTime: 200, + right: -232, + api: { + friend: 'js/plugins/layer/layim/data/friend.json', //好友列表接口 + group: 'js/plugins/layer/layim/data/group.json', //群组列表接口 + chatlog: 'js/plugins/layer/layim/data/chatlog.json', //聊天记录接口 + groups: 'js/plugins/layer/layim/data/groups.json', //群组成员接口 + sendurl: '' //发送消息接口 + }, + user: { //当前用户信息 + name: '游客', + face: 'img/a1.jpg' + }, + + //自动回复内置文案,也可动态读取数据库配置 + autoReplay: [ + '您好,我现在有事不在,一会再和您联系。', + '你没发错吧?', + '洗澡中,请勿打扰,偷窥请购票,个体四十,团体八折,订票电话:一般人我不告诉他!', + '你好,我是主人的美女秘书,有什么事就跟我说吧,等他回来我会转告他的。', + '我正在拉磨,没法招呼您,因为我们家毛驴去动物保护协会把我告了,说我剥夺它休产假的权利。', + '<(@ ̄︶ ̄@)>', + '你要和我说话?你真的要和我说话?你确定自己想说吗?你一定非说不可吗?那你说吧,这是自动回复。', + '主人正在开机自检,键盘鼠标看好机会出去凉快去了,我是他的电冰箱,我打字比较慢,你慢慢说,别急……', + '(*^__^*) 嘻嘻,是贤心吗?' + ], + + + chating: {}, + hosts: (function(){ + var dk = location.href.match(/\:\d+/); + dk = dk ? dk[0] : ''; + return 'http://' + document.domain + dk + '/'; + })(), + json: function(url, data, callback, error){ + return $.ajax({ + type: 'POST', + url: url, + data: data, + dataType: 'json', + success: callback, + error: error + }); + }, + stopMP: function(e){ + e ? e.stopPropagation() : e.cancelBubble = true; + } +}, dom = [$(window), $(document), $('html'), $('body')], xxim = {}; + +//主界面tab +xxim.tabs = function(index){ + var node = xxim.node; + node.tabs.eq(index).addClass('xxim_tabnow').siblings().removeClass('xxim_tabnow'); + node.list.eq(index).show().siblings('.xxim_list').hide(); + if(node.list.eq(index).find('li').length === 0){ + xxim.getDates(index); + } +}; + +//节点 +xxim.renode = function(){ + var node = xxim.node = { + tabs: $('#xxim_tabs>span'), + list: $('.xxim_list'), + online: $('.xxim_online'), + setonline: $('.xxim_setonline'), + onlinetex: $('#xxim_onlinetex'), + xximon: $('#xxim_on'), + layimFooter: $('#xxim_bottom'), + xximHide: $('#xxim_hide'), + xximSearch: $('#xxim_searchkey'), + searchMian: $('#xxim_searchmain'), + closeSearch: $('#xxim_closesearch'), + layimMin: $('#layim_min') + }; +}; + +//主界面缩放 +xxim.expend = function(){ + var node = xxim.node; + if(xxim.layimNode.attr('state') !== '1'){ + xxim.layimNode.stop().animate({right: config.right}, config.aniTime, function(){ + node.xximon.addClass('xxim_off'); + try{ + localStorage.layimState = 1; + }catch(e){} + xxim.layimNode.attr({state: 1}); + node.layimFooter.addClass('xxim_expend').stop().animate({marginLeft: config.right}, config.aniTime/2); + node.xximHide.addClass('xxim_show'); + }); + } else { + xxim.layimNode.stop().animate({right: 1}, config.aniTime, function(){ + node.xximon.removeClass('xxim_off'); + try{ + localStorage.layimState = 2; + }catch(e){} + xxim.layimNode.removeAttr('state'); + node.layimFooter.removeClass('xxim_expend'); + node.xximHide.removeClass('xxim_show'); + }); + node.layimFooter.stop().animate({marginLeft: 0}, config.aniTime); + } +}; + +//初始化窗口格局 +xxim.layinit = function(){ + var node = xxim.node; + + //主界面 + try{ + /* + if(!localStorage.layimState){ + config.aniTime = 0; + localStorage.layimState = 1; + } + */ + if(localStorage.layimState === '1'){ + xxim.layimNode.attr({state: 1}).css({right: config.right}); + node.xximon.addClass('xxim_off'); + node.layimFooter.addClass('xxim_expend').css({marginLeft: config.right}); + node.xximHide.addClass('xxim_show'); + } + }catch(e){ + //layer.msg(e.message, 5, -1); + } +}; + +//聊天窗口 +xxim.popchat = function(param){ + var node = xxim.node, log = {}; + + log.success = function(layero){ + layer.setMove(); + + xxim.chatbox = layero.find('#layim_chatbox'); + log.chatlist = xxim.chatbox.find('.layim_chatmore>ul'); + + log.chatlist.html('
                              • '+ param.name +'×
                              • ') + xxim.tabchat(param, xxim.chatbox); + + //最小化聊天窗 + xxim.chatbox.find('.layer_setmin').on('click', function(){ + var indexs = layero.attr('times'); + layero.hide(); + node.layimMin.text(xxim.nowchat.name).show(); + }); + + //关闭窗口 + xxim.chatbox.find('.layim_close').on('click', function(){ + var indexs = layero.attr('times'); + layer.close(indexs); + xxim.chatbox = null; + config.chating = {}; + config.chatings = 0; + }); + + //关闭某个聊天 + log.chatlist.on('mouseenter', 'li', function(){ + $(this).find('em').show(); + }).on('mouseleave', 'li', function(){ + $(this).find('em').hide(); + }); + log.chatlist.on('click', 'li em', function(e){ + var parents = $(this).parent(), dataType = parents.attr('type'); + var dataId = parents.attr('data-id'), index = parents.index(); + var chatlist = log.chatlist.find('li'), indexs; + + config.stopMP(e); + + delete config.chating[dataType + dataId]; + config.chatings--; + + parents.remove(); + $('#layim_area'+ dataType + dataId).remove(); + if(dataType === 'group'){ + $('#layim_group'+ dataType + dataId).remove(); + } + + if(parents.hasClass('layim_chatnow')){ + if(index === config.chatings){ + indexs = index - 1; + } else { + indexs = index + 1; + } + xxim.tabchat(config.chating[chatlist.eq(indexs).attr('type') + chatlist.eq(indexs).attr('data-id')]); + } + + if(log.chatlist.find('li').length === 1){ + log.chatlist.parent().hide(); + } + }); + + //聊天选项卡 + log.chatlist.on('click', 'li', function(){ + var othis = $(this), dataType = othis.attr('type'), dataId = othis.attr('data-id'); + xxim.tabchat(config.chating[dataType + dataId]); + }); + + //发送热键切换 + log.sendType = $('#layim_sendtype'), log.sendTypes = log.sendType.find('span'); + $('#layim_enter').on('click', function(e){ + config.stopMP(e); + log.sendType.show(); + }); + log.sendTypes.on('click', function(){ + log.sendTypes.find('i').text('') + $(this).find('i').text('√'); + }); + + xxim.transmit(); + }; + + log.html = '
                                ' + +'
                                ' + +'' + +' ' + +' '+ param.name +'' + +' ' + +' ' + +' ×' + +' ' + +'
                                ' + +'
                                ' + +'
                                  ' + +'
                                  ' + +'
                                  ' + +'
                                  ' + +'
                                  ' + +'
                                    ' + +'
                                    ' + +'
                                    ' + +' ' + +' ' + +' ' + +' 聊天记录' + +'
                                    ' + +' ' + +'
                                    ' + +'
                                    发送
                                    ' + +'
                                    ' + +' 按Enter键发送' + +' 按Ctrl+Enter键发送' + +'
                                    ' + +'
                                    ' + +'
                                    ' + +'
                                    '; + + if(config.chatings < 1){ + $.layer({ + type: 1, + border: [0], + title: false, + shade: [0], + area: ['620px', '493px'], + move: '.layim_chatbox .layim_move', + moveType: 1, + closeBtn: false, + offset: [(($(window).height() - 493)/2)+'px', ''], + page: { + html: log.html + }, success: function(layero){ + log.success(layero); + } + }) + } else { + log.chatmore = xxim.chatbox.find('#layim_chatmore'); + log.chatarea = xxim.chatbox.find('#layim_chatarea'); + + log.chatmore.show(); + + log.chatmore.find('ul>li').removeClass('layim_chatnow'); + log.chatmore.find('ul').append('
                                  • '+ param.name +'×
                                  • '); + + log.chatarea.find('.layim_chatview').removeClass('layim_chatthis'); + log.chatarea.append('
                                      '); + + xxim.tabchat(param); + } + + //群组 + log.chatgroup = xxim.chatbox.find('#layim_groups'); + if(param.type === 'group'){ + log.chatgroup.find('ul').removeClass('layim_groupthis'); + log.chatgroup.append('
                                        '); + xxim.getGroups(param); + } + //点击群员切换聊天窗 + log.chatgroup.on('click', 'ul>li', function(){ + xxim.popchatbox($(this)); + }); +}; + +//定位到某个聊天队列 +xxim.tabchat = function(param){ + var node = xxim.node, log = {}, keys = param.type + param.id; + xxim.nowchat = param; + + xxim.chatbox.find('#layim_user'+ keys).addClass('layim_chatnow').siblings().removeClass('layim_chatnow'); + xxim.chatbox.find('#layim_area'+ keys).addClass('layim_chatthis').siblings().removeClass('layim_chatthis'); + xxim.chatbox.find('#layim_group'+ keys).addClass('layim_groupthis').siblings().removeClass('layim_groupthis'); + + xxim.chatbox.find('.layim_face>img').attr('src', param.face); + xxim.chatbox.find('.layim_face, .layim_names').attr('href', param.href); + xxim.chatbox.find('.layim_names').text(param.name); + + xxim.chatbox.find('.layim_seechatlog').attr('href', config.chatlogurl + param.id); + + log.groups = xxim.chatbox.find('.layim_groups'); + if(param.type === 'group'){ + log.groups.show(); + } else { + log.groups.hide(); + } + + $('#layim_write').focus(); + +}; + +//弹出聊天窗 +xxim.popchatbox = function(othis){ + var node = xxim.node, dataId = othis.attr('data-id'), param = { + id: dataId, //用户ID + type: othis.attr('type'), + name: othis.find('.xxim_onename').text(), //用户名 + face: othis.find('.xxim_oneface').attr('src'), //用户头像 + href: 'profile.html?user=' + dataId //用户主页 + }, key = param.type + dataId; + if(!config.chating[key]){ + xxim.popchat(param); + config.chatings++; + } else { + xxim.tabchat(param); + } + config.chating[key] = param; + + var chatbox = $('#layim_chatbox'); + if(chatbox[0]){ + node.layimMin.hide(); + chatbox.parents('.xubox_layer').show(); + } +}; + +//请求群员 +xxim.getGroups = function(param){ + var keys = param.type + param.id, str = '', + groupss = xxim.chatbox.find('#layim_group'+ keys); + groupss.addClass('loading'); + config.json(config.api.groups, {}, function(datas){ + if(datas.status === 1){ + var ii = 0, lens = datas.data.length; + if(lens > 0){ + for(; ii < lens; ii++){ + str += '
                                      • '+ datas.data[ii].name +'
                                      • '; + } + } else { + str = '
                                      • 没有群员
                                      • '; + } + + } else { + str = '
                                      • '+ datas.msg +'
                                      • '; + } + groupss.removeClass('loading'); + groupss.html(str); + }, function(){ + groupss.removeClass('loading'); + groupss.html('
                                      • 请求异常
                                      • '); + }); +}; + +//消息传输 +xxim.transmit = function(){ + var node = xxim.node, log = {}; + node.sendbtn = $('#layim_sendbtn'); + node.imwrite = $('#layim_write'); + + //发送 + log.send = function(){ + var data = { + content: node.imwrite.val(), + id: xxim.nowchat.id, + sign_key: '', //密匙 + _: +new Date + }; + + if(data.content.replace(/\s/g, '') === ''){ + layer.tips('说点啥呗!', '#layim_write', 2); + node.imwrite.focus(); + } else { + //此处皆为模拟 + var keys = xxim.nowchat.type + xxim.nowchat.id; + + //聊天模版 + log.html = function(param, type){ + return '
                                      • ' + +'
                                        ' + + function(){ + if(type === 'me'){ + return ''+ param.time +'' + +''+ param.name +'' + +''; + } else { + return '' + +''+ param.name +'' + +''+ param.time +''; + } + }() + +'
                                        ' + +'
                                        '+ param.content +'
                                        ' + +'
                                      • '; + }; + + log.imarea = xxim.chatbox.find('#layim_area'+ keys); + + log.imarea.append(log.html({ + time: '2014-04-26 0:37', + name: config.user.name, + face: config.user.face, + content: data.content + }, 'me')); + node.imwrite.val('').focus(); + log.imarea.scrollTop(log.imarea[0].scrollHeight); + + setTimeout(function(){ + log.imarea.append(log.html({ + time: '2014-04-26 0:38', + name: xxim.nowchat.name, + face: xxim.nowchat.face, + content: config.autoReplay[(Math.random()*config.autoReplay.length) | 0] + })); + log.imarea.scrollTop(log.imarea[0].scrollHeight); + }, 500); + + /* + that.json(config.api.sendurl, data, function(datas){ + + }); + */ + } + + }; + node.sendbtn.on('click', log.send); + + node.imwrite.keyup(function(e){ + if(e.keyCode === 13){ + log.send(); + } + }); +}; + +//事件 +xxim.event = function(){ + var node = xxim.node; + + //主界面tab + node.tabs.eq(0).addClass('xxim_tabnow'); + node.tabs.on('click', function(){ + var othis = $(this), index = othis.index(); + xxim.tabs(index); + }); + + //列表展收 + node.list.on('click', 'h5', function(){ + var othis = $(this), chat = othis.siblings('.xxim_chatlist'), parentss = othis.find("i"); + if(parentss.hasClass('fa-caret-down')){ + chat.hide(); + parentss.attr('class','fa fa-caret-right'); + } else { + chat.show(); + parentss.attr('class','fa fa-caret-down'); + } + }); + + //设置在线隐身 + node.online.on('click', function(e){ + config.stopMP(e); + node.setonline.show(); + }); + node.setonline.find('span').on('click', function(e){ + var index = $(this).index(); + config.stopMP(e); + if(index === 0){ + node.onlinetex.html('在线'); + node.online.removeClass('xxim_offline'); + } else if(index === 1) { + node.onlinetex.html('隐身'); + node.online.addClass('xxim_offline'); + } + node.setonline.hide(); + }); + + node.xximon.on('click', xxim.expend); + node.xximHide.on('click', xxim.expend); + + //搜索 + node.xximSearch.keyup(function(){ + var val = $(this).val().replace(/\s/g, ''); + if(val !== ''){ + node.searchMian.show(); + node.closeSearch.show(); + //此处的搜索ajax参考xxim.getDates + node.list.eq(3).html('
                                      • 没有符合条件的结果
                                      • '); + } else { + node.searchMian.hide(); + node.closeSearch.hide(); + } + }); + node.closeSearch.on('click', function(){ + $(this).hide(); + node.searchMian.hide(); + node.xximSearch.val('').focus(); + }); + + //弹出聊天窗 + config.chatings = 0; + node.list.on('click', '.xxim_childnode', function(){ + var othis = $(this); + xxim.popchatbox(othis); + }); + + //点击最小化栏 + node.layimMin.on('click', function(){ + $(this).hide(); + $('#layim_chatbox').parents('.xubox_layer').show(); + }); + + + //document事件 + dom[1].on('click', function(){ + node.setonline.hide(); + $('#layim_sendtype').hide(); + }); +}; + +//请求列表数据 +xxim.getDates = function(index){ + var api = [config.api.friend, config.api.group, config.api.chatlog], + node = xxim.node, myf = node.list.eq(index); + myf.addClass('loading'); + config.json(api[index], {}, function(datas){ + if(datas.status === 1){ + var i = 0, myflen = datas.data.length, str = '', item; + if(myflen > 1){ + if(index !== 2){ + for(; i < myflen; i++){ + str += '
                                      • ' + +'
                                        '+ datas.data[i].name +'('+ datas.data[i].nums +')
                                        ' + +'
                                          '; + item = datas.data[i].item; + for(var j = 0; j < item.length; j++){ + str += '
                                        • '+ item[j].name +'
                                        • '; + } + str += '
                                      • '; + } + } else { + str += '
                                      • ' + +'
                                          '; + for(; i < myflen; i++){ + str += '
                                        • '+ datas.data[i].name +''+ datas.data[i].time +'
                                        • '; + } + str += '
                                      • '; + } + myf.html(str); + } else { + myf.html('
                                      • 没有任何数据
                                      • '); + } + myf.removeClass('loading'); + } else { + myf.html('
                                      • '+ datas.msg +'
                                      • '); + } + }, function(){ + myf.html('
                                      • 请求失败
                                      • '); + myf.removeClass('loading'); + }); +}; + +//渲染骨架 +xxim.view = (function(){ + var xximNode = xxim.layimNode = $('
                                        ' + +'
                                        ' + +' ' + +'
                                        ' + +'
                                          ' + +'
                                            ' + +'
                                              ' + +'
                                                ' + +'
                                                ' + +'
                                                  ' + +'
                                                • ' + +'在线' + +'
                                                  ' + +'在线' + +'隐身' + +'
                                                  ' + +'
                                                • ' + +'
                                                • ' + +'
                                                • ' + +'' + +'
                                                  ' + + +'
                                                  ' + +'
                                                • ' + +'
                                                • ' + +'
                                                • ' + +'
                                                  ' + +'
                                                ' + +'
                                                '); + dom[3].append(xximNode); + + xxim.renode(); + xxim.getDates(0); + xxim.event(); + xxim.layinit(); +}()); + +}(window); + diff --git a/novel-admin/src/main/resources/static/js/plugins/layer/layim/loading.gif b/novel-admin/src/main/resources/static/js/plugins/layer/layim/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..059b1ac3fe97fb18a3357018a06df0301ec0bc97 GIT binary patch literal 166 zcmZ?wbhEHb)Mk)ln8?8J|NsBHckfp14PjtlQ2fvB=Nc01>=@u`q-Vg)2on0q!YTr! zb(k4=8B`gV85o#^rt~ujyp'+(e?n.title[0]:n.title)+"

                                            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 d0mRO}xo^G_%I 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/fonts/fontawesome-webfont.woff2 b/novel-admin/src/main/resources/static/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 GIT binary patch literal 77160 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.eot b/novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..b93a4953fff68df523aa7656497ee339d6026d64 GIT binary patch literal 20127 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf b/novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1413fc609ab6f21774de0cb7e01360095584f65b GIT binary patch literal 45404 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 G`u_lkUM?>H literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2 b/novel-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0 GIT binary patch literal 18028 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/fonts/icomoon/icomoon.eot b/novel-admin/src/main/resources/static/fonts/icomoon/icomoon.eot new file mode 100644 index 0000000000000000000000000000000000000000..dd7c6e774e4dff9657a96a48b987c626b10302c3 GIT binary patch literal 103032 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 Na*P>R#((SI{{tP6sI>q9 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/fonts/icomoon/icomoon.svg b/novel-admin/src/main/resources/static/fonts/icomoon/icomoon.svg new file mode 100644 index 0000000..80d1999 --- /dev/null +++ b/novel-admin/src/main/resources/static/fonts/icomoon/icomoon.svg @@ -0,0 +1,525 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/novel-admin/src/main/resources/static/fonts/icomoon/icomoon.ttf b/novel-admin/src/main/resources/static/fonts/icomoon/icomoon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..778bca9d0a0f2cc2b40af2e91e69d8d945749c68 GIT binary patch literal 102868 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/fonts/icomoon/icomoon.woff b/novel-admin/src/main/resources/static/fonts/icomoon/icomoon.woff new file mode 100644 index 0000000000000000000000000000000000000000..23c0f79c54a79f1649df7e89cbd2b25dadb54d8a GIT binary patch literal 102944 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⪙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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/a1.jpg b/novel-admin/src/main/resources/static/img/a1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4db26bc36a4e27cb9c91379059a5e38b14ccc7cc GIT binary patch literal 40994 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%0DTny05|ZaO&P;!HoFcgS$|Qg6Y+6y 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/a2.jpg b/novel-admin/src/main/resources/static/img/a2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..36f7728f36c39208daf7dcbf42dbb52f5db29862 GIT binary patch literal 13416 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≷-r2}nKY&Yf=Q_kadiiB24hn}B^|pzjAOu7N2tk}vcX8MY<-$5vU*dJ=R>`^0(G-gIEv(u6~wu} h$j+}*37NnDA^jeOA?Y$t6v(7)O5EgkLh-TkzX0AliC6#t literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/a3.jpg b/novel-admin/src/main/resources/static/img/a3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..64c20499a30b88c3e976737c39ede128fe2adb5f GIT binary patch literal 50346 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 MWWUDc`E8H?+0EO}^#A|> literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/a4.jpg b/novel-admin/src/main/resources/static/img/a4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f82f9f4b71fa24562624033d20f496930b3a032b GIT binary patch literal 8039 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/a5.jpg b/novel-admin/src/main/resources/static/img/a5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..56bea692aaf020e6c39df34bea4eac0779c74a34 GIT binary patch literal 16274 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/a6.jpg b/novel-admin/src/main/resources/static/img/a6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..935ccc7ffabd2b7d19ce120c38339fe489c4fcad GIT binary patch literal 18357 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 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/a7.jpg b/novel-admin/src/main/resources/static/img/a7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..975ac1812b1a4559f0926f0be20b5e6365da9227 GIT binary patch literal 10399 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 Sl43j~Moq6)EDibcvHU-AJ;#gy literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/a8.jpg b/novel-admin/src/main/resources/static/img/a8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c89190ce3be06a4e2171834049c6bdc6737583c GIT binary patch literal 10758 zcmZ{|WmFX2*9JPn(2aCALo+Z843g4F3@IQjFoZM;L#K3i4$>hip@IlMQaXeIq@^1v z>AL*ax_7Pj%YDv=Q~T__&slrzI1e)q%K-A{sv4>QAP@imJ~qI^JV5Dj_J4qd1;Y9t zut6X!5DqpD4h}XpHV!TxE)EVJE;cqU0WKc?|A2!_KuCa3_`k{jnEa0e2#AFT0^*So z;1Q7h9{~T)`2TY6qvQ}%#HXO*)PF_IE(-MuC*XRfAvy=^{!!ohDSJY)w zA*35(p6?ZjEVD9o+!>7DAKdr%mjZOYXB2s5&)LOXwn|M9D09|3ty(sI1Ur(NahF`qdq106dxGJc*lj+$e(b>Fh@2+9U&6paft_ePh z=p;DfdD$IYL5NBcUywOlqT_3p=MtGaEOsq5VA9s7hLFoUW(%T>v8SjymAa{}ToVXd zm520{415#Z6YNTiJ$DqlpT?6CR0ng122)fCD;cn~H_dN^z86}e!}1SS|4mt!(KYPT zf&2b^AF|gYKJ+uOzBOYbkcfOw{raxW#G@0-$D}Z-BEwDcFcu>J(zk;&5^a5EhtaHN z2j0`Y?fSAy+prIzHhhLhN00=HQwgIBrt4xb;Ib)=8zc8v>^OX~aeJKf76#$!bdgr{ zaaja<%bI!?Q7*JqFCvaIIVCkZgX|)E)O-K7HJ`mDuxOe0zb?7GmixCc(7Ik>hMA&P zILRqYn-tMPCgh`v5DZ` z^?qrN1|4@D=j^Sf4$_)>nn({9l=)A*mSj8l>vX|?CfH#2GA|)pP_!fR`0Okt=j@=B zV^A!htXwi@AJX-zA%RCJrecpeZNjuBXKgB`P3`ZGk(Ta-vr9N<#(hE?{565hf5zSljVj3#GaI+6mP6IqRCX%ceCG)4c(m3!xrSiS zvK#~gkt4;~&}~cG>#jNO!|$~~(S9IWh1#)rFuz=~;woTp=3O(Z6LCw7=RP#4#p|d; z$xwg^Z;4jp!OH)NRAC@r(;HjeNa6D}Mmv*^Icx^YWmeFcV9%y z50C*obNgtnJ{pYfYLv$IOsz$ey^ytcmxDsv&wAdRz0E%G{k1s8@0-j5N3BolAH>BT zMurbzJ&nqX-MNoB-x(RG@I9+ABP5*cfl(JCQy?+^nAUp$gw z8mhB;4VcW4&Lm6|1et7#v9(S$q4|48^`}lGw$pK1z0(e(OQJ$4OsVksKBj*$DZX6# z9aAHVbT=w6<;9eJs5_{xd zNSL&Z^a$1dOtDKurwLtE4o6UNM{+>$kvtc894h)J8YOd_D)%A7Y2 za)Pa1Z{37L*Us|Q_mp9(jOsZmw;0RxFiu&T-xojN`&+ZEY@|_7rM9#k_^bHD1Ncp2 zIrAJ_ZN#0cn|xkN0w7Qo*SwCjIk3%P9mhTI+&6?drlF-oXG87Dg@&bMVpQyDSTuXs ziJI6Q%|fZ1=Xl$VtzJ*3s5d+~#a(0Ukbo;#^CsmIz*#)phNN0Ff;b4_P?l~E02}MR zacuCc)Ud*5uh_lC(&cchX-}3F&L0414$tL~#5kt}6P}(5>1H-n#gmXTED$Nm5>;gU zf?pZFGcutatxEi^21@cuTcg-yB;45Dbl}AA)>B}svDd3NswK*qUq-^6ca3t#WhY&F z2W0tt`<#sX=$~JdwMVs^75DN=mJFROvZD^KGn=-m*@Ra=c~bJKWmdRLD6Q}>Y^V8IWpvy z7OKw!C=)xSe@Y+q;r}+6Z(Qt@Iui~})}`HzP(9~NjIPR@m%|5>L>8T_c}mlq@03;c z^#LQEwKWz6MHPvJQ|&K&LGhJ};XG-++ci(ga7I~_1^>N)vp*9MSFs1$8DNBMLTO?L zv$84{_pG0L3bgx0Grf8<()8NxIQQJg83pfH{>hB2KCc)x(tgG`*5TRA6aQ1tgwm}z zV6rtBMN}-KWBEM486v)}#?;tG)$hg;!Iz*i_K(z3s6`1(t3h^GK3xaK_##LI^z?$MK!+gyr3*W&k) z_h>aj*9g3muZGASDt)Q~Absw;=sTtmrWZ?Q8+W45);0YNQzwe$=mGE*;DfXYIs{Uv}agIT(Y1*fE%&e+IG5_itS&aE}SAo$p0DC5@ zP0DnF?zcs|yzlotL%{H0#D0A5j=QDKwF-iH%W#8gs`QR)fQiD;Q&gN$Tnw|@H(jKk zBWz**`<6mosvax}GqR3hh^<+)unW^)0wSxd9Aqo)^yC-o7FSWtoVN!o!*SVp&XQA& zhJNf4$BdHUGiP4&geqBT7kDdk^r^E)iY{gh*m;uYQM&=9aTJuJ#N*sFqP-QN0@MxB&9=PB4x#hFz z`WT6HgJup_)*@6(V$(wX{Uh4@DeAPwy^2im98mHp%Or2imn7&fB1Q-Yq)O^}>=**G zyR>WDY)xNGJM%(n9T$-VmGh5ow>?Jn2+m(nM}y&UtM}tK6`y4FPd&s5C+c*V6yJx|HFp6FwV7&3ECpk$XPa+V@O{T% z@7k{OV&7$7vK^sKrZi<&On>&-ffwj}3a_22%Y&Cd??%Jh$89*h;zX#_S}_7xmzQ-W z@u7PLx|&G@^tlm`O*Be+h! z(0HYDC5_IkgIYi*mNp?N?D^!^?a204ibS8SR~>aBhCo^9TDgz?)>_Y|(TLK_&Km{B z=R4JoK0XJjn&C(Hr%>rt*_IKFIU$TI*j1o%KHbBm3Z{9Ha{4D|Yb*SX1@@p~*#MP+ zUf=hIk)vo&f5!^zz+c3E(!06LRM#p--?{TAgB-M^P$S|CAcw@a?s&Yp?>cNcd?S79 zRmbvmwy!NcX3i)*`e{JI9>;x~TkLuHcq0qpgOWyK?aN7DpW@yLQDxa@vZm*Da%KKH z12o}2iEVj4Gkz7-soZflaHRYIfHBc_(a^0p_$A=;J71NSQ*u#hMRwhKvRH3~QNd>s zC80I@wW>wipRM54<$pc&%0AhM8q+u~Jm(8P2*m@)7Fwt!pIxq|L$krGm@zSQkhEkH z(~Bofn``DlgPk2V$9vdsNhU~Rq}&XVABhJd0-wAzS)&=?$N9>g?=L}X zsO(8-@M(#a%I$CaIVw-Eb5cw3B7*>51a5w%?&sz!%r)QeRP@oNHAPV-{aP z*~pd1J?1B&c^z>@!#ZFbPM?t<#z<6UM-?#>5iE88Vy${v9qR;!(7dSanASSWKpso)vkSw$`My6N;;Cr*u{E_7ev;;6&p6{$ zv#1>--~hZNrG7G%g$o6E%|Gi7@uxj{raw|>&u%?aAUH#XEH7Xu$)^>-nzouVU_3uj zs@EOHc!kGURW0~kg)@8=bU8JVT_FQ>ZR15Y2Ei`r9d>N!w z=x?B{UX1qb#2x|%R9vh@<%AU;`TxB!Fo8j|-nUt6Etn8F^H{2zh;ZT751LDm=#-P? ze8WQ%{-NV2LV~n4TbWXmEQy3fT4jHoSm83~LRC*q<$i&!iK)e2eKAxsg_^Z$wK91$ zS6Y2fkM|ATYOE3l+9i)N;gUzQ^)24~_~y~uHHuIX*LL>_zydM%-!b`JXL~^GKDj!Q8 z!jfIQ3RK*@*4V(*#AW*$YM9ZM>$y2>TA>gfE8?)$_-HtwqtA!JFe z@e3?5|K!HRF#cTNoyFXe(sFysexg5OZ~GB!grqP{PSR&oZrX7&hPx7~b<1}57oTY^&by2Woc&q+1`9*bW= zDpO&}C~%-u8nc3X+%!+=o6)Y>zcwgL7E8KooY1_K{D)duOz5&aULPS)#r`YL%R!%> zzD5D-LoXJT+m?D{6_rb}pMcOg8MuJ0#Y&&ou_{)u(p4=iIn|s z>Hd9C0Iv3{c_ld$to~R+CfpJ2#7bvV;@Z|*w6ZdZ**LK({WOp^maY8mHqjKsQMuV* z|A*2A%%}Ox0e=;~GTHLOtwZa$k64n{*ix>F0{9ecpQ%>xJ+E72XW)}qE~b@PFg!AI zX00NXMq-&|K?rLRi`v4muGb|1Nw1TPMS%F5$Q#~g~lRr=rfz2~du(QGWj%q4Lj zGO?Dq2~6R9UJ7B~k0O(9crQx(dA4NnXLr9$u)5V%K=RN9@7RR{A=b)tkvy7)SnnY5 zMl>(3LaDAbUrByQ&)+_ zKaN`Gv`N%YsN9{GK|l0|s6i1)owacWe8~K00`yS4ZA!#I;MXtxhNhu#cL>Gua_cQQ zm~9i+Wk8iQNNXtamORuWwqym-(!$gd_cAC`+wGt)YTo7tr(Az=kzcWXbV-{GlqMI67=Asph0&^Eux8l^(yyb3H|1NRH&gK;tTeKZYMbM}`{@sCJQa3uelb!}|yI${8L!6{;_yYj1k1Xts`>42=W%QUJ zZ(p2!+cQxqnQu-WChkC2ANfgRS>5TE!DTtrHRE#$vCq)X^Xa<%Jf_ z_BpL8NA^fiy4Ck#?Ve;Y+ny>U3&=}m{yiMLlgPN?WO5Ke%17FWxXCBDWU77-@VtGM z{$C!UMx#q^<*tU_xnJ3YBQa|kLGWdqf^%3=0a?TvB)*PF{$54uP6)&1jo2vXFFxiv zzC#CvvX;=cCjKcLD^g)vyh|%;e$P`;xqsVfApTh>vPf*~zSW>qL&?e4jA<{*EIeLR|lV z30F@30pMx%_9p55-WvHw^dQ{c~noCYj856B^?QDZY#aWx<=uXN> z@|Y4LElO8^6i<29)r#tBPVfu{N+PjK5n9APi{q^!HbPZ*)61~ zp69kYpJ+%sh@hV@;6yD>DAedEbyx?G@-A*|AP^+(!*OO@h3%-3NHjv+5At$^D+P(H z`F&&pq@Dlg6GWU_mRTto9}gKy^`_#t^8kX zDc7D)E{tAHW63k_qrK}mmSrp;0~lCOQhEbA|G{If)_HDX{bYb4g~5X#8$maIQq0pJBI7wlh$o#ly$XD+SbRC@a!e&1_D| z);qecJ6DMRIV=}r5P0>PD|^Gz(lFh$;c46``D?z;xF5Cvwt>b!`6O(6V0BZyBAH>?EVD1|0@@^Ontt#A9u5JFy8QSjNdK0$`Ka`uU>EI zFK99ZEJ+C6jodB=qEU5-)==4y+f*1h<2#0?lG?9uoU`nP@5`zueET?u>b5ZcenN*p zXph792(L(aMdR0}64OX@-O$BmiSzS6=oE4jA1{|nm)q279Y1w5oo)Xx+U=^9oJLr@ z`aWa=VkmeU%~WdmWw3${OVfrC5>0d!~(O`F|HqFCZX`dP^3Ww>_Z=#g$z z4luPk1onS5ckJ~)I@bRi1)X+RYYxm#rk!R!#i8~@#<0Talv3G|n}H)Q#e(BQ)Ok`% zQfnl!I`8XH%Y%iKJ5%eYT$cJqza7)Huxs(Y1r#McIj!ba%7WRx%~FwY$A*PQ{`cva za@mkevDhGa96caF~vIMO4~Db z4;ul)&m_nN*0RPq7~t8=20b) znfVj5jrYwf9wTc%a~<1|rG8P_)1U<6+bmUO#O_nMm5x6R2hqSpnbd+pya~eOVE@G2 zVQMLZ@MREA$Yz5ux!yQ8BTGqaGF}?*-$1tjMRx|l5^vnUz?+Z+$@{was&cU7l;KB7 zgKseLKVmA&fh+&v(<-K?-_vPp(Q(4e_SokbD+dEQMydMtyN?q&h(SzbAEx!*o3zmo z=a$+c2Y5cGSQla>hTvMmlzKXFU0#N~!oWJ6iY~<813GkxqESwhz!y)6!B@sKeEU83 zycA!|Wa~J*zZ^-$u{M2X?S&0RU&Zz+?lmR` z@UKy!&TUe0J8l`=PPy#p4m8+!mj3Uf6XvDojg2a;;S_Z&jsmm`%R;VS5=tblPUsnGVeTuuwgZ@{*-Lb)((aYD>Fc8+Rlo(Eg6=A`L>i8pNLEI&Htj3DL^44N5fUe>8=hWA9{iabia04z0gE7@;|G)jVlSpx8K_@&xL>~U*MOm zbXwIgyuextkRs&*>XKGsmu9&crcdL~G{W|0@7Hgw1K4{i|I}5P4U?EcV=WZ=?8d_@ z+j1WO9f8qfMCU)YExCw1!I?;EmN6B($vh~4e));9R*u#QXdi-hCIZFP_t(_=T zxEkr%#ECn^vp6VkVkEadO2&*kKdk}_{M|K4*AlMYz!}~jo@cwZ6?^q-vr+2YxVd79 zMJ^?^MPk}}8+~+t6yqy_OiGJl(5O=JGaWloOfUWDLdD`XG$UiyII#6>`!`NMk!P91 zsms+`BGb>?7bU^N@^sTCN9~`x8EMb_Zz(Do<}(t-<~D<6tP5RNOVGR!-ScXPx8H~s zSe}M#*&%dAjPtOApnV_64DogT13NBzOg?7Gb_V+io~=8{%MXAhF_QCYy2nr!-N@RD zy^p9B$AJDGK;U6->uetYuVc*$fGy6Ny6F+#TXK_bY4ZEA%irKEIRTjW^K0-g)Rs6{@msue{Ozxk)#BT1NHRUeCEoPRd z-0L4T5YuF0pM}cwzX#wYQ~QZ&esM$(k?r9IqsH#!%8ROX(Wd|8N8K_BCW-k>2{Z1n zS8959gT&P*>`{1F@}qJjVW+cC*0wK(lM-g3<05de5HVTOrS~e=6SGHUnTHO)-|aBp zo_l%Wq*zVF@9@<$3OlYw^;2h*ZmWj8c=0O5WaW}&q-a2uPdGPM#=*##n8FKP+6^)? z3M|+RkrDIWEdrnN*n29&CbK91b)F9f_4ZIV`Y+tvt~6Y_?>?9PawYLsfkk8Y@q0%y z4@NYmR!ALD$jT*^OC+sYS$0Y(B>j^zJr4Q}d%4zQom!guuOHSPu^il&FV_HS5XLph zN`*M^ol^VpN1r9}^F~971J@@*2hCyZ{pWUB=Q{4E$E8QCThYf%U#vH)vVRYE{>UaI z6hb#!`Vh7f>DL)U-{V`v zr+u}&gH4KX;lyr+(lnD}A02fY%V6PzA$v>Qun*O5ahZwG%se(tIEMKmGa-MF<2`*lam z=y=DvTEw}{WnWq!ljmL^%f9WvV?k+aGs1HYo|gOUOV|GZ$Q}VC$Sum)($nwqQPE(r zoLstXQq3?sAx6olsdTkB?um%8#>PqM9uIQv#zd7MZIWnuR*qzw?uS61lbR7#^_-zsFB!)$Bv`iM>U?F&wz+a%$C8;IBMDpsYH2pVqvQuiT64PGDqv)K0?~L=5QM7 zk@{|HZI&jM9dMu-RYb<8?6Dn?W|P%GU;52!a=sOnxjQ4>Aq7}9iq~SK>^8w5L-%1u zGhoVzT#Hdu{BxDdYYhmoq24oTvau(xti%A$OQU7C=Z7)%LVn=N^n>KhhAS_-&kQx8 zic1LdA%~tkvDuza);T9IbK)+7u@7@)ub^BS;=}(i27L^V8CB-N7fe%7F@9`7mpDfC zPDQFz`fDf#;Zp{zySmDQ?`z8+Mk>$tV>z1;^7#_GxBA&Q-3)y%rWFrZyfN$)TmA;* zj8FH=2aJ@2vq#s{dAv2CWnc4~-9FW5 z;w6wuVLp;x39h|z4l=Uk%3PL>@>mXHZWFZo2Q%dy_bs^IH$ z$60$;@gS>B&XNy}qBrSpN-KdiB$LqA7#U~3QObDj5a-HIbWw!uUd4M);?}0deCM&S z9i&$}l&p;6xb8MB4e(y4c4P-#{|^O1vC^z6*qvY54z`Pcayzy1ptR*bd<mY5-;yXG@bnz3)#_~??rJ)PG=8JLEz_O4H;$alYtv9uZ*Gs0s^e)wx{@;7Sz zEIzq5v_PYg#j+vO@Kv4PKcyqE_ReEg_Ac8z*wp-`p0#=lC?fwFNEl{nyh($w_q43k zIsW)Yi8%T?<+uWEZY6w_vaiapn+(aJ^y9;2Pc=vHl5iC{N95^i-XN9z Ny)Z0n9ovW5{|7C%P+$N6 literal 0 HcmV?d00001 diff --git a/novel-admin/src/main/resources/static/img/a9.jpg b/novel-admin/src/main/resources/static/img/a9.jpg new file mode 100644 index 0000000000000000000000000000000000000000..508eb0926a2f36400f8804c55cfad94fe1f8fada GIT binary patch literal 15909 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